MFC开发的软件如何运行

MFC开发的软件如何运行,第1张

如何运行 能直接运行的有两种exe 带窗口的 和不带窗口的

一般来说 运行MFC的程序需要MFC的运行库 做安装程序的都知道 叫redistribution package,没有这个东西,你的程序不一定能在其他机器上运行。

静态编译的MFC程序可能不需要MFC的运行库。

先给你的程序添加一个类,像添加—GHh,然后双击主视图的按钮,跳到对应函数,

在代码中加入

GH dig;

digDoModal();

要在文件顶上面添加  #include "QDh"

就可以打开了

MFC注入DLL显示窗口的bug主要是由于DLL的加载顺序所导致的,当我们注入DLL时,DLL会把自己的资源加载到MFC程序中,但是由于加载顺序的问题,DLL中的资源可能会覆盖MFC程序中的资源,从而导致程序出现显示窗口的bug。为了解决这个问题,我们可以在MFC程序中使用AfxSetResourceHandle函数来设置资源句柄,以确保DLL中的资源不会覆盖MFC程序中的资源。

给你个最最简单的MFC程序。你可以打开2005 新建win32 程序 建立空项目 然后编写如下代码//hellocpp

#include <afxwinh>

// 说明应用程序类

class CHelloApp : public CWinApp

{

  public:

 virtual BOOL InitInstance();

};

// 建立应用程序类的实例

CHelloApp HelloApp;

// 说明主窗口类

class CHelloWindow : public CFrameWnd

{

CStatic cs;

public:

CHelloWindow();

};

// 每当应用程序首次执行时都要调用的初始化函数

BOOL CHelloApp::InitInstance()

{

m_pMainWnd = new CHelloWindow();

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return TRUE;

}

// 窗口类的构造函数

CHelloWindow::CHelloWindow()

{

// 建立窗口本身

Create(NULL,

  "Hello World!",

  WS_OVERLAPPEDWINDOW,

  CRect(0,0,200,200));

// 建立静态标签

cs = new CStatic();

cs->Create("hello world",

  WS_CHILD|WS_VISIBLE|SS_CENTER,

  CRect(50,80,150,150),

  this);

} 这样就出来了。

>

可能原因:

1 这个错误一般都是由于缺少必要的动态库引起的。如果想直接拷贝exe文件到目标机器上,目标机器上需要安装Visual C++的动态库。具体细节,请参考MSND的文章:

Preparing a Test Machine To Run a Debug Executable

>

以上就是关于MFC开发的软件如何运行全部的内容,包括:MFC开发的软件如何运行、有两个MFC程序,怎么从一个启动另一个,加一个按钮,点击按钮启动另一个、mfc注入dll显示窗口bug等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10092712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存