CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Problem z kompatybilnością

Problem z kompatybilnością

dział ogólny

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » piątek, 2 grudnia 2011, 14:02

Mylisz się. Przeanalizowałem właśnie binarkę, a dokładnie jej zasoby. Błąd leży w tym, że w polu Translation zapisane jest kodowanie polskie, a w StringFileInfo jest angielskie (pytanie, dlaczego ResEdit pokazywał mi coś innego? :o ). Ten stan potwierdza to, co napisałem wcześniej na podstawie analizy w debuggerze. Czyli wniosek z tego jest taki, że środowisko ma spieprzone ustawianie wersji pliku.

Poza tym edytor nie pozwala nadawać tak długi wersji pliku.

Edytor może nie, ale format zasobów już tak. Wszystko zależy od tego, jak interpretować te cztery 16-bitowe wartości. Czy ze znakiem, czy nie. W edytorze traktowane są jako wartości ze znakiem, co jest bez sensu, bo wersja pliku/programu nie może być przecież ujemna (ja się nigdy nie spotkałem z taką).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Pitek » piątek, 2 grudnia 2011, 18:23

Ok faktycznie miałem ustawiony region na polski chyba z poprzedniego środowiska teraz dałem na Angielski(Stany Zjednoczone) i wszystko śmiga.
Bardzo dziękuję za pomoc :) Myślę że dużą rolę odegrał tutaj również ten Update 2.
Chociaż wersja pliku dalej pokazuje 1.0.61183.31180 nie wiem czemu nie działa to przy regionie ustawionym na polski ;/
EDIT: Kolejną super rzeczą jest to żę automatyczna inkrementacja wersji pliku odnosi się tylko do tego potworka 1.0.61183.35705 a nie do tego co podam w tych okienkach tak nie było w 2010 czemu to tak popsuli to jedyna rzecz która mnie wkurza w XE2.
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » sobota, 3 grudnia 2011, 09:20

pitek3010 napisał(a):Chociaż wersja pliku dalej pokazuje 1.0.61183.31180 nie wiem czemu nie działa to przy regionie ustawionym na polski ;/


Ty i polymorphiosm zaczynacie coś mieszać.
Po pierwsze w twoim pliku programu (tym który tutaj załączyłeś) region wcale nie był ustawiony na polski, gdyż był to region: 1031/1252, a polski to: 1045/1250.
Po drugie jak możesz ustawiać taki numer w opcjach projektu, skoro zarówno u mnie jak i u Corvis-a jest ona automatycznie skracany przez edytor?

polymorphism napisał(a):Błąd leży w tym, że w polu Translation zapisane jest kodowanie polskie, a w StringFileInfo jest angielskie


U mnie programy PE Explorer, Resource Hacker, XN Resource Editor pokazując zarówno w Translation jak i w StringFileInfo ten sam region angielski.
Poza tym po poprawieniu wersji pliku w programie, wersja pliku jest odczytywana prawidłowo. Dlaczego nikt nie zwraca uwagi na ten fakt.
Jak ta niepoprawna wciąż wersja pliku, ma się do odczytywania innych informacji z zasobów?

polymorphism napisał(a):Teraz pytanie, dlaczego VerQueryValue dla zapytania Translation zwraca ID języka polskiego i kodowanie 1250, przecież tych wartości nie ma w bloku VarFileInfo?!


Dlaczego twierdzisz, że zwraca kodowanie dla języka polskiego, skoro w zaproponowanym przeze mnie kodzie strona kodowa jest sprawdzana i podawana właściwa.

pitek3010 napisał(a):Kolejną super rzeczą jest to żę automatyczna inkrementacja wersji pliku odnosi się tylko do tego potworka 1.0.61183.35705 a nie do tego co podam w tych okienkach tak nie było w 2010 czemu to tak popsuli to jedyna rzecz która mnie wkurza w XE2.


To chyba tylko u Ciebie?! Masz uszkodzone zasoby, więc sugerowałbym wyłączenie w opcjach projektu Informacji o wersji. Wybranie opcji Build dla projektu. Włączenie wersji i poprawienie tak by jej długość nie przekraczała dopuszczalnej. Jak długo będziesz miał te zasoby niepoprawne, tak długo możesz mieć problemy z pobieraniem innych informacji z zasobów.

pitek3010 napisał(a):Ok faktycznie miałem ustawiony region na polski chyba z poprzedniego środowiska teraz dałem na Angielski(Stany Zjednoczone) i wszystko śmiga.


