我需要制作一条消息来汇总各个部分。所以我使用了ostringstream。现在我有一个由mailslot发送的std :: string或const * char。 我尝试了很多方法,但每次收到错误信息。 我想知道一个解决方案,通过邮件发送消息并接收它并通过控制台显示它。
生成和发送邮件的代码是:
std::ostringstream oss;
oss << "RE" << "01" << "01:01:02.350" << "REMOTA 01 - MSG DESCARTADA";
std::string alarm = oss.str();
const char *a = alarm.c_str();
ASSERT(WriteFile(hMailslot, &a, strlen(a), &dwBytesSent, NULL),
“无法发送消息。”);
并收到消息:
char alarm[42];
DWORD bytesRead;
ASSERT(ReadFile(hMailslot, &alarm, strlen(alarm), &bytesRead, NULL),
"Impossible to read file. ERROR: " << GetLastError());
我想用std :: cout或printf来读取这个分数。
此致 Leandro Lima
答案 0 :(得分:1)
只要未修改字符串对象,存储c_str()的结果就是安全的,但这不在该点旁边。问题是您将指针的地址传递给字符串而不是简单地指向字符串的指针。将a&amp; a和&amp; alarm更改为a和alarm。