Q&A

  • 델파이 6.0에서 ocx 리턴값 받을때...
VC++ 로 만든 ocx 가 있습니다.
아래와 같이 아무 처리도 하지않고  값만 반환해 주는 함수 하나를 만들어 놓았구요...

// ocx 함수
short CmyCtrl::TestF()
{
return 1;
}

//델파이에서 호출
var
i : Smallint;
begin
i := MyOCX.TestF();
showmessage(inttostr(i));

그런데 이상하게 델파이 6 버전에서 반환값을 제대로 받지 못하네요.
-2880 이런 값이 출력됩니다.
버전 7에서는 아무이상 없이 잘 받아지거든요...
이게 왜 그런 건지 알 수가 없군요...
버전 6에서의 문제인지 검색을  봐도 관련 내용을 찾아볼 수가 없네여.
3  COMMENTS
  • Profile
    이강석 2009.09.15 00:38
    C++ 에서 Short형이랑 Delphi에서 smallInt가 같은 Data형인가요??

    차라리 Window에서 공통으로 사용되는 타입으로 맞추시는 편이 낫지 않나요?
  • Profile
    박종남 2009.09.15 01:11

    답변 감사합니다.

    델파이에서 MyOCX.TestF( 까지 쓰면 변수명:타입명 이렇게 나옵니다.
    그 타입명을 보고 선언한 것이구요.
    공통으로 사용되는 타입이란것이 따로 있는 것인가요?
    ocx에서 리턴타입을 long으로 변경해 봐도 제대로된 값을 가져오지 못합니다.(ocx에서 반환형중 int형은 없더라구요.)
    델파이 7.0에서 문제없이 실행되는데, 유독 6.0에서만 이런 현상이 발생합니다.
  • Profile
    이강석 2009.09.17 01:37
    7.0에서는 되는데 6.0에서는 안된다라...글