2017-02-16 2 views
-2

以下は私のコードです。ハンドルが間違っています。ウィンドウ内のcスレッドHWNDエラー

`

int main(){ 

HWND hMainWin; 
DWORD threadID; 
//Create thread down 
HANDLE threadHandle = CreateThread(NULL, 
           0, 
           threadFunction, 
           (LPVOID)hMainWin, 
           0, 
           &threadID); 
} 

DWORD WINAPI threadFunction(LPVOID param){ //my thread function 
HANDLE hwnd = (HANDLE)param; 
for(int i=0;i<5;i++) 
{ 
printf("hello"); 
} 
return 0; 
} 

エラー:

+1

メッセージはクリアです。スレッド作成関数にユニット化された変数を渡しています。 –

+0

私は理解していませんでした。私はそれを修正するつもりです。 –

+0

hMainWinにはどのような価値があると思いますか? – immibis

答えて

0

あなたは初期化されていないとあなたがCreateThread()の呼び出しで引数#4としては、(初期化されていない)変数を使用している変数HWND hMainWin;を持っています。変数が初期化されていないので、そのは未定義です。これは、取得したエラーメッセージの理由です。

あなたのコードは、コンソールアプリケーションのようです。そのため、ウィンドウまたはそのハンドル(HWND)がないため、hMainWinの初期化に問題があります。

そのパラメータは単なるダミー変数である(実際には、あなたのスレッド関数で使用されていない)ので、あなたにも可能性がありますようにそれはNULL(または0)で初期化(単なる「クイックフィックス」のために)見えます

関連する問題