【问题标题】:wxWidgets convert wchar_t** to char**wxWidgets 将 wchar_t** 转换为 char**
【发布时间】:2014-07-06 06:26:59
【问题描述】:

我正在尝试使用以下代码捕获应用程序 argcargv

int       wx_argc = wxGetApp().argc;
wchar_t** wx_argv = wxGetApp().argv;

然后我需要将它传递给另一个需要argv in char** 类型的函数,

如何将wx_argv 类型从wchar_t** 转换为char**

【问题讨论】:

  • 使用内部赋值的 for 循环。

标签: c++ type-conversion wxwidgets


【解决方案1】:

使用标准函数:

#include <stdlib.h>

wchar_t* p = L"Ciao Mondo";
char    v[50];
wcstombs(v, p, 10);

【讨论】:

    【解决方案2】:

    正确答案取决于您需要窄 (char*) 字符串的编码。如果这是当前语言环境的编码,那么您确实可以使用 @AngeloDM 提到的 wcstombs()。否则,您可以直接使用某些 wxMBConv 派生类的方法(例如,wxMBConvUTF8wxMBConvUTF16 用于特定编码或 wxCSConv 将尝试转换为您指定的任何支持的字符集)或通过 @987654321 @。

    在任何情况下,这只会处理从wchar_t*char* 的转换,您仍然需要分配自己的argc 大小的char** 数组并循环遍历所有条目,一一进行转换。

    【讨论】:

      猜你喜欢
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 2015-08-05
      • 2015-09-25
      • 2011-03-14
      相关资源
      最近更新 更多