Probleme de chargement de dll - C++ - Programmation
Marsh Posté le 17-07-2007 à 10:45:46
W : il doit vouloir une chaine unicode et pas ansi (ton projet doit être en unicode, y'a des macros pour basculer sur les fonction A/W suivant le mode du projet).
Marsh Posté le 17-07-2007 à 10:47:04
essaye
LoadLibrary( _T( "qsqlodbc4.dll" );
ou voir comment mettre le projet en ansi au niveau chaine de caractères.
Marsh Posté le 17-07-2007 à 11:11:28
salut,
bon j'ai testé ta solution avec _T, qui me donne la meme erreur,
j'ai cherché un peu, sur le site de microsoft j'ai trouvé un _L, mais ca ne marche pas du tout LOL.
si non je suis en VC 2005, et j'ai pas trouvé ou changé le mode unicode....
Marsh Posté le 17-07-2007 à 11:12:24
bon en faite j'ai mis directement : LoadLibraryA("qsqlodbc4.dll" );
ca a l'aire de passé ... a voir si ca marche apres
Marsh Posté le 17-07-2007 à 12:52:46
nebucade a écrit : bon en faite j'ai mis directement : LoadLibraryA("qsqlodbc4.dll" ); |
Bah oui parce que tu as appelé la version Ansi de LoadLibrary
En ajoutant l'option de compilation unicode (ou pas), un lien implicite est fait de LoadLibrary vers LoadLibraryA (ANSI) ou LoadLibraryW (Wide String).
Le mieux pour toi est d'utiliser LoadLibrary en y passant une CString (qui sera elle aussi implicitement CStringA ou CStringW). Ton code tournera toujours, dans un environnement unicode ou non.
En utilisant LoadLibraryA, tu forces une utilisation ANSI dans un environnement unicode (puisque ça ne fonctionnait pas avant). C'est bancal.
Marsh Posté le 17-07-2007 à 13:30:11
oui mais est-ce que ça influence grand chose ?
moi j'ai plus l'impression que c'est juste la chaine passé en paramètre, et que ça pas plus d'influence que ça.
les symboles ne sont que ansi derrière de toute façon.
Marsh Posté le 17-07-2007 à 19:34:37
bjone a écrit : oui mais est-ce que ça influence grand chose ? |
La taille des strings en interne n'est pas codé de la même manière, effectivement c'est "juste la chaine passée en paramètre".
Cela dit, dans un but de propreté, autant avec un code cohérent. Si par la suite le posteur souhaite internationnaliser son soft, ca va être le bordel entre les widestrings et les raccourcis ansi mis en durs dans son code
Marsh Posté le 25-07-2007 à 16:24:32
ReplyMarsh Posté le 25-07-2007 à 16:32:00
cimourdain a écrit : c'est quoi ANSI et UNICODE ? et Wide String ? |
google
Marsh Posté le 26-07-2007 à 10:04:59
ReplyMarsh Posté le 26-07-2007 à 12:54:13
cimourdain a écrit : non google c'est un moteur de recherche tu dois te tromper ********. |
'k lol
Marsh Posté le 17-07-2007 à 10:37:17
bonjour,
voila je voudrai chargé une dll donc j'ecrit :
LoadLibrary("qsqlodbc4.dll" );
le compilateur me repond :
1>.\testSql.cpp(12) : error C2664: 'LoadLibraryW' : impossible de convertir le paramètre 1 de 'const char [14]' en 'LPCWSTR'
???? la je vois vraiment pas ce qu'il me veut.
quelqu'un aurai une idée ??
merci d'avence.