Link to home
Start Free TrialLog in
Avatar of mikjimbob
mikjimbob

asked on

setting dll version tab

Hi,

I'm working with Visual C++ 6.0 and Windows 2000. I have created a dll file and I am having difficulties storing version information (e.g. copyright, verion number).

At present when the properties of the file are accessed (by right clicking on the file icon and selecting Properties) there are only three tabs present, General, Security and Summary.

Can anyone tell me how to add the Version tab, which is present with other dlls?

Thanks in advance,
m.

Avatar of jhance
jhance

Add a VERSION RESOURCE to your project in the resource editor.  

Go to the RESOURCES VIEW (i.e. where you might add a new dialog) and choose a VERSION.  Then set the version information to be the say you want it.  Then recompile.
Avatar of mikjimbob

ASKER

Thanks for your help.

I've followed the steps you've given and I've not received any errors. However, the version tab still doesn't appear.

Any ideas?
Cheers,
m.
Thanks for your help.

I've followed the steps you've given and I've not received any errors. However, the version tab still doesn't appear.

Any ideas?
Cheers,
m.
Avatar of jkr
Check your DLLs .rc file - there should be an entry like

/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION          2,0,0,26
 PRODUCTVERSION     2,0,0,26
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040704B0" // check this - it's locale specific!
        BEGIN
            VALUE "CompanyName", "Company\0"
            VALUE "FileDescription", "mydll.DLL\0"
            VALUE "FileVersion", "2.00.26\0"
            VALUE "InternalName", "mydll\0"
            VALUE "LegalCopyright", "Copyright (C) 1998-1999 Company\0"
            VALUE "LegalTrademarks", "All Rights reserved\0"
            VALUE "OriginalFilename", "mydllt.DLL\0"
            VALUE "ProductName", "Product\0"
            VALUE "ProductVersion", "2.00.26\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x407, 1200 // check this - it's locale specific!
    END
END

The parts marked with '// check this - it's locale specific!' are sort of crucial - if the locales differ from the OS locale, it might not be used by the OS
Thanks for your help.

I am still having difficulties getting the version tab to appear. I decided to build a simple dll and then attempt to produce a version tab for this.

The steps I took are as follows:

- Open Visual C++
- File -> New -> Projects Tab -> Win32 Dynamic Link Library
- Selected "A simple DLL project" called mik.dll
- No additions were made to mik.cpp or any other files or settings
- Build -> Build mik.dll

No version tab appeared

If I follow Insert -> Resource -> Version, I get a version template. How should I save this and what changes should I make to settings to get the version tab to appear?

Sorry for dragging this out, but I need a solution.

Cheers,
m.
ASKER CERTIFIED SOLUTION
Avatar of jhance
jhance

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks a million.

I wasn't adding the .rc file to the project as you guessed. Thanks for your patience.

Cheers,
m.