问题标签 [wchar]
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.
c++ - wchar_t 数组
我想要一个 wchar_t 数组。
以下作品:
但这并不
我没有收到任何错误,但 wcAltFinalText 是一个错误的 ptr
非常感谢任何帮助和评论。
oracle - OCI、OCILIB、ODBC 宽字符(wchar)支持
这些库中的哪些 OCI、OCILIB、ODBC 或任何其他支持宽字符串 (wchar)?
c++ - WideCharToMultiByte() 与 wcstombs()
WideCharToMultiByte() 和 wcstombs() 有什么区别 什么时候用哪一个?
c++ - 如何在 C++ 中将 CHAR 变量复制到 WCHAR 变量
我想将 CHAR 文件转换为 UNICODE 文件。我以 CHAR 文件类型逐个字符读取文件,然后将此字符保存在 CHAR 变量中,然后我想将此 CHAR 变量复制到 WCHAR 变量,然后将 WCHAR 变量写入 UNICODE 文件。
这是代码:
粗体代码是问题,如何将 CHAR 变量复制到 WCHAR 变量。_tccpy 函数和 strcpy 函数不能这样做,因为它们的原型都是 char 或 wachar。
com - COM 接口中的 WCHAR 是好事吗?
COM 接口中的 WCHAR 是好事吗?
我一直在互联网上寻找这个问题的答案,但没有任何结果。
基本上应该在 COM 中使用 char* / wchar* 还是应该使用 BSTR 代替?
它是安全的还是取决于它?
在此代码示例中,它的字符串(从随机来源获取的代码):
当谈到 COM 时,我对何时使用所有编组、内存边界等内容感到困惑。
数据缓冲区(字节*)呢?
c++ - c++0x中wchar_t的命运如何?
考虑到新的字符类型,和,wchar_t
在 c++0x 中的命运是什么?char8_t
char16_t
char32_t
更重要的是std::wstring
,std::wcout
, 等呢?
w* 家庭课程是否已弃用?
新角色类型有新的std::ustring
和std::Ustring
类吗?
c# - 从 C++ 传递函数指针以由 C# 调用 - 函数参数包括宽字符字符串 (LPCWSTR)
我正在编写一个供本机 C++ 应用程序使用的 C# 库。我使用 C++/CLI 作为互操作性机制。
我需要将回调函数从 C++ 传递到 C#(使用 C++/CLI 作为中间层)。C# 库需要使用以零结尾的宽字符字符串调用 C++ 函数;即回调函数的原型是
函数(LPCWSTR pszString);
还有其他参数,但它们对于本次讨论无关紧要。
我在网上搜索并找到了我可以使用的 Marshal.GetDelegateForFunctionPointer 方法。问题在于它将 System.String 从 C# 转换为 char* 而不是我正在寻找的 wchar_t*。
此外,如果可能的话,实现此代码示例的最佳方法是什么,包括 C++/CLI 部分。C++/CLI dll 依赖于 C# dll。方法需要同步调用。
c++ - 将字符串宏/常量转换为宽字符/Unicode
我有一个使用 3rd 方库的 Unicode Win32 应用程序,其中一些为它们的版本信息提供常量作为#defined(窄)字符串。例如,libpng具有以下内容:
我将各种静态链接库的版本信息附加到我的 About Box 以便于版本跟踪,并且将这个常量转换为宽字符串似乎很简单。
我的第一次尝试是 TEXT(PNG_HEADER_VERSION_STRING),但失败了
..和 LPNGHEADER_VERSION_STRING 当然不存在。
所以我尝试了几种双重包装宏的组合,以及各种## 技巧来尝试将 L 前缀添加到宏常量,但无法做到。我错过了一些简单的东西吗?你会如何处理:
以编程方式,无需简单地添加重复的 L"Test V1.2.3" 并使其与 3rd 方库保持同步。
我知道如果我正在为 Unicode 构建,我可以在运行时转换它,但我认为肯定有一种快速的方法来重新定义这个常量。
- -更新 - -
我用我的包含结构做了一些非常愚蠢的事情,从而错过了情节。修复允许双重定义包装器正常运行的问题。我很愚蠢。
multithreading - 使用数据结构代替 hash_map
我想创建一个包含三个宽字符数组的数组,其中一个是键。
“LPWCH,LPWCH,LPWCH”无法使用大于/小于符号,因为它认为它是一个标签
Hash_map 只允许我使用一对。wKey 和与之关联的元素。是否有另一种数据结构可以让我使用它?
这个集合几乎同时被不同的线程更新。这就是为什么我不想使用一个类或另一个结构来定义剩余的两个宽字符数组的原因。
c++ - 为什么我的 Win32 API 调用需要“A”后缀,我应该纠正它吗?
要从我需要的 Win shell 执行命令
现在我正在完成 Forgers Win32 教程,我正在寻找防止在屏幕上打印垃圾所必需的 A 后缀。我知道这与我的操作系统默认的字符格式有关。如果我可以“规范化”我的操作系统,这可能是最好的解决方案,因为RegisterClassExA
无论我在第二个示例中使用了多少 *A 函数,我都会从 NULL 中恢复(在下面复制了我添加的 *A 后缀的 lllotottttssss)
我重新访问了上面的代码,使其像 Forgers(删除 *A's)并改用L""
字符串初始化器,但现在我得到一个错误分配const char g_szClassName[] = L"myWindowClass";
错误 C2053:“g_szClassName”:宽字符串不匹配
替换char
为wchar
生成编译器错误消息,指示wchar
不是可识别的类型。
_编辑_
我认为L""
字符串说明符是首选解决方案,也是我想要追求的解决方案,抱歉,如果我的问题似乎绕圈子,我愿意接受建议。
刚刚将该代码更新为我现在使用的代码,并删除了我无法访问的内容。
_编辑_
错误代码是87,无效参数,所以我猜分配wchar_t
参数( wc.lpszClassName = g_szClassName;
)毕竟是不正确的......:@(
_编辑_
猜错了?!const LPCTSTR g_szClassName = L"myWindowClass";
没有修复(或破坏)一件事。