• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            在VC工程中添加多個RC文件(在VC2005編譯通過)

            在VC工程中添加多個RC文件


            rc2里面的格式跟普通的rc是一樣的文本格式,直接手工修改,也可以用VS打開修改.

             

            有時需要把VC_Project2工程的資源合到VC_Project1工程的資源中(*.rc文件), 通常的做法就是用文本的方式打開VC_Project2.rc和VC_Project1.rc然后人工的判斷拷貝粘貼了。

             

            其實我們可以直接把VC_Project2.rc文件添加到VC_Project1工程中, 但此時編譯可能會報下面錯誤

            1>CVTRES : fatal error CVT1100: 重復的資源。type:VERSION, name:1, language:0x0804

            1>LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 文件無效或損壞

             

            這個錯誤的意思就是資源定義重復了,其實重復也很正常,因為在創建VC_Project1和VC_Project2兩個工程時,很多代碼都是VC自動生成的,通常這些自動生成的代碼就是產生這個錯誤的原因了。

             

            解決辦法就是把其中一個(那肯定是后來添加進來的那一個了)(這里是VC_Project2.rc)rc文件中與工程本身的rc(這里是VC_Project1.rc)文件相同的部分刪掉即可。

             

            還要注意的是移了VC_Project2.rc文件過來, 必須要把VC_Project2工程中對應的cpp和h文件還有最重要的一個是VC_Project2工程的resource.h文件也要移到VC_Project1工程中。

             

            例子:

            具體步驟如下:

            1. 分別創建了TryRC和TryRC2的基于對話框的VC工程。

            并在TryRC2工程中添加了對話框 ID是IDC_DIALOG1, IDC_DIALOG1中添加了一個按鈕IDC_BUTTON1, IDC_DIALOG1綁定到CDlgR類中,兩個文件分別是DlgR.cpp和DlgR.h

             

            2. 看對比TryRC.rc和TryRC2.rc文件的內容

            TryRC.rc(TryRC2.rc和TryRC.rc內容基本一致,只是多了一個IDC_DIALOG1)

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            // Microsoft Visual C++ generated resource script.

            //

            #include "resource.h"

             

            #define APSTUDIO_READONLY_SYMBOLS

            /////////////////////////////////////////////////////////////////////////////

            //

            // Generated from the TEXTINCLUDE 2 resource.

            //

            #include "afxres.h"

             

            /////////////////////////////////////////////////////////////////////////////

            #undef APSTUDIO_READONLY_SYMBOLS

             

            /////////////////////////////////////////////////////////////////////////////

            // 中文(中華人民共和國) resources

             

            #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

            #ifdef _WIN32

            LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

            #pragma code_page(936)

            #endif //_WIN32

             

            #ifdef APSTUDIO_INVOKED

            /////////////////////////////////////////////////////////////////////////////

            //

            // TEXTINCLUDE

            //

             

            1 TEXTINCLUDE

            BEGIN

                "resource.h\0"

            END

             

            2 TEXTINCLUDE

            BEGIN

                "#include ""afxres.h""\r\n"

                "\0"

            END

             

            3 TEXTINCLUDE

            BEGIN

                "#define _AFX_NO_SPLITTER_RESOURCES\r\n"

                "#define _AFX_NO_OLE_RESOURCES\r\n"

                "#define _AFX_NO_TRACKER_RESOURCES\r\n"

                "#define _AFX_NO_PROPERTY_RESOURCES\r\n"

                "\r\n"

                "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"

                "LANGUAGE 4, 2\r\n"

                "#pragma code_page(936)\r\n"

                "#include ""res\\TryRC.rc2""  // 非Microsoft Visual C++ 編輯的資源\r\n"

                "#include ""afxres.rc""     // 標準組件\r\n"

                "#endif\r\n"

                "\0"

            END

             

            #endif    // APSTUDIO_INVOKED

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Icon

            //

             

            // Icon with lowest ID value placed first to ensure application icon

            // remains consistent on all systems.

            IDR_MAINFRAME           ICON                    "res\\TryRC.ico"

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Dialog

            //

             

            IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55

            STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

            CAPTION "關于TryRC"

            FONT 9, "宋體", 0, 0, 0x1

            BEGIN

                ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20

                LTEXT           "TryRC 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX

                LTEXT           "Copyright (C) 2010",IDC_STATIC,40,25,119,8

                DEFPUSHBUTTON   "確定",IDOK,178,7,50,16,WS_GROUP

            END

             

            IDD_TRYRC_DIALOG DIALOGEX 0, 0, 320, 200

            STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

            EXSTYLE WS_EX_APPWINDOW

            CAPTION "TryRC"

            FONT 9, "宋體", 0, 0, 0x1

            BEGIN

                DEFPUSHBUTTON   "確定",IDOK,263,7,50,16

                PUSHBUTTON      "取消",IDCANCEL,263,25,50,16

                CTEXT           "TODO: 在此放置對話框控件。",IDC_STATIC,10,96,300,8

                PUSHBUTTON      "Button1",IDC_BUTTON1,7,7,50,14

            END

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Version

            //

             

            VS_VERSION_INFO VERSIONINFO

             FILEVERSION 1,0,0,1

             PRODUCTVERSION 1,0,0,1

             FILEFLAGSMASK 0x3fL

            #ifdef _DEBUG

             FILEFLAGS 0x1L

            #else

             FILEFLAGS 0x0L

            #endif

             FILEOS 0x4L

             FILETYPE 0x1L

             FILESUBTYPE 0x0L

            BEGIN

                BLOCK "StringFileInfo"

                BEGIN

                    BLOCK "080403a8"

                    BEGIN

                        VALUE "CompanyName", "TODO: <公司名>"

                        VALUE "FileDescription", "TODO: <文件說明>"

                        VALUE "FileVersion", "1.0.0.1"

                        VALUE "InternalName", "TryRC.exe"

                        VALUE "LegalCopyright", "TODO: (C) <公司名>。保留所有權利。"

                        VALUE "OriginalFilename", "TryRC.exe"

                        VALUE "ProductName", "TODO: <產品名>"

                        VALUE "ProductVersion", "1.0.0.1"

                    END

                END

                BLOCK "VarFileInfo"

                BEGIN

                    VALUE "Translation", 0x804, 936

                END

            END

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // DESIGNINFO

            //

             

            #ifdef APSTUDIO_INVOKED

            GUIDELINES DESIGNINFO

            BEGIN

                IDD_ABOUTBOX, DIALOG

                BEGIN

                    LEFTMARGIN, 7

                    RIGHTMARGIN, 228

                    TOPMARGIN, 7

                    BOTTOMMARGIN, 48

                END

             

                IDD_TRYRC_DIALOG, DIALOG

                BEGIN

                    LEFTMARGIN, 7

                    RIGHTMARGIN, 313

                    TOPMARGIN, 7

                    BOTTOMMARGIN, 193

                END

            END

            #endif    // APSTUDIO_INVOKED

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // String Table

            //

             

            STRINGTABLE

            BEGIN

                IDS_ABOUTBOX            "關于TryRC(&A)..."

            END

             

            #endif    // 中文(中華人民共和國) resources

            /////////////////////////////////////////////////////////////////////////////

             

             

             

            #ifndef APSTUDIO_INVOKED

            /////////////////////////////////////////////////////////////////////////////

            //

            // Generated from the TEXTINCLUDE 3 resource.

            //

            #define _AFX_NO_SPLITTER_RESOURCES

            #define _AFX_NO_OLE_RESOURCES

            #define _AFX_NO_TRACKER_RESOURCES

            #define _AFX_NO_PROPERTY_RESOURCES

             

            #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

            LANGUAGE 4, 2

            #pragma code_page(936)

            #include "res\TryRC.rc2"  // 非Microsoft Visual C++ 編輯的資源

            #include "afxres.rc"     // 標準組件

            #endif

             

            /////////////////////////////////////////////////////////////////////////////

            #endif    // not APSTUDIO_INVOKED

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

             

            3. 把TryRC2工程中的TryRC2.rc, DlgR.cpp, DlgR.h和resource.h添加到TryRC工程中,由于TryRC2工程resource.h與TryRC工程resource.h同名(也要注意其他文件的同名情況),所以我把TryRC2工程resource.h改名為resource1.h(如果不把他們放在同一個目錄應該就不用改名了)

             

            4. 此時編譯就會報上面說到的錯誤了。

            所以在這里就要修改TryRC2.rc文件, 修改后的文件如下:

            // Microsoft Visual C++ generated resource script.

            //

            #include "resource1.h"           // 看這里,修改了

             

            #define APSTUDIO_READONLY_SYMBOLS

            /////////////////////////////////////////////////////////////////////////////

            //

            // Generated from the TEXTINCLUDE 2 resource.

            //

            #include "afxres.h"

             

            /////////////////////////////////////////////////////////////////////////////

            #undef APSTUDIO_READONLY_SYMBOLS

             

            /////////////////////////////////////////////////////////////////////////////

            // 中文(中華人民共和國) resources

             

            #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

            #ifdef _WIN32

            LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

            #pragma code_page(936)

            #endif //_WIN32

             

            #ifdef APSTUDIO_INVOKED

            /////////////////////////////////////////////////////////////////////////////

            //

            // TEXTINCLUDE

            //

             

            1 TEXTINCLUDE

            BEGIN

                "resource1.h\0"                  // 看這里,修改了

            END

             

            2 TEXTINCLUDE

            BEGIN

                "#include ""afxres.h""\r\n"

                "\0"

            END

             

            3 TEXTINCLUDE

            BEGIN

                 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

                 //++這些部分不注釋掉沒編譯錯誤,注釋掉也沒有編譯錯誤

                "#define _AFX_NO_SPLITTER_RESOURCES\r\n"

                "#define _AFX_NO_OLE_RESOURCES\r\n"

               "#define _AFX_NO_TRACKER_RESOURCES\r\n"

                "#define _AFX_NO_PROPERTY_RESOURCES\r\n"

                "\r\n"

                "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"

                "LANGUAGE 4, 2\r\n"

                "#pragma code_page(936)\r\n"

                "#include ""res\\TryRC2.rc2""  // 非Microsoft Visual C++ 編輯的資源\r\n"

                "#include ""afxres.rc""     // 標準組件\r\n"

                "#endif\r\n"

                "\0"

                     "\r\n"

                 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

            END

             

            #endif    // APSTUDIO_INVOKED

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Icon

            //

             

            // Icon with lowest ID value placed first to ensure application icon

            // remains consistent on all systems.

            //-IDR_MAINFRAME           ICON                    "res\\TryRC2.ico"

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Dialog

            //

            //-------------------------------------------------------------------------//

            //-----About對話框, 這些就是與TryRC.rc重復的了---------------------------//

            //IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55

            //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

            //CAPTION "關于TryRC2"

            //FONT 9, "宋體", 0, 0, 0x1

            //BEGIN

            //    ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20

            //    LTEXT           "TryRC2 1.0 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX

            //    LTEXT           "Copyright (C) 2010",IDC_STATIC,40,25,119,8

            //    DEFPUSHBUTTON   "確定",IDOK,178,7,50,16,WS_GROUP

            //END

             

            //-------------------------------------------------------------------------//

            //-----這個是TryRC2工程的主對話框,不包進來--------------------------------//

            //IDD_TRYRC2_DIALOG DIALOGEX 0, 0, 320, 200

            //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

            //EXSTYLE WS_EX_APPWINDOW

            //CAPTION "TryRC2"

            //FONT 9, "宋體", 0, 0, 0x1

            //BEGIN

            //    DEFPUSHBUTTON   "確定",IDOK,263,7,50,16

            //    PUSHBUTTON      "取消",IDCANCEL,263,25,50,16

            //    CTEXT           "TODO: 在此放置對話框控件。",IDC_STATIC,10,96,300,8

            //END

            //----------------------------------------------------------------------------//

            IDD_DIALOG1 DIALOGEX 0, 0, 313, 142

            STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

            CAPTION "Dialog"

            FONT 8, "MS Shell Dlg", 400, 0, 0x1

            BEGIN

                DEFPUSHBUTTON   "確定",IDOK,61,121,50,14

                PUSHBUTTON      "取消",IDCANCEL,197,121,50,14

                PUSHBUTTON      "Button1",IDC_BUTTON1,39,46,50,14

            END

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // Version

            //

            //-------------------------------------------------------------------------//

            //----刪掉刪掉刪掉------------------------------------------------//

            //VS_VERSION_INFO VERSIONINFO

            // FILEVERSION 1,0,0,1

            // PRODUCTVERSION 1,0,0,1

            // FILEFLAGSMASK 0x3fL

            //#ifdef _DEBUG

            // FILEFLAGS 0x1L

            //#else

            // FILEFLAGS 0x0L

            //#endif

            // FILEOS 0x4L

            // FILETYPE 0x1L

            // FILESUBTYPE 0x0L

            //BEGIN

            //    BLOCK "StringFileInfo"

            //    BEGIN

            //        BLOCK "080403a8"

            //        BEGIN

            //            VALUE "CompanyName", "TODO: <公司名>"

            //            VALUE "FileDescription", "TODO: <文件說明>"

            //            VALUE "FileVersion", "1.0.0.1"

            //            VALUE "InternalName", "TryRC2.exe"

            //            VALUE "LegalCopyright", "TODO: (C) <公司名>。保留所有權利。"

            //            VALUE "OriginalFilename", "TryRC2.exe"

            //            VALUE "ProductName", "TODO: <產品名>"

            //            VALUE "ProductVersion", "1.0.0.1"

            //        END

            //    END

            //    BLOCK "VarFileInfo"

            //    BEGIN

            //        VALUE "Translation", 0x804, 936

            //    END

            //END

            //-------------------------------------------------------------------------//

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // DESIGNINFO

            //

             

            #ifdef APSTUDIO_INVOKED

            GUIDELINES DESIGNINFO

            BEGIN

               

                 //------------------------------------------------------------//

                 //-----------------刪掉刪掉刪掉------------------------------//

            //IDD_ABOUTBOX, DIALOG

                //BEGIN

                //    LEFTMARGIN, 7

                //    RIGHTMARGIN, 228

                //    TOPMARGIN, 7

                //    BOTTOMMARGIN, 48

                //END

             

                //IDD_TRYRC2_DIALOG, DIALOG

                //BEGIN

                //    LEFTMARGIN, 7

                //    RIGHTMARGIN, 313

                //    TOPMARGIN, 7

                //    BOTTOMMARGIN, 193

                //END

                 //------------------------------------------------------------//

             

                IDD_DIALOG1, DIALOG

                BEGIN

                    LEFTMARGIN, 7

                    RIGHTMARGIN, 306

                    TOPMARGIN, 7

                    BOTTOMMARGIN, 135

                END

            END

            #endif    // APSTUDIO_INVOKED

             

             

            /////////////////////////////////////////////////////////////////////////////

            //

            // String Table

            //

             

            //STRINGTABLE

            //BEGIN

             //   IDS_ABOUTBOX            "關于TryRC2(&A)..."

            //END

             

            #endif    // 中文(中華人民共和國) resources

            /////////////////////////////////////////////////////////////////////////////

             

             

             

            #ifndef APSTUDIO_INVOKED

            /////////////////////////////////////////////////////////////////////////////

            //

            //-------------------------------------------------------------------------//

            //------------------ 不刪除會有錯誤----------------------------------------//

            // Generated from the TEXTINCLUDE 3 resource.

            //

            //#define _AFX_NO_SPLITTER_RESOURCES

            //#define _AFX_NO_OLE_RESOURCES

            //#define _AFX_NO_TRACKER_RESOURCES

            //#define _AFX_NO_PROPERTY_RESOURCES

             

            //#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

            //LANGUAGE 4, 2

            //#pragma code_page(936)

            //#include "res\TryRC2.rc2"  // 非Microsoft Visual C++ 編輯的資源

            //#include "afxres.rc"     // 標準組件

            //#endif

            // 這里有一個TryRC2.rc2暫時不清楚它有什么用

            //--------------------------------------------------------------------------//

            /////////////////////////////////////////////////////////////////////////////

            #endif    // not APSTUDIO_INVOKED

             

             

            5. 在DlgR.h中添加該語句 #include "resource1.h"

            這樣子包含不是很好,一修改resource1.h就要編譯DlgR.h和DlgR.cpp了

            暫時沒有解決辦法。

             

             

            6. 總結:其實這樣子添加多個RC文件到工程的修改和拷貝粘貼RC文件差不多, 只是在工程的結構上比較明了一點,感覺也是比拷貝粘貼RC文件好。

             

            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/cay22/archive/2010/05/26/5625951.aspx

            posted on 2011-05-18 10:05 wrh 閱讀(5648) 評論(2)  編輯 收藏 引用

            評論

            # re: 在VC工程中添加多個RC文件(在VC2005編譯通過) 2011-06-24 13:46 識字

            我來逛逛,順便幫博主頂一下,嘿嘿。  回復  更多評論   

            # re: 在VC工程中添加多個RC文件(在VC2005編譯通過) 2011-07-11 14:05 寧波廢鐵回收

            我來逛逛,順便幫博主頂一下,嘿嘿。  回復  更多評論   

            導航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品无码一区二区app| 国产午夜免费高清久久影院| 亚洲国产精品久久66| 久久99精品国产麻豆不卡| 色综合久久中文字幕综合网| 午夜精品久久久久久毛片| 久久精品人人做人人爽电影| 亚洲国产成人久久综合区| 亚洲精品乱码久久久久久 | 精品久久久久久国产潘金莲| 久久久久久久综合日本亚洲| 亚洲成av人片不卡无码久久| 99re久久精品国产首页2020| 国产精品成人99久久久久 | 久久精品一区二区| 伊人久久大香线蕉成人| 91麻精品国产91久久久久| 久久久无码精品亚洲日韩蜜臀浪潮 | 国产精品亚洲美女久久久| 久久人人爽人人爽人人片AV东京热 | 亚洲欧美成人综合久久久| 99久久成人18免费网站| 2021精品国产综合久久| 亚洲乱码精品久久久久..| 久久激情亚洲精品无码?V| 久久免费高清视频| 2021精品国产综合久久| 久久久久女人精品毛片| 久久婷婷是五月综合色狠狠| 合区精品久久久中文字幕一区| 久久99精品国产麻豆不卡| A级毛片无码久久精品免费| 国产午夜久久影院| 久久电影网2021| 久久99精品久久久久久野外| 99久久99久久精品国产片果冻 | 久久精品人人做人人爽电影蜜月| 久久久久久国产精品美女| 亚洲精品国产自在久久| 久久妇女高潮几次MBA| 精品国产日韩久久亚洲|