2011-06-20 12 views
3

私はOSの条件変数に関して非常に簡単な質問があります:
なぜ初期化が成功しないのですか?私は窓C++同期オブジェクト - InitializeConditionVariable失敗

+0

nullポインタが無効であることをどのように知っていますか?あなたがそれを使用しようとするとどうなりますか? –

+0

@Alan Stokesそうです!ヌルポインタが有効でした!私はSleepConditionVariableCSが返されなかったので間違っていると思ったが、それはCriticalSectionの問題であり、条件変数ではないようだった。ありがとう! –

+0

正確に何が間違っているのか分かりませんが、[GetLastError](http://msdn.microsoft.com/en-us/library/ms679360%28v=vs.85%29.aspx)関数を呼び出してどのようなエラーが発生しました。 –

答えて

1

私のミスVistaの32を使用してい
.. NULLポインタが含まれています -

CONDITION_VARIABLE a; 
void foo() 
{ 
    InitializeConditionVariable (&a); 
} 

変数aが正しく初期化されていません。

は、ここに私のコードです。不思議ですが、InitializeConditionVariableから返されたヌルポインタが正しく、使用できます。私の問題は、返されたことのないSleepConditionVariableCSでしたが、それはCriticalSectionの問題で、条件付きの変数ではないようです...

関連する問題