在DLL中封装了一个Dlg,该Dlg可以读出一个数据。现在要求调用主程序中的处理函数,并将此数据做为参数传回。请高手能帮忙给一点解决的思路,最好是能有相关的代码。小弟不胜感激,先谢过。

解决方案 »

  1.   

    DLL一旦被应用程序调用,该DLL就会加载到调用应用程序的地址空间,在同一个地址空间中我想,访问同一个地址空间中的函数应该就像访问同一个程序中的函数一样,没有什么特别,只要找到那个函数所在的类的指针,通过该指针调用就可以了(个人意见,参考一下)一般来说都是将数据处理的部分封装在DLL中,由主程序调用。楼主的方法不太常见,所以只能提个建议!
      

  2.   

    多谢斑竹的第二段话,看了觉得收益不少。我对dll编程还是初学。有很多东西都不懂。谢过。
      

  3.   

    因为是这样的,dll中的dlg也有自己的界面。当触发dll中界面上的按钮的时候,要求调用主程序的函数来处理。
      

  4.   

    用消息通讯好了,不一定非要在DLL中调用那个函数的,发个消息给EXE要它执行所要的函数不一样吗?
      

  5.   

    AfxGetApp()
    得到主应用程序指针,剩下的事还不好办吗
      

  6.   

    现在找到了一种办法,使用隐式调用,将dll的lib和H文件加到工程里面。在主程序里面继承出dll里面的类,然后就直接使用。大家觉得这样的方法怎么样?
      

  7.   

    使用 yjgx007(谁是高手) (
    的方法是可以的!!
      

  8.   

    你可以在DLL界面中向主程序界面发送消息(SendMessage)通知主程序,我认为DLL调用主程序函数的确不是一种很好的方法。