1

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

DEMO_API Boolean DEMO_CALL GetVersion(Char* versionBuffer,
    UInt16* versionLengthBuffer);

提前致谢!

4

2 回答 2

2

C# 本身没有字符串指针的概念,您可以只使用字符串/int。

基本上要定义你自己的,你必须做一些稍微不同的事情,但它不会兼容。

public bool GetVersion (string versionBuffer, int versionLengthBuffer) 

如果您使用现有项目,请查看pInvoke以获取可能的签名列表。

于 2012-07-09T13:40:46.957 回答
0

这是我找到的解决方案:

    [DllImport("DEMO.dll",
        SetLastError = true,
        CallingConvention = CallingConvention.Cdecl)]
    public extern static byte GetVersion(
        [MarshalAs(UnmanagedType.LPStr)] StringBuilder versionBuffer,
        [MarshalAs(UnmanagedType.LPWStr)] StringBuilder versionLengthBuffer);
于 2012-07-10T11:03:08.293 回答