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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|