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:- pour le .cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DWORD Init(); DWORD Submit();et le .def qui va avec:
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; }Du coté de l'executable mon main contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 LIBRARY "mock" EXPORTS Init @1 Submit @2j'ai beau faire, la librairie se charge, mais je narrive pas à trouver la méthode init...
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);
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...
Partager