2010-06-10 111 views
1

我有一個用Visual Studio編寫的小C++ dll(當然)。 在解決方案代碼中,我有一個僅包含版本信息的資源文件。資源編輯器中的Dll資源:它們來自哪裏?

奇怪的是,當我將編譯後的dll分解到Visual Studio時,它會打開一個資源查看器,其中包含位圖,對話框和字符串表 - 它們都來自哪裏?

有什麼辦法可以刪除它們嗎? 這裏是資源文件本身:

//Microsoft Developer Studio generated resource script. 
// 

#define APSTUDIO_READONLY_SYMBOLS 
///////////////////////////////////////////////////////////////////////////// 
// 
// Generated from the TEXTINCLUDE 2 resource. 
// 
#include "afxres.h" 
#include "verinfores.h" 

///////////////////////////////////////////////////////////////////////////// 
#undef APSTUDIO_READONLY_SYMBOLS 

///////////////////////////////////////////////////////////////////////////// 
// English (U.S.) resources 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 
#ifdef _WIN32 
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 
#pragma code_page(1252) 
#endif //_WIN32 

#ifdef APSTUDIO_INVOKED 
///////////////////////////////////////////////////////////////////////////// 
// 
// TEXTINCLUDE 
// 

1 TEXTINCLUDE DISCARDABLE 
BEGIN 
    "#include ""afxres.h""\r\n" 
    "#include ""verinfores.h""\r\n" 
    "\0" 
END 

2 TEXTINCLUDE DISCARDABLE 
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_ENU)\r\n" 
    "#ifdef _WIN32\r\n" 
    "LANGUAGE 9, 1\r\n" 
    "#pragma code_page(1252)\r\n" 
    "#endif //_WIN32\r\n" 
    "#include ""afxres.rc""   // Standard components\r\n" 
    "#endif\r\n" 
    "\0" 
END 

#endif // APSTUDIO_INVOKED 

#ifndef _MAC 
///////////////////////////////////////////////////////////////////////////// 
// 
// Version 
// 

VS_VERSION_INFO VERSIONINFO 
FILEVERSION MCSDK_FILEVERSION 
PRODUCTVERSION MCSDK_PRODUCTVERSION 
FILEFLAGSMASK 0x3fL 
#ifdef _DEBUG 
FILEFLAGS 0x1L 
#else 
FILEFLAGS 0x0L 
#endif 
FILEOS 0x40004L 
FILETYPE 0x1L 
FILESUBTYPE 0x0L 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "040904b0" 
     BEGIN 
     VALUE "Comments", "\0" 
     VALUE "CompanyName", COMPANY_NAME 
      VALUE "FileDescription", MODULE_NAME 
      VALUE "FileVersion", PRODUCT_BUILDVER 
      VALUE "InternalName", INTERNAL_NAME 
      VALUE "LegalCopyright", COPYRIGHT_STRING 
      VALUE "OriginalFilename", ORIGINAL_NAME 
      VALUE "ProductName", PRODUCT_NAME 
      VALUE "LegalTrademarks", LEGAL_TRADEMARK 
      VALUE "ProductVersion", PRODUCT_VERSION 
      VALUE "OLESelfRegister", OLE_SELFREG 
     VALUE "Build Number", BUILD_NUMBER 
     END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
     VALUE "Translation", 0x409, 1200 
    END 
END 

#endif // !_MAC 


#endif // English (U.S.) 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_ENU) 
#ifdef _WIN32 
LANGUAGE 9, 1 
#pragma code_page(1252) 
#endif //_WIN32 
#include "afxres.rc"   // Standard components 
#endif 

///////////////////////////////////////////////////////////////////////////// 
#endif // not APSTUDIO_INVOKED 

所有用於VALU字段值在一個單獨的文件(VerInfoRes.h)所定義。 在此先感謝。

+1

這裏有點麻煩。 Visual Studio不會發明對話框並將它們放入您的DLL中。你確定你正在使用正確的DLL嗎?你可以發佈你的.RC文件的副本嗎? – 2010-06-10 16:33:45

+0

將文件添加到問題中。謝謝。 – rkellerm 2010-06-10 16:39:59

+0

當你真的看到一個StringTable時,它應該包含字符串。你介意在文件中搜索這些字符串嗎? – harper 2010-07-06 12:52:16

回答

1

根據定義,代碼包含AfxRes.rc,它在VC9中包含一個字符串表,遊標,對話框和位圖。

這可能是那些額外資源的來源。