Странная ошибка Лазаруса

Вопросы программирования и использования среды Lazarus.

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

Ответить
Аватара пользователя
BadBoyAlex
постоялец
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород
Контактная информация:

Странная ошибка Лазаруса

Сообщение BadBoyAlex »

У меня есть юнит, куда скидываю все часто используемые процедуры и функции. Привычка пришла из Delphi. Так вот, когда я попробовал Delphi - метод работы с этими процедурами

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

{stdcalls}
function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string; stdcall;

implementation

function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string;
begin
//тело функции
end;
<...>


выдаёт ошибку (хотя в Delphi срабатывало, начиная с 7-го, кончая 2010!):

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

Error: Calling convention doesn't match forward
Hint: Found declaration: GetLocalizedMessage(const AnsiString,const LongInt):AnsiString; StdCall;
Fatal: There were 1 errors compiling module, stopping

Что делать? Как можно "излечить" эту ошибку?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

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

function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string; stdcall;

implementation

function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string; stdcall;
begin
//тело функции
end;
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

должен помочь
{$MODE DELPHI}
Аватара пользователя
BadBoyAlex
постоялец
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород
Контактная информация:

Сообщение BadBoyAlex »

zub, спасибо большое помогло!
Аватара пользователя
and
постоялец
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Сообщение and »

2BadBoyAlex: в синтаксисе FPC, в отличие от Delphi, заголовки объявления и реализации должны совпадать, т.е. нельзя опускать параметры или - как в Вашем случае - соглашения о вызове. О чём компилятор Вам честно сказал :-)
Ответить