One more thing to add here…I am
using the Postgres 8.3.7 headers to compile my program and have added
PG_MODULE_MAGIC but still error is persisting. From: Bhattacharya, A Hi, I am trying to code Postgres external C
function in windows XP and am using Postgres 8.3 version. However I have included all the required
things in the code to run (Please find below the example code which I am
compiling using MSVC and generating the dll) _________________________________________________________________ // add.cpp : Defines
the entry point for the DLL application. // #define _USE_32BIT_TIME_T #include "postgres.h" #include "fmgr.h" //#ifdef PG_MODULE_MAGIC PG_MODULE_MAGIC; //#endif PG_FUNCTION_INFO_V1(add_one); Datum add_one(PG_FUNCTION_ARGS) { int32 arg
= PG_GETARG_INT32(0); PG_RETURN_INT32(arg +
1); } _____________________________________________________________________ I could compile the code successfully
and generate the dll with no errors but whenever I am compiling the below
postgres functuion using the dll the it thrown an error saying ERROR: incompatible library
"C:/Program Files/PostgreSQL/8.3/lib/add.dll": missing magic block HINT: Extension libraries are
required to use the PG_MODULE_MAGIC macro. Postgres Function CREATE OR REPLACE FUNCTION add_one(IN int)
RETURNS int AS '$libdir/add', 'add_one' LANGUAGE C; Please provide your help at the earliest
as this is really a show stopper for us. |