Bonjour,
je suis entrain d'essayer de faire une bête dll qui exporte 2 méthodes et un exécutable qui les exploite. J'ai vu énormément de chose à ce sujet, mais, j'ai beau lire et essayer, mon problème ne se resoud pas...

le code de ma dll est:
- pour le header:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
DWORD Init();
DWORD Submit();
- pour le .cpp:
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
#include "stdafx.h"
#include "mock.h"
 
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	return TRUE;
}
 
 DWORD Init(void)
{
	return ERROR_SUCCESS;
}
 
 DWORD Submit(void)
{
	return ERROR_SUCCESS;
}
et le .def qui va avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
LIBRARY	"mock"
EXPORTS
Init @1
Submit @2
Du coté de l'executable mon main contient:
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
	HMODULE hModule;
	FARPROC pInit;
	FARPROC pSubmit;
 
	wprintf(_T("Loading mock.dll : \t\t\t\t"));
	if(!(hModule = LoadLibrary(_T("ntdll.dll")))){
		wprintf(_T("[FAIL] error: %u\n"), GetLastError());
		FreeLibrary(hModule);
		return GetLastError();
	}
	wprintf(_T("[OK]\n"));
 
	//charge l'adresse de Init
	wprintf(_T("Loading Init method : \t\t\t"));
	if(!(pInit = GetProcAddress(hModule,"Init"))){
		wprintf(_T("[FAIL] error: %u\n"), GetLastError());
		FreeLibrary(hModule);
		return GetLastError();
	}
	wprintf(_T("[OK]\n"));
	FreeLibrary(hModule);
j'ai beau faire, la librairie se charge, mais je narrive pas à trouver la méthode init...

Est ce que quelqu'un voie le problème ou peut m'aider???

Merci!!!

PS: j'ai essayer de regarder aver __declspec(dllexport) et/ou de faire un typedef comme indiqué dans la FAQ sans plus de résultats...