Bonjour,
je souhaite créer une DLL en C (ou C++) avec Code::Block que j'utiliserai ensuite sous VB (en fait excel 2003)...
Je crée donc mon projet DLL sous Code::Blocks et mon code dll.c :
[b]#define DllExport __declspec(dllexport)
#include "windows.h"
int DllExport _stdcall sum(int entier1, int entier2) {
return entier1 + entier2;
}
int DllExport _stdcall mul(int entier1, int entier2) {
return entier1 * entier2;
Je build mon projet et j'obtiens donc un fichier maDLL.dll et maDLL.def générés automatiquement :
EXPORTS
mul@8 @1
sum@8 @2
Ensuite, je mets mon .dll dans le system32 de ma machine et lance mon vb :
Private Declare Function sum Lib "maDLL.dll" (ByVal Number1 As Long, ByVal Number2 As Long) As Long
Private Declare Function mul Lib "maDLL.dll" (ByVal Number1 As Long, ByVal Number2 As Long) As Long
Public Sub test()
Dim a As Long
Dim b As Long
a = 2
b = 10
Debug.Print (sum(a, b))
Debug.Print (mul(a, b))
End Sub
Sauf qu'au moment d'appeler mes fonctions sum et num, j'ai une erreur me disant "Erreur d'execution 453" point d'entrée DLL introuvable...
Je pense que mes exports se sont mal passés mais étant donné que le fichier .def est bien créé je ne vois pas trop pourquoi ...
J'ai quand même réussi à créer ma DLL avec Visual C++ Express 2008 (version 30 jours) et l'utiliser dans mon projet VB (avec le mm code que ci dessous). Je precise qu'il a qd même fallu que je force le linker à utiliser en module d'entrée mon fichier .def (Projet/Propriétés/Linker/Module d'entrée/ pour pouvoir utiliser ma DLL avec VB).
Mais J'aimerai qd même l'utiliser avec code::block.
Merci pour ceux qui sauront m'aider.