【发布时间】:2019-02-09 02:43:49
【问题描述】:
我正在尝试在 Visual Studio MFC 中将 CString 转换为 byte [] 数组。请看下面的代码。
CString str_text;
GetDlgItemText(IDC_KEY_TEXT, str_text);
BYTE A[] = "hi I love stackoverflow";BYTE A[] = str_text;
这里,BYTE A [] 是一个字节数组。
不管CString 和GetDlgItemText 功能如何,如果我只做 (1) 我的程序运行良好。
但是,如果您键入 CString(str_text)(2) 而不是“嗨,我爱 stackoverflow”,我就会出错。那是错误是“它无法将 CString 转换为字节数组”。
我想将CString 转换为字节数组。请告诉我我的错误在哪里。
【问题讨论】:
-
您可以获得指向
CString包裹的字符串的指针(参见例如GetString)。因此,您很少需要将字符串复制到自己的数组中。 -
你检查过这个链接吗? stackoverflow.com/questions/12356815/…
-
可能是XY Problem。为什么你需要一个
BYTE数组?除此之外,您只能省略数组大小,如果编译器可以在编译时推断出大小(就像从字符串文字构造它时的情况一样)。我们也不知道,CString适合你。可能是CStringA或CStringW。如果是前者,您已经通过调用CString::GetString()获得了一个char数组。如果是后者,则说明您的规范不明确。您还必须指定所需的字节序类型。 -
@swo:这不是重复的。链接的问答询问类型转换。这个问答(大概)是在问,如何创建一个副本并将其存储在
BYTE数组中。 -
非常感谢您的回答。我会努力做到的。
标签: c++ arrays mfc type-conversion