gpt4 book ai didi

c# - 使用默认参数的 DLLImport c++ 函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:16 25 4
gpt4 key购买 nike

我正在尝试将函数从非托管代码 c++ dll 导入到我的 c# 应用程序中。 c++原型(prototype)是

int somefunction (int param1, int *param2 = NULL);

我如何在 C# 中声明它以利用 param2 的默认特性?以下代码不起作用。 param2 用垃圾初始化。

DllImportAttribute("mydll.dll", EntryPoint = "somefunction")]
public static extern int somefunction(int param1);

最佳答案

如果您使用的是 C# 4.0,那么 dtb 的答案是正确的方法。 C# 4.0 添加了对可选参数的支持,并且它们与 PInvoke 函数一样工作得很好。

在 C# 4.0 之前,无法利用可选参数。最接近的等价物是定义一个转发到另一个的函数。

[DllImport("mydll.dll", EntryPoint = "somefunction")] 
static extern int somefunction(int param1, IntPtr param2);

static int somefunction(int param1) {
someFunction(param1, IntPtr.Zero);
}

关于c# - 使用默认参数的 DLLImport c++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823050/

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