Geoff Chappell - Software Analyst
The EXETYPE statement is supported only when building an export file for a VxD. It is otherwise ignored after a warning (LNK4017).
EXETYPE is a single-definition statement. The EXETYPE tag must be followed by a space or tab. There may then be any amount of white space, including none, before the argument. An overview of the syntax is:
EXETYPE type
where type extends up to but not including the next space or tab, or to the end of the line. All remaining characters on the line are irrelevant and are ignored.
The only supported value for type is the case-insensitive keyword DEV386. Anything else results in a warning (LNK4017) about not being supported.
In the present coding, an empty EXETYPE statement induces LIB to fault, which is reported as
LINK : fatal error LNK1000: Internal error during ParseDefinitionFile
followed by a dump of exception codes and CPU context. The immediate reason is an elementary programming error: the code calls the C Run-Time Library function _mbstok to pick out the type but does not check whether this function returns NULL.
There is anyway no translation to the export-file command line. In effect, EXETYPE has no effect. It is presumably retained just to support existing module definition files.