tan*_*tan 0 c++ windows winapi driver
我正在尝试在 Windows 内核驱动程序中使用 GetProcessImageFileNameW。
LPWSTR path[MAX_PATH];
if(GetProcessImageFileNameW(hProcess, path, MAX_PATH) == 0)
{
DbgPrint("Can't get the process image name");
return;
}
Run Code Online (Sandbox Code Playgroud)
但是当我构建时出现编译器错误“使用未初始化的内存‘路径’”
我该如何解决?
LPWSTR是单个wchar_t*指针。因此,LPWSTR path[MAX_PATH];创造的数组wchar_t*指针。
但是,GetProcessImageFileNameW()需要一个LPWSTR参数,其中文档说:
图像文件名
指向接收可执行文件完整路径的缓冲区的指针。
这意味着需要GetProcessImageFileNameW()一个指向wchar_t字符数组的指针,然后它会根据需要填充。
数组衰减为指向其第一个元素的指针。所以,你传递一个wchar_t**其中wchar_t*的预期。我很惊讶您没有收到关于类型不匹配的编译器错误,而不是关于未初始化内存的错误。
试试这个:
WCHAR path[MAX_PATH] = {};
if (!GetProcessImageFileNameW(hProcess, path, MAX_PATH))
{
DbgPrint("Can't get the process image name");
return;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |