Accueil > Forum > > > > utiliser en vb++ une dll faite en c++
utiliser en vb++ une dll faite en c++
samedi 21 février 2004 à 21:32:10 |
utiliser en vb++ une dll faite en c++

jon26
|
Bonjour, je me casse la tête à tenter d'appeler une fonction de ma dll vc++ 6.0 en vb6.0. Voici le code de ma fonction exemple dans la dll extern "C" __declspec(dllexport) int essai4A(int *a, int *b) { int c=0; int d=0; a=&c; b=&d; for(int i=1;i<=49;i++) { for(int j=1;j<=50;j++) { for(int k=1;k<=51;k++) { for(int l=1;l<=52;l++) { for(int m=1;m<=52;m++) { c++; } } } } } return c; } Dans vb je déclare Public Declare Function essai4 Lib "ehsdll6.dll" Alias "essai4A" (ByVal a As Long, ByVal b As Long) As Long et j'appelle vc = essai4(a, b) Lorsqu'il n'y à pas de paramètres ça marche, mais lorsque j'en mets, il me dit bad dll call convention. En c++ j'ai tenté int essai4A(int *a, int *b) int essai4A(int a, int b) La déclaration des paramètres dans vb est-elle bonne? Merci à celui qui résoudra cet affreux problème!!!
|
|
samedi 21 février 2004 à 21:46:18 |
Re : utiliser en vb++ une dll faite en c++

BruNews
|
Tes fonctions doivent etre exportees au standard: __stdcall
Fichier def: LIBRARY bnMaths EXPORTS bnCompare @1 bnAdd @2 bnSub @3 bnMul @4 bnDiv @5
dans le cpp: long __stdcall bnCompare(BSTR *bst1, BSTR *bst2) { ... } ici je prends 2 String VB en param
etc...
ciao... BruNews, Admin CS, MVP Visual C++
|
|
dimanche 22 février 2004 à 01:48:33 |
Re : utiliser en vb++ une dll faite en c++

jon26
|
Merci beaucoup pour ta réponse, mais j'ai essayé et il me dit qu'il ne trouve pas le point d'entrée de la fonction dans le dll.
int __stdcall essai4A(int *a, int *b)
Ces fixhiers def, je les introduits comment dans mon projet? Il faut créer quoi comme type de workspace pour faire ce genre de dll à utiliser dans vb, ou bien que faut-il changer dans les settings du projet?
|
|
dimanche 22 février 2004 à 02:01:36 |
Re : utiliser en vb++ une dll faite en c++

BruNews
|
New project win32 DLL et VIDE !!! no headers precomp ou autres bidules. Mets de suite en release. Creer un cpp du meme nom que proj. Aussi un fichier DEF meme nom que proj.
Tu mets ton DllMain dans cpp et le reste comme vu plus haut.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
dimanche 22 février 2004 à 03:13:56 |
Re : utiliser en vb++ une dll faite en c++

jon26
|
j'ai fait exactement comme tu as dit. Malgré tout, vb me dit que les conventions ne sont pas bonnes. Tout ce que je veux, c'est passer deux entiers en paramètres. Je dois faire un pointeur (int *a), ou simplement le passage de l'entier (int a). De tte façon dans les deux cas, il refuse d'accepter ça comme un (a as long) en vb.
C'est fou que ce soit si dur de passer des parmètres, des simples entiers.
Merci en tout cas pour ton aide...
|
|
dimanche 22 février 2004 à 12:08:07 |
Re : utiliser en vb++ une dll faite en c++

BruNews
|
Mais non ce n'est pas dur, je vois si j'ai un moment dans la journee et je fais une source de cela. ciao... BruNews, Admin CS, MVP Visual C++
|
|
dimanche 22 février 2004 à 16:04:16 |
Re : utiliser en vb++ une dll faite en c++

BruNews
|
http://www.cppfrance.com/code.aspx?ID=20672 c'est fait.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 24 février 2004 à 00:16:57 |
Re : utiliser en vb++ une dll faite en c++

jon26
|
Salut Brunews,
Merci pour ton aide et ce projet que tu as fait. Le fichier sln crée une erreur et m'ouvre Microsoft Visual Developper. J'aurais aimé avoir le tout dans Microsoft VC++, mais c'est déjà très chouette. J'ai pu voir chacun de tes fichiers séparément, et j'ai essayé de reporter ce que tu as fait sur mon code, et même de compiler ta dll et appeler tes fonctions depuis mon code vb.
Les mêmes erreurs se produisent. Alors, ce que j'ai fait, c'est mettre dans un .zip un projet complet vc++ avec ma fonction exportée selon deux méthode (export, et stdcall) et le code vb qui l'appelle.
Lorsque j'appelle la fonctione xportée avec "extern "C" __declspec(dllexport)", l'erreur dans vb est "Bad dll calling convention"
Lorsque j'appelle la fonctione exportée avec "__stdcall", l'erreur dans vb est "Can't find dll entry point"
Peux-tu jeter un oeil à mon zip qui est très simple. je dois oublier un bête truc qui me prend déjà une semaine. C'est pas logique tout ça. Avec ton expérience, tu verras le probkème directement. Voici mon .zip :
http://www.cppfrance.com/code.aspx?ID=20711
Merci infiniment
Jonathan
|
|
mardi 24 février 2004 à 00:44:56 |
Re : utiliser en vb++ une dll faite en c++