To wcale nie rozwiązało problemu, gdyż pobieranie wersji powinno działać niezależnie od ustawionego regionu. Coś się zmieniło w zasobach i chwilowo to działa. Gdzie jest napisane, że to działa tylko z regionem angielskim. U mnie działa to z każdym regionem. Poza tym Twój program działa w języku polskim, został stworzony w Polsce, więc dlaczego ustawiasz mu region Stanów Zjednoczonych?!
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
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » sobota, 3 grudnia 2011, 11:51

U mnie programy PE Explorer, Resource Hacker, XN Resource Editor pokazując zarówno w Translation jak i w StringFileInfo ten sam region angielski.
Nie wiem, dlaczego tak jest. U mnie - na co też zwróciłem we wcześniejszym poście uwagę - ResEdit także podawał wartość Translation poprawnie, co jak się później okazało nie było prawdą. Jedyne co mi przychodzi do głowy to to, że twórcy tych programów wartości Translation określają na podstawie analizy tabeli StringFileInfo.

Dlaczego twierdzisz, że zwraca kodowanie dla języka polskiego (...)

Dlatego, że odpaliłem program pod debuggerem i sprawdziłem te wartości - pisałem przecież.

(...) skoro w zaproponowanym przeze mnie kodzie strona kodowa jest sprawdzana i podawana właściwa.

Jeszcze raz napiszę jasno: wartość Translate nie zawiera poprawnego kodowania, dlatego funkcja przez Ciebie zaproponowana nie działała. Jest to ewidentna wina środowiska, nie funkcji.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » sobota, 3 grudnia 2011, 11:56

Jak więc to możliwe, że plik zawiera dwie różne strony kodowe? Dlaczego strony kodowe są przechowywane w dwóch różnych zmiennych? Dlaczego skrócenie numeru wersji sprawia, że jest on odczytywany prawidłowo? Jak możliwe jest nadawanie tak długiego numeru wersji, skoro środowisko tego nie dopuszcza?
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
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » sobota, 3 grudnia 2011, 12:10

Jak więc to możliwe, że plik zawiera dwie różne strony kodowe? Dlaczego strony kodowe są przechowywane w dwóch różnych zmiennych?

Zapewne jest to błąd środowiska. A dlaczego w dwóch tabelach? Być może po to, żeby można było szybko określić, bez wnikania w zawartość tabeli StringFileInfo, dla jakich języków przewidziane są informacje o pliku.

Generalnie Twoja funkcja powinna wybrać kodowanie, w którym aktualnie działa system. Teraz bierze pierwsze z brzegu.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » sobota, 3 grudnia 2011, 14:21

polymorphism napisał(a):Generalnie Twoja funkcja powinna wybrać kodowanie, w którym aktualnie działa system. Teraz bierze pierwsze z brzegu.


No chyba nie. Przeprowadzałem testy dla różnego kodowania i zawsze działa. Funkcja odczytuje kodowanie ze zmiennej Translation i dodaje do tego ze zmiennej StringFileInfo.
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
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » sobota, 3 grudnia 2011, 14:44

Ech, nie rozumiesz. Oczywiście, że działa, przecież wartość Translate zawiera wszystkie kodowania i języki, dla których przewidziano w zasobach info o pliku. Zatem jeśli weźmiesz pierwsze z brzegu kodowanie, tak jak to robisz teraz, to możesz być pewny (o ile zasoby są poprawnie skompilowane), że w zasobach znajduje się odpowiedni dla danego języka wpis w tabeli StringFileInfo. Być może nie zdajesz sobie sprawy z tego, że w tabeli StringFileInfo może być kilka wersji językowych opisu pliku. Może być np. wersja angielska i polska. Ta pierwsza jest przeznaczona dla systemów angielskojęzycznych, a druga tylko dla polskiej. Twoja funkcja ignoruje ten fakt.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Pitek » sobota, 3 grudnia 2011, 17:40

Ja już nic z tego nie wiem :twisted:
U mnie jest tak, jeżeli zasoby ustawie na nowo sposobem Barona to po ponownym ustawieniu (Region : Angielski, Wersja : 1.0.0.0 ale bez inkrementacji) to wersja pliku ta taka dziwna z dużymi liczbami jest taka sama jak ta na liście poniżej czyli 1.0.0.0 i wtedy jest ona rozpoznawana przez funkcje w programie jeżeli region zmienię na Polski to funkcja przestaje działać reszta zostaje po staremu. Jeżeli natomiast zaznaczę auto inkrementacje z regionem Angielskim i wersją 1.0.0.0 to wersja pliku ta u góry znowu robi się taka dziwna z dużymi liczbami, nie wiem skąd się to bierze ja tego nigdzie ie ustawiłem. A wersja odczytywana przez funkcje jest poprawna ta którą ja ustawiłem czyli 1.0.0.0 jendak kiedy przy takim ustawieniu zmienię region na Polski funkcja przestaje działa.... i o cho tu chodzi ;/ :roll:
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » sobota, 3 grudnia 2011, 19:40

