1. 程式人生 > >MFC中如何將兩個獨立的程式合併為一個程式(障眼法)

MFC中如何將兩個獨立的程式合併為一個程式(障眼法)

今天一個同學叫我幫忙解決一個關於MFC的問題,問題為:“將兩個獨立的MFC程式合併為一個程式 ”。

當然了,我用的是障眼法。

(1)下面先來看看具體情況:程式A和程式B分別是兩個獨立的工程檔案。



(2)首先我在程式B的工程檔案裡面,新增一個對話方塊,設計一個主介面:


(3)然後對兩個按鈕新增相應事件:

“紋理特徵提取”按鈕:

void CMAINDIALOG::OnButton2() 
{
	// TODO: Add your control notification handler code here
	ShellExecute(NULL,"open","Texture.exe",NULL,NULL,SW_SHOWNORMAL);
}

“影象檢索”按鈕:
void CMAINDIALOG::OnButton1() 
{
	// TODO: Add your control notification handler code here
	CXbwDlg  dlg;
	dlg.DoModal();
}

(4)再去修改工程B裡面的InitInstance()函式,例項化我們自己定義的主視窗物件:(讓程式一執行,便彈出我們自己定義的視窗)

	CMAINDIALOG main_dlg;
	main_dlg.DoModal();

(5)在將另外一個程式生成release版本:

此時,執行程式,便將兩個獨立的程式合二為一了。但是這其實只是個障眼法,同樣有兩個可執行檔案,只是在其中一個程式裡添加了另外一個程式開啟的快捷方式而已。

(6)效果如下:


拓展:

ShellExecute的功能是執行一個外部程式(或者是開啟一個已註冊的檔案、開啟一個目錄、列印一個檔案等等),並對外部程式有一定的控制。

函式原型:


關於此函式的具體使用方法,大家可以參考微軟的msdn。

注:原例子下載地址

點選下載:  http://download.csdn.net/detail/rl529014/9525960