gpt4 book ai didi

c++ - 无法理解这个 c++ typedef

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:40 24 4
gpt4 key购买 nike

我不太确定如何阅读这段代码:

typedef NTSTATUS(NTAPI* QUERYINFORMATIONPROCESS)(
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
OUT PULONG ReturnLength OPTIONAL
);

NTSTATUSQUERYINFORMATIONPROCESStypedef 的名称吗?如果是这样,实际类型是什么?这是函数指针类型吗?用法是这样的:

QUERYINFORMATIONPROCESS QueryInformationProcess =
(QUERYINFORMATIONPROCESS)GetProcAddress(
hDll, "NtQueryInformationProcess");

if (QueryInformationProcess)
{
NTSTATUS ntStatus = QueryInformationProcess(
processInformation.hProcess,
PROCESSINFOCLASS::ProcessBasicInformation,
&pbi, sizeof(pbi), &uLength);
[…]

这个出自一本《C++ Multithreading Cookbook》,里面没有解释这段代码。感谢您的帮助!

最佳答案

在没有 Microsoft 宏的情况下编写它,它是

typedef NTSTATUS (*QUERYINFORMATIONPROCESS)(
HANDLE ProcessHandle,
PROCESSINFOCLASS ProcessInformationClass,
PVOID ProcessInformation,
ULONG ProcessInformationLength,
PULONG ReturnLength
);

这是一个名为“QUERYINFORMATIONPROCESS”的函数指针类型。

具体来说,它是一个指向NtQueryInformationProcess的指针,需要从 DLL 加载。

(您的书的作者似乎有拼写问题。)

关于c++ - 无法理解这个 c++ typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34968342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com