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