2009-12-05 5 views
-1

여러 부분을 연결하는 메시지를 작성해야합니다. 그래서 나는 ostringstream을 사용했다. 이제 std :: string 또는 const * mailslot을 보낼 char 있습니다. 나는 그것을하기 위해 여러 가지 방법을 시도했지만, 잘못된 메시지를받을 때마다. mailslot으로 메시지를 보내고받을 수있는 솔루션을 알고 콘솔에서 표시하고 싶습니다. 문자열이있는 메일 슬롯

생성하고 메일을 보낼 수 내 코드를

는 다음과 같습니다

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()); 

나는이 mensage을 읽어 표준 : : cout을하거나의 printf를 사용하고 싶습니다. 문자열 객체가 수정되지 않는 한

감사합니다, 레안드로 리마

+1

코드 42 행에서 세미콜론';을 잊어 버렸습니다. – pmg

+0

지금까지 무엇을 했습니까? 어떤 오류 메시지가 나타 납니까? 오류를 생성하는 코드를 보여주십시오. 우리는 처음부터 당신을 위해 그것을 쓰지 않을 것입니다, 이것은 rentacoder되지 않습니다 !! – Glen

+1

그런 식의'c_str()'의 결과를 저장하는 것은 안전하지 않습니다. – GManNickG

답변

1

c_str의 결과를 (저장)는만큼 안전하지만 그 점 옆에 있습니다. 문제는 포인터의 주소를 단순히 문자열 대신 포인터로 전달한다는 것입니다. 변경 & 및 & 알람 및 알람.