; ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл

    yesno Editor should be empty and in a seperate empty directory**Continue ?
    jmp nxt
    exit
  nxt:

    input Enter DLL asm file name with NO extension**testdll
    assign str1 {str0}

    fcreate {str1}.def
      fprint LIBRARY {str1}
    fclose

    fcreate makeit.bat
      fprint @echo off
      fprint if exist {str1}.obj del {str1}.obj
      fprint if exist {str1}.dll del {str1}.dll
      fprint \masm32\bin\ml /c /coff {str1}.asm
      fprint \masm32\bin\Link /SUBSYSTEM:WINDOWS /DLL /DEF:{str1}.def {str1}.obj
      fprint del {str1}.obj
      fprint del {str1}.exp
      fprint dir {str1}.*
      fprint pause
    fclose

fcreate {str1}.asm

fprint {comment} ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
fprint 
fprint       .486                      {comment} create 32 bit code
fprint       .model flat, stdcall      {comment} 32 bit memory model
fprint       option casemap :none      {comment} case sensitive
fprint 
fprint {comment}     include files
fprint {comment}     ~~~~~~~~~~~~~
fprint       include \masm32\include\windows.inc
fprint       include \masm32\include\masm32.inc
fprint       include \masm32\include\gdi32.inc
fprint       include \masm32\include\user32.inc
fprint       include \masm32\include\kernel32.inc
fprint       include \masm32\include\Comctl32.inc
fprint       include \masm32\include\comdlg32.inc
fprint       include \masm32\include\shell32.inc
fprint       include \masm32\include\oleaut32.inc
fprint       include \masm32\include\dialogs.inc
fprint       include \masm32\macros\macros.asm     {comment} the macro file
fprint 
fprint {comment}     libraries
fprint {comment}     ~~~~~~~~~
fprint       includelib \masm32\lib\masm32.lib
fprint       includelib \masm32\lib\gdi32.lib
fprint       includelib \masm32\lib\user32.lib
fprint       includelib \masm32\lib\kernel32.lib
fprint       includelib \masm32\lib\Comctl32.lib
fprint       includelib \masm32\lib\comdlg32.lib
fprint       includelib \masm32\lib\shell32.lib
fprint       includelib \masm32\lib\oleaut32.lib
fprint 
fprint     {comment} ----------------------------------------
fprint     {comment} prototypes for local procedures go here
fprint     {comment} ----------------------------------------
fprint 
fprint       .data?
fprint         hInstance dd ?
fprint 
fprint       .code
fprint 
fprint {comment} ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
fprint 
fprint LibMain proc instance:DWORD,reason:DWORD,unused:DWORD
fprint 
fprint     .if reason == DLL_PROCESS_ATTACH
fprint       push instance
fprint       pop hInstance
fprint       mov eax, TRUE
fprint 
fprint     .elseif reason == DLL_PROCESS_DETACH
fprint 
fprint     .elseif reason == DLL_THREAD_ATTACH
fprint 
fprint     .elseif reason == DLL_THREAD_DETACH
fprint 
fprint     .endif
fprint 
fprint     ret
fprint 
fprint LibMain endp
fprint 
fprint {comment} ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
fprint 
fprint   comment * -----------------------------------------------------
fprint           You should add the procedures your DLL requires AFTER
fprint           the LibMain procedure. For each procedure that you
fprint           wish to EXPORT you must place its name in the "{str1}.def"
fprint           file so that the linker will know which procedures to
fprint           put in the EXPORT table in the DLL. Use the following
fprint           syntax AFTER the LIBRARY name on the 1st line.
fprint           LIBRARY {str1}
fprint           EXPORTS YourProcName
fprint           EXPORTS AnotherProcName
fprint           ------------------------------------------------------- *
fprint 
fprint {comment} ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл
fprint 
fprint end LibMain

fclose

fileopen {str1}.asm

msgbox Use MAKEIT.BAT to build the DLL**Operation finished
