Bonjour,
j'aurai voulu savoir si IBPP est compatible en UNICODE.
si non, est ce que quelqu'un a une combine pour pouvoir utiliser cette librairie sur un projet unicode ?
est ce que ce support est prévu dans la v3 de la lib ?
Bonjour,
j'aurai voulu savoir si IBPP est compatible en UNICODE.
si non, est ce que quelqu'un a une combine pour pouvoir utiliser cette librairie sur un projet unicode ?
est ce que ce support est prévu dans la v3 de la lib ?
personne n'a eu besoin de ibpp en unicode ??
humm...
Flamerobin il me semble utilise l'unicode et IBPP, pose ta question directement aux gens d'IBPP, en plus ils parlent le français
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
bon, je réponds à ma question...
ibpp tel qu'il est disponible sur sourceforge n'est pas compatible à la compilation unicode.
flamerobin fonctionne bien en unicode et utilise ibpp. Le projet a modifié les sources de ibpp, mais leur répertoire ibpp ne compile pas correctement sous unicode, dans mon projet du moins...
bref, j'ai utilisé les modifications notés sur le blog en anglais ci dessous, et fonctionne correctement sur mon programme.
http://tnt64.blogspot.com/2007/04/stuff-n-nonsense.html
http://tnt64.blogspot.com/2007/04/ibppagain.html
pour résumer, les modifications suivantes du fichier "_ibpp.cpp" sont:
* Line 44: from #define REG_KEY_ROOT_INSTANCES "SOFTWARE\\Firebird Project\\Firebird Server\\Instances" to #define REG_KEY_ROOT_INSTANCES TEXT("SOFTWARE\\Firebird Project\\Firebird Server\\Instances")
* Line 45: from #define FB_DEFAULT_INSTANCE "DefaultInstance" to #define FB_DEFAULT_INSTANCE TEXT("DefaultInstance")
* Line 87: from ::OutputDebugString(("IBPP: " + p->str() + "\n").c_str()); to ::OutputDebugString((const TCHAR *) ("IBPP: " + p->str() + "\n").c_str());
* Line 111: change char fbdll[MAX_PATH]; to TCHAR fbdll[MAX_PATH];
* Line 142: change mHandle = LoadLibrary(path.c_str()); to mHandle = LoadLibrary((const TCHAR *) path.c_str());.
Note: There has got to be a cleaner way of doing this than just casting. Check MSDN or the Platform SDK for documentation on MultiByteToWideChar() under User Interface, International Text Display, Unicode and Character Sets.
* Line 167: change char* p = fbdll + len; to TCHAR* p = fbdll + len;
* Line 170: change lstrcat(fbdll, "\\fbembed.dll"); to lstrcat(fbdll, TEXT("\\fbembed.dll"));
* Line 175: change lstrcat(fbdll, "\\fbembed.dll"); to lstrcat(fbdll, TEXT("\\fbembed.dll"));
* Line 194: change lstrcat(fbdll, "bin\\fbembed.dll"); to lstrcat(fbdll, TEXT("bin\\fbembed.dll"));
* Line 204: change mHandle = LoadLibrary("fbclient.dll"); to mHandle = LoadLibrary(TEXT("fbclient.dll"));
* Line 209: change mHandle = LoadLibrary("gds32.dll"); to mHandle = LoadLibrary(TEXT("gds32.dll"));
merci à Untouched donc
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager