簡體   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