runo
Messages postés26Date d'inscriptionmercredi 5 octobre 2005StatutMembreDernière intervention15 avril 2011
-
28 janv. 2010 à 13:44
vahanar
Messages postés11Date d'inscriptiondimanche 23 mars 2008StatutMembreDernière intervention 9 avril 2015
-
9 avril 2015 à 15:10
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.
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 28 janv. 2010 à 15:45
"version 30 jours" ???
Les version Express sont libres d'emploi, donc illimitées.
Il y aurait une valeur ajoutée à faire dans l'exotique ?
Il est certain qu'on ne fera pas mieux pour du code Windows qu'avec des compilos MS.
Je pense qu'il doit en être de même avec le mode Linux.
runo
Messages postés26Date d'inscriptionmercredi 5 octobre 2005StatutMembreDernière intervention15 avril 2011 29 janv. 2010 à 09:14
Merci pour vos réponses.
Pour répondre à Brunews : on ne choisis pas toujours les outils qu'on utilise ... merci quand même.
Pour répondre à ghuysmans99 :
Je ne vois pas où mettre cette option dans code::blocks ? dans "Other options" de l'onglet Compiler settings ?
Pour répondre à uaip : j'ai redéclaré mes prototypes comme suggéré mais j'ai tjs le mm probleme... Pour le compilateur, j'utilise celui installé par code::blocks :
C compiler : mingw32-gcc.exe
C++ compiler : mingw32-g++.exe
Linker dynamic lib : mingw32-g++.exe
As tu des compiler flags d'activés ?
Aurais tu à tout hasard un mini projet que je compare le soptions avec ce que j'ai ?
renepie@gmail.com
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 29 janv. 2010 à 18:19
Tu dois probablement ajouter ce paramètre dans la partie que tu as citée, je n'utilise que gcc via la ligne de commande.
---
VB.NET is good ... VB6 is better