Bonjour à tous,
Je ne m'y connais pas trop (voire pas du tout) en utilisation de dll.
Mon but et de créer une dll sous Visual C++ et de l'utiliser ensuite avec Visual Basic.
J'ai créée deux programme : un VC++, c'est la librairie et un autre en VB, c'est le programme appelant.
Mon problème est que sous Visual Basic, je génère l'erreur 49 : Convention d'appel de DLL incorrecte lors de l'appel de ma librairie.
J'ai bien essayé de modifier les différents paramètres dans la décalaration VB comme dans la définition VC++ sans succés.
Par élimination, je sais que ça vient du paramètre de type chaine de caractère.
Comment les déclarer, comment faire pour passer une chaine de caractère depuis VB vers une dll développée en VC++.
Merci de vote aide,
Jeff.
Voici mon programme C++
Et voici mon programme Visual Basic
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // TESTDLL.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } extern "C" __declspec(dllexport) int Majuscule(char *StrTemp) { int i; for (i = 0; i < strlen(StrTemp); i++) StrTemp[i] = toupper(StrTemp[i]); return (0); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Declare Function LibMajuscule Lib "C:\Temp\TestDLLVB\TESTDLL.dll" Alias "Majuscule" (ByVal StrTemp As String) As Long Private Sub Form_Load() Dim StrTest As String StrTest = "Test" Call LibMajuscule(StrTest) Debug.Print StrTest End Sub









Répondre avec citation
Partager