CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Pobranie wersja aplikacji - problem z funkcją

Pobranie wersja aplikacji - problem z funkcją

dział ogólny

Re: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Cyfrowy Baron » czwartek, 28 kwietnia 2011, 13:56

Co do błędu odpowiedziałem z swoim poprzednim poście.



Corvis napisał(a):W Builderze na kompie nie mam helpa korzystam z http://docwiki.embarcadero.com/RADStudio/en/Main_Page


Chyba można pobrać z sieci pliki pomocy do środowiska? Tak jak w Embarcadero RAD Studio 2010?! :o
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: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Corvis » czwartek, 28 kwietnia 2011, 13:57

Można ale poco marnować pare GB danych :-) jak to to samo co w necie ??
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Cyfrowy Baron » czwartek, 28 kwietnia 2011, 14:01

Corvis napisał(a):Można ale poco marnować pare GB danych :-) jak to to samo co w necie ??


No co ty. Taką pomoc w sieci jak podałeś niżej to każdy ma, ale po pobraniu plików pomocy masz normalne pliki pomocy. W Emabracdero RAD Studio 2010 nie masz kompletnej dokumentacji??? :o



Corvis napisał(a):Wyłącznie i włączenie Include Version in Project - to pomogło i size jest już 1260 :-)


Rozmiar (czego) czy komunikat błędu, gdyż już się gubię?!?
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: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Corvis » czwartek, 28 kwietnia 2011, 14:03

KOD cpp:     UKRYJ  
int size = GetFileVersionInfoSizeW(sFileName,0);


Akurat W 2010 miałem pobraną pomoc. W XE jakoś mi się nie chciało bo kończe projekty w 2010. Teraz zaczynam nowy w XE, doinstaluje tą pomoc i zobaczę co to będzie.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Cyfrowy Baron » czwartek, 28 kwietnia 2011, 14:07

Pliki pomocy w Embarcadero RAD Studio 2010 zajmują 335 MB, więc w XE będzie podobnie.

Nie wyobrażam sobie używania środowiska bez kompletnej dokumentacji opierając się tylko na bardzo ubogiej i rozwijanej przez internautów pomocy! :shock:



KOD cpp:     UKRYJ  
int size = GetFileVersionInfoSizeW(sFileName,0);


Myśle, że określanie tej funkcji jako Unicode (W) jest zbędne, gdyż jak w C++Builder 2010 jest to funkcja domyślna. Co innego, gdybyś chciał nadal używać zmiennych char i AnsiString, wtedy powinieneś użyć funkcji GetFileVersionInfoSizeA.
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: Pobranie wersja aplikacji - problem z funkcją

Nowy postprzez Cyfrowy Baron » czwartek, 28 kwietnia 2011, 14:19

Z tego co się zorientowałem w to kwestii AnsiString, UnicodeString, char i wchar_t oraz w większości bibliotek, w XE nic się nie zmieniło w stosunku do 2010. Dlatego podany niżej kod oparty na wchar_t powinien działać w XE bezproblemowo. Przy mapowaniu ustawionym na char powinien działać na zmiennych AnsiString i char:

KOD cpp:     UKRYJ  
AnsiString myGetFileVersionInfo(char *ModulePath, AnsiString KeyName)
{
 LPVOID lpStr1 = NULL, lpStr2 = NULL;
 WORD* wTmp;
 DWORD dwHandlev = NULL;
 UINT dwLength;
 char sFileName[1024] = {0};
 char sTmp[1024] = {0};
 UnicodeString sInfo;
 LPVOID* pVersionInfo;

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

 DWORD dwInfoSize = GetFileVersionInfoSize(sFileName, &dwHandlev);

 if(dwInfoSize)
 {
  pVersionInfo = new LPVOID[dwInfoSize];
  if(GetFileVersionInfo((char*)(LPSTR)sFileName, dwHandlev, dwInfoSize, pVersionInfo))
  {
   if(VerQueryValue(pVersionInfo, "\\VarFileInfo\\Translation", &lpStr1, &dwLength))
   {
        wTmp = (WORD*)lpStr1;
        sprintf(sTmp, ("\\StringFileInfo\\%04x%04x\\" + KeyName).c_str(), *wTmp, *(wTmp + 1));
        if(VerQueryValue(pVersionInfo, sTmp, &lpStr2, &dwLength)) sInfo = (LPCTSTR)lpStr2;
   }
  }
  delete[] pVersionInfo;
 }
 return sInfo;
}

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Corvis
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 strona

  • 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 31 gości

cron