Какой тип данных в C ++ эквивалентен const CURRENCY в vb6?

Я пишу программу ATL C ++, которая служит классом-оболочкой файла OCX. Это будет сборка как dll.

Моя проблема:
В OCX есть метод, который принимает тип CURRENCY.
Пример:
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?

1

Решение

Переменная валюты хранится внутри как восьмибайтовое длинное целое с четырьмя предполагаемыми десятичными разрядами. Например, значение валюты 1,25 будет храниться как 12500. Надеюсь, что это указывает вам в правильном направлении.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]