[問題] C#呼叫C++ DLL, 再呼叫另一個 C++ DLL ?

看板C_Sharp作者 (pazroach)時間13年前 (2011/04/23 10:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
我要操作購入儀器,需透過他提供的 DLL以控制 usb周邊。他的原始碼是 VC++ 6.0 開發的,我拿到的東西有 DriverLib.h DriverLib.lib DriverLib.dll 三個檔案。 以前我用 VC++.Net 混用 managed與 unmanaged code可以寫程式控制,現在 想把程式都移植到 VC#上。原先是想在 C#內用 DllImport的方式呼叫 dll, 問題一: VC#需要將上述兩個檔案加入專案內嗎?是的話是加入 reference內? 問題二: 以前在 VC++內寫的程式碼要呼叫以下 function short openDevice( &Handle ); 我之前寫的程式碼是這樣的 HANDLE handle; short shortOpenSuccess = openDevice( &handle ); 但是在 VC#內找不到 HANDLE 這個關鍵字,我要怎麼呼叫呢? 我最後有個奇怪的想法不知是否可行。因為此周邊其實都是傳回一些byte array而已, 如果用 VC++ 寫個簡單的 Wrapper.dll,以處理 "HANDLE" 這東西的問題。 VC# 去呼叫 Wrapper.dll,Wrapper.dll 再去呼叫 DriverLib.dll,只要 回傳一堆 byte就好,HANDLE 留在 Wrapper.dll 內不用回傳,這樣可行嗎? 這樣會不會每次 VC#呼叫 Wrapper.dll時,都要重新配置一次記憶體? 還是只要呼叫過第一次,就留在記憶體內了? 多謝您的回答 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.205.34
文章代碼(AID): #1DiZHn9A (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1DiZHn9A (C_Sharp)