안녕하세요?
저는 델파이에서 c로 만들어진 dll을 불러다 쓰고 있습니다
그런데 이상하게도
NewName,OldName : Strgin;
NewName := vDs.slaam_name(PChar(OldName));
을 실행했을때 NewName값이 달라지는 이유를 모르겠습니다
예를 들어 '김무성'이라는 이름을 oldname으로 했을때
첫번째로 직접 에디트 박스에 직접입력하면 제대로 NewName값이 나오는데
두번째로 DB에 있는 필드의 값(김무성)을 입력되면 NewName갑이 깨져서 나옵니다
C의 DLL을 디버깅해보면 제대로 된 값을 리턴해주는데도 말입니다
즉 DLL에서는 같은 값을 리턴해 줍니다.
혹시 아시는분은 리플 부탁드립니다
일단 필드의 값을 임시변수에 저장해서 그 임시변수를 사용해보십시요.
잘 나옵니까? 그러면 필드의 값은 실제값이 아니라 실제값을 가리키는
포인터이지 않을까 싶네요.