编译错误:本地函数定义是非法的? [英] Compiling error: local function definitions are illegal?
本文介绍了编译错误:本地函数定义是非法的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嘿所有我真的希望你可以帮助我。
我正在编译一个项目并且我得到2个错误,说本地函数定义是非法的。
任何人都知道这是什么意思?特别是如何来解决它?
谢谢..对不起,如果这是一个菜鸟问题..我仍然是一个noobcoder。
Greetz
解决方案
[quote = unknownbomb]嘿所有我真的希望你能帮帮我。
我编译一个项目并且我得到2个错误,说本地函数定义是非法的。
任何人都知道这是什么意思?特别是如何来解决它?
谢谢..对不起,如果这是一个菜鸟问题..我仍然是一个noobcoder。
Greetz [/ QUOTE
如果能发布一些代码会更好
ssharish
当然!
编译......
cOpenGL.cpp
D: \ TLS-GL\cOpenGL.cpp(206):错误C2601:''hooked_wglSwapBuffers'':本地函数定义是非法的
D:\ TLS-GL\cOpenGL .cpp(211):错误C2601:''CodeWalk'':本地函数定义是非法的
。
错误1:
无效APIENTRY hooked_wglSwapBuffers(HDC hDC)
{
pwglSwapBuffers(hDC);
}
错误2 :(在这里开始箭头指向,所以想想它在哪里我做了什么粗体)
void CodeWalk(DWORD dwStartAddress,DWORD dwEndAddress)
{
for(DWORD dwCurrentAddress = dwStartAddress; dwCurrentAddress< = dwEndAddress-0x6; dwCurrentAddress + = 0x6)
{ PD WORD pdwTempAddress =(PDWORD)dwCurrentAddress + 0x2;
PDWORD pdwTableAddress =(PDWORD)* pdwTempAddress;
HMODULE hmOpenGL = LoadLibrary(" OPENGL32.DLL" );
if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glBegin"))
{
pglBegin =(glBegin_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glBegin;
}
else if(* pdwTableAddress == (DWORD)GetProcAddress(hmOpenGL," glBlendFunc"))
{
pglBlendFunc =(glBlendFunc_t)* pdwTableAddress;
* pdwTableAddress =( DWORD)& hooked_glBlendFunc;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glClear"))
{
pglClear =(glClear_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glClear;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glEnable"))
{
pglEnable =(glEnable_t)* pdwTableAddress;
* pdwTableAddress =(DWOR D)& hooked_glEnable;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glEnd" ))
{
pglEnd =(glEnd_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glEnd;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glPopMatrix"))
{
pglPopMatrix =(glPopMatrix_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glPopMatrix;
}
else if(* pdwTableAddress ==( DWORD)GetProcAddress(hmOpenGL," glPushMatrix"))
{
pglPushMatrix =(glPushMatrix_t)* pdwTableAddress;
* pdwTableAddress =(DWORD )& hooked_glPushMatrix;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glShadeModel"))
{
pglShadeModel =(glShadeModel_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glShadeModel;
}
else if(* pdwTableA ddress ==(DWORD)GetProcAddress(hmOpenGL," glVertex2f" ))
{
pglVertex2f =(glVertex2f_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glVertex2f;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glVertex3f"))
{
pglVertex3f =(glVertex3f_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glVertex3f;
}
else if(* pdwTableAddress ==( DWORD)GetProcAddress(hmOpenGL," glVertex3fv"))
{
pglVertex3fv =(glVertex3fv_t)* pdwTableAddress;
* pdwTableAddress =(DWORD )& hooked_glVertex3fv;
}
else if(* pdwTableAddress ==(DWORD)GetProcAddress(hmOpenGL," glViewport"))
{
pglViewport =(glViewport_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_glViewport;
}
else if(* pdwTableAd dress ==(DWORD)GetProcAddress(hmOpenGL," wglSwapBuffers" ))
{
pwglSwapBuffers =(wglSwapBuffers_t)* pdwTableAddress;
* pdwTableAddress =(DWORD)& hooked_wglSwapBuffers;
}
}
}
任何人?请
Hey all i really hope you can help me out.
Im compiling a project and im getting 2 errors which are saying local function definitions are illegal.
Anyone know what this mean? And especially HOW to fix it??
Thanks.. Sorry if this is a noob question.. I AM still a noobcoder.
Greetz
解决方案
[quote=unknownbomb]Hey all i really hope you can help me out.
Im compiling a project and im getting 2 errors which are saying local function definitions are illegal.
Anyone know what this mean? And especially HOW to fix it??
Thanks.. Sorry if this is a noob question.. I AM still a noobcoder.
Greetz[/QUOTE
it would be betterif u could post some code
ssharish
Sure !
Compiling...
cOpenGL.cpp
D:\TLS-GL\cOpenGL.cpp(206) : error C2601: ''hooked_wglSwapBuffers'' : local function definitions are illegal
D:\TLS-GL\cOpenGL.cpp(211) : error C2601: ''CodeWalk'' : local function definitions are illegal
.
Error 1:
void APIENTRY hooked_wglSwapBuffers (HDC hDC)
{
pwglSwapBuffers( hDC );
}
Error 2: (in the beginning here arrow points at so think its here somewhere what i made bold)
void CodeWalk( DWORD dwStartAddress, DWORD dwEndAddress )
{
for ( DWORD dwCurrentAddress = dwStartAddress; dwCurrentAddress <= dwEndAddress-0x6; dwCurrentAddress+=0x6 )
{ PDWORD pdwTempAddress = ( PDWORD ) dwCurrentAddress + 0x2;
PDWORD pdwTableAddress = ( PDWORD ) *pdwTempAddress;
HMODULE hmOpenGL = LoadLibrary( "opengl32.dll" );
if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glBegin" ) )
{
pglBegin = ( glBegin_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glBegin;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glBlendFunc" ) )
{
pglBlendFunc = ( glBlendFunc_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glBlendFunc;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glClear" ) )
{
pglClear = ( glClear_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glClear;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glEnable" ) )
{
pglEnable = ( glEnable_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glEnable;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glEnd" ) )
{
pglEnd = ( glEnd_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glEnd;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glPopMatrix" ) )
{
pglPopMatrix = ( glPopMatrix_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glPopMatrix;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glPushMatrix" ) )
{
pglPushMatrix = ( glPushMatrix_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glPushMatrix;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glShadeModel" ) )
{
pglShadeModel = ( glShadeModel_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glShadeModel;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glVertex2f" ) )
{
pglVertex2f = ( glVertex2f_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glVertex2f;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glVertex3f" ) )
{
pglVertex3f = ( glVertex3f_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glVertex3f;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glVertex3fv" ) )
{
pglVertex3fv = ( glVertex3fv_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glVertex3fv;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glViewport" ) )
{
pglViewport = ( glViewport_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_glViewport;
}
else if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "wglSwapBuffers" ) )
{
pwglSwapBuffers = ( wglSwapBuffers_t ) *pdwTableAddress;
*pdwTableAddress = ( DWORD ) &hooked_wglSwapBuffers;
}
}
}
Anyone?? please
这篇关于编译错误:本地函数定义是非法的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文