问题标签 [lpcstr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1605 浏览

c++ - Visual C++:将数据类型 PCSTR 转换为 LPCWSTR

我有以下 C++ 代码从 HttpContext 实例中检索标头请求信息:

如您所见,调用:

返回 PCSTR 数据类型。

但是我需要将带有标题的 WriteEventViewerLog 作为“LPCWSTR”提供,因为我在方法中使用的函数之一只接受该格式的字符串。

来自https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx,关于这些字符串定义:

指向以空字符结尾的 8 位 Windows (ANSI) 字符的常量字符串的指针。有关详细信息,请参阅字体使用的字符集。

此类型在 WinNT.h 中声明如下:

typedef CONST CHAR *PCSTR;

和 LPCWSTR:

指向 16 位 Unicode 字符的以空字符结尾的常量字符串的指针。有关详细信息,请参阅字体使用的字符集。

此类型在 WinNT.h 中声明如下:

typedef 常量 WCHAR *LPCWSTR;

我没有找到从这两种数据类型转换的方法。我尝试将header转换为char*,然后使用下面的函数从char*移动到LPCWSTR

但这返回给我一个无效的字符串(我没有完整的输入,但 Accept 标头值被修剪为“x;ih”)。

0 投票
1 回答
885 浏览

c++ - LPCSTR类型字符串乱码或显示错误

我有一个LPCSTR我想转换为std::stringorchar*的。

我想把电脑上所有的音频设备都弄出来并显示出来,但是要LPCSTR直接输出的类型是乱码,用上面的代码输出正确的结果。

有没有办法保存正确的输出?

以下是完整代码:

ListSoundDev.h

主文件

预期输出:

麦克风 (Realtek High Definition Au

实际输出:

KQ螛</p>

预期输出:

瑞昱数字输入(瑞昱

实际输出:

R

我怎样才能 printf()或者std::cout可以直接输出正确的结果?

0 投票
3 回答
347 浏览

c++ - “MessageBoxA”:无法将参数 2 从“std::vector<_Ty>”转换为“LPCSTR”

以下代码有效:

为了自动清理,我使用了以下信息:如何将 std::string 转换为 const char* 或 char*?.

以下代码引发错误:

我收到此错误: “MessageBoxA”:无法将参数 2 从“std::vector<_Ty>”转换为“LPCSTR”

0 投票
1 回答
1319 浏览

c++ - 从 size_t 到 DWORD 的转换,可能会丢失数据

我正在 VS 2015 上构建 64 位 C++ 代码。

看到警告 - C4267 'argument':从 'size_t' 转换为 'DWORD',可能会丢失数据。

任何建议都会有所帮助。

0 投票
0 回答
38 浏览

lpcwstr - LPCSTR 到 LPCWSTR 转换

我已经创建了转换LPCSTRLPCWSTR

但它不起作用,有什么问题?

0 投票
1 回答
233 浏览

c++ - 不推荐使用 PTCHAR 的字符串文字

我正在处理旧代码,其中将字符串文字分配给PTCHAR标题中定义的类型变量(指向字符的指针):typedef WCHAR TCHAR, *PTCHAR;

我收到警告“不推荐从字符串文字转换为指针到字符(非常量)”,我知道警告即将到来,因为 const 被分配给非常量指针变量,但我不能str CONST(LPCSTR) 因为它在代码中被修改为*(str++)=0;

有没有办法解决这个问题?

0 投票
1 回答
77 浏览

c++ - 试图在 C++ 中创建一个窗口,分配字符串时出错,LPCSTR / LPCWSTR 的东西

我已经在谷歌上搜索了几个小时,似乎没有任何效果。我不会将我的东西分成 .h 和 .cpp ,因为奇怪的东西出于某种原因会发生,但这不是重点

我收到以下错误:
无法将 'const wchar_t [16]' 转换为 'LPCSTR' {aka 'const char*'} in assignment gcc [59,24]
cannot convert 'const wchar_t [1]' to 'LPCSTR' { “const char”类型的赋值 gcc [60,23]
参数中的又名 'const char*'}与“LPCWSTR”类型的参数不兼容 [68,54] 无法将 'const wchar_t ' 转换为 'LPCSTR' {aka 'const字符*'} gcc [68,72]

这是我的tasks.json,以防问题出现

0 投票
1 回答
57 浏览

c++ - 重定向 std::list内容到文本文件

我正在使用该代码来枚举驱动器中具有特定扩展名的文件并将它们写入文本文件。它在文本文件中输出类似这样的内容。我怎样才能用他们的名字而不是这些垃圾值来写文件地址。00000281BBACF338 00000281BBACEA78 00000281BBACF108 00000281BBAD1E48

0 投票
1 回答
52 浏览

c++ - 在 C++ 中将 LPCSTR 转换为 LPCWSTR,ATL 不可用

在我开始之前,

请理解这个问题不是重复的。有相同标题的问题:

将 LPCSTR 转换为 LPCWSTR

但是,我在问这个问题之前做了一些研究,发现了ATLActive Template Library

但是我使用的编译器不附带ATL,它不允许我从转换LPCSTRLPCWSTR.

另外,要了解为什么我需要转换这两种数据类型,原因是我正在开发一个项目,它实际上是一个控制台游戏引擎。

如果您不知道,要重命名控制台窗口,您需要使用SetConsoleTitle(LPCWSTR winName)

起初,我使用LPCWSTR数据类型作为函数的参数。但是,当我尝试另一个函数(实际上是一个绘图函数)时,会发生以下情况:

控制台窗口的屏幕截图

UNICODE您在此处看到的这种字符组合是在控制台上绘制矩形的函数。矩形正确显示,但是,有一些文本,或者我应该说,控制台标题本身,显示在矩形上。

我没有添加任何在矩形上显示控制台标题的东西,也没有以任何方式弄乱我的代码。我烧了几次我的代码,没有任何问题,但是,不知何故,控制台标题显示在矩形上。

我以某种方式认为这与 LPCWSTR 数据类型有关,因为当我尝试该功能时,SetConsoleTitle()手动

帮我找到解决办法,好吗?