Bon alors voila j'ai crée une dll de test en c avec deux fonction Max et Min , en laissant les param du projet par defaut.
A partir de la j'arrive a utiliser les fonctions de ma dll depuis VB mais je n'arrive pas a leurs passer de param ("Bad Calling convention" ).
J'ai pris mon courage a 2 mains et chuis aller fouiller sur le net , c'est la que j'ai cue j'ai capté l'histoire des convention de passage de paramétre et que VB ne supporte pas le cdecl , la convention par defaut de visual C++.
Le probléme est qu'a partir du moment ou je change la callig convention pour le passer en stdcall dans Visual C++, mon projet Vb ne trouve plus l'entry point de la fonction que je lui demande d'utiliser.
Siouplé a l'aide !
---------------
La vie n'est pas un restaurant mais un buffet. Levez-vous pour vous servir.
Publicité
Posté le 14-04-2001 à 15:09:47
karlkox
Posté le 16-04-2001 à 05:34:30
Un petit exemple vo mieux qu'un long discourt :
----------------------------------------------
// Définie le symbole de la fonction exportée
#define DllExport __declspec( dllexport )
// Prototype
extern "C" DllExport long MyCFunc(long x);
// On définit la fonction
extern "C" DllExport long MyCFunc(long x)
{
return x * x;
}
Dans VB :
--------
Private Declare Function MyCFunc Lib "MaDLL.dll" (ByVal x As Long) As Long