Salut,
J'aimerais créer une DLL .Net et la compiler avec Visual C++ 2005 Express, car je crois qu'on ne peut pas créer avec ce compilateur de DLLs classiques Win32.
Comment procéder ?
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 la déclaration de ma fonction:
Code :
// test.h
Code :
- #pragma once
- using namespace System;
- _declspec(dllexport) double _stdcall fct ();
- namespace test {
- public ref class Class1
- {
- // TODO: Add your methods for this class here.
- };
- }
|
J'ajoute dans le fichier test.cpp la définition de ma fonction:
Code :
Code :
- //test.cpp
- // This is the main DLL file.
- #include "stdafx.h"
- #include "test.h"
- _declspec(dllexport) double _stdcall fct (){
- return 1;
- }
|
Je compile...
Ceci me crée un fichier test.dll, ma dll...
Je crée un projet sous VBA, avec un module contenant:
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.
Message édité par andrea13new le 04-05-2007 à 22:47:00