error LNK2019: 无法解析的外部符号 “__declspec(dllimport) long __stdcall RtlGetVersion(struct _OSVERSIONINFOW

发布于 2020-05-05  48 次阅读


问题描述:

虽然ntdll.lib库也引用了,但还是提示找不到RtlGetVersion函数定义,工程中头文件的定义如下:

NTSYSAPI

NTSTATUS

NTAPI

RtlGetVersion(

   _Out_ PRTL_OSVERSIONINFOW lpVersionInformation

   );

而ntdll.lib是C文件编译的所以类型不匹配 RtlGetVersion@4 = RtlGetVersion,工程中这样找这个函数__imp_?RtlGetVersion@@YGJPAU_OSVERSIONINFOW@@@Z


解决方法:

在声明签名加上extern “C”就好了

extern “C”

NTSYSAPI

NTSTATUS

NTAPI

RtlGetVersion(

   _Out_ PRTL_OSVERSIONINFOW lpVersionInformation

   );


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。