2014-02-08 176 views
0

我想讀的字符串從菜單是這樣的:GetMenuString返回空字符串

char* buf; 
int retLength = GetMenuString(menu, IDM_BLABLA, buf, 0, 0); 
pclog("Buffer= %s, Length=%i\n", buf, retLength); 

輸出是:

Buffer= , Length=11 

什麼不對的代碼,該方法返回正確的非零長度,但空字符串?

回答

2

第四個參數應該是緩衝區的大小。嘗試改寫爲

char buf[100]; 

int retLength = GetMenuString(menu, IDM_BLABLA, buf, 100, 0); 
pclog("Buffer= %s, Length=%i\n", buf, retLength); 

通過在0傳遞作爲緩衝GetMenuString的大小僅返回字符串的長度,所以也沒正是你告訴它做的事。 :-)

分享和享受。

+0

我需要去睡覺)這是荒謬的。 – Conker