Migracja na C++ Builder 2009 i problem z "manifestem"

dział ogólny

Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez simekone » niedziela, 12 kwietnia 2009, 16:08

Ostatnio zostałem zmuszony przez pewne przyczyny do migracji.

OS zmieniłem z XP na Win7 x64, a CB 6 na CodeGear CB 2009.

Programy kompilują się i działają bez zarzutu jedynie gdy usunę z ich zasobów plik RC odwołujący się do manifestu. I tu właśnie mam do was prośbę, czy jest ktoś w stanie zmodyfikować plik manifest, tak aby działał on z najnowszą odsłona systemu Microsoftu?

Kod błędu jaki otrzymuję:
Kod: Zaznacz cały
[BRCC32 Error] macierzownik.rc(1): Error Could not open input file E:Files\Borland\CBuilder6\Projects;E:\Projekty.RC


Kod pliku manifest:
Kod: Zaznacz cały
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <assemblyIdentity
         version="0.9.1.0"
         processorArchitecture="x86"
         name="Macierzownik"
         type="win32"
        />
<description>Macierzownik</description>
    <dependency>
        <dependentAssembly>
                <assemblyIdentity
                 type="win32"
                 name="Microsoft.Windows.Common-Controls"
                 version="6.0.0.0"
                 processorArchitecture="x86"
                 publicKeyToken="6595b64144ccf1df"
                 language="*"
                />
        </dependentAssembly>
    </dependency>
</assembly>


Na pewno trzeba pozmieniać dane w Depednecy, ale na jakie nie mam pojęcia.

Korzystałem z informacji na tej stronie:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Może to tez komuś pomoże w rozwiązaniu problemu.
Avatar użytkownika
simekone
Bladawiec
Bladawiec
 
Posty: 31
Dołączył(a): środa, 25 marca 2009, 13:27
Podziękował : 1
Otrzymał podziękowań: 0
Kompilator: CodeGear C++ Builder 2009
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez Cyfrowy Baron » poniedziałek, 13 kwietnia 2009, 08:37

Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez simekone » poniedziałek, 13 kwietnia 2009, 09:41

Było, ale dla Visty, niestety manifest dla Visty także nie działa. Może to być wina tego, że w Win 7 zmieniono jakieś ustawienia, albo że to wersja x64.

W sumie po chwili zastanowienia to problem może brać z tego, że C++ Builder 2009 odwołuje się do pliku z BCB 6 z XP.

Dla rozjaśnienia sytuacja wygląda następująco: mam XP 32bit z BCB 6 oraz Win 7 x64 z C++ Builderem 2009. Projekt został stworzony na XP i kompiluje się tam bez problemu wraz z manifestem. Na Win 7 kompiluje się bez problemu jedynie po usunięciu pliku RS.

Komentarz do błędu sugeruje że nowy CB odwołuje się do jakiegoś pliku BCB 6.
Avatar użytkownika
simekone
Bladawiec
Bladawiec
 
Posty: 31
Dołączył(a): środa, 25 marca 2009, 13:27
Podziękował : 1
Otrzymał podziękowań: 0
Kompilator: CodeGear C++ Builder 2009
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez Cyfrowy Baron » poniedziałek, 13 kwietnia 2009, 10:07

Ja Tobie już nie pomogą. Po pierwsze korzystam z 32-bitowego środowiska, po drugie uważam że Vista to wielka pomyłka, a Windows 7 (nie sprawdzałem, ale czytałem komentarza) jest podobny do Visty, więc nie wzbudza mojego zainteresowania, dlatego korzystam z Windows XP i jestem wielce zadowolony.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez mckri » środa, 15 kwietnia 2009, 08:11

Troche nie rozumiem po co Tobie plik manifestu. Przecież programy robione w CG2009 (chyba od wersji 2006) mają to juz manifest 'wbudowany' i program po kompilacji ma wygląd wizualny wg okien systemu - tyczy się jednak raczej sytuacji gdy piszemy program od nowa. Jeżeli jednak jak piszesz kompilujesz stary projekt, do którego dołączony był plik manifestu, to spróbuj z niego zrezygnowac i użyj komponent 'XPManifest1' z palety 'Win32'. U mnie przy kompilacji starych projektów to działa.
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez Cyfrowy Baron » czwartek, 16 kwietnia 2009, 12:50

Komponent XPManifest dołącza do programu manifest dla systemu WinXP, a tutaj rozważamy temat systemu Windows 7. Dlatego usuń z formularza komponent XPManifest i z pliku nagłówkowego (np. Unit1.h) wpis: #include <XPMan.hpp>. Jeżeli dołączyłeś do zasobów programu jakiś manifest dla WinXP to też go usuń.

W menu Project -> Options, w sekcji Application zaznacz opcję Enable runtime themes. Obawiam się jednak, że ta opcja dołącza manifest tylko dla systemów WinXP i Vista.

Jeżeli chodzi o Windows 7, to trudno jeszcze cokolwiek znaleźć, poza tym wydaje mi się, ze tworzenie programu do pracy w systemie, który się nie ukazał jeszcze w wersji finalnej, to praca na wyrost, gdyż wiele może się zmienić, nie mówiąc już o tym, że system może się nie przyjąć tak jak ma to się dzieje w przypadku Visty. Sprzedaż komputerów drastycznie spadła i jeżeli do tego wszystkiego okaże się, że do (bezproblemowego) używania systemu Windows 7 trzeba się zaopatrzyć w nowy komputer, to nie wróżę temu systemowi świetlanej przyszłości, przynajmniej w Polsce.

Spróbuj tego manifestu:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="DelphiApplication"
version="1.0.0.0"
processorArchitecture="*"/>

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>

<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
</assembly>


Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Migracja na C++ Builder 2009 i problem z "manifestem"

Nowy postprzez Cyfrowy Baron » czwartek, 16 kwietnia 2009, 12:51

Komponent XPManifest dołącza do programu manifest dla systemu WinXP, a tutaj rozważamy temat systemu Windows 7. Dlatego usuń z formularza komponent XPManifest i z pliku nagłówkowego (np. Unit1.h) wpis: #include <XPMan.hpp>. Jeżeli dołączyłeś do zasobów programu jakiś manifest dla WinXP to też go usuń.

W menu Project -> Options, w sekcji Application zaznacz opcję Enable runtime themes. Obawiam się jednak, że ta opcja dołącza manifest tylko dla systemów WinXP i Vista.

Jeżeli chodzi o Windows 7, to trudno jeszcze cokolwiek znaleźć, poza tym wydaje mi się, ze tworzenie programu do pracy w systemie, który się nie ukazał jeszcze w wersji finalnej, to praca na wyrost, gdyż wiele może się zmienić, nie mówiąc już o tym, że system może się nie przyjąć tak jak ma to się dzieje w przypadku Visty. Sprzedaż komputerów drastycznie spadła i jeżeli do tego wszystkiego okaże się, że do (bezproblemowego) używania systemu Windows 7 trzeba się zaopatrzyć w nowy komputer, to nie wróżę temu systemowi świetlanej przyszłości, przynajmniej w Polsce.

Spróbuj tego manifestu:


Kod: Zaznacz cały
  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity
      type="win32"
      name="DelphiApplication"
      version="1.0.0.0"
      processorArchitecture="*"/>

  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
      <application>
        <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/
        <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      </application>
    </compatibility>

    <dependency>
      <dependentAssembly>
          <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          publicKeyToken="6595b64144ccf1df"
          processorArchitecture="*"/>
      </dependentAssembly>
    </dependency>
  </assembly>

Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 11 gości

cron