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)所定義。 在此先感謝。
這裏有點麻煩。 Visual Studio不會發明對話框並將它們放入您的DLL中。你確定你正在使用正確的DLL嗎?你可以發佈你的.RC文件的副本嗎? – 2010-06-10 16:33:45
將文件添加到問題中。謝謝。 – rkellerm 2010-06-10 16:39:59
當你真的看到一個StringTable時,它應該包含字符串。你介意在文件中搜索這些字符串嗎? – harper 2010-07-06 12:52:16