以下の小さなコードを参照してください。
void TestPluginAPI::MouseMove(int nX, int nY)
{
INPUT input;
DOUBLE fScreenWidth = GetSystemMetrics( SM_CXSCREEN )-1;
DOUBLE fScreenHeight = GetSystemMetrics( SM_CYSCREEN )-1;
int plusY;
if (FullScreenCheck() == 1) {int plusY = getmidY() + 8.0f;}
else {int plusY = getmidY();}
int plusX = getmidX();
DOUBLE fX = plusX*(65535.0f/fScreenWidth) + (nX*(65535.0f/fScreenWidth));
DOUBLE fY = plusY*(65535.0f/fScreenHeight) + (nY*(65535.0f/fScreenHeight));
RtlZeroMemory(&input, sizeof(input));
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE;
input.mi.dx = (LONG)fX;
input.mi.dy = (LONG)fY;
SendInput(1, &input, sizeof(input));
}
問題は、コンパイラが未定義の警告を表示することplusY
です。明らかに、コンパイルされたプラグインでこの関数を実行しようとすると(プラグインコードからのもので、ブラウザのjavascriptコンソールを介してデバッグします)、plusY
定義されていないためクラッシュします。
if-else を使用して関数内の変数を定義できない場合、どうすればこれを行うことができますか?