【发布时间】:2010-05-26 16:33:03
【问题描述】:
还有一个与我类似的问题,但我想收集一些细节:
我想创建一个从非托管代码调用的 DLL。当在 DLL 中调用非托管函数时,我想收集信息并以某种形式显示出来。
我想做的是,当调用 DllMain() 时,原因是 DLL_PROCESS_ATTACH,我想实例化一个表单。此表单应在单独的线程上运行。当我的 DLL 中的函数 FOO() 被调用时,我想从 FOO() 中获取信息,将其发送到表单进行渲染。
所以,更具体地说:
i) 什么是创建 DLL 项目并能够让在设计器中创建的 Windows 窗体可用于 DLL 的正确方法?
ii) 为这个表单提供自己的线程和消息处理循环的正确方法是什么?
iii) 如何将信息从非托管 DLL 函数分派到表单,或者可以更新其自身状态和表单的托管类?
DLL 内部的表单有点像一个“监视器”,用于传入和传出 DLL 的数据,因此我可以跟踪错误/错误,但不会更改可用 DLL 函数的核心功能。
【问题讨论】:
-
哦,我是用 C++/CLI 做的。
标签: winforms dll winapi c++-cli unmanaged