OVH Cloud OVH Cloud

comment utiliser une DLL C en VB ?

1 réponse
Avatar
debvb03
Salut,

Je débute en VB,
je voudrais utilisé une DLL écrite en C, utilisant une classe C++
Dans ma DLL C, j'ai plusieurs fonctions exportées :

#define DllExport __declspec( dllexport )

DllExport void API_CreateMyClass( MyClass *ptClass );
DllExport void API_DeleteMyClass( MyClass *ptClass );
DllExport void API_ModifVar1( MyClass *ptClass, int iVar1 );


class MyClass
{
public :
MyClass();
~MyClass();
modifVar1( int iVar1);
private :
int m_iVar1;
};

-------

DllExport void API_CreateMyClass( MyClass *ptClass )
{
ptClass = new MyClass();
}
.
....
DllExport void API_ModifVar1( MyClass *ptClass, int iVar1 )
{
ptClass->modifVar1( iVar1 );
}


Comment appelle t on en VB les fonctions API_CreateMyClass et
API_ModifVar1 ?
Et quelle est l'équivalent de MyClass *ptClass en VB ?

J'ai une petite idée... mais il me manque des infos.

Public Declare function CreateMyClass Lib "APIDllMyClass.dll" Alias
"API_CreateMyClass" (......)

Merci pour vos réponses.

1 réponse

Avatar
parci
In : ,
ben écrivissa :

je voudrais utilisé une DLL écrite en C, utilisant une classe C++
Dans ma DLL C, j'ai plusieurs fonctions exportées :

#define DllExport __declspec( dllexport )



Il faut ajouter _stdcall aux fonctions exportées que tu veux utiliser
dans VB.

DllExport void API_CreateMyClass( MyClass *ptClass );
DllExport void API_DeleteMyClass( MyClass *ptClass );
DllExport void API_ModifVar1( MyClass *ptClass, int iVar1 );



Public Declare function CreateMyClass Lib "APIDllMyClass.dll" Alias
"API_CreateMyClass" ( ptClass As Long )

Public Declare function DeleteMyClass Lib "APIDllMyClass.dll" Alias
"API_DeleteMyClass" ( ptClass As Long )

Public Declare function ModifVar1 Lib "APIDllMyClass.dll" Alias
"API_ModifVar1" ( ptClass As Long, ByVal iVar1 As Long )