把DriverAPI.dll放NK里然后在应用层用以下方式调用
HMODULE hDll = (HMODULE)::LoadLibrary(TEXT("\\Windows\\DriverAPI.dll"));
if (NULL == hDll)
{
printf("LoadLibrary dll failed. errCod = %d\r\n", GetLastError());
}
结果:提示LoadLibrary失败,代码193 %1 不是有效的 Win32 应用程序。
原因:
在platform.bib中做以下改动
; DriverAPI for APP ---------------------------------SHK -> SHQ--------------------------
DriverAPI.dll $(_FLATRELEASEDIR)\DriverAPI.dll NK SHQ
; -----------------------------------------------------------------------------
==============================================
终于解决问题了,虽然是一个小问题,却折磨了我两天。
原理: Q指定此DLL是在用户态,而K指定的是在内核态