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

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



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.

--
Maritime Electronic Warfare, Crane NSWC
.



Relevant Pages

  • Re: Help me identify a Cobol database
    ... I DO/Don't know COBOL ... As indicated M/F traditionally use xxxx.DAT to indicate the data file, but in this instance,, the developer chose to use the extension xxxx.DB. ... To complicate it even further,, the developer, in order to save disk space, may have used a compiler DIRECTIVE to compress data - basically repeating characters are indicated by a count. ... I don't know whether they are still active but if you google on 'COBOL FAQ',, it may have references to COBOL Developers who have produced Data conversions - primarily they were aiming at converting from COBOL-Vendor-A to COBOL-Vendor-B compilers. ...
    (comp.lang.cobol)
  • Re: VACPP Compiler v3.6.5
    ... The IBM CD-ROM has four bugs. ... So there were two enviroment variables pointing to the same folder at the same time which led to the warning and error messages. ... I personally installed the VisualAge 3.00 package, and then later installed the 3.65 C compiler into the same directories. ... I personally have references to the IBM CPP directories in the ...
    (comp.os.os2.programmer.misc)
  • Re: optimising compilers and order of execution
    ... Today's implementations do not scan library files for references. ... Given the usual tool chain of clock() only available in binary form in some library, there is really no way how a compiler could figure out clockdoes not depend on some external object. ... Actually, this is done by the loader of the operating system and shared libraries, and the shared object loader surely doesn't optimize. ...
    (comp.lang.c.moderated)
  • RE: Huge project - long build time
    ... We too are having terrible speed problems with VS.NET. ... Until the middle of last week, build times were reasonable and the compiler ... now takes 20 minutes to rebuild the system. ... > references with dll references. ...
    (microsoft.public.dotnet.general)