DLLImport c++带默认参数的函数
我正在尝试将非托管代码 c++ dll 中的函数导入到我的 c# 应用程序中。 C++ 原型是
int somefunction (int param1, int *param2 = NULL);
How do I statements this in c# to take Advantage of the default nature of param2?下面的代码不起作用。 param2 用垃圾初始化。
DllImportAttribute("mydll.dll", EntryPoint = "somefunction")]
public static extern int somefunction(int param1);
I am trying to import a function from an unmanaged code c++ dll into my c# application. The c++ prototype is
int somefunction (int param1, int *param2 = NULL);
How do I declare this in c# to take advantage of the default nature of param2? The following code does not work. param2 gets initialized with garbage.
DllImportAttribute("mydll.dll", EntryPoint = "somefunction")]
public static extern int somefunction(int param1);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 C# 4.0,那么 dtb 的答案是正确的方法。 C# 4.0 添加了可选参数支持,它们与 PInvoke 函数配合得很好。
在 C# 4.0 之前,无法利用可选参数。最接近的等效方法是定义一个转发到另一个函数的函数。
If you are using C# 4.0 then dtb`s answer is the right approach. C# 4.0 added optional parameter support and they work just as well with PInvoke functions.
Prior to C# 4.0 there is no way to take advantage of the optional parameter. The closest equivalent is to define one function that forwards into the other.
尝试
或
Try
or