test.dll이라고 있거든여
/------------------------------------vc 헤더부분
typedef struct test_HANDLE {
int fd ; /* Socket FD */
char* data ; /* 응답 자료 버퍼 포인터 */
int dlen ; /* 응답 자료 버퍼 길이 */
char logfile[250]; /* Socket Log File Name */
} *Test_HANDLE;
test_HANDLE test_init(char *psLogFile);
int test_connect(SK_HANDLE pHand, char* host, int port);
제가..test_init를 호출후에.. 어케 받아야 하나여..
핸들값을 받아서 다시 test_connect를 호출하면서 핸들을 넘겨줘야 하는디.
제가 초보라서 잘모르겠습니다 ㅡㅜ
//----아래는 제가 꾸어다 맟춘 델파이단 소스인디 좀 봐주세여
//---------------선언부
type Ttest_HANDLE = record
fd : integer ; // Socket FD */
data : char* ; // 응답 자료 버퍼 포인터 */<---- 여기서 일단 에러가 포인터를 어케 받을지 몰라서여 ㅡㅜ
dlen : integer ; // 응답 자료 버퍼 길이 */
logfile : array [0..250] of char ; // Socket Log F
end;
//----------------구현부
procedure TForm1.Button6Click(Sender: TObject);
type
Tdll = function( LogFile : char ):THandle ; stdcall ;
var
hHandle : THandle ;
test_init: Tdll ;
init_handle : Thandle ;
begin
hHandle := LoadLibrary( 'C:Unit MonitorLibTest.dll' ) ;
if hHandle < 32 then
begin
ShowMessage('dll이 없습니다.');
Exit;
end
else
begin
@test_init := GetProcAddress( hHandle, 'test_init' ) ;
init_handle := test_init('0') ;<-------------- 여기서 에러가..특별한 액션이 없어서 제대로 된건지도 모르겠네여 ㅡㅜ
end ;
FreeLibrary( hHandle ) ;
end;
type
Ttest_HANDLE = record
fd : Integer ;
data : PChar ;
dlen : Integer ;
logfile : array [0..249] of char;
end;
type
Tdll = function( LogFile : char ):THandle ; stdcall ;
var
hHandle : THandle ;
test_init: Tdll ;
init_handle : Thandle ;
begin
hHandle := LoadLibrary(PChar('C:Unit MonitorLibTest.dll') );
if hHandle < 32 then
begin
ShowMessage('dll이 없습니다.');
Exit;
end;
@test_init := GetProcAddress( hHandle, 'test_init' ) ;
if @test_init <> nil then
init_handle := test_init('0');
FreeLibrary( hHandle ) ;
end;
맞는지 머르겠네요.... ^^