2015-06-23 206 views
0

如何從我的內存緩衝區讀取數據?C++ - 從緩衝區讀取數據

const char *buf 

,然後打印出來這樣

MessageBoxA(NULL, "Buf: " + buf, " ", MB_OK); 
+1

如果您使用C++,請使用字符串類。 std :: string或任何你最喜歡的庫使用。 – nvoigt

+0

這取決於你用_read_表示的意思。來自哪裏?去哪裏? –

+1

你可以試試'(「Buf:」+ std :: string(buf,n))。c_str()'...你需要計算出緩衝區中有多少個字節--n。我只是猜測這個'MessageBoxA'函數會接受一個'const char *'參數。 –

回答

1
std::string str = "Buf: "; 
str += buf; // I assume buf is a null terminated string 
MessageBoxA(NULL, str.c_str(), " ", MB_OK); 
0

不能在字符串文字和/或char*申請+。其中一個操作數必須是std::string才能夠利用std::stringoperator+過載。

如果您buf是一個字符數組,然後像這可能是工作:

std::string("Buf: ") + buf 

這就要求buf空值終止

如果buf不是空終止然而,Tony D的解決方案應該工作。