Показать сообщение отдельно
  #6  
Старый 11.06.2014, 13:00
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от otan
Объявлены они вот так вот
{$EXTERNALSYM ShellExecute}
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: LPWSTR; ShowCmd: Integer): HINST; stdcall;
В Delphi XE2 вместо "LPWSTR" прописано "PWideChar", но вряд-ли с этим связано.
Цитата:
Сообщение от otan
А это случайно не может быть связано с разрядностью операционной системы?
Откомпилировал у себя в Delphi XE2 под 64 бита - нормально работает.

Если закомментировать вызов ShellExecute то точно никаких ошибок компилятор не выдаёт?

Ещё как вариант, можешь прописать объявление ShellExecute в своём модуле прямо перед процедурой где она используется вот так:
Код:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
  Directory: LPWSTR; ShowCmd: Integer): HINST; stdcall;
  external 'shell32.dll' name 'ShellExecuteW';
или так:
Код:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
  Directory: PWideChar; ShowCmd: Integer): HINST; stdcall;
  external 'shell32.dll' name 'ShellExecuteW';
или даже так:
Код:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
  Directory: WideString; ShowCmd: Integer): HINST; stdcall;
  external 'shell32.dll' name 'ShellExecuteW';
при этом не нужно приводить строковые параметры к типу PChar.
Ответить с цитированием