如何在主程序和DLL 之间传递参数

yangw79 2004-07-28 02:31:45
比如我在我DLL 写了个函数 YANG() 里面使用了 MESSAGEBOX() 但我想让主应用程序调用YANG()的时候就把自己的主窗口传递给这个MESSAGEBOX 使这个MESSAGEBOX的主窗口为我设定的窗口

我的问题在于

我把YANG()加了个参数(CWND *)

但它说没申明 我就把它需要的头文件AFXWIN。H加入 还是说什么已经申明 我糊涂了

哪位能给个完整的代码(局部的调用过程的代码) 谢谢了
...全文
242 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangw79 2004-08-03
  • 打赏
  • 举报
回复
还是很糊涂 能不能给点完整的 比如在EXE里面什么地方写下函数 在DLL里面的什么地方写函数指针 我是个新手不太清楚

如果给了完整一点的例子 我可以把分加多
beijingshizi 2004-08-02
  • 打赏
  • 举报
回复
//要调用的函数
BOOL WINAPI CMaxPlatApp::Work_Out( CString type, CString tel, CString para)
{
..................
}

//动态库的函数
typedef BOOL (*SETCALLBACK)( CString dsd , long query , CString path , OUTDIAL_CALLBACK call ) ;
SETCALLBACK function_setpara ;

//要调用的函数指针
typedef BOOL (WINAPI *OUT_CALLBACK)( int type , CString tel , CString para ); //供动态链接库使用的函数指针

//在这儿传入(最后一个参数)
function_setpara ( "dsn=, 10000 , "" , (OUTDIAL_CALLBACK) Work_Trunk_OutDial );

在动态库里面定义一个跟上面一样的函数指针,然后直接执行就可以了
yangw79 2004-08-02
  • 打赏
  • 举报
回复
我的意思是说 如果我在EXE里面写了个函数 如何给DLL用 比如DLL写的函数是通过EXPORTS发布的

这样EXE 可以用LOADLIBRATY 去得到 但DLL 如何得到EXE里面的呢?
beijingshizi 2004-08-02
  • 打赏
  • 举报
回复
不是特别清楚你的用法,如果你是为了在窗口里面显示东西又不想传窗口句柄的话:

回调函数 ,dll初始化的时候把函数指针给他。

然后dll直接调用该函数,在该函数里面完成对窗口的操作。

这样取窗口句柄就在你的工程里面。
yangw79 2004-08-02
  • 打赏
  • 举报
回复
beijingshizi(北京石子)(★★★★★) 如何做 具体点 如何把EXE的函数发布给DLL
syy64 2004-07-28
  • 打赏
  • 举报
回复
你是不是把它的参数没弄对呀。
蒋晟 2004-07-28
  • 打赏
  • 举报
回复
只有MFC扩展DLL中导出的函数可以传递MFC类作为参数。你的问题,我想用HWND做参数就可以了
rfa 2004-07-28
  • 打赏
  • 举报
回复
楼主不要直接写CWnd*,改成void*,然后在函数内部再将指针类型转换为CWnd*就可。
beijingshizi 2004-07-28
  • 打赏
  • 举报
回复
参数类型的问题,可以加头文件,应该是windows.h

调用的问题,可以从exe传入一个函数指针给dll,这样就不用传输数据。
whale 2004-07-28
  • 打赏
  • 举报
回复
估计是你的DLL工程里面已经include了Windows.h吧。如果你的DLL里面用不到MFC的函数,可以把你的参数改成HWND,用api的函数
yangw79 2004-07-28
  • 打赏
  • 举报
回复
什么意思啊 能不能清楚一点
beijingshizi 2004-07-28
  • 打赏
  • 举报
回复
回调函数

或者void *

15,471

社区成员

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

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