"" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
warning C4145: '==': switch ステートメントの制御式と関係する式 ; 式 '=' は、case 式と見なされます。

ソース(バグ有り):

//Mutex作成のサンプル

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

int main()
{
HANDLE hMutex;
hMutex=CreateMutex(NULL,FALSE,"MyMutex");
switch (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"); }


原因:


対処:


ソース(修正済み):

//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"); }

スポンサード リンク



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