Je suis en train d'essayer d'appeler une fonction depuis une DLL en VBA dans Excel.
Mon macro VBA Excel ressemble à ceci:
Declare PtrSafe Function TestFunction1 Lib "mylib.dll" (ByVal k As Double) As Double
Public Function TestDll(k As Double) As Double
Debug.Print ("Start")
Dim r As Double
r = TestFunction1(k)
Debug.Print ("Got result of " + r)
Debug.Print ("Done")
TestDll = r
Maintenant, lorsque je l'appelle depuis une cellule Excel avec quelque chose comme "=TestDll(3.0)", ça ne fonctionne pas. Je vois la chaîne "Start" dans la fenêtre immédiate, mais rien d'autre. C'est comme si une erreur se produisait exactement lorsque "TestFunction1" est appelée. Excel affiche "#VALUE!" dans la cellule.
Je peux également définir un point d'arrêt dans le débogueur, mais lorsque j'arrive à l'appel de TestFunction1, ça se termine simplement. Il n'y a aucun type de message d'erreur que je puisse trouver.
Ma question est, comment puis-je déboguer cela? Je ne reçois aucun message d'erreur. Ça ne fonctionne tout simplement pas. Comment puis-je comprendre ce qui ne va pas?