C# 用C中的char*参数声明C函数#

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

使用C#.net,我如何在.dll文件中声明和使用此函数:

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,我得到了解决方案!谢谢