Bonjour à tous,

Voilà quelques jours que je me suis lancé dans l'apprentissage de création de dll en C++(pour info j'utilise VS2008).
En suivant ce tutoriel j'obtiens le code suivant :

Fichier Header

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// MathFuncsDll.h
// fonctions effectuant les operations de base
 
namespace MathFuncs
{
    class MyMathFuncs
    {
    public:
        // effectue a + b
        static __declspec(dllexport) double MyFunc(double a, double b);
 
    };
}
Fichier Source

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
// MathFuncsDll.cpp
// compiler avec: /EHsc /LD
 
#include "MathFuncsDll.h"
 
#include <stdexcept>
 
using namespace std;
 
namespace MathFuncs
{
    double MyMathFuncs::MyFunc(double a, double b)
    {
        return a + b;
    }
}
Ce qui, lorsque je compile, me donne un MyFuncDLL.dll. Jusque là tout semble aller comme je veux...

Mais ce n'est pas le cas , car lorsque je tente d'exploiter ma fonction via cette dll à l'aide de :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <windows.h>
#include <stdio.h>
 
// DLL function signature
typedef double (*importFunction)(double, double);
 
int main(int argc, char **argv)
{
        importFunction MyFunc;
        double result;
 
        // Load DLL file
        HINSTANCE hinstLib = LoadLibrary(TEXT("MyFuncDLL.dll"));
        if (hinstLib == NULL) {
                printf("ERROR: unable to load DLL\n");
 
        }
		else { 
                printf("DLL loaded\n");
 
		}
        // Get function pointer
        MyFunc = (importFunction)GetProcAddress(hinstLib, "MyFunc");
        if (MyFunc == NULL) {
                printf("ERROR: unable to find DLL function\n");
                FreeLibrary(hinstLib);
 
        }
		else { 
                printf("function found\n");
 
		} 
        // Call function.
        result = MyFunc(1, 2);
 
        // Unload DLL file
        FreeLibrary(hinstLib);
 
        // Display result
        printf("The result was: %f\n", result);
 
		getchar();
        return 0;
}


J'obtiens bien le "DLL loaded" mais j'ai ensuite l'erreur "ERROR: unable to find DLL function" !

Si quelqu'un(e) pouvait m'expliquer où se trouve mon erreur, ça m'enlèverait une fière chandelle du pied

Merci d'avance pour vos conseils !!