2012-03-03 1 views
0

私はCを勉強し、私は私のWriteFileでそれらの値のために追加する必要があるかと思っていますとのReadFile方法lpNumberOfBytesReadとlpNumberOfBytesWrittenソケット

lpNumberOfBytesReadとlpNumberOfBytesWritten

WriteFile((HANDLE)sock, "\x05\x01\x00", 3, NULL, NULL); 
ReadFile((HANDLE)sock, buf, 1024, NULL, NULL); 

を使用して、それが文書1で述べています私の友人が指摘したように2つのNULL値の...

任意のアイデア*歓声

答えて

1

Assumi NULLにすることはできません重複したI/Oを使用するつもりはない(あなたの質問から、あなたがそうではないと強く感じる)場合は、値

DWORD NumberOfBytesWritten; 
WriteFile((HANDLE)sock, "\x05\x01\x00", 3, &NumberOfBytesWritten, NULL); 
を受け取る変数 DWORDへのポインタを渡す必要があります

関数が正常に返された場合(その戻り値を調べて確認する必要がある場合)、NumberOfBytesWrittenは実際にファイルに書き込まれたバイト数に設定されます。

+0

DWORD、int、cardinal、whatever :))32ビットのものです。 IIRC、それでもOKをコンパイルします。 –

+0

@David - 編集ありがとうございました:) –

+0

タイプを正しく取得する必要があります。元のコードはコンパイルされませんでした。 –