Я пытаюсь более двух дней, чтобы получить изображение JPEG и MP4 Video File Information с помощью MediaInfo.DLL
в моем скрипте Pascal.Получить изображение с помощью библиотеки MediaInfo в Inno Setup Pascal Script
Но я получаю ошибку
Runtime Error (в 6: 366) - Нарушение прав доступа по адресу 0042FD23. Читайте адрес 8065241E. '
Ошибка в основном указывает на (при 6: 366).
Я не могу думать, что проблема вызывает это исключение при попытке получить информацию СМИ с помощью MediaInfo.DLL.
Кода я добавил к моему сценарию:
[Files]
Source: Lamborghini_Aventador.jpg; DestDir: {tmp}; Flags: dontcopy
Source: MediaInfo.dll; DestDir: {tmp}; Flags: dontcopy
[Code]
#ifdef UNICODE
type
PWideChar = WideString;
#endif
const
StreamKind_Image = 5;
InfoKind_Text = 1;
function MediaInfo_New: Cardinal;
external '[email protected]{tmp}\MediaInfo.dll stdcall delayload';
function MediaInfo_Open(Handle: Cardinal; File__: PWideChar): Boolean;
external '[email protected]{tmp}\MediaInfo.dll stdcall delayload';
function MediaInfo_Get(Handle: Cardinal; StreamKind: Integer; StreamNumber: Integer; Parameter: PWideChar; KindOfInfo: Integer; KindOfSearch: Integer): PWideChar;
external '[email protected]{tmp}\MediaInfo.dll stdcall delayload';
procedure RetrieveImageInformation;
var
IHandle: Cardinal;
Width: PWideChar;
begin
ExtractTemporaryFile('Lamborghini_Aventador.jpg');
ExtractTemporaryFile('MediaInfo.dll');
IHandle := MediaInfo_New();
MediaInfo_Open(IHandle, PWideChar(ExpandConstant('{tmp}\Lamborghini_Aventador.jpg')));
Width := MediaInfo_Get(IHandle, StreamKind_Image, 0, 'Width', InfoKind_Text, 0);
Log('Width of the JPEG Image: ' + PWideChar(Width) + '.');
end;
Линии, исключение составляет порождающий :
Width := MediaInfo_Get(IHandle, StreamKind_Image, 0, 'Width', InfoKind_Text, 0);
Я ожидал, что выход компилятор будет Width of the JPEG Image: 1920.
Я использую последнюю версию Unicode Inno Setup Compiler (5.5.9 - U)
Заранее благодарим за вашу важную помощь.
Где вы получили эти DLL-вызовы для 'MediaInfo.DLL'? Получены ли они из примера Delphi с ним? – GTAVLover
Да @GTAVLover ......... Я думаю, что они в порядке ....... Ваша рекомендация тоже прекрасна ....... Только то, что я хочу, это получить CMD Output через 'LoadStringFromFile '.:-) – Blueeyes789