gpt4 book ai didi

c# - 将 C/C++ 函数导入 C#

转载 作者:行者123 更新时间:2023-11-30 21:32:40 33 4
gpt4 key购买 nike

我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。

SomeData* DoSomething();

struct SomeData
{
...
}

如何将此 C 方法导入到 C# 中?我在定义函数的返回类型时遇到问题。

编辑:我有很多函数要导入。这是一个让我陷入困境的问题。

[DllImport("SomeDll.dll")]
public static extern IntPtr DoSomething();

我考虑过使用 IntPtr,即使它是正确的方式,然后呢?

最佳答案

我不太确定我理解你的问题,但我会尝试回答它。您需要定义从 C 函数返回的结构并使用 Marshal.PtrToStructure使用返回的结构。

[DllImport("SomeDll.dll")]
public static extern IntPtr DoSomething();

public struct SomeData
{
//...
}

//code to use returned structure
IntPtr result = DoSomething();

SomeData structResult = (SomeData)Marshal.PtrToStructure(result, typeof(SomeData));

关于c# - 将 C/C++ 函数导入 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13128849/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com