我尝试使用 Visual Studio 构建lmdb,但出现以下错误:
mdb.obj:错误 LNK2001:未解析的外部符号 _NtMapViewOfSection@40
mdb.obj:错误 LNK2001:未解析的外部符号 _NtClose@4
mdb.obj:错误 LNK2001:未解析的外部符号 _NtCreateSection@28
在代码中首次使用此函数时,有以下注释:
/* We use native NT APIs to setup the memory map, so that we can
* let the DB file grow incrementally instead of always preallocating
* the full size. These APIs are defined in <wdm.h> and <ntifs.h>
* but those headers are meant for driver-level development and
* conflict with the regular user-level headers, so we explicitly
* declare them here. Using these APIs also means we must link to
* ntdll.dll, which is not linked by default in user code.
*/
NTSTATUS WINAPI
NtCreateSection(OUT PHANDLE sh, IN ACCESS_MASK acc,
IN void * oa OPTIONAL,
IN PLARGE_INTEGER ms OPTIONAL,
IN ULONG pp, IN ULONG aa, IN HANDLE fh OPTIONAL);
我需要如何在 Visual Studio 中链接 ntdll.dll?我明白,这个问题很愚蠢,但我无法在几个小时内找到解决方案..