gpt4 book ai didi

c++ - 使用 L 前缀(Visual C++ 编译器)时如何#define 硬编码字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:14 27 4
gpt4 key购买 nike

如何#define 路径 L"C:\Windows\System32\taskmgr.exe"来处理宽字符

#define TASK_MGR "C:\\Windows\\System32\\taskmgr.exe"

KillProcess(TASK_MGR); //this works

HINSTANCE resurrect = ShellExecute(NULL, L"open", L"C:\\Windows\\System32\\taskmgr.exe", NULL, NULL, SW_MINIMIZE);

最佳答案

您需要使用多个宏。幸运的是,Windows header 已经定义了这样一个宏,它可以在必要时加宽字符串文字 TEXT(),因此没有充分的理由自己编写。

下面的代码工作正常:

#define TASK_MGR "C:\\Windows\\System32\\taskmgr.exe"

KillProcess(TASK_MGR); // Not sure what KillProcess is or why it takes a narrow
// string, regardless of whether Unicode is defined...
// The Win32 function is named TerminateProcess.

HINSTANCE resurrect = ShellExecute(NULL, L"open", TEXT(TASK_MGR), NULL, NULL,
SW_MINIMIZE);

...好吧,除了您硬编码了任务管理器的路径并且不会在所有机器(例如我的机器)的那个位置找到它。但我相信这只是为了示例目的,您已经很清楚不要对路径进行硬编码。

关于c++ - 使用 L 前缀(Visual C++ 编译器)时如何#define 硬编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697096/

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