我写了个dll,但用LoadLibrary不成功。
用VC带的Depends tools,可以成功,没见到错误;
自写测试程序,load不成功,但先load一下其它dll(与它没关系的)成功,然后load它好像可以成功。此dll是原来一直在用的,现我把它分了一部分独立作为它的下一级dll,与上面的接口完全没有改变。跟踪发现,CApp的构造函数都没有被调用。而新分出去的dll我测试过可以正确load。请帮忙分析一下可能什么原因,谢谢!!
用VC带的Depends tools,可以成功,没见到错误;
自写测试程序,load不成功,但先load一下其它dll(与它没关系的)成功,然后load它好像可以成功。此dll是原来一直在用的,现我把它分了一部分独立作为它的下一级dll,与上面的接口完全没有改变。跟踪发现,CApp的构造函数都没有被调用。而新分出去的dll我测试过可以正确load。请帮忙分析一下可能什么原因,谢谢!!
解决方案 »
- 各位大哥,MFC中如何让picture控件上的坐标原点在控件矩形框的左下角,x轴方向向右,y轴方向向上???急求
- client端中断后仍可以自动连接server
- 异常: 0xC0000005: 读取位置 0x00d0ce28 时发生访问冲突的问题
- tcp缓冲区到底是怎么回事?它在socket编程中的作用是什么呢?
- 怎样将正常的矩形,转换成具有立体效果的图
- 一个VC问题~
- 做过生物信号处理的请进
- 一个有趣的问题,百思不得其解
- 菜鸟请教两个问题
- 如何使用命令行
- 请教各位opengl同仁:有谁写过nurbs曲面拟合中利用曲面上测得的形值点反求曲面控制点的程序,拿出来给兄弟参看参考!
- 本人准备在南京注册一个科技型公司,借您的好运,帮我取个公司名称,多谢!
DLL是不能被装入到内存中的。
看看你的dll的InitInstance
BOOL CHookdllApp::InitInstance ()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
hins=AfxGetInstanceHandle();
return TRUE;
}
文件名我校对了n多遍,也换过了地方,肯定没错;问题是根本就没进入InitInstance()函数,连构造函数CSpiApp()都没有进入。load不成功的表现为:
HINSTANCE hDevModuleDll = LoadLibrary("d:\\Spi.DLL");
DWORD dwError=GetLastError();结果:
hDevModuleDll ==0;
dwError ==126;意义为:“找不到指定的模块。”
我的文件spi.dll,用静态加载的方法使用了fw.dll,我把它们放到同一目录下,如D:\,
调用spi.dll的文件则在另一目录下,1. 直接使用文件名,load不成功:
HINSTANCE hDevModuleDll = LoadLibrary("d:\\Spi.DLL"); 2.但我先用打开文件对话框选择一下文件(相当于指定了一下目录),就load成功了,
CFileDialog dlg(TRUE);
if(dlg.DoModal()==IDOK)
{
HINSTANCE hDevModuleDll = LoadLibrary("d:\\Spi.DLL");
}3.我把fw.dll放到\system32下,使用第1条的方法,也能load成功。那现在的问题就变成了,我如何使spi.dll找到同一目录下的fw.dll?
LPCTSTR lpPathName // new directory name
);可以设置当前目录把当前目录设置成dll所在的目录然后再loadlibrary看看