Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[10513] [질문] 왜 DLL을 읽고 실행후 프로그램이 종료합니다, 급해요 부탁합..
궁금이 [] 923 읽음    2006-02-19 17:15
아래는 소스입니다;
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;

+ -

관련 글 리스트
10513 [질문] 왜 DLL을 읽고 실행후 프로그램이 종료합니다, 급해요 부탁합.. 궁금이 923 2006/02/19
10517     Re:[질문] 왜 DLL을 읽고(자답) 궁금이 1046 2006/02/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.