C# 用C中的char*参数声明C函数#
使用C#.net,我如何在.dll文件中声明和使用此函数:C# 用C中的char*参数声明C函数#,c#,dllimport,C#,Dllimport,使用C#.net,我如何在.dll文件中声明和使用此函数: DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer, UInt16* versionLengthBuffer); 提前谢谢 C#本身没有字符串指针的概念,您可以使用string/int 基本上,要定义你自己的,你必须做一些稍微不同的事情,但它不兼容 public bool GetVersion (string versionBuffer, int versionL
DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
UInt16* versionLengthBuffer);
提前谢谢 C#本身没有字符串指针的概念,您可以使用string/int
基本上,要定义你自己的,你必须做一些稍微不同的事情,但它不兼容
public bool GetVersion (string versionBuffer, int versionLengthBuffer)
如果您正在使用现有项目,请查看可能的签名列表 这就是我找到的解决方案:
[DllImport("DEMO.dll",
SetLastError = true,
CallingConvention = CallingConvention.Cdecl)]
public extern static byte GetVersion(
[MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer);
答案不起作用,但进入链接我找到了pinvoker.com,我得到了解决方案!谢谢