"" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
warning C4805: '==': 演算中の 'HANDLE' 型と 'bool' 型の混用は安全ではありません

ソース(バグ有り):

//Mutex作成のサンプル

#include <windows.h>
#include <process.h>
#include <iostream>

int main()
{
HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if (hMutex == true)
{
printf("CreateMutex 生成エラー: %d\n", GetLastError() );
}
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("1度目のチェック。すでに MyMutex は存在します。 \n");
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("2度目のチェック。すでに MyMutex は存在します。 \n"); }


原因:


対処:


ソース(修正済み):

//Mutex作成のサンプル

#include <windows.h>
#include <process.h>
#include <iostream>

int main()
{
HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if (hMutex == NULL)
{
printf("CreateMutex 生成エラー: %d\n", GetLastError() );
}
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("1度目のチェック。すでに MyMutex は存在します。 \n");
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
if ( GetLastError() == ERROR_ALREADY_EXISTS )
printf("2度目のチェック。すでに MyMutex は存在します。 \n"); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]