polymorphism napisał(a):Sprawdziłem i ... niezły kwas tu jest. Funkcja podana przez Barona nie działa, bo podaje złą stronę kodową i ID języka - dane w zasobach zapisane są dla języka angielskiego w kodowaniu 1252


polymorphism napisał(a):Mylisz się. Przeanalizowałem właśnie binarkę, a dokładnie jej zasoby. Błąd leży w tym, że w polu Translation zapisane jest kodowanie polskie, a w StringFileInfo jest angielskie (pytanie, dlaczego ResEdit pokazywał mi coś innego? :o ).


Gdyby tak było to ten kod:

KOD cpp:     UKRYJ  
String GetFileVersionInfo(wchar_t *ModulePath, String KeyName)
{
 LPVOID lpLangInfo1 = NULL, lpLangInfo2 = NULL;


 WORD* wTmp;
 DWORD dwHandlev = NULL;
 UINT dwLength;
 wchar_t sFileName[1024] = {0};
 wchar_t sTmp[1024] = {0};
 String sInfo;
 LPBYTE *pVersionInfo;

 if(ModulePath == NULL) GetModuleFileName( NULL, sFileName, 1024);
 else wcscpy(sFileName, ModulePath);

 DWORD dwInfoSize = GetFileVersionInfoSize(sFileName, &dwHandlev);

 if(dwInfoSize)
 {
  pVersionInfo = new LPBYTE[dwInfoSize];
  if(GetFileVersionInfo(sFileName, dwHandlev, dwInfoSize, pVersionInfo))
  {

   struct TLanguage
   {
        WORD wLanguage;
        WORD wCodePage;
   } *PLanguage;


   if(VerQueryValue(pVersionInfo, L"\\VarFileInfo\\Translation",
                                        (LPVOID*)&PLanguage, &dwLength))
   {

  /* String sLangInfo = Format("\\StringFileInfo\\%.4x%.4x\\",
                        ARRAYOFCONST((PLanguage->wLanguage, PLanguage->wCodePage)));
   Form1->Caption = sLangInfo;   */

   String sLangInfo = "\\StringFileInfo\\041103A4\\";

        if(VerQueryValue(pVersionInfo, (sLangInfo + KeyName).w_str(), &lpLangInfo2, &dwLength)) sInfo = (LPCTSTR)lpLangInfo2;
   }


  }
  delete[] pVersionInfo;
 }
 return sInfo;
}


Powinien pobrać jakąś wersję pliku, ale niezależnie od tego czy ustawię kodowanie polskie:

KOD cpp:     UKRYJ  
 String sLangInfo = "\\StringFileInfo\\041504E2\\"


czy angielskie:

KOD cpp:     UKRYJ  
String sLangInfo = "\\StringFileInfo\\041103A4\\"


Numer wersji nie jest pobierany, podczas gdy dla innych polików JEST o ile zgadza się strona kodowa.

Co dodać do tego kodu, by pobierał wersję dla kliku stron kodowych?
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
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » sobota, 3 grudnia 2011, 21:11

Numer wersji nie jest pobierany

Bo złe kodowanie ustawiasz. W pliku pitka region ma wartość 1033 a kodowanie 1252. I te liczby powinny być zawarte w wartości Translation.

Co dodać do tego kodu, by pobierał wersję dla kliku stron kodowych?

Coś w ten deseń:
KOD cpp:     UKRYJ  
DWORD*  lang;
UINT    size;
LCID    defLang = GetUserDefaultLCID();
WORD    langID;
WORD    codePage;

...

if(VerQueryValueW(pVersionInfo, L"\\VarFileInfo\\Translation", (LPVOID*)&lang, &size) && size >= 4)
{
        langID = LOWORD(lang[0]);
        codePage = HIWORD(lang[0]);

        size /= 4;
       
        for(UINT i = 1; i < size; ++i)
        {
                if(LOWORD(lang[i]) == defLang)
                {
                        langID = defLang;
                        codePage = HIWORD(lang[i]);
                        break;
                }
        }

        /* ... i tu pobierasz dane dla langID i codePage */
}
 
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » sobota, 3 grudnia 2011, 22:20

polymorphism napisał(a):W pliku pitka region ma wartość 1033 a kodowanie 1252


Rzeczywiście StringFileInfo ma kodowanie: 1033/1252, a Translation - 1045/1250.

