下面是我的一些C ++代码。我收到了这个错误:
C2601:'main':本地函数定义是非法的
为什么我会这样做?
facadeTwo
答案 0 :(得分:2)
您需要将main
功能移出InitInstance
功能体。
在C ++中,不可能在其他函数内部定义嵌套函数(lambda函数除外,但它们是表达式,而不是函数定义)。
答案 1 :(得分:0)
main
是控制台应用的入口点功能。它必须在全球范围内。无论如何,你无法将函数嵌套在其他函数中。
尝试更像这样的东西:
BOOL CBasicApp::InitInstance()
{
typedef BOOL (__stdcall *pFunc)();
HMODULE hMod = LoadLibrary("dbgghelp.dll");
if (!hMod)
{
printf("Error loading dbgghelp.DLL\n");
return FALSE;
}
pFunc pf = GetProcAddress(hMod, "L100A6F95");
if (!pf)
{
printf("Error finding L100A6F95 function\n");
FreeLibrary(hMod);
return FALSE;
}
if (!pf())
{
printf("L100A6F95 function failed\n");
FreeLibrary(hMod);
return FALSE;
}
FreeLibrary(hMod);
return TRUE;
}
...
int main(int argc, char* argv[])
{
CBasicApp app;
if (app.InitInstance())
{
...
}
else
{
...
}
}