作者proach (pazroach)
看板C_Sharp
标题[问题] C#呼叫C++ DLL, 再呼叫另一个 C++ DLL ?
时间Sat Apr 23 10:07:41 2011
我要操作购入仪器,需透过他提供的 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