2015-06-23 207 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的解决方案应该工作。