專案必須參考三菱公司的com組件,來讀寫其硬體的緩沖區,用mfc添加ActiveX參考一切正常,現在專案必須用QT來做,用dumpcpp匯出h和cpp,函式宣告跟mfc的居然不一樣,例如某個讀取相連的n個字的內容的函式在mfc是
long ReadDeviceBlock2(LPCTSTR szDevice, long lSize, short * lpsData);QT匯出的是
int ReadDeviceBlock2(QString szDevice, int lSize, int& lpsData);;現在問題是:
QT里面使用時lSize只能填1,否則就報堆外不可寫的錯誤;
mfc下short * lpsData可以指向一片連續的緩沖區,一次讀幾百個字都沒問題, QT里面變成了int& lpsData搞什么鬼?
我就只能每次讀一個字,碰到連續幾百個字要回圈幾百次,時間耗不起啊,現在不知改怎么解決了,請大神幫忙啊
uj5u.com熱心網友回復:
你的IDL怎么寫的用OLEView看一下
uj5u.com熱心網友回復:
難道int& lpsData,是保存一個記憶體區域的地址過去,int addr = (int)(&記憶體區域),傳addr過去,樓主有沒有試過uj5u.com熱心網友回復:
int addr = (int)(&記憶體區域)用過,改變了地址本身但是還是只能讀一個字
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
BSTR傳VARIANT?你引數搞錯了吧uj5u.com熱心網友回復:
型別庫有問題啊,怎么都是VARIANT轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46937.html
