DLL Visual C++ 2005 Express to VBA Excel

DLL Visual C++ 2005 Express to VBA Excel - C#/.NET managed - Programmation

Marsh Posté le 04-05-2007 à 22:44:56    

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 :
  1. #pragma once
  2. using namespace System;
  3. _declspec(dllexport) double _stdcall fct ();
  4. namespace test {
  5. public ref class Class1
  6. {
  7.  // TODO: Add your methods for this class here.
  8. };
  9. }


 
J'ajoute dans le fichier test.cpp la définition de ma fonction:  
 
 
 
Code :
 

Code :
  1. //test.cpp
  2. // This is the main DLL file.
  3. #include "stdafx.h"
  4. #include "test.h"
  5. _declspec(dllexport) double _stdcall fct (){
  6. return 1;
  7. }


 
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
Reply

Marsh Posté le 04-05-2007 à 22:44:56   

Reply

Marsh Posté le 04-05-2007 à 22:47:35    


 :sweat:

Reply

Marsh Posté le 07-05-2007 à 14:01:46    

Si je me souviens bien, tu dois avoir, dans ton projet C++, un fichier dans lequel tu déclares les points d'entrée de ta DLL. Il me semble que c'est un fichier qqch.def.
J'avais trouvé toutes ces infos en cherchant dans google comment faire pour créer une DLL et l'appeler depuis VBA. Il me semble que j'avais trouvé un tuto sur developpez.com.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed