8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

对于基于 MFC 的应用程序,使用 DLL 中的 COM 对象与使用 exe 中的 COM 对象的区别

OoDeLally 2月前

38 0

我一直在开发一款与 SDK 交互的软件,该 SDK 与 COM 对象(外部设备)通信。此 SDK 需要 MFC 对话框,并且需要窗口句柄才能工作...

我一直在开发一款与 SDK 交互的软件,该 SDK 与 COM 对象(外部设备)通信。此 SDK 需要 MFC 对话框和窗口句柄才能工作。

这就是问题所在。我让它在 MFC 中以 exe 的形式完美运行,并且它能够正常连接到 COM 对象。但是,当我将其编译为 DLL 并从另一个控制台项目加载该 DLL 时,SDK 会在一个函数上停滞(我猜是 COM 对象存在问题)。请注意,MFC 对话框和界面仍然正常工作。

我无法访问 SDK 的代码,但是从概念的角度来看,使用 MFC 应用程序加载 DLL 与运行会导致此问题的 exe 有何不同?

据我所知,两者之间应该没有什么太大的区别。我还在调用 dll 的控制台应用程序中启用了 MFC

帖子版权声明 1、本帖标题:对于基于 MFC 的应用程序,使用 DLL 中的 COM 对象与使用 exe 中的 COM 对象的区别
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由OoDeLally在本站《windows》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @SimonMourier 此外,对 SDK 和 COM 的所有调用都在同一函数中,而我对应用程序内的线程没有做任何不同的事情。有什么方法可以让它的行为与我从 exe 运行它时一样吗?

  • @SimonMourier 非常感谢!设置使用的是常规 MFC 应用程序,但在 InitDialog 函数中,在为对话框初始化任何内容后,它会调用一个函数来建立与设备的连接。这一切都是在加载 DLL 时触发的。我如何确保消息能够通过

  • 如果您周围有一个窗口和/或 STA 绑定的 COM 对象(即:在 STA 线程上创建)或两者兼而有之(STA 通信通过窗口消息工作,UI 也通过窗口消息工作),那么您必须为每个 STA 线程泵送窗口消息。如果不这样做,症状通常是挂起/停滞。如果没有更多细节,很难说得更多。

返回
作者最近主题: