2014-09-22 42 views
1

我已經完成了搜索並花費了至少一個小時。來自wchar_t的C++ Win32 GDI +抽取*

wchar_t* fooBar = (wchar_t*)L"BlahBlah\0"; 
//GetWindowText(pDIS->hwndItem, (wchar_t*)fooBar, 64); 
g->DrawString(fooBar, -1, &font, rectf, &strFormat, textColorUp); 

工作,編譯;正如字符串被正確繪製「BlahBlah」。

問題是我想使用我已經評論過的GetWindowText()的值。

這可能是問題轉換,但我無法找到它。

回答

4

您需要爲要寫入的GetWindowText函數分配空間。你不能提供字符串文字的地址,因爲它們是不可修改的。

wchar_t buffer[1024]; 
GetWindowText(pDIS->hwndItem, buffer, _countof(buffer)); 
g->DrawString(fooBar, -1, &font, rectf, &strFormat, textColorUp); 
+0

謝謝。我發現_countof()的宏,那就是: #define _countof(array)(sizeof(array)/ sizeof(array [0])) – 2014-09-22 07:46:16

+2

@EvanCarslake除非你想限制在一個固定的最大長度,你可以先調用'GetWindowTextLength',然後分配一個動態緩衝區。 – 2014-09-22 08:04:14