프로그램에서 xxx.DLL을 호출해서 사용한 후 호출한 프로그램 종료시
다음 error가 뜹니다 (버전은 delphi3.0 이고요)
<메세지>
이 프로그램에서 잘못된 연산을 수행하여 종료됩니다.
문제가 지속되면 프로그램 구입업체에 문의하십시오.
자세한 내용을 클릭해보면....
04x!:00474adc의 모듈 SL_914.DLL에서 SL_060 잘못된 페이지 오류 발생.
Registers:
EAX=0047694c CS=015f EIP=00474adc EFLGS=00010202
EBX=0047694c SS=0167 ESP=0063fe70 EBP=006403f8
ECX=00000001 DS=0167 ESI=006403f4 FS=65ff
EDX=006403f4 ES=0167 EDI=006404f8 GS=0000
BCS:EIP:에 바이트 수
68 00 04 00 00 8d 44 24 04 50 8b 43 04 50 8b 03
Stack dump:
-----------------------------------------------------------------------
호출프로그램에서 선언은 이렇게 했어요
function func_pass(var GstrPNO_P:string; var GstrPASS_P:string;
var GstrPRIV_P:string; var GstrST_P:string):longint;stdcall;external 'xxx.dll';
-----------------------------------------------------------------------
호출루틴은 다음과 같고요
GstrPno_P:=GstrID_pno;
rv:=func_pass(GstrPno_P,GstrPass_P,GstrPriv_P,GstrSt_P);
if rv<>1 then begin
showmessage(GstrID_pno+' 님 패스워드가 다릅니다');
exit;
end;
DLL에다가 String이 넘기고 받을려면... 델파이에서는 Sharemem(?)이가를
uses 젤 첨에 써야 합니다.. (반드시) 근데 이렇게 하면 배포할때도..
연관된 DLL을 공급해야 합니다..
차라리.. PChar로 바꾸심이...
종철이 wrote:
> 이 프로그램에서 잘못된 연산을 수행하여 종료됩니다.
> 문제가 지속되면 프로그램 구입업체에 문의하십시오.
>
> 내용은....
>
> 04x!:00474adc의 모듈 SL_914.DLL에서 SL_060 잘못된 페이지 오류 발생.
> Registers:
> EAX=0047694c CS=015f EIP=00474adc EFLGS=00010202
> EBX=0047694c SS=0167 ESP=0063fe70 EBP=006403f8
> ECX=00000001 DS=0167 ESI=006403f4 FS=65ff
> EDX=006403f4 ES=0167 EDI=006404f8 GS=0000
> BCS:EIP:에 바이트 수
> 68 00 04 00 00 8d 44 24 04 50 8b 43 04 50 8b 03
> Stack dump:
>
> -----------------------------------------------------------------------
> 호출루틴은 다음과 같고요
>
> GstrPno_P:=GstrID_pno;
> rv:=func_pass(GstrPno_P,GstrPass_P,GstrPriv_P,GstrSt_P);
>
> if rv<>1 then begin
> showmessage(GstrID_pno+' 님 패스워드가 다릅니다');
> exit;
> end;
>
> -----------------------------------------------------------------------
>
> 선언은 이렇게 했어요
>
> function func_pass(var GstrPNO_P:string; var GstrPASS_P:string;
> var GstrPRIV_P:string; var GstrST_P:string):longint;stdcall;external 'xxx.dll';
>