Bonjour, je test mes premiere DLL C++ pour les appeller depuis Visual basic.
J'ai reussi a avoir une interaction avec ma dll depuis VB, mais je n'arive desesperement pas a envoyer une variable a ma DLL.
Voici le code C++ de ma DLL : (main.cpp)
#include "main.h"
void DLL_EXPORT SomeFunction(void)
{
MessageBoxA(0,"PLOP", "DLL Message", MB_OK | MB_ICONINFORMATION);
}
void __stdcall GetValeur(long *valeur)
{
*valeur += 10;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
break;
case DLL_PROCESS_DETACH:
// detach from process
break;
case DLL_THREAD_ATTACH:
// attach to thread
break;
case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}
Voici le Main.h :
#ifndef __MAIN_H__
#define __MAIN_H__
#include <windows.h>
#include <string>
/* To use this exported function of dll, include this header
* in your project.
*/
#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C"
{
#endif
void DLL_EXPORT SomeFunction(void);
void __stdcall GetValeur(long *valeur);
#ifdef __cplusplus
}
#endif
#endif // __MAIN_H__
Et voici le code VB :
Private Declare Sub SomeFunction Lib "test.dll" ()
Private Declare Sub GetValeur Lib "test.dll" (valeur As Long)
Private Sub Command1_Click()
Dim valeur As Long
valeur = Text1.Text
GetValeur valeur
Text2.Text = valeur
End Sub
Private Sub Executer_Click()
SomeFunction
End Sub
(PS j'ai utiliser les balise VB.net mais c'est du VB simple)
Donc comme on peut voir dans le main.cpp il y a deux fonctions : la fonctions SomeFunction qui marche, et la fonctions toute bete censee ajouter 10 a la valeur envoyer depuis VB....qui marche pas.
Pouriez vous donc m'aidez svp afin que je puisse enfin manipuler des variable VB dans mes tite dll
Merci d'avance.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.