자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi C언어로 된 DLL 결과값이 제대로 안들어오는데 도움을 요청합니다..^^
2014.05.08 00:24
DLL에서 결과값으로 Out 되는 파라미터 타입은 아래와 같습니다.
char* szReData
델파이 XE5 사용중이구요, 델파이에서는
var
RecvData: Array[0..1024] of Char;
RecvStr: String;
위와같이 변수 선언하여
RecvData변수를 결과값 파라메타에 넘겨 응답 후,
RecvStr := RecvData;
하여 이 후 처리를 하고 있습니다.
델파이 옛 버전은 스트링에 정상적으로 출력이 되는데
XE5에서는 이상한 특수문자들이 찍힙니다.
유니코드 문제인가 하여 AnsiString으로 변환도 해보고 했는데 원하는 결과가 나오지를 않네요..
Char배열 변수 자체에 제대로 된 응답결과가 들어가지를 않는 것 같은데..
혹시 빠진부분이 있는지 고수님들의 자문을 구합니다.
Delphi C언어로 된 DLL 결과값이 제대로 안들어오는데 도움을 요청합니다..^^
2014.05.08 00:24
DLL에서 결과값으로 Out 되는 파라미터 타입은 아래와 같습니다.
char* szReData
델파이 XE5 사용중이구요, 델파이에서는
var
RecvData: Array[0..1024] of Char;
RecvStr: String;
위와같이 변수 선언하여
RecvData변수를 결과값 파라메타에 넘겨 응답 후,
RecvStr := RecvData;
하여 이 후 처리를 하고 있습니다.
델파이 옛 버전은 스트링에 정상적으로 출력이 되는데
XE5에서는 이상한 특수문자들이 찍힙니다.
유니코드 문제인가 하여 AnsiString으로 변환도 해보고 했는데 원하는 결과가 나오지를 않네요..
Char배열 변수 자체에 제대로 된 응답결과가 들어가지를 않는 것 같은데..
혹시 빠진부분이 있는지 고수님들의 자문을 구합니다.
RecvData: Array[0..1024] of Char;
위의 of Char를 of AnsiChar로 변경해보시면 어떨까요?
그리고 dll의 api에서도 unicode 설정을 점검해 보셔야 할 것 같습니다.
이전(?)버전과 XE5의 이슈라면 유니코드 이슈일 확률이 대단히 높습니다.