首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NtQueryInformationProcess无法在Visual 2010中工作

NtQueryInformationProcess无法在Visual 2010中工作
EN

Stack Overflow用户
提问于 2011-08-13 15:56:49
回答 1查看 2.6K关注 0票数 1

我有一个奇怪的问题,我以前没有遇到过,我必须提到我的主要编程语言是delphi,而不是c++,我可能犯了一个愚蠢的错误而没有意识到这一点。

我有以下代码:

代码语言:javascript
运行
复制
ULONG myret;
PROCESS_BASIC_INFORMATION PRC;
...
NtQueryInformationProcess(hProcess,ProcessBasicInformation,(PVOID)(&PRC),sizeof(PROCESS_BASIC_INFORMATION),(PULONG)(&myret));
...

我收到以下错误消息:

GetCommandArgs.obj : error LNK2019:函数_wmain中引用的未解析外部符号_NtQueryInformationProcess@20

有什么问题吗?非常感谢。

EN

Stack Overflow用户

回答已采纳

发布于 2011-08-13 17:13:21

这是故意的。迫于司法部的和解,微软不得不把这个功能记录下来,这让微软不太高兴。MSDN文章对此作了明确的说明:

、NtQueryInformationProcess函数及其返回的结构都是操作系统内部的,可能会从一个版本更改为另一个版本。为了维护应用程序的兼容性,最好使用ProcessInformationClass参数描述中提到的公共函数。

如果确实使用NtQueryInformationProcess,则通过运行时动态链接访问该函数.这使您的代码有机会在该函数被更改或从操作系统中删除时优雅地做出响应。然而,签名的变化可能是无法察觉的。

此函数没有关联的导入库。必须使用LoadLibrary和GetProcAddress函数动态链接到Ntdll.dll。

最后一行告诉你该做什么。第一行告诉你为什么不应该。

票数 7
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7051558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档