Bonjour,

Je voudrais savoir où vient l'erreur lors d'une importation d'un dll externe sous Visual Studio 2010.

Mon simple dll est défini par
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
18
19
20
21
22
23
 
// MathFuncsDll.h
#include <windows.h>
 
namespace MathFuncs
{
    class MyMathFuncs
    {
    public:
        // Returns a + b
        static  __declspec(dllexport) double Add(double a, double b);
 
        // Returns a - b
        static  __declspec(dllexport) double Subtract(double a, double b);
 
        // Returns a * b
        static  __declspec(dllexport) double Multiply(double a, double b);
 
        // Returns a / b
        // Throws DivideByZeroException if b is 0
        static __declspec(dllexport) double Divide(double a, double b);
    };
}
Le projet qui importe le fichier dll ci-dessus:

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
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <windows.h>
#include <stdio.h>
 
using namespace std;
 
// DLL function signature
typedef double (*importFunction)(double, double);
 
 
int main()
{
	importFunction addNumbers;
	double result;
	HINSTANCE hinstLib = LoadLibrary(TEXT("MathFuncsDll.dll"));
        if (hinstLib == NULL) {
                printf("ERROR: unable to load DLL\n");
				cin.get();
                return 1;
        }
 
	 addNumbers = (importFunction)GetProcAddress(hinstLib, "Add");
        if (addNumbers == NULL) {
                printf("ERROR: unable to find DLL function\n");
				cin.get();
                FreeLibrary(hinstLib);
                return 1;
        }
L'exécution de ce code montre que l'importation de dll passe bien, par contre le système ne reconnait pas la fonction à utiliser dans le dll

J'ai déjà essayé avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MathFuncs::MyMathFuncs::Add
mais ça ne marche pas

Merci