opc*_*0de 0 visual-studio-2010 ntdll
我有一个奇怪的问题,在我不得不提到我的主要编程语言是delphi而不是c ++之前,我没有遇到过,我可能会犯一个愚蠢的错误而没有意识到。
我有以下代码:
ULONG myret;
PROCESS_BASIC_INFORMATION PRC;
...
NtQueryInformationProcess(hProcess,ProcessBasicInformation,(PVOID)(&PRC),sizeof(PROCESS_BASIC_INFORMATION),(PULONG)(&myret));
...
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
GetCommandArgs.obj:错误LNK2019:函数_wmain中引用的未解析的外部符号_NtQueryInformationProcess @ 20
问题是什么 ?非常感谢。
这是设计使然。微软对必须记录该功能并不满意,这是由司法部的和解协议强制执行的。它在MSDN文章中明确说明:
NtQueryInformationProcess函数及其返回的结构在操作系统内部,并且可能会从一个Windows版本更改为另一个Windows版本。为了保持应用程序的兼容性,最好使用ProcessInformationClass参数的描述中提到的公共函数。
如果您确实使用NtQueryInformationProcess,请通过运行时动态链接访问该函数。如果功能已从操作系统中更改或删除,这使您的代码有机会优雅地响应。但是,签名更改可能无法检测到。
此功能没有关联的导入库。您必须使用LoadLibrary和GetProcAddress函数动态链接到Ntdll.dll。
最后一行告诉您必须执行的操作。第一行告诉您为什么不应该这样做。
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |