2010-06-10 79 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中包含一个字符串表,游标,对话框和位图。

这可能是那些额外资源的来源。