2011-09-28 4 views
2

Delphi에서 함수 RTMP_SetupURL을 호출하면 URL이 레코드 RTMP에서 업데이트되지 않고 다음과 같은 DLL 함수가 tanslated되었습니다.LIBRTMP 델파이 : DLL 매핑

int RTMP_SetupURL(RTMP *r, char *url); 

function RTMP_SetupURL(var r:RTMP; url:PAnsichar):integer; 

레코드 AVal은 다음과 같이 선언됩니다.

AVal = record 
av_val: PansiChar; 
av_len: integer; 
end; 

URL을 설정하기 전에 init (RTMP) 레코드가 제대로 초기화되지 않았습니다.

다음에

var MY_RTMP: RTMP; 
MY_RTMP := RTMP_Alloc; 
RTMP_Init(MY_RTMP); 

모든 레코드가 초기화됩니다. URL을 초기화 할 때 사용되는 "링크"레코드는 제외됩니다. 레코드가 제대로 선언되지 않은 것 같아요

+0

아니요, 'PAnsichar'는 맞습니다. 이것이'char *'와 일치시키기 위해 필요한 것입니다. 호출 규칙은 어떨까요? 델파이 버전이'cdecl'을 사용해야합니까? 두 언어 모두에서 'RTMP'의 정의는 무엇입니까? –

답변

2

나는 이것을 시도합니다. Here은 내가 기본으로 사용한 소스입니다.

function RTMP_SetupURL(var R: RTMP; Url: PAnsiChar): Integer; cdecl; 
    external 'librtmp.dll' name 'RTMP_SetupURL';