* 사용환경 : 델파이5 / Windows 98
* 에러 메시지 :
제가 공통함수만을 모아서 DLL을 만들었습니다.
아래와 같은 함수가 있는데...
위의 strFrontFillZero는 DLL에서 콜해도 에러가 없습니다.
그런데... 아래의
getComboItemIndex같은 경우는 오류가 떨어집니다.
그래서 getComboItemIndex 같은 경우는 그냥 원래 프로그램에 연결해서
쓰고 있습니다.
function strFrontFillZero( iValue: Integer; iLen: Integer ): String; stdcall;
function getComboItemIndex( Sender: TObject; strValue: String; iLen: Integer ): Integer; stdcall;
보니까... 제 생각에.. -_-?
TObject라는 타입이 들어가서 오류가 나는 것이 아닌가 생각이 됩니다.
다른 함수 TDateTime이라는 타입이 들어간것도 오류가 납니다.
그러니까... Class 형태로 만들어진 타입이 있으면 오류가 나는 듯 합니다.
엉~ 정말 그런건지? 아니면 해결할 수 있는 방법이 있는건지 알고싶습니다.
고수님들의 답변 부탁드립니다.
TObject 형태는 타입캐스팅 잘해줘서 사용하셨겠죠?
리턴값이 String이면 문제가 있습니다..
값받은 놈이 String의 원래값있는 위치를 가지죠..(내가 아는 고수님이 그랬어요..)
그래서 만일..Dll이 없어져 버리면..그위치를 가지는 포인터는 머 미아가 되어버려 에러가 뜨져..
그래서..스트링을 케릭터로 받아서 메모리 카피(StrLPCopy)하라구 글더라구요..
암튼 메모리 쪽이 문제 인거 같아요..(TDateTime두 마찬가지 일까?? 생각한번 해봐여^^)
메모리 카피카피해셔여~~~
남윤혁 wrote:
> * 사용환경 : 델파이5 / Windows 98
> * 에러 메시지 :
>
> 제가 공통함수만을 모아서 DLL을 만들었습니다.
>
> 아래와 같은 함수가 있는데...
>
> 위의 strFrontFillZero는 DLL에서 콜해도 에러가 없습니다.
>
> 그런데... 아래의
>
> getComboItemIndex같은 경우는 오류가 떨어집니다.
>
> 그래서 getComboItemIndex 같은 경우는 그냥 원래 프로그램에 연결해서
>
> 쓰고 있습니다.
>
> function strFrontFillZero( iValue: Integer; iLen: Integer ): String; stdcall;
> function getComboItemIndex( Sender: TObject; strValue: String; iLen: Integer ): Integer; stdcall;
>
> 보니까... 제 생각에.. -_-?
>
> TObject라는 타입이 들어가서 오류가 나는 것이 아닌가 생각이 됩니다.
>
> 다른 함수 TDateTime이라는 타입이 들어간것도 오류가 납니다.
>
> 그러니까... Class 형태로 만들어진 타입이 있으면 오류가 나는 듯 합니다.
>
> 엉~ 정말 그런건지? 아니면 해결할 수 있는 방법이 있는건지 알고싶습니다.
>
> 고수님들의 답변 부탁드립니다.