Need help figuring out: "CVT1100 Duplicate Resource: type ICON"

P

Paul Hager

I've been trying to solve this issue for the better part of a month. My
attempts to get an answer on the MSDN groups proved to no avail. Here is the
situation/problem.

I am migrating an old piece of software developed using VC++ 4.2, running on
Windows NT 3.51 to VC++ 2005, running on Windows XP Pro SP2. I went through
all of the necessary gyrations to reach the point where all of the deprecated
functions were dealt with. I got a clean compile ... except for this:
"CVT1100 Duplicate Resource: type ICON, name: 1, language 0x0409"

So far, I've used a tool to renumber the constants defined in resource.h.
No joy. I tried changing the value of typelib resource ID - I tried a whole
range of values but the error still gives a "1".

Since the MSDN groups couldn't offer any enlightenment other than to say
something along the lines of, too bad you're going from 4.2 to 2005 in, as
Shakespeare might say, "one fell swoop" but you're on your own.

A general web search did turn up this discussion from 2005
(http://www.pcreview.co.uk/forums/thread-1346898.php). There did/does seem
to be an issue where this bizarre error arises but it's not obvious that it
applies to me. Now for some details.

There is one resource file that references the various constants in
resource.h. That file is called MAKEMTC.rc. Two constants are referenced in
the Icon section: IDR_MAINFRAME (128) and IDR_MAKEMTTYPE (129). These, in
turn reference .bmp files. IDR_MAINFRAME is used in a bunch of other places
in the .rc file: Accelerator, where it points to a table display, Menu for a
menu, Toolbar for a toolbar, Dialog for a dialog, and string for string(s).
I tried commenting out various combinations of the two Icon constants - when
I commented out ALL references I got "CVT1100 duplicate resource type Dialog
name 100". This was at least different though the constant in question
wasn't duplicated anywhere.

This program compiles using the 4.2 compiler - there is still a version
running on an old NT 3.51 machine. So, something has changed in Visual C++
that makes things no longer work. The question is, what?

This isn't a programming problem that will yield to logic. I'm interested
in any suggestions as to how to proceed. I don't want to have to completely
rewrite this software from scratch - it's not in the budget/schedule.

To summarize:
(1) there are no duplicate IDs, even though the compiler complains there are;
(2) changing the typelib resource ID, the fix recommended in Help, has no
effect;
(3) all of the ID's are used in a single .rc file, so it's not obvious that
the discussion from 2005 applies but it suggests this may somehow be related
to some changes that Microsoft made.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top