Bonsoir à tous,
Désolé de vous déranger mais n'étant pas très initié au C je sais plus quoi tenter pour résoudre mon problème.
J'essaye de lancer un driver mais voici ce que j'obtiens lors de l'édition des liens :
Et voici la fonction incriminée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1>main.obj : error LNK2019: symbole externe non résolu __imp__StartServiceW@12 référencé dans la fonction "bool __cdecl _util_load_sysfile(wchar_t const *)" (?_util_load_sysfile@@YA_NPB_W@Z) 1>main.obj : error LNK2019: symbole externe non résolu __imp__CloseServiceHandle@4 référencé dans la fonction "bool __cdecl _util_load_sysfile(wchar_t const *)" (?_util_load_sysfile@@YA_NPB_W@Z) 1>main.obj : error LNK2019: symbole externe non résolu __imp__OpenServiceW@12 référencé dans la fonction "bool __cdecl _util_load_sysfile(wchar_t const *)" (?_util_load_sysfile@@YA_NPB_W@Z) 1>main.obj : error LNK2019: symbole externe non résolu __imp__CreateServiceW@52 référencé dans la fonction "bool __cdecl _util_load_sysfile(wchar_t const *)" (?_util_load_sysfile@@YA_NPB_W@Z) 1>main.obj : error LNK2019: symbole externe non résolu __imp__OpenSCManagerW@12 référencé dans la fonction "bool __cdecl _util_load_sysfile(wchar_t const *)" (?_util_load_sysfile@@YA_NPB_W@Z)
Pourtant j'ai ajouté le répertoire "E:\Program Files\Microsoft Platform SDK\Lib".
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
45
46
47
48
49
50
51
52 bool _util_load_sysfile(LPCTSTR theDriverName) { char aPath[1024]; char aCurrentDirectory[515]; SC_HANDLE sh = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(!sh) { return false; } GetCurrentDirectory(512, (LPWSTR)aCurrentDirectory); _snprintf_s(aPath, 1022, "%s\\%s.sys", aCurrentDirectory, theDriverName); printf("loading %s\n", aPath); SC_HANDLE rh = CreateService(sh, theDriverName, theDriverName, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, (LPCWSTR)aPath, NULL, NULL, NULL, NULL, NULL); if(!rh) { if(GetLastError() == ERROR_SERVICE_EXISTS) { rh = OpenService(sh, theDriverName, SERVICE_ALL_ACCESS); if(!rh) { CloseServiceHandle(sh); return false; } } else { CloseServiceHandle(sh); return false; } } if(rh) { if(0 == StartService(rh, 0, NULL)) { if(ERROR_SERVICE_ALREADY_RUNNING == GetLastError()) { //no real problem } else { CloseServiceHandle(sh); CloseServiceHandle(rh); return false; } } CloseServiceHandle(sh); CloseServiceHandle(rh); } return true; }
En plus j'ai vérifié les dépendances (http://msdn2.microsoft.com/en-us/lib...21(VS.85).aspx) et j'ai bien les fichiers : Advapi32.lib & Advapi32.dll.
S'il vous plaît, une petite piste ? Merci.
Partager