Re: Incompatible library : Missing Magic Block

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: Incompatible library : Missing Magic Block
Дата
Msg-id 4AE18D5A.9000502@postnewspapers.com.au
обсуждение исходный текст
Ответ на Re: Incompatible library : Missing Magic Block  ("Massa, Harald Armin" <chef@ghum.de>)
Ответы Re: Incompatible library : Missing Magic Block  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-general
Massa, Harald Armin wrote:
> Ambarsih,
>
>> // add.cpp : Defines the entry point for the DLL application.
>
> are you sure that you using the C-Compiler and not the c++ compiler?
> As much as I know about defaults, that will be a C++ compiled
> function, which is something totally different then a C compiled
> function. (and, to my knowledge, a C++ function is not easily callable
> by PostgreSQL)

So long as the function uses C linkage (extern "C") it'll be callable
directly from C++ using dlopen(), LoadLibrary, etc.

A C++ function is callable from C via function pointer even if it has
C++ linkage, though the C calling convention declared must handle stack
management, parameter passing and return value popping in the same way
the C++ calling convention on that compiler does. That means that it's
unsafe to call a __thiscall C++ member function from C, but otherwise
it's generally fine so long as the C and C++ compilers default to the
same calling convention or you explicitly specify it on both ends.

--
Craig Ringer

В списке pgsql-general по дате отправления:

Предыдущее
От: "Jayaraman, Rajaram (STSD)"
Дата:
Сообщение: Re: FATAL error "could not find function "alt_to_mic" in file cyrillic_and_mic.so
Следующее
От: Craig Ringer
Дата:
Сообщение: Re: FATAL error could not find function "alt_to_mic" in file cyrillic_and_mic.so