Salut,
Je cherche un exemple de:
-Cr�ation d'une DLL sous Visual C++ 2005
-Utilisation de cette DLL sous VBA-Excel
Je n'ai rien trouv� de clair sur le net
Merci beaucoup
voici ce que j'ai fait:
J'ai cr�� un nouveau projet:
-CLR
-Class Library
Je l'ai appel� test.
J'aimerais exporter une fonction qui prends un double et qui renvoit ce double +1 (par exemple).
J'ajoute donc dans le fichier test.h ce qui est en bleu:
Code : 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 //test.h #pragma once using namespace System; _declspec(dllexport) double _stdcall fct (double x); namespace test { public ref class Class1 { // TODO: Add your methods for this class here. }; }
J'ajoute dans le fichier test.cpp ce qui est en bleu:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 //test.cpp // This is the main DLL file. #include "stdafx.h" #include "test.h" _declspec(dllexport) double _stdcall fct (double x){ return x+1; }
Je compile...
Ceci me cr�e un fichier test.dll, ma dll...
Je cr�e un projet sous VBA, avec un module contenant:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 Public Declare Function DLLfonction Lib "D:\Visual Studio 2005\Projects\test\debug\test.dll" Alias "fct" (ByVal x As Double) As Double Sub dlltest() Dim x As Double x = 1 Cells(1, 1) = DLLfonction(1) End Sub
Je cr�e un bouton de commande qui lance ma dll depuis la feuille excel.
-> message d'erreur:
Erreur d'ex�cution '453':
Point d'entr�e fct d'une DLL introuvable dans D:\Visual Studio 2005\Projects\test\debug\test.dll.
Dois-je d�clarer ma fonction comme une m�thode de la classe Class1 ?
J'ai vu la notion de table d'exportation et de d�coration du nom de fonction, qu'on peut corriger en rajoutant un fichier .def (mais pas avec Visual C++ 2005), dois-je faire quelque chose de similaire ?
Merci de votre aide je vais chercher
Partager