说得太笼统。如果A.DLL需要调用B.DLL,则要看A是显示使用B还是隐式使用B。
如果A显示调用B,则A必须通过LoadLibrary的方式来加载B,但是这个过程不能在入口点函数中执行,否则系统会死锁,这个现象俗称DLL地狱。
如果A隐式调用B,则A在编码期间就必须通过引用B.LIB的方式编译,此时A可以直接调用B中的任何导出函数,因为A被加载时系统也会自动加载B并且重定位B中的所有导出符号位置。

解决方案 »

  1.   

    我试过用隐式调用...完全没问题
    是自己用C写的DLL
      

  2.   

    dll调用dll?windows操作系统到处是这样的例子。
    根本与exe调用dll没区别。
      

  3.   

    file->new->MFC AppWizard(dll)
    创建test工程在CTestApp theApp;后添加函数代码:如extern "C" __declspec(dllexport) int Add(int a, int b)
    {
    return a+b;
    }编译,生成调用:创建新工程test2
    1,把生成的test.dll, test.lib拷贝到test2目录下
    2,把test.lib添加到test2工程中:project->add to project->files->test.lib
    3,调用动态库函数前声明函数:extern "C" __declspec(dllimport) int Add(int a, int b);
    4:void CTest5Dlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    int x,y,z; y=13;
    x = 12; z=Add(x,y);}
      

  4.   

    Dll调Dll,与Exe调Dll没有什么区别!
      

  5.   

    本质上 DLL EXE 都是PE格式的文件,所有在函数导入和导出上是一样的
      

  6.   

    在一个DLL中通过LoadLibrary的方式来加载另外一个DLL,这个过程不能在入口点函数中执行,否则系统会死锁,这个现象俗称DLL地狱。
    用隐式调用吧
      

  7.   


    举个例子:
    HINSTANCE hInst = LoadLibrary(_T("RxDLL.DLL")); 
    if(hInst) 

         typedef BOOL (MYFUNC)(CString);//声明DLL中的函数原形
          MYFUNC* UninstallFont = (MYFUNC *)::GetProcAddress(hInst, _T("UninstallFont"));//获取该函数的入口地址
    UninstallFont(_T("xjlFont.fon"));//调用函数

    }
    FreeLibrary(hInst);//必须和LoadLibrary搭配没想到这个帖子都一年!楼主这次可以揭帖了吧。
      

  8.   

    一模一样。我在bho中也同样调用。loadlibrary
      

  9.   

    在dll源文件里的所有声明前都加上__declspec(dllexport),用dll选项编译连接,会有个与生成的dll同名的lib,然后调用这个lib就行了
      

  10.   

    和EXE没有任何的区别,就是隐式和显式的区别罢了
      

  11.   

    真的没什么区别,只是释放DLL的时候必须把握好.
      

  12.   

    Delphi里exe直接调用dll和dll调用dll有些不同,郁闷死了。
      

  13.   

    如果您在exe中调用过的话,在dll中也就是那样的