[討論]VB2010中調(diào)用CH341DLL.DLL發(fā)出的波形會(huì)出錯(cuò),專家看看有沒有解

VB6與VB2010的區(qū)別,主要在于VB6的TYPE類型定義,可以規(guī)定數(shù)組的長(zhǎng)度 而在VB2010中,不能使用TYPE,只能用structure來(lái)定義結(jié)構(gòu)體,因此 Type arrRBuffer buf(4095) As Byte End Type 要改為 Public Structure arrRBuffer Dim buf() As Byte End Structure

我本來(lái)是發(fā)380102的,但實(shí)際發(fā)送的可能就是一些沒有規(guī)律的數(shù)據(jù) 我把問題發(fā)在百度上了,詳細(xì)的請(qǐng)查看一下這個(gè)鏈接,非常感謝 http://zhidao.baidu.com/question/431618242618292204.html?quesup2&oldq=1


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

管理員能提供一下CH341DLL的源碼么?我想要不改一下DLL源碼,也許也有用

我的郵箱是個(gè)人信息保護(hù),已隱藏


給你發(fā)個(gè)CH372的VB.net例子,可以參考一下。


謝謝你的回復(fù),CH372的DLL里面,沒有這種類型的定義,所以沒有這個(gè)問題 Type arrRBuffer buf(4095) As Byte End Type

我CH341的打開設(shè)備,設(shè)置模式等其他函數(shù)都是正常的,只要這個(gè)讀寫的函數(shù),操作異常,感覺是兩個(gè)開發(fā)環(huán)境的結(jié)構(gòu)體訪問的地址增長(zhǎng)方式不一樣,對(duì)數(shù)組賦通用的數(shù)據(jù),在VS2010中,每次打開操作,都會(huì)是不同的波形,可能訪問內(nèi)存空間地址不一樣,如果能把CH341的DLL,定義成數(shù)組形式而不是結(jié)構(gòu)體的形式,應(yīng)該就可以解決了,懇請(qǐng)版主賜源碼,或者幫我編譯一個(gè)適合VS2010版本的DLL,靜候佳音


在百度的連接里面,我貼有詳細(xì)的測(cè)試結(jié)果圖 http://zhidao.baidu.com/question/431618242618292204.html?quesup2&oldq=1


看了一下官方提供Delphi的CH341DLL函數(shù)接口,用的是一個(gè)指針結(jié)構(gòu) Function CH341StreamI2C( // 處理I2C數(shù)據(jù)流 iIndex:cardinal; // 指定CH341設(shè)備序號(hào) iWriteLength:cardinal; // 準(zhǔn)備寫出的數(shù)據(jù)字節(jié)數(shù) iWriteBuffer:pvoid; // 指向一個(gè)緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù),首字節(jié)通常是I2C設(shè)備地址及讀寫方向位 iReadLength:cardinal; // 準(zhǔn)備讀取的數(shù)據(jù)字節(jié)數(shù) oReadBuffer:pvoid ):boolean;stdcall; external 'CH341DLL.DLL' ; // 指向一個(gè)緩沖區(qū),返回后是讀入的數(shù)據(jù)

所以這個(gè)問題的癥結(jié),可能就是VB6中,用Type定義的結(jié)構(gòu)體,編譯后可以等效于C++中的pointer定義,但VS2010中的VB用Structure可能就不一樣了,所以只要能找到VS2010中等效于C++的Pointer定義的方式,問題應(yīng)該就有解了,我去試試


還是沒有搞定,我暫且回答VB6把事情搞定,再研究了,希望官方能協(xié)助一下解決這個(gè)問題,


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频