我用c#寫的ch375寫入測(cè)試程序,請(qǐng)問(wèn)為什么會(huì)出錯(cuò)

[System.Runtime.InteropServices.DllImport("CH375DLL.dll")] static extern long CH375OpenDevice(long iIndex);

[System.Runtime.InteropServices.DllImport("CH375DLL.dll")] static extern Boolean CH375WriteData(long iIndex, Object iBuffer,long ioLength); public struct COMMAND_PACKET { public byte mCommandCode; public byte mCommandCodeNot; public byte[] mParameter; }

---------

outvalues=CH375OpenDevice(iIndex); COMMAND_PACKET mDemoReq =new COMMAND_PACKET(); mDemoReq.mParameter = new byte[20]; mDemoReq.mCommandCode = 0xEF; mDemoReq.mCommandCodeNot = 0xEF; mDemoReq.mParameter[2] = 0xEF; mDemoReq.mParameter[1] = 0xEF; if (outvalues==-1) {

textBox1.Text="無(wú)法打開設(shè)備"; } else { textBox1.Text=outvalues.ToString(); } if(CH375WriteData(0,mDemoReq,7)) { t2.Text="成功!"; } else {

t2.Text="不成功!"; }

這一行出錯(cuò)

if(CH375WriteData(0,mDemoReq,7))

誰(shuí) 可以幫忙的


CH375WriteData中第二、三個(gè)參數(shù)傳遞的都必須是指針類型,更不能直接傳遞數(shù)值

PVOID iBuffer PULONG ioLength


ioLength 是數(shù)值類型吧,請(qǐng)問(wèn) c#的指針如何定義,誰(shuí)有這方面的例子


引用回復(fù):ioLength 是數(shù)值類型吧,請(qǐng)問(wèn) c#的指針如何定義,誰(shuí)有這方面的例子 private static extern bool CH375ReadData( // 讀取數(shù)據(jù)塊 long iIndex, // 指定CH375設(shè)備序號(hào) byte[] oBuffer, // 指向一個(gè)足夠大的緩沖區(qū),用于保存讀取的數(shù)據(jù) ref long ioLength ); // 指向長(zhǎng)度單元,輸入時(shí)為準(zhǔn)備讀取的長(zhǎng)度,返回后為實(shí)際讀取的長(zhǎng)度

這樣定義即可


"byte[] oBuffer, // 指向一個(gè)足夠大的緩沖區(qū),用于保存讀取的數(shù)據(jù)"說(shuō)的容易做的難.


貴公司能否提供net下的代碼... 我想應(yīng)該很多人會(huì)用得到的.


4樓正解,跪謝


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

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