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

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

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

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

Сообщение BadBoyAlex » 08.06.2010 13:19:06

У меня есть юнит, куда скидываю все часто используемые процедуры и функции. Привычка пришла из 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

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

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

Сообщение Mr.Smart » 08.06.2010 13:21:16

Код: Выделить всё
function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string; stdcall;

implementation

function GetLocalizedMessage (const ALayerName: string; const AIndex: integer): string; stdcall;
begin
//тело функции
end;
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

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

Сообщение zub » 08.06.2010 13:32:34

должен помочь
{$MODE DELPHI}
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение BadBoyAlex » 08.06.2010 19:08:19

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

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

Сообщение and » 10.06.2010 21:48:50

2BadBoyAlex: в синтаксисе FPC, в отличие от Delphi, заголовки объявления и реализации должны совпадать, т.е. нельзя опускать параметры или - как в Вашем случае - соглашения о вызове. О чём компилятор Вам честно сказал :-)
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 37

Рейтинг@Mail.ru