OCX 파일의 래퍼 클래스 역할을하는 ATL C++ 프로그램을 작성하고 있습니다. 이것은 dll로 빌드됩니다.vb6에서 const CURRENCY와 같은 C++의 데이터 유형은 무엇입니까?
내 문제 : OCX에는 CURRENCY 유형을 허용하는 메소드가 있습니다. 예 : 내 C++ 코드에서 OCXMethodName(long a, const CURRENCY & cy);
내가 디버깅하는 동안 나는 오류가 OCXMethodName 통화/CY 유형을 전달하려고합니다. 그 오류는 성공하지 못했음을 의미하는 0을 반환하지 않습니다. 데이터에 문제가 있습니다.
참조 예는 : STDMETHODIMP CMethod::MyMethod(LONG var_a, CURRENCY amount) { ... long lRet = OCX->OCXMethodName(var_a, amount); //This will execute in OCX ... }
그것은 DLL로 구축되며, 본인은 단위 테스트 그것을 VBScript를 사용했다. 예 vbscript 코드 : Dim ret ret = objATL.MyMethod(11, 5000) '''This will call the C++ Method
실행시 "Microsoft (R) Windows 기반 스크립트 호스트"대화 상자가 팝업됩니다.
제 질문은 처리하거나 OCX 메서드에서 올바른 데이터 형식을 전달할 수있는 변환하는 가장 좋은 방법은 무엇입니까?
무엇이 오류입니까? – themiurge
'CY'는 어디에서 왔습니까? 유형은 문자 그대로'CURRENCY '입니다. – MSalters
통화는 10000으로 스케일 된 값을 포함하고 소수점 이하 4 자리로 "고정 소수점"값으로 사용되는 64 비트 부호있는 정수입니다. 따라서 하나씩 7을 곱하면 64 비트 곱하기 7을 곱하면됩니다. 유형은 MIDL'[oleautomation]'인터페이스 정의에서'CURRENCY'입니다. – Bob77