MFC DLL的GUI工具?

Posted

技术标签:

【中文标题】MFC DLL的GUI工具?【英文标题】:GUI harness for MFC DLL? 【发布时间】:2011-10-25 01:44:05 【问题描述】:

我有一个基于 CWinApp 的应用程序,它构建为 DLL,由另一个 3rd 方应用程序作为插件加载。我的应用程序公开了一个导出的 StartPlugin() 方法,该方法创建了一个 CDialog 派生对话框。这个导出的函数被第 3 方应用程序以某种方式调用。我希望能够在 3rd 方应用程序之外运行我的 DLL,这样我就可以测试和玩 UI 的东西(不用于单元测试)。

如何创建允许我运行我的 dll 代码的测试工具?我不确定主应用程序如何启动我的 dll 插件,但我推测它正在创建一个用户界面线程?那么我是否只需要创建一个简单的 exe,它可以以某种方式加载我的 dll 并创建一个新线程或其他东西。任何指向解释此类内容的教程或文章的链接。

【问题讨论】:

令我惊讶的是,如果您有一个 MFC DLL,但您自己还不知道如何执行此操作。您已经知道如何启动您的插件,您可以通过调用 StartPlugin 来完成。 【参考方案1】:

使用 Visual Studio 向导创建一个 MFC 应用程序,可能基于 Dialog。在对话框上有一个按钮来运行你的插件。在按钮代码中使用您的 DLL 名称执行 LoadLibrary,然后调用 GetProcAddress 以获取指向 StartPlugin 函数的指针。然后就可以调用 StartPlugin。

【讨论】:

发现这篇文章暗示了同样的事情:How to load a dynamic link library (DLL) into a Microsoft Visual C++ 6.0 project我要试一试并报告。 这行得通。现在我需要将我的应用程序与第 3 方应用程序的依赖关系解耦。

以上是关于MFC DLL的GUI工具?的主要内容,如果未能解决你的问题,请参考以下文章

Qt/MFC 迁移框架工具:正确退出 DLL?

如何在单元测试中模拟基于 MFC 的 GUI 功能的失败?

MFC 之类的易于使用的 Linux 工具

将 MFC Gui 应用程序包装到 .NET 互操作的 DLL(或其他东西)中

如何判断应用程序是不是为 MFC 程序?

基于 Wish 的工具(git-gui、gitk)在 macOS Monterey 上显示损坏/黑色的 UI