Re: [問題] C#使用vc++所寫的api問題

看板C_Sharp作者 (躂躂..)時間17年前 (2007/01/18 01:39), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《zxcv123123 (討厭在家裡)》之銘言: : [DllImport("RFIDAPI32PC.dll")] : unsafe public static extern uint A : (IntPtr hReader, uint dwCapId, uint* pdwNumItems, : uint dwValueBufSize, Intptr pvValueBuf); 如果 pvValueBuf 只是作 pointer to string 用, 應可宣告成 String 就好~ .NET 會自己處理轉型的問題~ [DllImport("RFIDAPI32PC.dll")] unsafe public static extern uint A ( IntPtr hReader, uint dwCapId, uint* pdwNumItems, uint dwValueBufSize, String pvValueBuf); 呼叫時用 A( ....., "192.168.0.11" ); 就可以了~ 不然用 IntPtr p = Marshal.StringToHGlobalAnsi("192.168.0.11"); A( ..., p); // 呼叫 A Marshal.FreeHGlobal( p ); // 由 caller 釋放 -- 試試這兩個方法吧~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.151.218

01/18 12:08, , 1F
感謝你~~我昨天試了第一個方法...現在成功了
01/18 12:08, 1F
文章代碼(AID): #15hbz2c8 (C_Sharp)
文章代碼(AID): #15hbz2c8 (C_Sharp)