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とalarmだけに変更します。

于 2009-12-05T22:20:29.113 に答える