我们有一个可以受益于 GUI 的命令行应用程序。我们想添加一些绘图功能,并确定了一个使用 MFC 的绘图库。最初我们开发了一个单独的应用程序,但我们更愿意在同一个进程空间中使用 GUI。
我在想可能是 MFC DLL 中的 GUI 可以托管在生产应用程序和测试应用程序中。
问题是:
- 将 MFC GUI 添加到 win32 命令行应用程序需要哪些步骤
- 是否可以在 MFC DLL 中制作 GUI,如何制作? (以便不同的应用程序可以重用相同的 GUI)
编辑
我应该补充一点,这是一个非托管应用程序(并且需要保持这种状态 - 它需要高性能,广泛使用模板、boost、自定义分配器、内部开发的线程序列化等)
结果:
Nick D 的回答非常有效 - especially the follow-up link in his comment with the details about a regular MFC DLL .
请注意,我们将在下一次迭代中使用 Qt。这次修改我们的构建环境并适应一个新的框架实在是太多了。
最佳答案
您可以在 dll 中调用/重用 GUI 代码。 (我什至在我的 C++ 项目中使用 Delphi 表单)
一个非常简单的dll例子:
// The DLL exports foo() function
void foo()
{
AFX_MANAGE_STATE( AfxGetStaticModuleState() );
CDlgFoo dlg;
dlg.DoModal();
}
在控制台程序中,您将拥有如下代码:
h = ::LoadLibrary( "my.dll" );
::DisableThreadLibraryCalls( h );
pfoo = (foo_type*)::GetProcAddress( h, (const char*)1 );
if ( pfoo ) pfoo();
关于c++ - 将 MFC gui 添加到 Win32 C++ 命令行应用程序的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936382/