有人可以帮我写一个版本化DLL的例子吗? 我想在编译期间创建一个函数 - 设置DLL的所有细节,但我不知道如何做,甚至如何启动或从哪里开始。
答案 0 :(得分:0)
涉及的三个步骤是:
.res
)链接到DLL中。示例:
的main.cpp
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID) { return TRUE; }
version.rc
#define APSTUDIO_READONLY_SYMBOLS
#include "windows.h"
#undef APSTUDIO_READONLY_SYMBOLS
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,9,1,7
PRODUCTVERSION 2,2,2,2
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080904b0"
BEGIN
VALUE "CompanyName", "My Company.\0"
VALUE "FileDescription", "My File\0"
VALUE "FileVersion", "1.9.1.7\0"
VALUE "InternalName", "my-real-file\0"
VALUE "LegalCopyright", "Copyright © 2012 My Company Ltd.\0"
VALUE "OriginalFilename", "my.dll\0"
VALUE "PrivateBuild", "820\0"
VALUE "ProductName", "My Company: my dll\0"
VALUE "ProductVersion", "2.2.2.2\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x809, 1200
END
END
从命令行:
> rc version.rc > cl /nologo /LD main.cpp version.RES main.cpp
这会创建一个带有版本标签的main.dll
。
警告:自从我查看此内容已经有一段时间了,并且忘记了version.rc脚本中的所有内容意味着什么。