WINCE6: MFC支持

 

  1. CE6 其實支持MFC,但生成SDK,沒有相關的選項, 要自己把相關的庫,文件加進去.

 

 

 

 

方法2:

 

 

 

 

開發平臺由Windows CE.NET轉到Windows Embedded CE 6.0,所以操作系統要重新定製。因爲之前的程序幾乎清一色的都是基於MFC的,所以新系統中要加入MFC的支持。找遍Application and Service Development下的Catalog Item竟然找不到MFC的影子。查看文檔Windows Embedded CE Features找到Application and Service Development Catalog Item中對MFC的說明,Catalog Item列表項中有對MFC的說明,也有Sysgen變量SYSGEN_MFC,在Description中最後有這樣一句:This Catalog item is only available in display-based OS designs.

我想,我們開發操作系統和的應用程序肯定是有圖形界面顯示的,既然有這句話應該能把MFC加進去。我開始的做法是自己手動設置SYSGEN_MFC變量,編譯後NK.bin大小沒有變化,啓動後看不到MFC庫文件。看來這個方法是行不通的。

要加入對MFC的支持,只是把MFC的動態鏈接庫加入到操作系統鏡像文件nk.bin中即可。想到這點,解決的方法就簡單了。在VS2005安裝目錄下可以找到Windows CE的MFC DLL。

我的做法是:

1:在VS2005目錄下找到MFC DLL。在我的電腦上目錄是D:/Program Files/Microsoft Visual Studio 8/VC/ce/Dll/x86。因爲我用的平臺是基於CEPC,所以選擇x86目錄。

2:複製MFC DLL到%WINCE_ROOT%/OSDesigns/MFC目錄。將x86下的所有dll文件複製到MFC目錄,MFC目錄是自己創建的目錄,也可以是其他名稱。不是所有的dll文件都會用到,只是爲了省事。

3:設置Custom Build Actions。打開平臺的Property Pages,在Configration Properties的Custom Build Pages 的tab頁中,將Build step下拉框中選中Pre-Make Image。點擊下面的New...按鈕,在彈出的對話框中輸入copy %_WINCEROOT%/OSDesigns/MFC/ %_FLATRELEASEDIR%/。這裏輸入的是DOS命令,命令中可以使用Windows CE中設置的環境變量。上面的命令是把MFC目錄下的dll文件拷貝到%_FLATRELEASEDIR%目錄中,同樣地,不是所有的dll文件都會用到。

4:修改配置文件。在Project.bib文件中把下面幾句加進去,

    MFC80U.DLL        $(_FLATRELEASEDIR)/MFC80U.DLL            NK    SH

    MFC80UD.DLL   $(_FLATRELEASEDIR)/MFC80UD.DLL        NK    SH

    MFC80ENU.DLL    $(_FLATRELEASEDIR)/MFC80ENU.DLL       NK    SH

    atl80.dll      $(_FLATRELEASEDIR)/atl80.dll        NK    SH

    msvcr80.dll $(_FLATRELEASEDIR)/msvcr80.dll           NK    SH

    msvcr80D.dll      $(_FLATRELEASEDIR)/msvcr80D.dll            NK    SH

如果想要在以後的操作系統設計中都用到這樣的配置,可以加到Platform.bib文件中。

MFC80ENU.DLL是英文資源文件,根據你所使用的語言選擇不同的資源DLL文件。調試版DLL也可不必加入到操作系統鏡像中,根據需要可以做具體修改。

5:構建。得到支持MFC的Windows Embedded CE6.0平臺,運行後在/Windows目錄下可以看到MFC的幾個DLL文件。

如果已經創建了nk.bin文件,不想再花半個小時從頭創建的話,可以把用到的MFC DLL文件直接拷貝到%_FLATRELEASEDIR%/下。然後修改Project.bib文件,找到Project.bib,將其拷貝到%_FLATRELEASEDIR%/下。在VS2005的Build菜單中,點擊Open Release Directory in Build Window,打開命令行窗口,輸入makeimg命令,創建nk.bin。這個過程只要兩三分鐘的時間。

寫了一個基於MFC的對話框程序,設置爲動態鏈接MFC DLL,在系統上運行正常。成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章