Я пишу программу ATL C ++, которая служит классом-оболочкой для файла OCX. Он будет построен как dll.
Моя проблема: В OCX есть метод, принимающий тип ВАЛЮТА. Пример: OCXMethodName(long a, const CURRENCY & cy);
В моем коде C ++, когда я пытаюсь передать тип CURRENCY / CY в OCXMethodName, я получаю сообщение об ошибке во время отладки. Ошибка в том, что он не возвращает 0, что означает неуспех. Что-то не так с данными.
См. Пример: STDMETHODIMP CMethod::MyMethod(LONG var_a, CURRENCY amount)
{
...
long lRet = OCX->OCXMethodName(var_a, amount); //This will execute in OCX
...
}
Он будет построен как dll, и я использовал vbscript для дальнейшего модульного тестирования. Ex vbscript-код: Dim ret
ret = objATL.MyMethod(11, 5000) '''This will call the C++ Method
После выполнения появляется диалоговое окно "Microsoft (R) Windows Based Script Host".
Мой вопрос: как лучше всего обрабатывать или преобразовывать ВАЛЮТУ, чтобы я мог передать правильный тип данных в методе OCX?
CY
? Тип буквальноCURRENCY
. - person MSalters   schedule 24.05.2017CURRENCY
в определениях интерфейса MIDL[oleautomation]
. - person Bob77   schedule 24.05.2017CURRENCY const& b
, эта логика с фиксированной точкой уже заключена в класс C ++. - person MSalters   schedule 24.05.2017OCXMethodName(long a, const CURRENCY & cy);
? Как узнать, что это правильно? - person Ben   schedule 25.05.2017