【发布时间】:2017-12-09 15:27:14
【问题描述】:
我想替换一个特定的字符 wchar_t。结果它返回内存地址。有没有办法返回替换的 wchar_t?
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <Psapi.h>
using namespace std;
int main()
{
wchar_t processPath[MAX_PATH];
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, 3820);
GetProcessImageFileName(hProcess, processPath, MAX_PATH);
CloseHandle(hProcess);
wchar_t * pwc;
pwc = wcsstr(processPath, L"\\Device\\HardiskVolume1");
wcscpy_s(pwc, 100, L"C:", 100);
wcout << processPath;
return 0;
}
谢谢
【问题讨论】:
-
使用
QueryFullProcessImageName()代替它已经为您提供了 Win32 路径格式。所以没有必要做这样的替换。 -
@zett42 QueryFullProcessImageName 自 vista 起可用。它在 XP 中的意思。不起作用。这就是我选择 GetProcessImageName 的原因。问题不在于api。但是 wcscpy_s 参数。我不知道我需要在参数 2 和 4 中添加什么。