[DllImport("UHF01_SDK.dll")] private extern static HANDLE OpenComm(int portNo);
代码是这样的,返回一个HANDLE类型的返回值,报错了
“错误 CS0246: 找不到类型或命名空间名称“HANDLE”(能否缺少 using 指令或程序集引用?)”
这个是缺少命名空间吗?是哪个命名空间?
或有其他的解决方式,就是调用一个dll里面的方法。
另外这个函数声明成static的调用第二次或多次的时候有没有影响,假如有影响,可以去掉static吗?
解决方案
10
HANDLE可以用IntPtr代替。
static用在DllImport时不可以去掉。
static用在DllImport时不可以去掉。
10
30
//c++:HANDLE(void *) — c#:System.IntPtr
static 不可去掉,首先,DLLimport导入的方法实现时在“外部”,所以需要extern修饰。
另外C#中导入的方法必须为静态,则还需static修饰
c++对应C#转换大全 http://blog.csdn.net/xqf222/article/details/5877795
static 不可去掉,首先,DLLimport导入的方法实现时在“外部”,所以需要extern修饰。
另外C#中导入的方法必须为静态,则还需static修饰
c++对应C#转换大全 http://blog.csdn.net/xqf222/article/details/5877795
50
1.intptr代替句柄
2.静态方法只要内部不依赖外部属性,那么那就没博客园粉号称那么严重,实际上在编译过后任何方法本身都是静态滴
2.静态方法只要内部不依赖外部属性,那么那就没博客园粉号称那么严重,实际上在编译过后任何方法本身都是静态滴