请教个小问题。exe怎么传递类指针给DLL,DLL要调用exe里的函数

skyddr666 2016-02-12 10:20:42
exe先加载DLL,然后呢?
DLL里面要声明exe的函数名称?我不懂,具体怎么做???

请写一个例子给我,谢谢了
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2016-02-15
  • 打赏
  • 举报
回复
DLL接口中定义一个回调函数,该回调函数的实现由exe提供。
danscort2000 2016-02-15
  • 打赏
  • 举报
回复
void * * 这个不可以吗?
sinat_26014465 2016-02-14
  • 打赏
  • 举报
回复
就是回调函数 建立一个dll叫test。在这个函数下面加的 BOOL CTestdllApp::InitInstance() { if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } return TRUE; } void Test() { ::MessageBoxA(NULL,"Test","Test",NULL); } 这个就是例子 void TestShowDlgCallBack(CALLBACKFUNA pfunA,CALLBACKFUNB pfunB,LPVOID pVoid) { CDlg1 dlg; dlg.SetParam(CDlg1::FunationA,CDlg1::FunationB,pVoid); dlg.DoModal(); } 在头文件上面加 __declspec(dllexport) void Test(); __declspec(dllexport) void TestShowDlgCallBack(CALLBACKFUNA pfunA,CALLBACKFUNB pfunB,LPVOID pVoid); 这个就是dll里面的函数了; ///////////////////////////////////////////////////////////////////////////// // CTestdllApp // See Testdll.cpp for the implementation of this class // class CTestdllApp : public CWinApp dll完成之后 在主程序中这样调用 HINSTANCE hDll; hDll=LoadLibrary(_T("testDll.dll")); lpTestFun TestShowDlgCallBack; TestShowDlgCallBack=(lpTestFun)GetProcAddress(hDll,"TestShowDlgCallBack"); if(TestShowDlgCallBack!=NULL) { TestShowDlgCallBack(); } FreeLibrary(hDll); 你的明白???
void_main_void 2016-02-13
  • 打赏
  • 举报
回复
引用 5 楼 skyddr666 的回复:
[quote=引用 4 楼 void_main_void 的回复:] 首先要在DLL中包含需要传递类的定义和实现。 然后DLL导出函数参数为 Export(Class* pThis); 然后DLL中就能直接 pThis->XXXX了
看不太懂,麻烦打具体点。你说的DLL也要定义和实现和exe一样的。那么我还有必要这样吗 应该是dll之要定义,不用实现,对吧?[/quote] DLL中调用的类也是需要实现的吧。必进DLL和EXE都是独立的模块,你从EXE中传递this到DLL拿到的仅仅是类的成员数据。 但是你的DLL你不实现类你怎么调用对应类的函数呢。 你自己尝试一下就清楚了。。
skyddr666 2016-02-13
  • 打赏
  • 举报
回复
引用 4 楼 void_main_void 的回复:
首先要在DLL中包含需要传递类的定义和实现。 然后DLL导出函数参数为 Export(Class* pThis); 然后DLL中就能直接 pThis->XXXX了
看不太懂,麻烦打具体点。你说的DLL也要定义和实现和exe一样的。那么我还有必要这样吗 应该是dll之要定义,不用实现,对吧?
void_main_void 2016-02-13
  • 打赏
  • 举报
回复
首先要在DLL中包含需要传递类的定义和实现。 然后DLL导出函数参数为 Export(Class* pThis); 然后DLL中就能直接 pThis->XXXX了
skyddr666 2016-02-13
  • 打赏
  • 举报
回复
在线等!~!!!!!!!!
skyddr666 2016-02-12
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
传递指针做dll函数参数。dll中调用方法
请给打个例子,谢谢了,
oyljerry 2016-02-12
  • 打赏
  • 举报
回复
传递指针做dll函数参数。dll中调用方法

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