PostgreSQL 9.3 или 9.4. Создаю DLL-библиотеку (if_dll.dll) с пользовательской функцией на С (в MS Visual Studio 2010). При попытке CREATE функцию в PostgreSQL получаю "ОШИБКА: несовместимая библиотека "C:/Program Files/PostgreSQL/9.4/lib/if_dll.dll": нет отличительного блока" хотя в тело библиотеки включен PG_MODULE_MAGIC. Исходный текст ниже. В чем проблема ?
#include "stdafx.h"
#include "if_dll.h"
#include "postgres.h"
#include "fmgr.h"
#include "libintl.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
#if defined(_WIN32)
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
BEGIN_MESSAGE_MAP(Cif_dllApp, CWinApp)
END_MESSAGE_MAP()
Cif_dllApp::Cif_dllApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
Cif_dllApp theApp;
BOOL Cif_dllApp::InitInstance()
{
CWinApp::InitInstance();
return TRUE;
}
//-----------------------------------------------------------------------------
DLLEXPORT
int add_one (int arg) {
return arg + 1;
}
Я не знаю. Но моё знакомства
Я не знаю. Но моё знакомства с С функциями остановилось на том, что я там тыкал-тыкал, менял-менял настройки и таки откомпилил и добавил. Однако, на вход моя функция boolean не принимала и всё тут. Такие дела...