Je n'ai jamais posté avant donc je suis désolé si je ne suis pas clair. J'essaie d'utiliser une DLL tierce écrite en C++ en 2005 et tout ce que j'ai c'est une très mauvaise documentation. Je lie dynamiquement à la DLL et à l'aide de la valeur Ordinal lue à partir de Walker de dépendance pour obtenir un pointeur vers une méthode dans la DLL. Tels que (LPFNDDLLZC) GetProcAddress (hHILCdll, (LPCSTR) 15);pwsz chaîne confusion
Mon code est écrit en C++ compilé dans Microsoft VS 6.0, je ne peux pas activer les définitions UNICODE ou je vais casser le code existant.
La documentation pour la DLL indique que tous les arguments de chaîne sont pwsz, ce qui signifie, je crois, un pointeur sur une chaîne de caractères charnière null terminée.
J'ai essayé de passer dans un pointeur vers un short non signé, BSTR et plusieurs autres choses et la DLL se bloque sur la chaîne. Je suis complètement perdu quant à pourquoi, je crois que cela a à voir avec ma construction de chaîne pwsz et je suis perdu quant à la façon de résoudre ce problème. J'ai lu des articles connexes, mais rien ne fonctionne.
Quelqu'un peut-il aider? Je peux poster un code si besoin est.
Merci.
Documente la déclaration LPFNDDLLZC. –
Je ne parle pas la notation hongroise, alors qu'est ce que "pwsz"? Aussi, qu'est ce que "LPFNDDLLZC"? –
typedef long (__stdcall * LPFNDDLLZC) (long x, long y, long long z, long a, long b, long long c, long d, non signé court * pwszmsg); LPFNDDLLZC est juste mon nom de pointeur à la méthode dans la DLL. Je ne suis pas non plus sur la notation hongroise, je pensais que les développeurs ont cessé de l'utiliser depuis longtemps. Quoi qu'il en soit, ils me disent ici que c'est un pointeur vers une chaîne de caractères large null terminée. La DLL est venu avec aucun fichier d'en-tête ou fichier .def donc je vais sur la petite documentation que j'ai pour les signatures de méthode. –