Bonjour,

je suis débutant en C++ et j'aimerais pouvoir accélérer mes programmes VBA en créant des fonctions en C++(utilisable une dll).
Il y a énormement de chose sur internet sur la création de dll mais après avoir crée ma dll, j'ai une erreur VBA "erreur 53 - dll introuvable" que je n'arrive absolument pas à comprendre


voici le code de la dll (fonction square)

// fichier square.cpp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#include "square.h"
 
int __stdcall square(int x)
{
	return x*x;
}
j'ai ensuite crée un fichier de définition
\\ DefFile.def

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
LIBRARY "DLL_VBA2"
EXPORTS 
square
et un fichier d'en-tete

\\square.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#define export __declspec (dllexport) 
export int __stdcall square(int);
La dll est alors générée et voila le code VBA pour l'appeler

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Public Declare PtrSafe Function square Lib "C:\DLL_VBA2.dll" (ByVal x As Integer) As Integer
    Sub test()
    Dim a As Integer
    Dim b As Integer
    a = 5
    b = square(a)
    End Sub
Avec dependency walker, la fonction square contenue dans la dll est visible mais voilà le log que je récupère:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.

Toute idée est la bienvenue