UM: MFC Support for W2K in WDK (6001.18002)

Hello,

Note: For WXP+ environment, all is well.

While trying to build an MFC app using the WDK (6001.18002) for W2K
environment, I get the following error...
NMAKE : fatal error U1073: don't know how to make
'c:\winddk\6001.18002\lib\w2k\
i386\mfc42_downlevel.obj'

Here's the section of the makefile.new at line 4034 that throws the above
message...
!if (defined(USE_MFC) || defined(USE_MFCUNICODE)) \
&& !defined(USE_STATIC_MFC) \
&& "$(MFC_VER)" == "42" \
&& ("$(SUBSYSTEM_VERSIONX)" <= "5.00") \
&& $(386) \
&& defined(_PROVIDE_MFC_LIBS)
MFC_LIBS=$(SDK_LIB_PATH)\mfc42_downlevel.obj $(MFC_LIBS)
!endif

If I comment the MFC_LIBS line, the build goes through.

I am not feeling comfortable with this hack, so is there another way out.

Here is my SOURCES file...

-------- Required Macros


SOURCES = program.rc program.cpp
TARGETLIBS =
TARGETNAME = MfcUsage
TARGETPATH =
TARGETTYPE = PROGRAM

-------- Extra Macros


INCLUDES = $(INCLUDES) $(DDK_INC_PATH)
MSC_WARNING_LEVEL = /W4 /WX
UMTYPE = console
UMENTRY = main
USE_MFC = 1
USER_C_FLAGS = $(USER_C_FLAGS) /Fa$(O)\ /FAsc

-------- Wpp Tracing


WPP_TRACING = 0
!IF $(WPP_TRACING)
C_DEFINES = $(C_DEFINES) /DWPP_TRACING
! IF $(_NT_TARGET_VERSION) == 0x500
GEN = -gen{um-w2k.tpl}*.tmh
! ENDIF
RUN_WPP = $(SOURCES) $(GEN) -p:$(TARGETNAME) -scan:trace.h
NTTARGETFILE2 = $(OBJ_PATH)$O$(TARGETNAME).tmf
!ENDIF

Thanks,
Arvind

Arvind Pandurang Dalvi wrote:

While trying to build an MFC app using the WDK (6001.18002)
for W2K environment, […]

http://i.imgur.com/5GlRI.gif

Hello Chris,

Was that a humor for targeting W2K?

I would agree that supporting W2K when it is retired does not make sense, but then in my years at the support group, I have seen that organizations using validated environments find it difficult both in terms of cost-n-time to replace the legacy.

VMware/Hyper-V are making life easier, but then…

Thanks,
Arvind

Arvind Dalvi wrote:

While trying to build an MFC app using the WDK (6001.18002) for W2K
environment, I get the following error…
NMAKE : fatal error U1073: don’t know how to make
‘c:\winddk\6001.18002\lib\w2k\
i386\mfc42_downlevel.obj’

MFC_LIBS=$(SDK_LIB_PATH)\mfc42_downlevel.obj $(MFC_LIBS)

If I comment the MFC_LIBS line, the build goes through.

Yep, that same line is present in the 6000 and 7600 WDKs, and the file
is nowhere to be found. Looks like an interesting oversight.

I am not feeling comfortable with this hack, so is there another way out.

Seriously? You’re trying to build a user-mode binary with a 15-year-old
framework library, using a 5-year-old driver kit, targeting a
13-year-old operating system, and you’re not comfortable with a hack???

I absolutely guarantee you there will not be an official response to
this. If the delete works, then consider yourself lucky.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks Tim.