Bonjour à tous,

Voilà j'ai un problème avec une DLL 64 bits que je n'arrive pas à résoudre.

Je suis sous Windows 7 , et j'utilise g++ (tdm64-1) 4.6.1 (avec code::blocks) et MSVC++ 2010 express.

Ma DLL utilise Qt (compilé avec g++ (tdm64-1) 4.6.1) mais, ce n'est pas là que ça bloque. (Dans le forum C++, il n'y a pas de sous forum plateformes , donc je squatte ici)

Ma dLL s'interface avec MATLAB R2011A (qui utilise des DLLs 64bits), sinon je ne m’embêterai pas.

J'utilise le fichier mex.h et les fonctions mexPrintf et mexErrorMsg définies ainsi :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
 * mex equivalent to MATLAB's "disp" function
 */
EXTERN_C int mexPrintf(
    const char	*fmt,	/* printf style format */
    ...				/* any additional arguments */
    );
 
/*
 * Issue error message and return to MATLAB prompt
 */
EXTERN_C void mexErrMsgTxt(
    const char	*error_msg	/* string with error message */
    );

Dès que je fais appel à ces fonctions dans ma DLL compilée avec gcc, MATLAB plante ... (par contre des fonctions comme MessageBox(...,LPCTSTR,...) passe sans problème)
Par contre si je fais appel à ces fonctions dans une DLL compilée avec MSVC++ 2010, pas de problème.

Des idées d'où vient le problème ? Sur comment le résoudre?
Une option de compilation/édition de lien dans GCC qui pourrait résoudre le problème?