我正在编写一个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方法中传递正确的数据类型?
答案 0 :(得分:1)
货币变量在内部存储为一个8字节长的整数,带有四个假定的小数位。例如,1.25的货币值将存储为12500.希望这可以指向正确的方向。