我有一个奇怪的问题,我以前没有遇到过,我必须提到我的主要编程语言是delphi,而不是c++,我可能犯了一个愚蠢的错误而没有意识到这一点。
我有以下代码:
ULONG myret;
PROCESS_BASIC_INFORMATION PRC;
...
NtQueryInformationProcess(hProcess,ProcessBasicInformation,(PVOID)(&PRC),sizeof(PROCESS_BASIC_INFORMATION),(PULONG)(&myret));
...
我收到以下错误消息:
GetCommandArgs.obj : error LNK2019:函数_wmain中引用的未解析外部符号_NtQueryInformationProcess@20
有什么问题吗?非常感谢。
发布于 2011-08-13 17:13:21
这是故意的。迫于司法部的和解,微软不得不把这个功能记录下来,这让微软不太高兴。MSDN文章对此作了明确的说明:
、NtQueryInformationProcess函数及其返回的结构都是操作系统内部的,可能会从一个版本更改为另一个版本。为了维护应用程序的兼容性,最好使用ProcessInformationClass参数描述中提到的公共函数。
如果确实使用NtQueryInformationProcess,则通过运行时动态链接访问该函数.这使您的代码有机会在该函数被更改或从操作系统中删除时优雅地做出响应。然而,签名的变化可能是无法察觉的。
此函数没有关联的导入库。必须使用LoadLibrary和GetProcAddress函数动态链接到Ntdll.dll。
最后一行告诉你该做什么。第一行告诉你为什么不应该。
https://stackoverflow.com/questions/7051558
复制相似问题