主程序使用动态连接DLL的方法,如下
typedef void (*PFNTEST)(void);PFNTEST pFunTest;
HINSTANCE hDll = LoadLibrary(...);
pFunTest = (PFNTEST)GetProcAddress(hDll,"Test");现在在 DLL 中需要使用一些在主程序中的数据或者调用主程序的函数,不知道应该怎么来做?是把 需要使用的 数据或者函数,放到另一个DLL里来做么?觉得这样做太麻烦了。
有可以在 DLL 里,直接使用主程序数据或者调用主程序的函数(回调函数?)的方法么?
另如果可以用回调函数技术,对参数类型是不是有限制,能不能使用 MFC 的类,还是只能用 C++ 基本数据类型?

解决方案 »

  1.   

    作为参数传递给需要的DLL函数就可以了!
      

  2.   

    http://www.codeguru.com/Cpp/W-P/dll/article.php/c3649/
    说明了DLL中如何调用EXE中的函数。
      

  3.   

    typedef void (*PSETFUN)(...);
    PSETFUN pFunTest;
    HINSTANCE hDll = LoadLibrary(...);
    pSetFun = (PFNTEST)GetProcAddress(hDll,"Test");pSetFun( YourCallMainProFun );
      

  4.   

    楼上的,你说的是从其他程序调用dll的函数,不是楼主要的
      

  5.   

    DentistryDoctor(牙科医生) 
    你说的那个方法好像只能用在exe和dll在同一进程空间,如果dll被其他进程调用,如何使dll在其他进程对该exe的函数进行调用呢?
      

  6.   

    DentistryDoctor(牙科医生) 的可以满足楼主要求