안녕하세요~
음..
제가 DLL을 만들어서 함수를 Call해서 사용을 하는 부분이 있습니다.
함수의 return value는 string입니다.
그런데 return Value를 줄때 result := inttostr(1); 이렇게 해서 주면 꼭 Access Violation 에러가 납니다.
result := '1'; 이러면 에러가 안나구요..
이 원인 찾는데도 며칠 걸렸어여~~~~~~~~~ 그냥 String을 직접 써주는것과 무슨 차이가 있는거 같은데 잘 모르겠어요..왜 이럴까요 ?
왜 ? 으흐흑~~왜 !!!!!!!!
uses절에 ShareMem유닛을 추가하세요.
예전에 책에서 읽었는데 DLL에서 문자열에 메모리를 할당하는데 문제가 생길 수 있다는
군여~ DLL과 DLL을 사용하는 모든 유닛에 추가를 해주세요.
잘되면 답변남겨주시구요. 저두 확실히 안 것은 아니니까요.
^^ 항상 즐코하세요.
도와주세요..도사님.. wrote:
> 안녕하세요~
>
> 음..
> 제가 DLL을 만들어서 함수를 Call해서 사용을 하는 부분이 있습니다.
> 함수의 return value는 string입니다.
>
> 그런데 return Value를 줄때 result := inttostr(1); 이렇게 해서 주면 꼭 Access Violation 에러가 납니다.
>
> result := '1'; 이러면 에러가 안나구요..
> 이 원인 찾는데도 며칠 걸렸어여~~~~~~~~~ 그냥 String을 직접 써주는것과 무슨 차이가 있는거 같은데 잘 모르겠어요..왜 이럴까요 ?
> 왜 ? 으흐흑~~왜 !!!!!!!!