[英]C++ MFC- strcpy error
我是C ++ MFC编程的新手。 我很难理解C ++的代码。 只是来自Java编程,对我来说似乎是一个全新的世界。 这距Android开发还有很长的路要走。
你们能帮我在这里了解这个问题吗?
这是完整的代码
CString c;
code.GetWindowText(c);
AfxMessageBox(c);
OpenClipboard();
EmptyClipboard();
// Setup a memory HANDLE for the clipboard
HANDLE hMem = GlobalAlloc(GMEM_FIXED, c.GetLength() + 1);
char* pStr = (char*)GlobalLock(hMem);
strcpy(pStr, c); //error here
GlobalUnlock(hMem);
// Tell Clipboard to use our handle now.
::SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
函数的此部分复制CString
并将其分配给剪贴板。 我遇到了错误
不存在从CString到const char *的合适转换函数。
我有一个在线参考,这是代码和其他注释似乎没有相同的问题。 我想知道我的到底是什么问题。
这些天的默认内部版本是Unicode,它使用与char
类型不兼容的16位wchar_t
字符。
CString
有两个专门的变种, CStingA
对char
字符和CStringW
为wchar_t
字符。 如果使用CStringA
,它将允许自动转换为const char *
。
更好的方法是使用CF_UNICODETEXT
并继续使用常规CString
。 您需要使用wcscpy
代替strcpy
,并分配两倍的字节数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.