Illegal expression в if then else (HELP!!!!)

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

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

Ответить
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Illegal expression в if then else (HELP!!!!)

Сообщение gvido »

Робяты, помогите убогому, мне. Никак не могу понять чего не нравится лазарусу при сборке dspack. Ругается на ELSE в этой функции:

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

function TMediaObjectImpl.Lock(bLock: Longint): HResult; stdcall;
begin
  if (bLock <> 0) then Lock else Unlock;
  Result := S_Ok;
end;
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Кажись после Lock должно быть ;
Скорее всего при неправильном синтаксисе оно воспринимает чтото как переменную
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Lock(bLock: Longint) и Lock <= конфликтуют? Переименуйте и возможно перестанет ругаться.
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Это модуль DirectShow9. Изменил имена protected процедур этого класса Lock и Unlock на pLock и pUnLock. Собралось!!!! Спасибо. Странная логика тут. ругался бы на Lock и unlock, Так ведь нет, ругался else, чтоб его пополам разорвало!!! Попробуй догадайся. :)

Еще раз, СПАСИБО!!!
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Ism, перед else не ставится ";"

gvidoлогика нормальная. Ругается на первый оператор, которые не попадает в текущую (анализируемую) синтаксическую конструкцию. Компилятор же не настолько интеллектуален чтобы понять, что проблема в другом месте.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Для каких целей собираете dspack? Где брали? С какой версией fpc будете использовать?
Интересуюсь в связи с проблемой http://www.freepascal.ru/forum/viewtopic.php?f=5&t=10396
Ответить