ShellExecuteEx, компилятор не может понять что и куда

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

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

ShellExecuteEx, компилятор не может понять что и куда

Сообщение Tango » 06.03.2015 15:19:20

Функция ShellExecuteEx, при попытке использовать, компилятор не поймёт какую брать, пишет:
Can't determine which overloaded function to call

Код: Выделить всё
Function ShellExecuteExA(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external shell32 name 'ShellExecuteExA';
Function ShellExecuteExW(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external shell32 name 'ShellExecuteExW';
{$ifndef UNICODE}
Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external shell32 name 'ShellExecuteExA';
{$else}
Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external shell32 name 'ShellExecuteExW';
{$endif}


Даже с условной компиляцией. Если пишу явно ShellExecuteExA, всё нормально.

Win 8.1, Lazarus32 1.2.6 FPC 2.6.4.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: ShellExecuteEx, компилятор не может понять что и куда

Сообщение wavebvg » 06.03.2015 18:02:34

Посмотрите внимательнее. У Вас в другом месте есть лишнее объявление.
Уберите
Код: Выделить всё
Function ShellExecuteExA(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external shell32 name 'ShellExecuteExA';
Function ShellExecuteExW(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external shell32 name 'ShellExecuteExW';
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: ShellExecuteEx, компилятор не может понять что и куда

Сообщение Tango » 10.03.2015 15:52:33

Это не у меня, это модуль ShellApi.pp.
И где тут лишнее объявление?
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: ShellExecuteEx, компилятор не может понять что и куда

Сообщение Лекс Айрин » 10.03.2015 16:18:38

Tango, да все там правильно... другое дело, что сам компилятор не понимает какую ветку выбрать.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: ShellExecuteEx, компилятор не может понять что и куда

Сообщение Vapaamies » 10.03.2015 20:25:30

Лекс Айрин писал(а):другое дело, что сам компилятор не понимает какую ветку выбрать.

В этом случае или режим {$T+} должен помочь, или ручное приведение типа. В коде как функция вызывается?
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: ShellExecuteEx, компилятор не может понять что и куда

Сообщение Tango » 11.03.2015 13:59:54

Хромым костыли должны помочь или передвижение на коляске.

Всё это громоздко, всмотритесь в код, там как раз всё прозрачно, но компилятору всё равно даётся прозрачный намёк. Значит должно помочь подправление кода
ShellApi.pp.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30


Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 235

Рейтинг@Mail.ru
cron