[問題] C#呼叫C++ DLL, 再呼叫另一個 C++ DLL ?
我要操作購入儀器,需透過他提供的 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
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 4 篇):