0

窓を扱うのはこれが初めてです。スレッドを作成しようとしましたが、コードをコンパイルできません。

これは私のコードの一部です:

WORD _tid;
HANDLE  readerThread= CreateThread(0,0,readFromPort,0,0,&_tid); 
DWORD WINAPI readFromPort(LPVOID lpParam ){}

私も試しました:

LPDWORD_tid;
HANDLE  readerThread= CreateThread(0,0,readFromPort,0,0,_tid); 
DWORD WINAPI readFromPort(LPVOID lpParam ){}

どちらもコンパイルされていません。onyoneは何が問題なのか知っていますか?

(私はWindows XPを使用しています)

ありがとう。

4

3 に答える 3

2

さて、あなたが持っているエラーが何であるかわからない。しかし、あなたに良い例を提供することができます

#include "windows.h"
DWORD WINAPI readFromPort(LPVOID lpParam ){return 0;}
int _tmain(int argc, _TCHAR* argv[])
{
    DWORD _tid;
    HANDLE  readerThread= CreateThread(0,0,readFromPort,0,0,&_tid); 
    return 0;
}

あなたとの違い:

  1. _tidはDWORDであり、WORDではありません。

  2. readFromPortは値0を返します。

于 2012-06-03T14:43:23.980 に答える
1

推測させてください:readFromPort値を返さなければなりませんか?

次回もエラーを追加してください。

于 2012-06-03T14:36:15.460 に答える
0

最小限のコード例と少なくともコンパイルエラーを提供しておけばよかったと思います。しかし、大丈夫、私はコンパイラのふりをします。コードスニペットが関数内にあると仮定すると、そこに関数宣言があります。

DWORD WINAPI readFromPort(LPVOID lpParam ){}

私はそれがあなたを台無しにしていると信じています。他の関数のスコープ外で関数を宣言/定義する必要があります。

また、readFromPort関数はCreateThread、パラメーターとして参照されている場所への呼び出しの後に宣言されます。したがって、それらすべてをグローバルスコープに入れても機能しません(これ自体は悪い考えです)。

于 2012-06-03T14:29:19.540 に答える