C# 相当于C++;C中的引用类型# 我在C++应用中使用了C++编写的DLL。 等价物是什么 char const* unsigned short
在C中# 谢谢C# 相当于C++;C中的引用类型# 我在C++应用中使用了C++编写的DLL。 等价物是什么 char const* unsigned short,c#,char,constants,C#,Char,Constants,在C中# 谢谢 < > >代码> C++中的char */CODE >可以有不同的含义,例如指向一个字节数组或一个ANSI编码的空终止字符串。因此,它取决于数据的含义,以及如何将值封送到C#。唯一肯定没有错的答案是:这是一个错误 < > >代码> C++中的无符号短< /COD>通常是一个16位无符号整数:(或 USTORACE//COD> C)。 我查看了你问题的代码,我认为我的措辞更好(检查意图)。如果是,您正在寻找: string或byte[],具体取决于变量在C代码中的使用方式 usho
-
< > >代码> C++中的char */CODE >可以有不同的含义,例如指向一个字节数组或一个ANSI编码的空终止字符串。因此,它取决于数据的含义,以及如何将值封送到C#。唯一肯定没有错的答案是:这是一个错误
< > >代码> C++中的无符号短< /COD>通常是一个16位无符号整数:(或<代码> USTORACE//COD> C)。
string
或byte[]
,具体取决于变量在C代码中的使用方式ushort
,假设C编译器生成的unsigned short
为16位。在C#中,ushort
始终为16位(而uint
始终为32位)。祝贺MS最终在这里给了我们一些一致性:李>
要调用通过DLLImport公开的方法,您需要使用IntPtr类型作为指针
<>记住C++中的char实际上是指向内存的指针,通常用4字节int表示。/P>Load EdLLLAPI API INTRALDADLL:::打开(conchch**PDEVICEPATH)<代码> PDEVICEPATS< /CUL>看起来它代表一个路径,它将是一个字符串。因此,我认为应该将其编组为
LPStr
:您通常不希望在编组中使用IntPtr
,除非您必须这样做(有时由编组程序强制执行,有时由C代码中的基本用法强制执行)-无论何时byte[]
或string
工作它们更安全,更有意义