paulb@tekigm2.UUCP (05/15/87)
I support a large (~170 routine) library of signal processing and display routines for Tektronix. We want these routines to be able to be accessed via QuickBasic. They are already available via IBM compiled BASIC v1.0 but that compiler is no longer available. The routines are written in C (there are Microsoft and Lattice C bindings available too) so to make them available to BASIC, we implemented a series of interface functions that translate the BASIC parameters to the equivalent C types. These interface functions do a number of other kinds of front end checking and housekeeping chores (like heap management) too. To link to BASIC correctly, the interface library and the signal processing and graphics libraries have undergone "swizzling", a process that re-aligns segment and group names to be acceptable to BASIC. This all seems to work. Now the fun begins. I can link QuickBasic 2.0, 2.1, and 3.0 programs to the library AS LONG AS I USE AN IBM DOS LINKER AND NOT A MICROSOFT QUICKBASIC LINKER!!. If I use the QuickBasic linker I am told there are "too many segments" even if the /SEGMENTS flag is det to the max. The same problem occurs when trying to build a user library using the Quick- Basic BUILDLIB program (notoriously under-documented). Microsoft says the problem is that the interface isn't written in assembler but why I can successfully use the IBM linker they don't say. They run fine when linked this way but I want to provide support for the interactive QuickBasic environment if possible. So, I come to you, fellow-netters for some technical hints or even solutions. THANKS IN ADVANCE Paul Blattner