On Fri, Apr 27, 2012 at 5:14 PM, Ray Holme <rayholme@xxxxxxxxx> wrote: > I used to do this using Borland C but no longer have that machine. I have been told that the free Microsoft compiler will work, but I am aUnix/Linux person and would prefer to use gcc on the Windows machine(s) for compilation. Compiling the user-defined-function source works fine (I have appropriate __cdecl defined for the functions just as needed in Borland's compiler without __export). However linking the DLL is not so good - the problem appears to be in using the firebird libraries. I have both the library and dll versions of both in my current working directory (for now - till I get it working, then I will try using the "-L" option ....). From what I can see in the error listed below, gcc does NOT like these .lib libraries (I also tried the .dll files, but they really were not liked by the compiler). > > Below is the command as entered on the PC and the error that follows. > E:\ray\vetadmin\UDF>gcc -shared -o vetAdmin.dll udf.o -Wl,--out-implib=libvetAdmin.dll.a ^ > -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive fbclient_ms.lib ib_util_ms.lib I'm not sure how to dial it in using GCC, but you will also want to use /GS, /SafeSEH, and /NXCOMPAT. If the source file is high risk (such as parsing input from untrusted sources such as the internet), you will want to add #pragma strict_gs_check(on) to the source file. To be clear, these are Visual Studio switches to help with hardening. But I don't now how to instruct the GNU tools to use, for example, /SafeSEH. And I have not been able to find GCC reading on the switches. Jeff .