: TMyFunction1 = function(Tcpip:String;TcpPort:Integer;Buffer:String;Len:integer):integer; cdecl; cdecl-->stdcall로변경
: TMyFunction2 = function(TcpPort:integer;Tcpip:String):integer; cdecl; cdecl-->stdcall로변경
: TMyFunction3 = function(SendData:String;DataByte:integer):integer; cdecl; cdecl-->stdcall로변경
하이 잘 됩니다. 그럼 좋은 하루되세요
//
궁금이 님이 쓰신 글 :
: 아래는 소스입니다;
: Sm문자는 정상적으로 발송합니다. 그런데 보낸후 프로그램이 종료합니다.
:
: 또 이런방법으로 사용하는데 메모리문제와는 어떤지 궁금합니다.
:
: type
: TMyFunction1 = function(Tcpip:String;TcpPort:Integer;Buffer:String;Len:integer):integer; cdecl;
: TMyFunction2 = function(TcpPort:integer;Tcpip:String):integer; cdecl;
: TMyFunction3 = function(SendData:String;DataByte:integer):integer; cdecl;
:
: procedure TP_i_JeopSu_SmsF.Btn_WriteClick(Sender: TObject);
: var TMyHandle2 : THandle ;
: TMyHandle3 : THandle ;
: MySmsOpen : TMyFunction2 ;
: MySmsSend : TMyFunction3 ;
: //
: a_Gateway,
: a_ip ,
: a_port :String;
: c,
: d :String;
: b,res:integer;
: begin
: TMyHandle2 := LoadLibrary('\pnp\master\dll\STrans.dll');
: TMyHandle3 := LoadLibrary('\pnp\master\dll\STrans.dll');
: //
: a_Gateway:=Name_Cal('GateWay','SMS');
: a_Port :=Copy(a_Gateway,Pos(':' ,a_Gateway)+1,05);
: a_ip :=Copy(a_Gateway,1,Pos(':',a_Gateway)-1 );
: //
: @MySmsOpen:= GetProcAddress(TMyHandle2 ,'SmsOpenAPI');
: @MySmsSend:= GetProcAddress(TMyHandle3 ,'SmsTransDataAPI');
: Try
: res := MySmsOpen(StrToint(a_port),a_ip);
: iF (res <> 0) Then Begin showmessage('에라:'+IntToHex(res,2));
: End Else Begin showmessage('성공');
: End;
: Except
: ShowMessage('통신 에라');
: // FreeLibrary(THandle2);
: End;
: //
: c:= Copy('접수일:' +A_Date .Text+StringOfChar(' ',090),1,16);
: c:=c+Copy('접수시:' +A_Time .Text+StringOfChar(' ',090),1,16);
: c:=c+Copy('요청사유:'+A_ContType_Na.Text+StringOfChar(' ',090),1,16);
: c:=c+Copy('고객위치:'+A_Addr .Text+StringOfChar(' ',090),1,32);
: //
: d:= '10';
: d:=d+Copy(' ' +StringOfChar(' ',090),1,02);
: d:=d+Copy(Z_Myip +StringOfChar(' ',090),1,16);
: d:=d+Copy(a_CustName .Text +StringOfChar(' ',090),1,20);
: d:=d+Copy(a_ShopPhone .Text +StringOfChar(' ',090),1,20);
: d:=d+Copy(c +StringOfChar(' ',090),1,80);
: d:=d+Copy(a_JoinPhone .Text +StringOfChar(' ',090),1,20);
: d:=d+Copy('10' ,1,02);
: d:=d+Copy(a_JoinCode .Text +StringOfChar(' ',090),1,04);
: d:=d+Copy(Z_AdjustiD +StringOfChar(' ',090),1,10);
: d:=d+Copy(Z_AdjustName +StringOfChar(' ',090),1,20);
: d:=d+Copy('00000000' +StringOfChar(' ',090),1,08);
: d:=d+Copy('0000' +StringOfChar(' ',090),1,04);
: //
: Try
: res := MySmsSend(d,208);
: iF (res <> 0) Then Begin showmessage('Error:'+IntToHex(res,2));
: End Else Begin showmessage('성공:');
: End;
: Except
: ShowMessage('Error');
: FreeLibrary(TMyHandle2);
: End;
: end;
|