我在寫一個ATL C++程序,它充當OCX文件的包裝類。這將被建立爲DLL。C++中的什麼數據類型等同於vb6中的const CURRENCY?
我的問題: 在OCX中有一種接受CURRENCY類型的方法。 例如: OCXMethodName(long a, const CURRENCY & cy);
在我的C++代碼時,我試圖通過在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來進一步單元測試它。 Ex vbscript代碼: Dim ret ret = objATL.MyMethod(11, 5000) '''This will call the C++ Method
執行「Microsoft(R)Windows Based Script Host」對話框時彈出。
我的問題是處理或轉換CURRENCY的最佳方式是什麼,所以我可以在OCX方法中傳遞正確的數據類型?
什麼是錯誤? – themiurge
'CY'從哪裏來?該類型實際上是'CURRENCY'。 – MSalters
貨幣是一個64位有符號整數,其中包含10000的縮放值,並用作4位小數的「固定點」值。因此,要乘以7,你只需做一個64位乘以7,依此類推。在MIDL'[oleautomation]'接口定義中,類型是'CURRENCY'。 – Bob77