有个问题搞了半天了,还是有问题,问问看有没有有经验的人。
我有一个客户端和服务端,现在需要从客户端上传一个dll文件给服务端。
服务端接收的程序大概是这样子的:
if(fseek( file,l_nPoint,SEEK_SET ) )
{
throw std::exception("fseek file failed.");
} long l_iWriteNum = fwrite( l_pRecv,sizeof(char),l_nRecvNum,file );
fflush(file);
fclose(file);然后,我加载dll的时候,LoadLibrary和GetProcAddress都不报错,但是GetProcAddress得到的函数地址却无法调用,try/catch也捕捉不到异常,直接报错。
我可以比较确定的是因为文件传输而引起的错误,但是不知道具体是错在什么地方。
很郁闷,请教高手呵~
我有一个客户端和服务端,现在需要从客户端上传一个dll文件给服务端。
服务端接收的程序大概是这样子的:
if(fseek( file,l_nPoint,SEEK_SET ) )
{
throw std::exception("fseek file failed.");
} long l_iWriteNum = fwrite( l_pRecv,sizeof(char),l_nRecvNum,file );
fflush(file);
fclose(file);然后,我加载dll的时候,LoadLibrary和GetProcAddress都不报错,但是GetProcAddress得到的函数地址却无法调用,try/catch也捕捉不到异常,直接报错。
我可以比较确定的是因为文件传输而引起的错误,但是不知道具体是错在什么地方。
很郁闷,请教高手呵~
FILE *file;
if( (file = fopen( pcFile, "wb" )) == NULL )
{
throw std::exception("Open file occur an error\n" );
}
因为这个程序没有办法调试,我只能知道GetProcAddress返回的不是null,应该是得到了相应的函数地址。
相关代码如下:HINSTANCE l_h;
l_h = LoadLibrary( "testdll" );
if((l_getFun=(GETFun)GetProcAddress(l_h,"getFun"))==0)
{
throw std::exception("some errMsg");
}因为这块在服务器启动的时候也执行过一遍,所以我觉得错误应该不会在这边。
我不知道有什么办法可以知道GetProcAddress返回的值吗?
再补充一点代码:if((m_test=l_getFun())==0)//就在这个地方报错啦