[MAIN] [News] [Intro] [Features] [Download] [Installation] [Support] [Support+] [Docu] [Tutorial] [Bugs] [forum ] [wiki] [Mirror] [Authors] [Future] [License] [Win98 Setup Bug] [Subscribe] |
Bug DescriptionThe delivered scriba.dll on the Windows platform does not export the ScriptBasic API and therefore is not usable.Bug Reason, What Causes the BugThe ScriptBasic file scriba.dll was compiled erroneous.SolutionTo get a correct DLL run the following Perl script names mkscribadef.plopen(F,"scriba.c") or die "Can not open scriba.c"; open(OUT,">scriba.def") or die "Can not output scriba.def"; print OUT <<END; LIBRARY scriba DESCRIPTION "ScriptBasic Library" EXPORTS END while( defined( $line = <F>) ){ if( $line =~ /\/\*FUNCTION\*\// ){ $line = <F>; $line =~ /\w+\s+(\w+)/; print OUT " $1\n"; } } close OUT; close F;This will generate a DEF file. Alter the Makefile.nt to contain the code: scriba.dll : $(OBJS) $(COBJS) lmt_none.obj scriba.def $(LD) $(LDOPTIONS) /Fescriba.dll $(OBJS) $(COBJS) $(LIBS) _ lmt_none.obj /link /DEF:scriba.def scriba.def : scriba.c perl mkscribadef.plDelete all versions of scriba.dll and recompile it using the Makefile.n, or type cl /LD /nologo /Fescriba.dll builder.obj conftree.obj dynlolib.obj _ execute.obj expression.obj filesys.obj getopt.obj lexer.obj match.obj _ memory.obj myalloc.obj options.obj reader.obj report.obj sym.obj _ syntax.obj errcodes.obj hookers.obj modumana.obj extops.obj _ uniqfnam.obj epreproc.obj md5.obj ipreproc.obj scriba.obj _ environ.obj external.obj file.obj function.obj goto.obj if.obj _ let.obj mathfunc.obj mathops.obj print.obj string.obj time.obj _ while.obj logger.obj thread.obj hndlptr.obj mygmtime.obj _ basext.obj ws2_32.lib advapi32.lib _ lmt_none.obj /link /DEF:scriba.defTo check that the resulted file contains all exported functions type Dumpbin /exports scriba.dllThe next version of ScriptBasic will deliver the correct DLL. Bug Workaround Until Solution is AvailableThere is no workaround.AcknowledgementFALKINDER,DAVID (HP-UnitedKingdom,ex2) |