我不知道rc脚本。

我想包括产品版本,文件版本,元数据等成DLL我建立。我使用的是rc文件来做到这一点。构建在生成文件驱动。我与.RC scrpit我发现了一个例子下面一起。

.rc文件模板包括afxres.h,但我不认为我需要的。但是,如果我只是删除它,我得到了一堆的编译错误。

什么是一个基本的,非MFC RC脚本是什么样子?我可以删除所有的东西是这样的:

/////////////////////////////////////////////////////////////////////////////
// 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

....
有帮助吗?

解决方案 2

我的回答:点击 NO,我并不需要所有的垃圾。这里有一个RC脚本的VERSIONINFO工作。

#define VER_FILEVERSION          1,2,3,4
#define VER_FILEVERSION_STR      "1.2.3.4"
#define VER_PRODUCTVERSION       1,2,0,0
#define VER_PRODUCTVERSION_STR   "1.2.0.0"

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

VS_VERSION_INFO VERSIONINFO
 FILEVERSION            VER_FILEVERSION
 PRODUCTVERSION         VER_PRODUCTVERSION
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
    BLOCK "040904b0"
    BEGIN
    VALUE "CompanyName",      "Company X"
    VALUE "FileDescription",  "Description Goes Here"
    VALUE "InternalName",     "NotSure"
    VALUE "LegalCopyright",   "Copyright (C) 2009 Your Name Here"
    VALUE "OriginalFilename", "DllName.dll"
    VALUE "ProductName",      "Product Title"
    VALUE "FileVersion",      VER_FILEVERSION_STR
    VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
    END
END
BLOCK "VarFileInfo"
BEGIN
    VALUE "Translation", 0x409, 1200
END
END

与Conmpile它:

$(WindowsSDK)\bin\RC.exe /FoProjectName.res ProjectName.rc

其他提示

努力没有MFC编译时

我也有类似的问题。 Cheeso的解决方案不会为我工作充分。

一切编译没有问题,我的建筑中没有看到错误/警告。这是在我的资源文件中定义的图标显示出正确的“Windows资源管理器”。然而,该版本数据不可用。 (可当在可执行文件和选择属性右击。在这种情况下,没有“版本”标签存在可见。)

要得到它的工作,我不得不添加以下的rc文件的顶部:

#include <windows.h>

通过这种改变,版本标签将在可执行文件的属性显示。此外,.NET System.Diagnostics.FileVersionInfo类是现在能拿到的版本信息,而这不会工作之前。

Defaultly “stdafx.h中” 将包括 “WINDOWS.H”。我不知道为什么需要WINDOWS.H,但它似乎使我的情况的差异。

编辑:增加了一些更具体的信息,响应于Cheeso

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top