LIBRTMP Delphi: используйте dll

Передо мной стоит задача загрузить и сохранить rtmp поток с сервера на свой компьютер. Исследуя интернет, я пришел к выводу, что необходимо использовать библиотеку LIBRTMP. Я работаю в Delphi XE2, и единственный подходящий код, который я нашел на этой странице и продажи на странице Pascal.
У меня возникли трудности с переводом этого кода в удобную форму для delphi. , т.к. типы cint, pcchar и т.д я не распознал.
Я не работаю с C или C++, не могли бы вы дать мне направление работы, или проще решить эту проблему?


person Anvar    schedule 09.10.2012    source источник


Ответы (1)


Вы можете сопоставить эти типы в Delphi, используя следующий код:

Type
cint = longint;
cchar = shortint;
pcchar = ^cchar;

И попробуйте перекомпилировать ваш код.

person sybond    schedule 09.10.2012
comment
использует ctypes, сокеты; ctypes - не используется в delphi? - person Anvar; 09.10.2012
comment
function RTMP_HashSWF(url:pcchar; var size:cuint; hash:pcuchar; age:cint):cint;cdecl;external Имя внешней_библиотеки 'RTMP_HashSWF'; hash:pcuchar - замена в delphi? - person Anvar; 09.10.2012
comment
На самом деле TArray0to6OfPcchar и AVal полностью определены на Pascal Page. А cvar — это просто директива, сообщающая Delphi, что значение переменной берется из внешней библиотеки. - person sybond; 09.10.2012
comment
hash:pcuchar - замена в delphi? - person Anvar; 09.10.2012
comment
или лучше, вы можете искать файл модуля ctypes.pas и sockets.pas. Я считаю, что cint, cchar, pcchar ... определены в этих единицах. - person sybond; 09.10.2012
comment
pcuchar: ^cuchar; и cuchar: byte; - person sybond; 09.10.2012
comment
RTMPProtocolStringsLower: TArray0to6OfPcchar; переменная; внешний; переменная; - указывает на ошибку при попытке компиляции: [Ошибка DCC] lrtmp.pas(313): E2029 ',' или ':' ожидается, но ';' найденная функция AMF_EncodeString(output:pcchar; outend:pcchar; var str:AVal):pcchar;cdecl;external Имя внешней_библиотеки 'AMF_EncodeString'; External_library — показывает ошибку при попытке компиляции: [Ошибка DCC] lrtmp.pas(318): E2003 Необъявленный идентификатор: «External_library» - person Anvar; 09.10.2012
comment
@Anvar извините, я перепутал с реализацией FPC cvar и Delphi. Для Delphi вы не можете загрузить переменную из внешней библиотеки. - person sybond; 09.10.2012
comment
Привет, мне удалось исправить ошибку, но у меня не получилось использовать var MY_RTMP: RTMP; URL_str: AnsiString; begin URL_str: = 'rtmp: // localhost: 1935/Video/test.stream'; MY_RTMP: = RTMP_Alloc; RTMP_Init (MY_RTMP); RTMP_SetupURL (MY_RTMP, pcchar (URL_str)); RTMP_Connect (MY_RTMP, 0); RTMP_ConnectStream(MY_RTMP, 0); конец; Ошибка RTMP_Connect (MY_RTMP, 0); - [Ошибка DCC] fMain.pas (36): E2033 Типы фактических и формальных параметров var должны быть идентичными, заранее спасибо - person Anvar; 10.10.2012