[英]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.