Hi, I am trying to write a C function (using
Postgres external methods) in windows XP and am using Postgres 8.3.7 version
and creating a dll using Microsoft Visual
Studio 2005. However I have included all the required
headers and PG_MODULE_MAGIC in my code. (Please find below the example code
which I am compiling using MSVC) _________________________________________________________________ // 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 function using that dll, Postgres throws an error 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; I am
using the Postgres 8.3.7 headers to compile the program and have followed the
steps to compile the program in MSVC. Kindly provide your help at the earliest
as this is really a show stopper for us. Many thanks in advance Ambarish Bhattacharya |