Probleme de chargement de dll

Probleme de chargement de dll - C++ - Programmation

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.

Reply

Marsh Posté le 17-07-2007 à 10:37:17   

Reply

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).


Message édité par bjone le 17-07-2007 à 10:49:59
Reply

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.


Message édité par bjone le 17-07-2007 à 10:55:05
Reply

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....

Reply

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

Reply

Marsh Posté le 17-07-2007 à 12:52:46    

nebucade a écrit :

bon en faite j'ai mis directement : LoadLibraryA("qsqlodbc4.dll" );
 
ca a l'aire de passé ... a voir si ca marche apres


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.


---------------
Töp of the plöp
Reply

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.

Reply

Marsh Posté le 17-07-2007 à 19:34:37    

bjone a écrit :

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.


 
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 :/


---------------
Töp of the plöp
Reply

Marsh Posté le 25-07-2007 à 16:24:32    

c'est quoi ANSI et UNICODE ? et Wide String ?

Reply

Marsh Posté le 25-07-2007 à 16:32:00    

cimourdain a écrit :

c'est quoi ANSI et UNICODE ? et Wide String ?


google


---------------
Töp of the plöp
Reply

Marsh Posté le 25-07-2007 à 16:32:00   

Reply

Marsh Posté le 26-07-2007 à 10:04:59    

non google c'est un moteur de recherche tu dois te tromper ********.

Reply

Marsh 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


---------------
Töp of the plöp
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed