dimanche 11 mai 2014

winapi - compilation DLL avec les informations de Version - Stack Overflow


What steps are needed to compile Version Information inside a windows DLL from the command line. I have been looking at VersionInfo files, but could not figure out how to link them to the DLL.


Thank you




You need to create a version resource and add it to your project. This can be very easily done from within visual studio. in VS 2008, right click a folder of the project, choose add and under "Visual C++" select "Resource File" (not resource template), in the resource file just created you'll be able to add a version resource which looks like this:


VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "XXX Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "XXX"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "XXX.exe"
VALUE "ProductName", "XXX Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

From the command line you'll need to use rc.exe, the resource compiler and then link the result to your dll.




You normally put a VersionInfo resource into your .rc file and compile it with the resource compiler (rc.exe). Unfortunately, I don't know of any (recent) documentation of the source format. Imitating what VS produces seems to work all right though...



What steps are needed to compile Version Information inside a windows DLL from the command line. I have been looking at VersionInfo files, but could not figure out how to link them to the DLL.


Thank you



You need to create a version resource and add it to your project. This can be very easily done from within visual studio. in VS 2008, right click a folder of the project, choose add and under "Visual C++" select "Resource File" (not resource template), in the resource file just created you'll be able to add a version resource which looks like this:


VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "XXX Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "XXX"
VALUE "LegalCopyright", "Copyright (C) 2010"
VALUE "OriginalFilename", "XXX.exe"
VALUE "ProductName", "XXX Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END

From the command line you'll need to use rc.exe, the resource compiler and then link the result to your dll.



You normally put a VersionInfo resource into your .rc file and compile it with the resource compiler (rc.exe). Unfortunately, I don't know of any (recent) documentation of the source format. Imitating what VS produces seems to work all right though...


0 commentaires:

Enregistrer un commentaire