BruNews
|
J'ai pris ton zip et enleve ta source.
C'est quoi tout ce bordel d'include qu'il y a en haut du cpp ??? Je reprends ce qu j'avais mis plus haut:
New project win32 DLL et VIDE !!! no headers precomp ou autres bidules. ME SEMBLE POURTANT TRES CLAIR, non ? Et pourtant 1ere chose que je trouve, stdafx... c'est pas venu tout seul. VIDE, VIDE !!! Y a pourtant des options quand tu fais un new proj, faut pas tout ce qu'il y a par defaut.
Ou est le fichier DEF pour export des fonctions SANS decoration des noms de fonction ???
Creer un cpp du meme nom que proj. Aussi un fichier DEF meme nom que proj. 2 lignes qui etaient SANS ambiguite.
Recommence en faisant EXACT ce que j'ai dit. CPP ne doit avoir que <windows.h> en include !!!
long __stdcall essai4B(long a, long b) Celle ci est la bonne, manque seulement que son nom soit en export dans un DEF.
Une derniere: ne pas se servir des sources comme d'un FTP, ouvre t'en un sur FREE ou autre, c'est gratos.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mercredi 25 février 2004 à 18:15:46 |
Re : utiliser en vb++ une dll faite en c++

jon26
|
Salut, tout d'abord merci beaucoup pour le temps que tu as passé à m'expliquer tout ça. Je viens de comprendre mon imbécilité. J'ai bêtement copié ton fichier def sans réfléchir, ce sont des noms de fonction. Nom d'une pipe, mais alors, ça va marcher!!! Je dois mettre le nom de mes fonctions et pas des tiennes... Faut dire qu'on voyait pas tout de suite que c'étaient des noms de fonctions ;) Bon j'essaye de remettre un peu de faute sur toi, mais elle ne vient que de moi la faute. A propos du projet pas vide, je sais bien, j'avais fait à la lettre ce que tu m'avais dit, mais ça ne marchait pas, alors j'ai fait un nouveau projet avec du défaut pour réessayer, et désespéré je t'ai envoyé celui-là, dans la tourmente.
Tu es génial, tes infos étaient suffisantes, et moi pas assez attentif ;) Merci beaucoup
P.S. pour les sources, bien compris, je ne le ferai plus
|
|
Cette discussion est classée dans : vb, int, dll, for, essai4a
Répondre à ce message
Sujets en rapport avec ce message
DLL faite en C++ avec VB [ par Sniper_Vgaerr ]
Je fais un programme de cryptage avec clé privée et publique et je prefere l'interface de VB que celle du C, mais comme le C va plus vite je prefere c
passage de parametres entre un prog VB.net et une dll c++. [ par bibifinal ]
voila, j'utilise un prog en vb .net, et j'aimerais utiliser la dll que j'ai fait en c++, ma declaration de la dll (dans mon prog en c++):extern "C" in
pb en c urgenttttttttttttttttt [ par natacha86 ]
bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as
Appeler une fonction VB à partir de C++ [ par doggyk ]
Bonjour à tous!Voilà, je souhaiterais appeler une fonction VB à partir d'une DLL C++ (appelée auparavant par mon prog VB).En gros:Démarrage du prog Y
passage de matrice en vb a une dll c++ [ par brosspro ]
Bonjour,je cherche à passer une matrice sous Excel à une dll.J arrive a faire passer des arguments simples mais pas les matrices.Es t il possible d ap
Intégration d'une DLL ecrite en VB dans une prog CPP ? [ par jaju39 ]
Salut,J'ai développé un programme en VB6, puis créer une DLL.Je voulais savoir si je pouvais utiliser cette DLL dans un programme visual C++?Si oui, c
DLL de VC++ à VB.net [ par toxjamescook ]
bonjour j'ai besoin d'un petit renseignement:Voila je souhaites recupérer des infos numériques de deux bus can puis les visualiser par une interface.j
linker une dll sous dev-c++ [ par the diouk ]
petite question toute bête mais qui me gêne :j'utilise une DLL, dans ma source il y a bien :#define TRUCDLL "TRUC.dll";le prototype de la fonction :in
tableaux dans prototype erreur [ par darmoor ]
Bonjour tout le monde! bon, j'ai un petit probleme de compilation au niveau d'un tableau 2D dans un prototype. J'ai demandé à quelqu'un qui s'y conna
Vitesse d'éxecution des dll en VB [ par violent_ken ]
Violent Ken J'ai lu quelque part que les *.dll (faites en VB) sont plus rapides que un *.exe. (en VB)Est-ce que c'est vrai ?
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|