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