繁体   English   中英

C ++ MFC- strcpy错误

[英]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有两个专门的变种, CStingAchar字符和CStringWwchar_t字符。 如果使用CStringA ,它将允许自动转换为const char *

更好的方法是使用CF_UNICODETEXT并继续使用常规CString 您需要使用wcscpy代替strcpy ,并分配两倍的字节数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM