2016-07-06 23 views
0

當我想要編譯žeus source code在Windows 8上使用Visual Studio 2010中我收到此錯誤「與塊範圍靜態函數是非法的」,有沒有什麼辦法強迫編譯器忽略這個錯誤? (我的一個朋友編譯這個源代碼沒有與我的當前設置任何修改) [編譯源首先你應該改變「使/ buildconfig.inc.php」文件的編譯器的路徑)[我是一個研究員],這在簡單的情況下研究我認爲:「有塊範圍靜態函數是非法的」錯誤編譯宙斯

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]嗎? – NathanOliver

+0

@NathanOliver不幸的是這不是一個小的項目,我想我不能提供一個很好的案例,但我提供 – Iman

+0

你試過問你的朋友,他們做了什麼來構建項目最簡單的形式?這可能是解決問題的最快方法。 –

回答

1

塊範圍內聲明功能是在C和C++非法。那麼,你究竟想要做什麼?如果你只是想調用函數unhookList(),在Zeus頭文件中聲明,那麼就簡單地這樣調用它:

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

你有沒有編制呢? – Iman

+0

@Iman當然不是,我沒有宙斯:) – Ganil