Перейти к содержанию
Fire Monkey от А до Я

Pulsarius

Пользователи
  • Постов

    32
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Ответы сообщества

  1. Пост Pulsarius - сообщение в Помогите разобраться с кодом C# был отмечен как ответ   
    Ты с ума сошёл в функцию массивы передавать 
     
    Замени
    function opus_decode(st:OpusDecoder; data:array of Byte; len:Integer;var pcm: array of Byte; frame_size: Integer; decode_fec:Integer):Integer; cdecl; external 'opus.dll'; на
    function opus_decode(st: OpusDecoder; data: PByte; len: Integer; pcm: PByte; frame_size: Integer; decode_fec: Integer):Integer; cdecl; external 'opus.dll'; Прототип функции ты неверно объявил. Дальше вызываешь функцию так:
    Error := opus_decode(OPDecoder, @PreEnc[0], 9, @PreDec[0], 2000, 0);
  2. Пост Pulsarius - сообщение в Delphi/C# IntPtr был отмечен как ответ   
    Или можно ещё короче, если планируется работа с памятью по указателю:
    var decodedPtr: Pointer; procedure MyProcedure(const MaxDataBytes: Integer); begin GetMem(decodedPtr, MaxDataBytes); end; И потом не забыть написать где-нибудь вот это, когда выделенная память больше не нужна:
    ... FreeMem(decodedPtr); ...
×
×
  • Создать...