C#DllImport帮助(Mac Os)

时间:2011-02-07 00:16:27

标签: c# macos interop dllimport

我正在使用C#在Mac OS X中开发一个应用程序(使用单声道),我需要与某些功能互操作,但我不知道我该怎么做...

我在C中创建了一个简单的应用程序,但现在我需要在C#中做同样的事情,我知道我应该使用DllImport,但我不知道我该怎么办...

我想在C#中调用的函数就是这个:

mach_vm_read(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, vm_offset_t *data. mach_msg_type_number_t *data_count);

在其中一个文件中定义

#include <mach/mach.h>
#include <mach/mach_vm.h>

由于

3 个答案:

答案 0 :(得分:1)

您可以通过使用[DllImport()]属性修饰方法调用来声明和调用C#中的方法,如此(假设您要调用的方法确实是静态方法,并且没有返回类型):< / p>

[DllImport("YourDll.dll")]
public static extern void mach_vm_read(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, vm_offset_t *data. mach_msg_type_number_t *data_count);

答案 1 :(得分:0)

此页面对您最有用:

Interop with Native Libraries

一般来说,Mono中OS X / Linux上的P / Invoke就像在Windows上一样。

答案 2 :(得分:0)

如果您有大量的c ++,则可以使用名为Swig的工具使用简单的模板为所有公开的c ++函数生成C#包装器。我们已经使用它在Windows,Mac OS和Linux上取得了巨大的成功。