클라우드 님이 쓰신 글 :
: 안녕하세요.. 델파이라고는 오늘 처음 접해보는 초보 개발자입니다.
:
: Delphi 로 만들어진 DLL 을 Visual C++에서 사용하려합니다..
:
: function A( str : pchar): pchar; 의 경우에는 C++ 에서 char* 로 받아 값을 참조하니 정상 작동하는데..
:
: ------------------------------------------
: TStrArray = array of array of pchar;
:
: function B( str : pchar): TStrArray ;
: ..
: temp: TStrArray;
:
: SetLength(temp, 2, 3);
: temp [0, 0] := '바보';
:
: ....
: Temp [1, 2] := '사람';
: ...
:
: result := temp;
:
: ----------------------------------------
: 부분 생략하긴 했지만 델파이를 잘 모르는 제가봐도 아주 간단한 코드이고 문제가 없는것같은데..
: C++에서 호출하면 터져 버리는지라;; (Access Violation..error)
: 이렇게 도움을 구합니다...
: 리턴되는 TStrArray 가 c++ 로 하면 char* [][] 과 같은것 같은데..
: 2차원이든 3차원이든 가능한 여러 타입으로 리턴을 받아봐도.. 데이터를 던져주기전에 호출단계에서 터지는지..
: 디버깅을 할수가 없네요..
: 아무리봐도 Delphi 코드상의 문제는 없고 C++에서 사용 방법의 문제로 발생하는것 같습니다..ㅠㅠ
: 가르침 기다리겠습니다 ㅠ
array of pchar 는 언어에 빌트-인 된, 메모리 자동관리까지 되는 델파이 고유의 자료형으로 다른 언어와 호환성이 전혀 없습니다.
말씀하신 작업을 하는데는 ppchar 가 가장 적합합니다.
PPchar 는 널종료문자열(C스트링)의 배열입니다.
|