diff options
author | kitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-11-19 21:05:08 +0000 |
---|---|---|
committer | kitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-11-19 21:05:08 +0000 |
commit | 803eaa5166f80660f432b57150cf11033dd74348 (patch) | |
tree | a2e050ba1142c7d540ce9df6d7a20ab4c05cac49 | |
parent | c4550d05223d7857449837c5ad821d516b0601a9 (diff) | |
download | ATCD-803eaa5166f80660f432b57150cf11033dd74348.tar.gz |
ChangeLogTag: Tue Nov 19 15:02:06 2002 Krishnakumar B <kitty@cs.wustl.edu>
-rw-r--r-- | ACEXML/ChangeLog | 280 | ||||
-rw-r--r-- | ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp | 2 | ||||
-rw-r--r-- | ACEXML/common/XML_Common.dsp | 12 | ||||
-rw-r--r-- | ACEXML/examples/SAXPrint/SAXPrint.dsp | 4 | ||||
-rw-r--r-- | ACEXML/parser/debug_validator/Debug_Validator.dsp | 2 | ||||
-rw-r--r-- | ACEXML/parser/parser/Parser.cpp | 56 | ||||
-rw-r--r-- | ACEXML/parser/parser/Parser.dsp | 4 |
7 files changed, 326 insertions, 34 deletions
diff --git a/ACEXML/ChangeLog b/ACEXML/ChangeLog new file mode 100644 index 00000000000..b411ed3d830 --- /dev/null +++ b/ACEXML/ChangeLog @@ -0,0 +1,280 @@ +Tue Nov 19 15:02:06 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * apps/svcconf/XML_Svc_Conf_Parser.dsp: + * common/XML_Common.dsp: + * examples/SAXPrint/SAXPrint.dsp: + * parser/debug_validator/Debug_Validator.dsp: + * parser/parser/Parser.dsp: + + Modified to accomodate zlib and zziplig. Will probably change + before the merge. + + * parser/parser/Parser.cpp: + + Try to parse external DTD only if validation is required. + +Mon Nov 18 22:29:39 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/Makefile: + + Deleted this file in the previous check-in. Re-add it. + +Mon Nov 18 22:19:47 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/common/common.mpc: + * ACEXML/parser/parser/parser.mpc: + * ACEXML/parser/debug_validator/validator.mpc: + * ACEXML/apps/svcconf/svcconf.mpc: + * ACEXML/examples/svcconf/Svcconf.mpc: + * ACEXML/examples/SAXPrint/saxprint.mpc: + * ACEXML/tests/tests.mpc: + * ACEXML/ACEXML.mwc: + + New MPC files and Workspace file. + + * ACEXML/common/Makefile.XML_Common: + * ACEXML/apps/svcconf/Makefile.XML_Svc_Conf_Parser: + * ACEXML/parser/parser/Makefile.Parser: + * ACEXML/parser/debug_validator/Makefile.Validator: + * ACEXML/examples/SAXPrint/Makefile.SAXPrint: + * ACEXML/examples/svcconf/Makefile.Svcconf: + * ACEXML/tests/Makefile.HttpCharStream_Test: + * ACEXML/tests/Makefile.NamespaceSupport_Test: + * ACEXML/tests/Makefile.Transcoder_Test: + + New Makefiles generated by MPC. + + * ACEXML/common/Makefile: + * ACEXML/parser/parser/Makefile: + * ACEXML/parser/Makefile: + * ACEXML/examples/Makefile: + * ACEXML/apps/Makefile: + * ACEXML/apps/svcconf/Makefile: + * ACEXML/examples/SAXPrint/Makefile: + * ACEXML/tests/Makefile: + + Removed old Makefiles. + + * ACEXML/parser/parser/Parser.cpp: + * ACEXML/common/StreamFactory.cpp: + * ACEXML/common/ZipCharStream.cpp: + * ACEXML/common/ZipCharStream.h: + + Fixed compilation errors. + +Mon Nov 18 20:30:30 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/common/CharStream.h: + * ACEXML/common/Encoding.cpp: + * ACEXML/common/FileCharStream.cpp: + * ACEXML/common/FileCharStream.h: + * ACEXML/common/StrCharStream.cpp: + * ACEXML/common/StrCharStream.h: + * ACEXML/common/HttpCharStream.cpp: + * ACEXML/common/HttpCharStream.h: + + Fixed a number of minor typos and debugging statements. + + * ACEXML/common/LocatorImpl.cpp: Check for a valid string before + assigning it to the new Locator. + + * ACEXML/common/NamespaceSupport.cpp: + + Make sure that we don't have a null prefix before trying to + dereference the prefix. + + * ACEXML/common/ZipCharStream.cpp: + * ACEXML/common/ZipCharStream.h: + + New stream which reads files from a ZIP archive. + + * ACEXML/common/StreamFactory.cpp: + + Modified to accomodate ZipCharStream. + + * ACEXML/examples/SAXPrint/Print_Handler.cpp: + * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: + * ACEXML/examples/SAXPrint/main.cpp: + + Commented out a lot of unnecessary debug statements. + + * ACEXML/parser/parser/Parser.cpp: + * ACEXML/parser/parser/Parser.h: + + Lots of bugfixes. Finally we parse the XML version of XHTML + specification without dumping core. + +Sat Nov 16 21:18:55 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/parser/parser/Parser.cpp: + * ACEXML/parser/parser/Parser.h: + + More bugs fixed. Add support for parsing PE references within + attribute list declarations and clean up the same. Add support + for parsing PE references within element declarations. + +Tue Nov 12 19:48:34 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/parser/parser/ParserContext.cpp: + * ACEXML/parser/parser/ParserContext.h: + * ACEXML/parser/parser/ParserContext.inl: + + New files which hold the ParserContext needed to handle the + switching of input streams on the fly. + + * ACEXML/parser/parser/ParserInternals.cpp: + * ACEXML/parser/parser/ParserInternals.h: + + Moved some generic code from Parser.cpp to here. + + * ACEXML/apps/svcconf/Makefile: + * ACEXML/common/Makefile: + * ACEXML/parser/parser/Makefile: + + Updated dependencies. + + * ACEXML/common/Attributes_Def_Builder.h: + + No need to typedef in C++. + + * ACEXML/common/DefaultHandler.cpp: + + Minor typos. + + * ACEXML/common/Encoding.cpp: + + If auto-detection of encoding fails, assume that it is UTF-8. + + * ACEXML/common/Exception.cpp: + + Change the error message from ACE_DEBUG to ACE_ERROR. + + * ACEXML/common/FileCharStream.cpp: Handle BOM of UTF-8 in + addition to UTF-16. Cleanup unnecessary parens. + + * ACEXML/common/HttpCharStream.cpp: + * ACEXML/common/HttpCharStream.h: + + Add support for auto-detection of encoding. + + * ACEXML/common/InputSource.cpp: + * ACEXML/common/InputSource.h: + + Fixes for use with ACEXML_Parser_Context. + + * ACEXML/common/LocatorImpl.cpp: + * ACEXML/common/LocatorImpl.h: + + Fixed bug in copy constructor which resulted in locator + information not getting set properly. + + * ACEXML/common/NamespaceSupport.cpp: + * ACEXML/common/NamespaceSupport.h: + + Implement reset() method. + + * ACEXML/common/SAXExceptions.cpp: + + Change the error message from ACE_DEBUG to ACE_ERROR. + + * ACEXML/common/StrCharStream.cpp: + + Handle copying of bytes according to sizeof (ACE_WCHAR). + + * ACEXML/common/StreamFactory.cpp: Create the appropriate stream + given an URI. We don't try to normalize the URI here. It is done + in the Parser. + + * ACEXML/common/Transcode.cpp: + * ACEXML/common/Transcode.i: + + Moved some very big functions from .i to .cpp. + + * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: + * ACEXML/examples/SAXPrint/main.cpp: + + Updates to reflect the new calling convention in the Parser. + + * ACEXML/parser/parser/Entity_Manager.cpp: + * ACEXML/parser/parser/Entity_Manager.h: + * ACEXML/parser/parser/Entity_Manager.i: + + Implemented support for resolving SYSTEM and PUBLIC ids from + the Entity_Manager. + + * ACEXML/parser/parser/Parser.cpp: + * ACEXML/parser/parser/Parser.h: + * ACEXML/parser/parser/Parser.i: + + Implemented support for external parameter and entity + references. Rewrote a lot of the basic parsing functionality to + adhere to the standard. Implment partial support for validation + of XML files. + + +Fri Oct 25 15:44:04 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/parser/parser/Parser.i: Handle end-of-line as required by + the spec. Specifically any sequence of 0x0D or 0x0D 0x0A should + be normalized to a 0x0A before passing to the XML processor. + + * ACEXML/parser/parser/Parser.cpp: Remove checks for 0x0D as it is + handled tranparently now. + +Thu Oct 24 21:06:44 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/common/NamespaceSupport.cpp: Define strings normally and + not as an array. + + * ACEXML/common/Attributes_Def_Builder.h: No need to typedef in C++. + +Thu Oct 24 01:52:46 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML\parser\parser\Parser.cpp: Moved out the declaration of + variables outside case labels. MSVC doesn't like it. + +Wed Oct 23 22:24:59 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/parser/parser/Parser.cpp: Fixed a stupid thinko in array + initialization. + +Wed Oct 23 17:27:14 2002 Krishnakumar B <kitty@cs.wustl.edu> + + * ACEXML/common/Encoding.cpp: + * ACEXML/common/Encoding.h: + + Use UTF-16 instead of UTF-16LE/UTF-16BE as the specification + doesn't require mentioning the endianness of the input. + + * ACEXML/common/Transcode.h: Fixed some minor typos. + + * ACEXML/examples/SAXPrint/namespaces.xml: New file which tests + out the namespaces feature much better. + + * ACEXML/apps/svcconf/Makefile: + * ACEXML/parser/parser/Makefile: + + Updated dependencies. + + * ACEXML/parser/parser/ParserErrors.h: New file which contains the + error codes of all the error spit out by the parser. + + * ACEXML/examples/SAXPrint/Print_Handler.cpp: + * ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp: + + Make sure that the characters() function describes the arguments + as start and length instead of start and end. + + * ACEXML/parser/parser/Parser.dsp: Added ParserErrors.h to the + project file. + + * ACEXML/parser/parser/Parser.cpp: + * ACEXML/parser/parser/Parser.h: + + Use minor codes when reporting error in the parser. This cleans + up a lot of repeated error messages and indenting so that we + don't need to spill over 80 columns and have a standardized way + of reporting errors. Rewrote parse_cdata() so that is is much + simpler. Removed try_grow_cdata() as it is no longer needed. + Handle the case when the parser was accepting invalid character + references(). diff --git a/ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp b/ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp index 7c48917d940..d2c7ab27e04 100644 --- a/ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp +++ b/ACEXML/apps/svcconf/XML_Svc_Conf_Parser.dsp @@ -70,7 +70,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_SVC_CONF_PARSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /I "C:\Libs\zlib" /I "C:\Libs\zziplib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
diff --git a/ACEXML/common/XML_Common.dsp b/ACEXML/common/XML_Common.dsp index decdb107711..115c39babe5 100644 --- a/ACEXML/common/XML_Common.dsp +++ b/ACEXML/common/XML_Common.dsp @@ -70,7 +70,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XML_COMMON_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D ACEXML_HAS_DLL=1 /D "ACEXML_BUILD_DLL" /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /I "C:\Libs\zlib" /I "C:\Libs\zziplib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D ACEXML_HAS_DLL=1 /D "ACEXML_BUILD_DLL" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
@@ -81,7 +81,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /dll /debug /machine:I386 /out:"../../bin/ACEXMLD.dll" /pdbtype:sept /libpath:"..\..\ace"
+# ADD LINK32 aced.lib zzipd.lib zlib.lib /nologo /dll /debug /machine:I386 /out:"../../bin/ACEXMLD.dll" /pdbtype:sept /libpath:"..\..\ace" /libpath:"C:\Libs\zlib" /libpath:"C:\Libs\zziplib"
!ENDIF
@@ -184,6 +184,10 @@ SOURCE=.\XML_Codecs.cpp SOURCE=.\XMLFilterImpl.cpp
# End Source File
+# Begin Source File
+
+SOURCE=.\ZipCharStream.cpp
+# End Source File
# End Group
# Begin Group "Header Files"
@@ -324,6 +328,10 @@ SOURCE=.\XMLFilterImpl.h SOURCE=.\XMLReader.h
# End Source File
+# Begin Source File
+
+SOURCE=.\ZipCharStream.h
+# End Source File
# End Group
# Begin Group "Resource Files"
diff --git a/ACEXML/examples/SAXPrint/SAXPrint.dsp b/ACEXML/examples/SAXPrint/SAXPrint.dsp index 2d9a6cc4a98..a07d2e26ca5 100644 --- a/ACEXML/examples/SAXPrint/SAXPrint.dsp +++ b/ACEXML/examples/SAXPrint/SAXPrint.dsp @@ -66,7 +66,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../.." /I "C:\Libs\zlib" /I "C:\Libs\zziplib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
@@ -74,7 +74,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib ACEXMLd.lib ACEXML_Parserd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\Common" /libpath:"..\..\parser\parser"
+# ADD LINK32 aced.lib ACEXMLd.lib ACEXML_Parserd.lib zlib.lib zzipd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\Common" /libpath:"..\..\parser\parser" /libpath:"C:\Libs\zlib" /libpath:"C:\Libs\zziplib"
!ENDIF
diff --git a/ACEXML/parser/debug_validator/Debug_Validator.dsp b/ACEXML/parser/debug_validator/Debug_Validator.dsp index ee0f98624c6..5b2f7de7bfd 100644 --- a/ACEXML/parser/debug_validator/Debug_Validator.dsp +++ b/ACEXML/parser/debug_validator/Debug_Validator.dsp @@ -70,7 +70,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DEBUG_VALIDATOR_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACEXML_DEBUG_DTD_MANAGER_BUILD_DLL" /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /I "C:\Libs\zlib" /I "C:\Libs\zziplib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACEXML_DEBUG_DTD_MANAGER_BUILD_DLL" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
diff --git a/ACEXML/parser/parser/Parser.cpp b/ACEXML/parser/parser/Parser.cpp index f9f202ae301..8fc853172ac 100644 --- a/ACEXML/parser/parser/Parser.cpp +++ b/ACEXML/parser/parser/Parser.cpp @@ -298,35 +298,39 @@ ACEXML_Parser::parse_external_dtd (ACEXML_ENV_SINGLE_ARG_DECL) ACEXML_ENV_ARG_PARAMETER); ACEXML_CHECK_RETURN (-1); } - ACEXML_Char* uri = this->normalize_systemid (systemId); - ACE_Auto_Basic_Array_Ptr<ACEXML_Char> cleanup_uri (uri); - ACEXML_InputSource* ip = 0; - if (this->entity_resolver_) + if (this->validate_) { - ip = this->entity_resolver_->resolveEntity (publicId, - (uri ? uri : systemId) - ACEXML_ENV_ARG_PARAMETER); + ACEXML_Char* uri = this->normalize_systemid (systemId); + ACE_Auto_Basic_Array_Ptr<ACEXML_Char> cleanup_uri (uri); + ACEXML_InputSource* ip = 0; + if (this->entity_resolver_) + { + ip = this->entity_resolver_->resolveEntity (publicId, + (uri ? uri : systemId) + ACEXML_ENV_ARG_PARAMETER); + ACEXML_CHECK_RETURN (-1); + } + if (ip) + { + if (this->switch_input (ip, (uri ? uri : systemId), publicId) != 0) + return -1; + } + else + { + ACEXML_StreamFactory factory; + ACEXML_CharStream* cstream = factory.create_stream (uri ? + uri: systemId); + if (!cstream) { + this->fatal_error (ACE_TEXT ("Invalid input source") + ACEXML_ENV_ARG_PARAMETER); + ACEXML_CHECK_RETURN (-1); + } + if (this->switch_input (cstream, systemId, publicId) != 0) + return -1; + } + this->parse_external_subset (ACEXML_ENV_SINGLE_ARG_PARAMETER); ACEXML_CHECK_RETURN (-1); } - if (ip) - { - if (this->switch_input (ip, (uri ? uri : systemId), publicId) != 0) - return -1; - } - else - { - ACEXML_StreamFactory factory; - ACEXML_CharStream* cstream = factory.create_stream (uri ? uri: systemId); - if (!cstream) { - this->fatal_error (ACE_TEXT ("Invalid input source") - ACEXML_ENV_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); - } - if (this->switch_input (cstream, systemId, publicId) != 0) - return -1; - } - this->parse_external_subset (ACEXML_ENV_SINGLE_ARG_PARAMETER); - ACEXML_CHECK_RETURN (-1); return 0; } diff --git a/ACEXML/parser/parser/Parser.dsp b/ACEXML/parser/parser/Parser.dsp index f70361682b0..9a3c15dd7bd 100644 --- a/ACEXML/parser/parser/Parser.dsp +++ b/ACEXML/parser/parser/Parser.dsp @@ -70,8 +70,8 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACEXML_PARSER_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACEXML_PARSER_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /I "C:\Libs\zziplib" /I "C:\Libs\zlib" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACEXML_PARSER_BUILD_DLL" /FD /c
+# SUBTRACT CPP /X /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|