Q&A

  • DLL ERROR
제가 DLL을 만들어서 테스트 중인데

자꾸 죽습니다.



다음과 같이 만들었습니다.

문자나 숫자를 i번째에서 j까지 자르는 평션입니다

*********

Function mid( const ss: string; i,j:integer):String; export;

begin

result := copy(trim(ss),i,j);

end;



****<호출프로그램>*****

테스트버튼을 눌렀을때

edit1.text := mid(edit2.text, 1,3);



'123'을 테스트시 정상

'1234'를 테스트시 'Invalid Pointer Operation' ERROR가 납니다.

4자리 이상 입력하면 이런ERROR가 나오고

답도 나옵니다.

그러다가 다운
2  COMMENTS
  • Profile
    kylix 2001.02.24 23:27
    DLL에선 string타입은 사용안하는게 좋아여... PChar를 사용하기를 권장합니다.



    꼭 사용하겠다면 uses절에 ShareMem유닛을 추가해주세요...



    황내현 wrote:

    > 제가 DLL을 만들어서 테스트 중인데

    > 자꾸 죽습니다.

    >

    > 다음과 같이 만들었습니다.

    > 문자나 숫자를 i번째에서 j까지 자르는 평션입니다

    > *********

    > Function mid( const ss: string; i,j:integer):String; export;

    > begin

    > result := copy(trim(ss),i,j);

    > end;

    >

    > ****<호출프로그램>*****

    > 테스트버튼을 눌렀을때

    > edit1.text := mid(edit2.text, 1,3);

    >

    > '123'을 테스트시 정상

    > '1234'를 테스트시 'Invalid Pointer Operation' ERROR가 납니다.

    > 4자리 이상 입력하면 이런ERROR가 나오고

    > 답도 나옵니다.

    > 그러다가 다운
  • Profile
    황내현 2001.02.24 23:28
    > 황내현 wrote:

    해답을 주셔서 감사합니다.

    한가지 더 질문드릴께요

    sharemem을 사용했더니 정상적으로 나왔거든요

    그런데 프로그램 종료시 동일한 error가 나오거나

    먹통이 되어버립니다.

    매번 PC를 다시 부팅해야 하더군요

    dll 을 메모리에서 제거되는 과정에서 이상이 있는것 같아요..

    다시 한번 부탁드립니다.

    kylix wrote:

    > DLL에선 string타입은 사용안하는게 좋아여... PChar를 사용하기를 권장합니다.

    >

    > 꼭 사용하겠다면 uses절에 ShareMem유닛을 추가해주세요...

    >

    > 황내현 wrote:

    > > 제가 DLL을 만들어서 테스트 중인데

    > > 자꾸 죽습니다.

    > >

    > > 다음과 같이 만들었습니다.

    > > 문자나 숫자를 i번째에서 j까지 자르는 평션입니다

    > > *********

    > > Function mid( const ss: string; i,j:integer):String; export;

    > > begin

    > > result := copy(trim(ss),i,j);

    > > end;

    > >

    > > ****<호출프로그램>*****

    > > 테스트버튼을 눌렀을때

    > > edit1.text := mid(edit2.text, 1,3);

    > >

    > > '123'을 테스트시 정상

    > > '1234'를 테스트시 'Invalid Pointer Operation' ERROR가 납니다.

    > > 4자리 이상 입력하면 이런ERROR가 나오고

    > > 답도 나옵니다.

    > > 그러다가 다운