Цитата:
Сообщение от 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.