begin process at 2012 05 29 00:10:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Code::Block DLL pour l'utiliser dans VB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Code::Block DLL pour l'utiliser dans VB

jeudi 28 janvier 2010 à 13:44:09 | Code::Block DLL pour l'utiliser dans VB

runo

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.
jeudi 28 janvier 2010 à 15:45:36 | Re : Code::Block DLL pour l'utiliser dans VB

BruNews

Administrateur CodeS-SourceS
"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.

ciao...
BruNews, MVP VC++
jeudi 28 janvier 2010 à 19:09:32 | Re : Code::Block DLL pour l'utiliser dans VB

ghuysmans99

Membre Club
Tu dois ajouter --add-stdcall-alias aux paramètres de gcc.
---
VB.NET is good ... VB6 is better
vendredi 29 janvier 2010 à 00:38:54 | Re : Code::Block DLL pour l'utiliser dans VB

uaip

Salut,
Ton prototype est :
Code C/C++ :
int DllExport _stdcall sum(int entier1, int entier2);


Et qu'obtiens-tu en changeant par ? :
Code C/C++ :
DllExport UINT _stdcall sum(int entier1, int entier2);


Personnellement, je n'ai modifié aucun paramètre du compilo et ça fonctionne. Ou alors quelque chose m'aurait échappé.

Cordialement, uaip.
vendredi 29 janvier 2010 à 09:14:26 | Re : Code::Block DLL pour l'utiliser dans VB

runo

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
vendredi 29 janvier 2010 à 18:19:50 | Re : Code::Block DLL pour l'utiliser dans VB

ghuysmans99

Membre Club
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
jeudi 14 avril 2011 à 18:15:07 | Re : Code::Block DLL pour l'utiliser dans VB

krapo13

J'arrive un peu après la bataille...
As tu trouvé une solution, j'ai exactement le même problème ??
vendredi 15 avril 2011 à 00:44:12 | Re : Code::Block DLL pour l'utiliser dans VB

runo

Ma solution a ete d'abandonner code block et de rester sur visual c++. A l'epoque ca marchait plutot bien :-)


Cette discussion est classée dans : vb, long, code, dll, utiliser


Répondre à ce message

Sujets en rapport avec ce message

string de c++ vers vb [ par ToasTy62 ] bonjour tlm!bon, g un gros probleme. j'ai créé une dll en c++ ke j'essaie d'utiliser en VB. j'arrive a passer un string de VB vers la dll C++, mé voil Utiliser une DLL avec une interface en C [ par TheRobot ] Bonjour, Je developpe une application en VB.net et je voudrais utiliser une dll avec une interface C.A priori ce n'est pas possible car il n'y a pas d Newbie : appeller une Dll depuis une Dll en C++. [ par Pyre_Desire ] Bonjour a tous !! Je viens tout fraichement de m'inscrire sur ce réseau de sites, je débute un peu en C++, et comme il se doit je suis remplie de ques Utiliser une dll en C++ dans un programme en VB [ par mikimike197 ] Bonjour,Je souhaite utiliser une dll écrite en C++, à partir d'un programme écrit en VB. N'ayant jamais utilisé de dll (ni en C++, ni en VB) je souhai utiliser code source C++ par VB [ par tikila ] salut tout le monde!Ma question en claire est comment etablir une liaison entre un code source implementé en c++( visual c++) et vb.On m'a parlé de DL utiliser un code C sous Matlab (Linux) [ par piboue ] Bonjour, je souhaite utiliser un code C sous matlab comme une fonction classique (input/ouput). A l'origine, ce code a été compiler (je sais pas si c' Création de DLL en avc matlab et l'utiliser sur borland, [ par Nesrinatou ] Bonjour à tous, je suis étudiante en informatique et je réalise un projet de fin d'étude "traitement d'image" en langage C sur Builder C++ 2007 dans appeler une fonction c++ contenu dans dll avec de code c++ [ par avg ] j'ai une fonction qui est sous une class dans un dll déclarer comme ce ci : [code=cpp]C_MORPHO_User::C_MORPHO_User()[/code] j'ai appeler dll avec Load création de dll sous vb 2005 [ par snowlover18 ] Bonjour a tous. Alors voila. Je suis débutant en c++ et je dois , pour ma société, rajouter des fonctionnalités (boutons et autre) a un logiciel de ge utilisé string dans une dll c++ [ par avg ] Bonjour à tous j'ai un problème avec la création d'une dll avec c++ pour créer les fonctions à exporté de dll si son type de retour est int ou void le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales