<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    C++庫討論

     

    開始之前,確認(rèn):
    1.安裝完成Visual Studio 2005,確認(rèn)安裝的時(shí)候選中了Unicode MFC version以及CRT source code(默認(rèn)是選中的,如果你沒有改動(dòng)的話那么應(yīng)該是裝上了的);
    2.找到我們要?jiǎng)邮中g(shù)的目錄,在$(Program Files)\Microsoft Visual Studio 8\VC 下,找出ATLMFC\SRC和CRT\SRC兩個(gè)文件夾;
    3.(可選)安裝Platform SDK,復(fù)制最新版本的unicows.lib放到VC\PlatformSDK\LIB中。VC8自帶有unicows.lib,所以這一步可以不做。
    一:編譯MSLU的CRT庫8.0
    首先請(qǐng)備份一下VC\Lib、VC\CRT\SRC、VC\ATLMFC\SRC、VC\ATLMFC\lib這四個(gè)文件夾(包括子文件夾),假如不小心改錯(cuò)的話可以直接從備份的文件夾里復(fù)制文件出來。
    CRT庫需要編譯的是這6個(gè)DLL:MSVCR80.DLL、MSVCP80.DLL、MSVCM80.DLL、MSVCR80D.DLL、MSVCP80D.DLL、MSVCM80D.DLL。為方便操作,我們把將要輸出的MSLU的CRT庫文件改為別的名字以免和原來的混淆,分別改成:MSLUR80.DLL、MSLUR80D.DLL、MSLUP80.DLL、MSLUP80D.DLL、MSLUM80.DLL、MSLUM80D.DLL(如果你改成別的名字的話,后面的操作請(qǐng)做相應(yīng)的改正)。
    (1)先把SRC目錄下的相應(yīng)文件改名:
    copy _SAMPLE_.RC MSLUR80.RC
    copy SAMPLE_P.RC MSLUP80.RC
    copy SAMPLE_M.RC MSLUM80.RC
    copy SAMPLE_P.DEF MSLUP80.DEF
    copy SAMPLD_P.DEF MSLUP80D.DEF
    copy SAMPLE_M.DEF MSLUM80.DEF
    copy SAMPLD_M.DEF MSLUM80D.DEF
    copy SAMPLE_U.DEF MSLUU80.DEF
    copy SAMPLD_U.DEF MSLUU80D.DEF
    copy Intel\_SAMPLE_.DEF Intel\MSLUR80.DEF
    copy Intel\_SAMPLD_.DEF Intel\MSLUR80D.DEF
    (2)打開MSLUP80.DEF,修改LIBRARY SAMPLE_P為L(zhǎng)IBRARY MSLUP80;
    打開MSLUP80D.DEF,修改LIBRARY SAMPLD_P為L(zhǎng)IBRARY MSLUP80D;
    打開MSLUM80.DEF,修改LIBRARY SAMPLE_M為L(zhǎng)IBRARY MSLUM80;
    打開MSLUM80D.DEF,修改LIBRARY SAMPLD_M為L(zhǎng)IBRARY MSLUM80D;
    打開MSLUU80.DEF,修改LIBRARY SAMPLE_M為L(zhǎng)IBRARY MSLUM80;(注意此處不是MSLUU80而是MSLUM80)
    打開MSLUU80D.DEF,修改LIBRARY SAMPLD_M為L(zhǎng)IBRARY MSLUM80D;(注意此處不是MSLUU80D而是MSLUM80D)
    打開\Intel\MSLUR80.DEF,修改LIBRARY _SAMPLE_為L(zhǎng)IBRARY MSLUR80;
    打開\Intel\MSLUR80D.DEF,修改LIBRARY _SAMPLD_為L(zhǎng)IBRARY MSLUR80D;
    (3)打開SRC\makefile文件,修改開頭部分為:
    RETAIL_DLL_NAME=MSLUR80
    RETAIL_DLL_NAME=MSLUR80
    RETAIL_LIB_NAME=MSLUR80
    RETAIL_DLLCPP_NAME=MSLUP80
    RETAIL_LIBCPP_NAME=MSLUP80
    RETAIL_DLLMIXED_NAME=MSLUM80
    RETAIL_LIBMIXED_NAME=MSLUM80
    RETAIL_LIBPURE_NAME=MSLUU80
    RETAIL_PT_LIBMIXED_NAME=MLSUPTM
    RETAIL_PT_LIBPURE_NAME=MLSUPTU
    DEBUG_DLL_NAME=MSLUR80D
    DEBUG_LIB_NAME=MSLUR80D
    DEBUG_DLLCPP_NAME=MSLUP80D
    DEBUG_LIBCPP_NAME=MSLUP80D
    DEBUG_DLLMIXED_NAME=MSLUM80D
    DEBUG_LIBMIXED_NAME=MSLUM80D
    DEBUG_LIBPURE_NAME=MSLUU80D
    DEBUG_PT_LIBMIXED_NAME=MLSUPTMD
    DEBUG_PT_LIBPURE_NAME=MLSUPTUD
    RC_NAME=MSLUR80
    RCCPP_NAME=MSLUP80
    RCMIXED_NAME=MSLUM80
    54行處修改VCTOOLS,注意自己的VS2005安裝目錄,假如安裝到E:\SoftWare\Microsoft Visual Studio 8\下,則此處改為:
    VCTOOLS=E:\SoftWare\Microsoft Visual Studio 8\VC
    1779, 1841, 1905, 1940, 2037, 2105, 2139, 2230行的kernel32.lib,改為:unicows.lib kernel32.lib(一共8個(gè)不要改多了);
    (4)打開Visual Studio 2005 command prompt(從開始菜單或者是vc8的開發(fā)環(huán)境的菜單都可以啟動(dòng)),進(jìn)入到SRC目錄,輸入命令設(shè)置vctools,假如VS2005安裝在E:\SoftWare\Microsoft Visual Studio 8\下,則輸入:
    Set vctools=E:\SoftWare\Microsoft Visual Studio 8\VC
    完成后輸入bldnt啟動(dòng)SRC目錄下的bldnt.bat批處理文件編譯CRT庫。
    譯者:我編譯的時(shí)候出來好多warning,不管他最后還是編譯完成了。
    (5)編譯完成之后lib文件都放在SRC\BUILD\INTEL\目錄下,把文件名字改回來以便以前的程序可以鏈接,而且下面編譯MFC庫也需要。DLL文件不用改,新的lib文件知道該鏈接到誰那里。改名:
    copy MLSUPTM.LIB PTRUSTM.LIB
    copy MLSUPTMD.LIB PTRUSTMD.LIB
    copy MLSUPTU.LIB PTRUSTU.LIB
    copy MLSUPTUD.LIB PTRUSTUD.LIB
    copy MSLUR80.LIB MSVCRT.LIB
    copy MSLUR80D.LIB MSVCRTD.LIB
    copy MSLUP80.LIB MSVCPRT.LIB
    copy MSLUP80D.LIB MSVCPRTD.LIB
    copy MSLUM80.LIB MSVCMRT.LIB
    copy MSLUM80D.LIB MSVCMRTD.LIB
    copy MSLUU80.LIB MSVCURT.LIB
    copy MSLUU80D.LIB MSVCURTD.LIB
    (6)把改名后的lib文件復(fù)制到VC\LIB目錄下覆蓋原來的文件。
    (7)把步驟(4)、(5)、(6)再執(zhí)行一次來重建MSLUP80(D).DLL和靜態(tài)庫,以便他們能鏈接到我們自己的MSVCRT(D).LIB(指向我們的MSLUR80(D).DLL)。
    關(guān)掉VS2005 command prompt,因?yàn)榫幾gCRT庫的時(shí)候定義了許多環(huán)境變量,這些會(huì)使后面MFC庫的編譯出現(xiàn)錯(cuò)誤。
    6個(gè)新的DLL文件都在\VC\crt\src\build\intel下,把這6個(gè)文件復(fù)制到系統(tǒng)目錄下。
    二:編譯MSLU的MFC庫8.0 Unicode版本
    MFC庫需要編譯的是這4個(gè)DLL:
    MFC80U.DLL (Unicode Release)
    MFC80UD.DLL (Unicode Debug)
    MFCM80U.DLL (Mixed mode/Managed Unicode Release)
    MFCM80UD.DLL (Mixed mode/Managed Unicode Debug)。
    為方便操作,我們把將要輸出的MSLU的CRT庫文件改為別的名字以免和原來的混淆,分別改成:
    MFC80LU.DLL
    MFC80LUD.DLL
    MFCM80LU.DLL
    MFCM80LUD.DLL
    (如果你改成別的名字的話,后面的操作請(qǐng)做相應(yīng)的改正)。
    (1)打開VC\ATLMFC\SRC\MFC\MFCDLL.MAK,在274、307行的link @<<,后面插入一行變成:
     link @<<
    /nod:kernel32.lib /nod:advapi32.lib /nod:user32.lib /nod:gdi32.lib /nod:shell32.lib /nod:comdlg32.lib /nod:version.lib /nod:mpr.lib /nod:rasapi32.lib /nod:winmm.lib /nod:winspool.lib /nod:vfw32.lib /nod:secur32.lib /nod:oleacc.lib /nod:oledlg.lib /nod:sensapi.lib
    180行的
    LIBS=$(CRTDLL) kernel32.lib gdi32.lib msimg32.lib user32.lib uuid.lib daouuid.lib htmlhelp.lib shlwapi.lib $(PROFLIB)
    改為:
    LIBS=$(CRTDLL) unicows.lib kernel32.lib advapi32.lib comdlg32.lib shell32.lib oledlg.lib winspool.lib oleacc.lib gdi32.lib msimg32.lib user32.lib uuid.lib daouuid.lib htmlhelp.lib shlwapi.lib $(PROFLIB)
    (此處不同于原文。原文為:
    LIBS=$(CRTDLL) unicows.lib kernel32.lib gdi32.lib msimg32.lib user32.lib uuid.lib daouuid.lib htmlhelp.lib shlwapi.lib $(PROFLIB)
    譯者依照原文修改,編譯的時(shí)候出現(xiàn)了錯(cuò)誤,增加數(shù)個(gè)lib文件后編譯通過)
    (2)打開VC\ATLMFC\SRC\MFCM\MFCMDLL.MAK,在253、272行的link @<<,后面插入一行變成:
     link @<<
    /nod:kernel32.lib /nod:advapi32.lib /nod:user32.lib /nod:gdi32.lib /nod:shell32.lib /nod:comdlg32.lib /nod:version.lib /nod:mpr.lib /nod:rasapi32.lib /nod:winmm.lib /nod:winspool.lib /nod:vfw32.lib /nod:secur32.lib /nod:oleacc.lib /nod:oledlg.lib /nod:sensapi.lib
    215行的
    LIBS=$(CRTDLL) $(CRTMDLL) mscoree.lib kernel32.lib gdi32.lib msimg32.lib user32.lib \
    改為:
    LIBS=$(CRTDLL) $(CRTMDLL) mscoree.lib unicows.lib kernel32.lib advapi32.lib comdlg32.lib shell32.lib oledlg.lib winspool.lib mpr.lib oleacc.lib gdi32.lib msimg32.lib user32.lib \
    (此處原文為:
    LIBS=$(CRTDLL) $(CRTMDLL) mscoree.lib unicows.lib kernel32.lib gdi32.lib msimg32.lib user32.lib \
    其余說明同上)
    (3)打開\VC\atlmfc\src\mfcm\INTEL\mfcm80u.def 文件,把第10行的LIBRARY mfcm80u 改為:
    LIBRARY mfcm80Lu
    打開\VC\atlmfc\src\mfcm\INTEL\mfcm80ud.def文件,把第10行的LIBRARY mfcm80ud改為:
    LIBRARY mfcm80Lud
    (4)打開\VC\atlmfc\src\mfcm\wfrmcmd.cpp文件,251行的#error Following information required to build private version用//注釋掉或者直接把該行刪掉;253行的[assembly: AssemblyTitle("")];改為:
    [assembly: AssemblyTitle("mfcm80L")];
    (5)打開\VC\atlmfc\src\mfcm\interfaces\AssemblyInfo.cpp文件,78行的#error Following information required to build private version用//注釋掉或者直接把該行刪掉;85行的[assembly: AssemblyTitle("")];改為:
    [assembly: AssemblyTitle("mfcm80Lifaces")];
    (6)在\VC\atlmfc\src\下建立一個(gè)批處理文件:buildmfc.bat,內(nèi)容為:
    nmake -f atlmfc.mak MFC libname=MFC80L
    (7)打開Visual Studio 2005 command prompt,進(jìn)入目錄\VC\atlmfc\src\,輸入buildmfc執(zhí)行buildmfc.bat編譯MFC庫。
    編譯完成之后,在\VC\atlmfc\src\mfc\intel下有MFC80LU.DLL、MFC80LUD.DLL,在\VC\atlmfc\src\mfcm\INTEL下有MFCM80LU.DLL、MFCM80LUD.DLL,把這4個(gè)DLL文件復(fù)制到系統(tǒng)目錄下;在\VC\atlmfc\lib\INTEL下有MFC80LU.LIB、MFC80LUD.LIB、MFCM80LU.lib、MFCM80LUD.lib,把文件名改為:
    MFC80U.LIB、MFC80UD.LIB、MFCM80U.lib、MFCM80UD.lib
    把這四個(gè)lib文件復(fù)制到\VC\atlmfc\lib下覆蓋原來的文件就完成了。

    posted on 2007-05-15 22:47 daiyie 閱讀(1346) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    收藏夾

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 青青草国产免费国产是公开| 亚洲成AV人片久久| 日本特黄特色AAA大片免费| 免费看大美女大黄大色| 亚洲熟妇成人精品一区| 成人免费视频小说| 亚洲日本一线产区和二线产区对比| 一级女人18毛片免费| 亚洲毛片一级带毛片基地| 99在线精品视频观看免费| 亚洲jizzjizz在线播放久| 女人被男人躁的女爽免费视频| 亚洲精品无码av中文字幕| 哒哒哒免费视频观看在线www| 午夜免费国产体验区免费的| 亚洲中文字幕无码中文字在线| 免费看无码特级毛片| 亚洲伊人久久大香线蕉在观| 24小时免费直播在线观看| 无码天堂亚洲国产AV| 国产亚洲美日韩AV中文字幕无码成人 | 亚洲精品国产精品乱码不99| 亚欧日韩毛片在线看免费网站| 亚洲啪啪免费视频| 四虎成人免费网址在线| 一级毛片免费不卡| 亚洲尹人香蕉网在线视颅| 国产精品视频永久免费播放| 最新亚洲人成无码网站| 日本亚洲成高清一区二区三区| 永久在线观看www免费视频| 亚洲精品无码专区在线| 亚洲日本va在线视频观看| 在线视频免费观看爽爽爽| 国产亚洲精品仙踪林在线播放| 亚洲人精品午夜射精日韩| 国产1024精品视频专区免费| 成人精品综合免费视频| 日韩亚洲Av人人夜夜澡人人爽| 成人免费无码精品国产电影| a毛片免费播放全部完整|