2016-07-06 14 views
0

Visual Studio 2010でWindowsをコンパイルするときに、「ブロックスコープの静的関数が不正です」というメッセージが表示されるコンパイラはこのエラーを無視する? (私の1人の友人はこのソースコードを現在の設定で変更せずにコンパイルしました) [最初にソースをコンパイルするには、 'make/buildconfig.inc.php'ファイルのコンパイラのパスを変更する必要があります)[私は研究者です]、これは私が考える最も簡単なケーススタディれる:Zeusをコンパイルするための 'ブロックスコープの静的関数が不正です'エラー

int main() { 
    static int func1(); // C2267 
} 

これは

static bool unhookList(HANDLE process, HOOKWINAPI *list, DWORD count) 
{ 
    bool ok = true; 
    for(DWORD i = 0; i < count; i++)if(list[i].originalFunction != NULL) 
    { 
    if(!WaHook::_unhook(process, list[i].functionForHook, list[i].originalFunction, list[i].originalFunctionSize)) 
    { 
     ok = false; 
#  if defined WDEBUG1 
     WDEBUG1(WDDT_ERROR, "Failed to unhook WinApi at index %u", i); 
#  endif 
    } 
    /*else 
    { 
     PeImage::_repalceImportFunction(coreData.modules.current, list[i].originalFunction, list[i].functionForHook); 
     Core::replaceFunction(list[i].originalFunction, list[i].functionForHook); 
    }*/ 
    } 
    return ok; 
} 
+0

失敗したコードの[mcve]を作成することはできますか?いいえ、あなたはただ単にZeusヘッダーの1つで宣言された関数unhookList()を呼び出したいだけです。 – NathanOliver

+0

@ NathanOliver残念ながら、それは小さなプロジェクトではありません。私は非常にうまく対応できないと思いますが、最も簡単なフォームを提供しました。 – Iman

+0

あなたはプロジェクトを構築するために何をしたのですか?それがあなたの問題を解決する最も速い方法かもしれません。 –

答えて

1

はブロックスコープ内の関数を宣言すると、CやC++で違法である機能です。だから、あなたは正確に何をしようとしていますか?

int main() { 
    // parameter values are just for example 
    bool result = unhookList(0, NULL, 1); 
} 
+0

あなたはそれを編集しましたか? – Iman

+0

@Imanもちろん、私はゼウスを持っていません:) – Ganil

関連する問題