程序怎么找不到DLL?
调试程序调用dll的代码如下:我写在了按钮事件clicked里
hInstance = LoadLibrary("F:\\c++workroom\\DLLTEST\\Debug\\DLLTEST.dll");
if(hInstance==NULL){
MessageBox("hInstance is NULL","fuck",MB_OK);
}
else{
VERIFY(hProc = GetProcAddress(hInstance,"DoSomething"));
(*hProc)();
}
可保证F:\\c++workroom\\DLLTEST\\Debug\\DLLTEST.dll存在。
但是得到的hInstance一直为NULL
怎么回事?我已经指明了dll文件存在的绝对路径了呀?
后来我把dll文件放到了exe的目录下,System32下,还是这样。why??

解决方案 »

  1.   


    对了。
    声明:extern "C"  void _declspec(dllexport) DoSomething();
    dll中的函数定义:
    void _declspec(dllexport) DoSomething()
    {
    MessageBox(NULL,"Dll is remoted","hehe",MB_OK);
    }
    看参考,说:写了_declspec(dllexport) 就不用写DEF文件了。
      

  2.   

    我用了,返回值 == 0 (The operation completed successfully.)但是我真的找不到dll呀?疯了!
      

  3.   

    把dll考到你的程序的目录中或windows\system中试试,把F:\\c++workroom\\DLLTEST\\Debug\\都去掉。
      

  4.   

    用Dependence Walker看看你的DLL时候是否合法。
      

  5.   

    在Depends里,函数显示在右下的那个子窗口里。前面有个e。不知道合理么?
    呵呵,我是老菜。
    又重新做了一个Dll,就可以了。两个代码一样呀!!!
    怪呀!
      

  6.   

    是你的路径有问题啊!把长文件名改了试试F:\\c++workroom\\DLLTEST\\Debug\\DLLTEST.dll