"C2660: 【関数名】 : 関数に X個の引数を指定できません。" に関する原因と対処

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

スポンサード リンク

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

コンパイルエラーメッセージ:
: error C2660: 【関数名】 : 関数に X個の引数を指定できません。

ソース(バグ有り):

#include "StdAfx.h"
#include "windows.h"

int main()
{
LPTSTR lpBuffer = NULL; 
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 
NULL, GetLastError(), 
LANG_USER_DEFAULT, 
(LPTSTR)&lpBuffer, 0, NULL ); 

MessageBoxEx(NULL, lpBuffer, "直前のエラーメッセージ", MB_OK); 
LocalFree(lpBuffer); 
}


原因:
関数に必要な個数の引数が渡されていません。
この例ではMessageBoxEx関数は5個の引数が必要ですが、4個の引数しか与えられていません。


対処:
関数に必要な引数を渡します。
以下の例ではMessageBoxEx関数に5番目の引数である「wLanguageId 」を指定する必要があります。


ソース(修正済み):

#include "StdAfx.h"
#include "windows.h"

int main()
{
LPTSTR lpBuffer = NULL; 
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 
NULL, GetLastError(), 
LANG_USER_DEFAULT, 
(LPTSTR)&lpBuffer, 0, NULL ); 

MessageBoxEx(NULL, lpBuffer, "直前のエラーメッセージ", MB_OK,0); 
LocalFree(lpBuffer); 
}

スポンサード リンク



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