Jak więc pobrać kodowanie używając tylko StringFileInfo do jego określenia. Próbowałem tak:

KOD cpp:     UKRYJ  
   if(VerQueryValue(pVersionInfo, L"\\StringFileInfo\\lang-codepage",
                                        (LPVOID*)&PLanguage, &dwLength))
   {

   String sLangInfo = Format("\\StringFileInfo\\%.4x%.4x\\",
                        ARRAYOFCONST((PLanguage->wLanguage, PLanguage->wCodePage)));


        if(VerQueryValue(pVersionInfo, (sLangInfo + KeyName).w_str(), &lpLangInfo2, &dwLength)) sInfo = (LPCTSTR)lpLangInfo2;
   }


ale to nie zadziała.
Jeżeli do pobrania wersji potrzebne jest VarFileInfo\Translation to przy innym kodowaniu w StringFileInfo nie da się pobrać zasobów, gdyż kodowania się nie pokrywają. Podany przez Ciebie sposób na pobranie wersji zadziała, ale tylko na pobranie wersji z innymi zasobami będzie znów problem...
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
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez polymorphism » sobota, 3 grudnia 2011, 23:05

Jak więc pobrać kodowanie używając tylko StringFileInfo do jego określenia.

Trzeba by odczytać całą tabelę StringFileInfo z danych binarnych zasobu. Opis formatu masz na stronie microsoftu. Tylko czy jest sens? Tak w ogóle to się zastanawiam, czemu pitek uparł się na odczytywanie wersji pliku z zasobu tekstowego, zamiast odczytywać go w formie binarnej (kod podałem). Wersja tekstowa jest tylko do wyświetlania w okienku właściwości pliku. Dla instalatorów istotna jest forma binarna...

Podany przez Ciebie sposób na pobranie wersji zadziała, ale tylko na pobranie wersji z innymi zasobami będzie znów problem...

Nie będzie problemu, ponieważ inne zasoby będą poprawnie skompilowane, zatem wszystkie wartości będą takie jak trzeba.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Pitek » niedziela, 4 grudnia 2011, 00:04

To jak ja to mam poskładać do kupy bo ja się już w tym gubię :?
Zależało by mi na tym żeby to była wersja w formie tekstowej.
Komputer służy do tego aby ułatwić Ci pracę, której bez niego w ogóle byś nie miał.
E.Murphy
http://piotrekprogramy.pl
Avatar użytkownika
Pitek
Kreacjusz
Kreacjusz
 
Posty: 290
Dołączył(a): środa, 14 października 2009, 14:53
Lokalizacja: Rybnik/Wrocław
Podziękował : 43
Otrzymał podziękowań: 5
System operacyjny: Win 7 Ultimate 64bit SP1 / Ubuntu 19.04 LTS 64bit
Kompilator: Embarcadero RAD Studio XE2
SKYPE: pitek3010
Gadu Gadu: 7060047
    Windows XPFirefox

Re: Problem z kompatybilnością

Nowy postprzez Cyfrowy Baron » niedziela, 4 grudnia 2011, 00:16

polymorphism napisał(a):Nie będzie problemu, ponieważ inne zasoby będą poprawnie skompilowane, zatem wszystkie wartości będą takie jak trzeba.


Chodziło mi o zasoby znajdujące się w StringFileInfo. Teraz nie da się ich odczytać, jeżeli poda się kodowanie z VarFileInfo\Translation. By je odczytać trzeba podać kodowanie ze StringFileInfo i tutaj już jest problem.

pitek3010 napisał(a):To jak ja to mam poskładać do kupy bo ja się już w tym gubię :?
Zależało by mi na tym żeby to była wersja w formie tekstowej.


Podczas konwersji programu do nowej wersji środowiska zasoby zostały uszkodzone. Musisz je naprawić. Usuń z katalogu programu wszystkie pliki tymczasowe, czyli *.~??; *.~?; *.obj; *.tds; *.#??; *.pch; *.ilc; *.ild; *.ils; *.ilf. Gdzie znak zapytania (?) to dowolny znak. Usuń plik *.exe, popraw wersję pliku, gdyż teraz jest niepoprawna (i jaki sens ma tak duży numer wersji). Wybierz Build dla projektu. Teoretycznie zasoby powinny zostać naprawione.

Co ciekawe gdy próbuję przy pomocy edytora zasobów zapisać w nim Twoją wersję pliku to nawet edytor ustawia numer wersji na maksymalnie 1.0.32767.32767 i poprawia kodowanie tak, że w obydwu strukturach jest identyczne.
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
    Windows XPFirefox

Poprzednia stronaNastępna strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 4 gości