Error: Procedure directive "STDCALL" has conflicts

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Sphinx
новенький
Сообщения: 33
Зарегистрирован: 27.09.2005 21:52:09

Error: Procedure directive "STDCALL" has conflicts

Сообщение Sphinx »

имеется следующий код (участок на котором конфликт):

Код: Выделить всё

implementation

{$IFNDEF DYNAMIC_LOAD}
  function _CreateInterface: Pointer; external LibName name 'CreateInterface'; stdcall;
{$ELSE}
type
  TCreateInterface = function: Pointer; stdcall;

var
  hMGraph : HMODULE;

procedure UnLoadLib;
begin
  if hMGraph <> 0 then
    FreeLibrary(hMGraph);
end;
{$ENDIF}


при компиляции все падает с ошибкой:
Error: Procedure directive "STDCALL" has conflicts with other directives


При этом в interface секции тоже полно функций с stdcall; но там все отлично. Кто-нибудь сталкивался с подобным ?
Уже всю голову сломал :cry:
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

А какой из вариантов не компилируется (с DYNAMIC_LOAD или без, или оба)?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Код: Выделить всё

function _CreateInterface: Pointer; stdcall; external LibName name 'CreateInterface'; 

;)
Sphinx
новенький
Сообщения: 33
Зарегистрирован: 27.09.2005 21:52:09

Сообщение Sphinx »

Sergei I. Gorelkin без, т.е. при статической линковке с библиотекой.

shade Ну блиииин.....я тут полдня голову ломаю, а решение такое простое (((
Спасибо большое. :wink:
Ответить