0

我需要发出一条连接各个部分的消息。所以我使用了ostringstream。现在我有一个 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 来阅读此消息。

问候,莱安德罗·利马

4

1 回答 1

1

只要不修改字符串对象,存储 c_str() 的结果是安全的,但这不是重点。问题是您传递的是指向字符串的指针的地址,而不是简单的指向字符串的指针。将 &a 和 &alarm 更改为仅 a 和警报。

于 2009-12-05T22:20:29.113 回答