如何在C ++中从控制台应用程序显示MFC对话框?

alex555

我有一个简单的MFC对话框。

class CMessageBoxWithCustomTextDlg : public CDialogEx
{
// Construction
public:
    CMessageBoxWithCustomTextDlg(CWnd* pParent = NULL); // standard constructor

    __declspec(dllexport) void SetData(std::string& data);

// Dialog Data
    enum { IDD = IDD_MESSAGEBOXWITHCUSTOMTEXT_DIALOG };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support


// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
public:
  afx_msg void OnBnClickedShowMessagebox();
};

我想将其导出为dll并从一个简单的控制台应用程序中调用它。是否有可能?

用户名

有可能的; 这是我的操作方式:对于您的控制台应用程序,它就是这样:

#include <Windows.h>

typedef void (*EntryFunc)();
int main()
{
   HMODULE hMod = LoadLibrary(L"MFCDll.dll");

   EntryFunc func = (EntryFunc)GetProcAddress(hMod, "entrypoint");
   func();
}

该DLL的名称为MFCDll.dll,并且在该DLL中有一个称为入口点的导出函数。

对于DLL,我创建了一个新的MFC DLL项目。除对话框代码和资源中的对话框外,还添加以下代码:

extern "C" __declspec(dllexport) void entrypoint()
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
   CMessageBoxWithCustomTextDlg dlg;
   dlg.DoModal();
}

控制台程序将加载DLL,调用DLL,并显示对话框。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用控制台应用程序获取输出并将其显示到MFC对话框中StaticText

Delphi控制台应用程序:如何在消息对话框中添加OnHelp?

如何从带有Windows 7样式按钮的控制台应用程序中显示对话框?

如何在控制台应用程序 .NET Core (C#) 中创建一个打开文件对话框?

如何在 MFC Dialog 应用程序中插入更多对话框?

如何在c ++ / CLI应用程序中显示控制台?

如何在 C# 控制台应用程序中显示模型列表

如何在应用程序中每三天显示一次对话框

如何在应用程序android中的任何活动之上显示警报对话框

如何在表单应用程序中显示控制台输出/窗口?

如何在Windows下使用cmake在qt GUI应用程序中显示控制台

如何在基于对话框的MFC应用程序上启用滚动?

如何显示/隐藏控制台窗口应用程序?

如何在C#控制台应用程序中捕获ctrl-c(SIGINT)

msys2如何显示非控制台应用程序的控制台输出?

显示/隐藏C#控制台应用程序的控制台窗口

如何在JVM控制台应用程序中处理^ C?

如何在C#的控制台应用程序中设置启动对象?

如何在控制台应用程序C#中访问SolidBrush

如何在C#Windows控制台应用程序中更新当前行?

如何在控制台应用程序C#中打印值

如何在控制台应用程序中同时写多个位置?C#

如何在 C++/WinRT 控制台应用程序中包含系统

C# 如何在控制台应用程序中制作水平条形图

如何在C#控制台应用程序中过滤文件类型,例如.exe

在C#控制台应用程序中显示SQL数据库中的值

如何在.NET控制台应用程序中获取应用程序的路径?

如何使用Delphi在控制台应用程序中显示进度条?

如何使用 React 在浏览器中显示控制台应用程序?