如何运行 能直接运行的有两种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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)