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
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:
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
MathFuncs::MyMathFuncs::Add
mais ça ne marche pas
Merci
Partager