c++ - 无法将 TCHAR* 添加到 const char

标签 c++

你好,我正在尝试让我的应用程序在启动时运行,并且为了在我的客户 PC 上运行,我首先需要获取他们的 PC 用户名,但是当我试图让它工作时,我得到了这个错误:

E2140 expression must have integral or unscoped enum type

代码如下:

HKEY hKey;
const char* czStartName = "MY application";
TCHAR pcusername[UNLEN + 1];
DWORD pcusername_len = UNLEN + 1;
GetUserName((TCHAR*)pcusername, &pcusername_len);
const char* czExePath = "\"C:\\Users\\" + pcusername + "\\Desktop\\Myapplication.exe\" /background";

如何将 TCHAR* 转换为 Const Char?

最佳答案

正如其他人在评论中所说,您不能使用加法运算符在 C 中连接字符串。你可以在这个例子中做一些类似的事情:

#include <string.h>

char buf[4096];
snprintf(buf, sizeof(buf), "\"C:\\Users\\%s\\Desktop\\Myapplication.exe\" /background", username);

const char* czExePath = buf;

关于c++ - 无法将 TCHAR* 添加到 const char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46083058/

相关文章:

c++ - 绑定(bind) falis 以绑定(bind) (TCP) 并返回 -1

c++ - glm::mat4 * glm::mat4 产生不正确的结果?

c++ - FBX节点变换计算

使用 FFT 互相关进行 C++ 模式匹配(图像)

c++ - 两个函数做完全相同的事情,别名?

c++ - Collada 蒙皮

c++ - 如何正确使用IoC容器?

c++ - 结构的结构

c++ - 从类返回类实例

c++ - 静态字符数组的对齐保证