C ++中的数据类型与vb6中的const CURRENCY相同?

时间:2017-05-24 09:58:19

标签: c++ vb6 ocx

我正在编写一个ATL C ++程序,它作为OCX文件的包装类。这将构建为dll。

我的问题: 在OCX中,有一种接受CURRENCY类型的方法。 例如: OCXMethodName(long a, const CURRENCY & cy);

在我的C ++代码中,当我尝试在OCXMethodName中传递CURRENCY / CY类型时,我在调试期间收到错误。错误是,它不返回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的脚本主机"对话框弹出窗口。

我的问题是处理或转换CURRENCY的最佳方法是什么,以便我可以在OCX方法中传递正确的数据类型?

1 个答案:

答案 0 :(得分:1)

货币变量在内部存储为一个8字节长的整数,带有四个假定的小数位。例如,1.25的货币值将存储为12500.希望这可以指向正确的方向。