Windows, Qt, const char* et const WCHAR*
Salut � tous,
Je bosse actuellement sur l'UI windows de mupen64plus (pour ceux qui connaissent).
Je rencontre une difficult� avec les conversion de type...
Je vous explique, voici une fonction C tir� de l'UI console du projet:
Code:
1 2 3 4 5 6 7
| void * osal_dynlib_getproc(m64p_dynlib_handle LibHandle, const char *pccProcedureName)
{
if (pccProcedureName == NULL)
return NULL;
return GetProcAddress(LibHandle, pccProcedureName);
} |
GetProcAddress renvoit donc un void*.
Quand on compile en Visual Studio (le projet windows est en Visual Studio), �a fonctionne. Pas de probl�mes.
Moi je bosse sur l'interface graphique qui est en Qt4. J'utilise donc qmake et mingw32-make pour compiler.
Nous avons besoins, pour cette UI de faire grosso mode la m�me chose que pour l'interface console: Charger la lib mupen64plus.dll, qui contient le "core" de l'�mulateur.
Voici la m�thode:
Code:
1 2 3 4 5 6 7
| void * LibraryLoader::resolve(const char * name)
{
if (!private_->pluginHandle)
return 0;
return GetProcAddress(private_->pluginHandle, name);
} |
Avec comme d�finition pour pluginHandle:
Code:
m64p_dynlib_handle pluginHandle;
Et l�, �a crash avec �a comme message:
Code:
src\libraryloader_win32.cpp:34: error: invalid conversion from 'int (*)()' to 'void*'
En lisant la doc msdn: http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
Il est pr�cis� que GetProcAddress renvoit l'adresse de la fonction ou variable export�.
Serait-ce une subtilis� du compilo?
Visual Studio renverrait bien l'adresse (�a expliquerai pourquoi l'UI console compile sans probl�me), et mingw32 renverrait un int? C'est possible �a?
Si l'un d'entre vous pourrait �clairer la lanterne? Parce que l� je suis dans l'impasse.
Merci d'avance et bonne journ�e � tous!