ATL/MFC Link Problems
Joseph Jones -- jjones@FrontofficeTech.com
Tuesday, February 25, 1997
Environment: NT 4.0 MSVC 4.2b
Hi all,
I've created a DLL using the ATL 1.1 wizard. My DLL uses MFC. When
compiling in the IDE, everything is hunky-dorry. Unfortunately, wen
compiling on the commmand line (using nmake), I get the followin link
errors:
nafxcwd.lib error: LINK 2005: _DllMain@12 already defined in
LIBCMTD.LIB
nafxcwd.lib error: LINK 2005: operator new already defined in
LIBCMTD.LIB
nafxcwd.lib error: LINK 2005: operator delete already defined in
LIBCMTD.LIB
I don't understand why this is happening only on the command line. Any
help at all would be greatly appreciated.
TIA
joe
Mike Sargent -- msargent@entrust.com
Thursday, February 27, 1997
[Mini-digest: 3 responses]
We ran across this same problem with 4.1. We solved it by turning on the
"Ignore all default libraries" check box in the Link tab of the Project
Settings dialog. When you do that you will need to list all of the
needed libraries in the "Object/library modules" field. There is an
Excel .csv file in your msdev directory which can help you find which
libraries you need. As a starting point, here is a sample of what we
use:
ctl3d32.lib oldnames.lib wsock32.lib kernel32.lib user32.lib shell32.lib
advapi32.lib comdlg32.lib gdi32.lib comctl32.lib winspool.lib winmm.lib
Your mileage may vary. :-)
Mike
>----------
>From: jjones@frontofficetech.com[SMTP:jjones@frontofficetech.com]
>Sent: Tuesday, February 25, 1997 10:00 PM
>To: mfc-l@netcom.com
>Subject: ATL/MFC Link Problems
>
>Environment: NT 4.0 MSVC 4.2b
>Hi all,
>
> I've created a DLL using the ATL 1.1 wizard. My DLL uses MFC. When
>compiling in the IDE, everything is hunky-dorry. Unfortunately, wen
>compiling on the commmand line (using nmake), I get the followin link
>errors:
>
> nafxcwd.lib error: LINK 2005: _DllMain@12 already defined in
>LIBCMTD.LIB
> nafxcwd.lib error: LINK 2005: operator new already defined in
>LIBCMTD.LIB
> nafxcwd.lib error: LINK 2005: operator delete already defined in
>LIBCMTD.LIB
>
> I don't understand why this is happening only on the command line. Any
>help at all would be greatly appreciated.
>
>TIA
>
>joe
>
>
>
-----From: "Ron Jacobs"
Check your environment variables. The IDE uses the settings for Libs
and include directories under the tools/options menu. However,
command line builds use the envrionment strings. If these are
different, you might be linking with a different version of a lib than
you are in the IDE.
Ron Jacobs
Ron.Jacobs@centurasoft.com
______________________________ Reply Separator _________________________________
Subject: ATL/MFC Link Problems
Author: mfc-l@netcom.com at SMTPLINK-GC
Date: 2/26/97 10:08 PM
Environment: NT 4.0 MSVC 4.2b
Hi all,
I've created a DLL using the ATL 1.1 wizard. My DLL uses MFC. When
compiling in the IDE, everything is hunky-dorry. Unfortunately, wen
compiling on the commmand line (using nmake), I get the followin link
errors:
nafxcwd.lib error: LINK 2005: _DllMain@12 already defined in
LIBCMTD.LIB
nafxcwd.lib error: LINK 2005: operator new already defined in
LIBCMTD.LIB
nafxcwd.lib error: LINK 2005: operator delete already defined in
LIBCMTD.LIB
I don't understand why this is happening only on the command line. Any
help at all would be greatly appreciated.
TIA
joe
-----From: Joseph Jones
Environment: NT 4.0 MSVC 4.2b
I figured it out the day after sending this message. It seems that
nafxcwd.lib was not getting linked first on the command line. I fixed
this by specifying nafxcwd.lib in the INpu line of the Link tab page in
the IDE.
joe
>-----Original Message-----
>From: Joseph Jones
>Sent: Tuesday, February 25, 1997 7:01 PM
>To: 'MFC List'
>Subject: ATL/MFC Link Problems
>
>Environment: NT 4.0 MSVC 4.2b
>Hi all,
>
> I've created a DLL using the ATL 1.1 wizard. My DLL uses MFC. When
>compiling in the IDE, everything is hunky-dorry. Unfortunately, wen
>compiling on the commmand line (using nmake), I get the followin link
>errors:
>
> nafxcwd.lib error: LINK 2005: _DllMain@12 already defined in
>LIBCMTD.LIB
> nafxcwd.lib error: LINK 2005: operator new already defined in
>LIBCMTD.LIB
> nafxcwd.lib error: LINK 2005: operator delete already defined in
>LIBCMTD.LIB
>
> I don't understand why this is happening only on the command line. Any
>help at all would be greatly appreciated.
>
>TIA
>
>joe
>
Become an MFC-L member
| Вернуться в корень Архива
|