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