Announcement

Collapse
No announcement yet.

Probleme mit WriteFile!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit WriteFile!

    Hallo Leute,
    wie gelingt es mir mit der Funktion WriteFile einen String zu übertragen der mit 0x00 abschließt?

    Bei meinen Versuchen wurde die 0x00 nicht mit übertragen.

    DWORD w;
    const char *x = {"\xFF\9\x01\FACTORYCOM\x04\x00"};
    if (IsOpened)
    WriteFileEx(Cid,x,15,&w,&Overlapped);

  • #2
    Probier mal mit AnsiString("Deine Zeichenkette")

    Comment


    • #3
      Hallo Martin,

      ein String vom Typ const char * ist ein Sstandard-C-String. Diese Strings sind Null-terminiert, heißt im Klartext \0 steht am Ende jedes Strings dieses Typs -> \0 zeigt Stringende und wird daher nicht übertragen.

      Grego

      Comment


      • #4
        Mit folgendem Beispiel gibt es keine Probleme<br>
        (Ich habe zum Testen noch zwei Nullen zugefügt)<br>
        <p>
        void __fastcall TForm1::Button1Click(TObject *Sender)<BR>
        {<BR>
        DWORD w;<BR>
        HANDLE hFile;<BR>
        char TempName[MAX_PATH];<P>
        const char *x = {"\xFF\9\x01\FACTORYCOM\x04\x00\x00\x00"};<BR>
        <BR>
        GetTempFileName("\\TEMP", "NEW", 0, TempName); // "\\TEMP\\NEWxxxx.TMP"<BR>
        hFile = CreateFile( (LPTSTR) TempName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,<BR>
        FILE_ATTRIBUTE_NORMAL, NULL);<BR>
        WriteFile( hFile, x, 17, &w, NULL);<BR>
        CloseHandle(hFile);<BR>
        }<BR&gt

        Comment

        Working...
        X