我正在使用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>
由于
答案 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)
答案 2 :(得分:0)
如果您有大量的c ++,则可以使用名为Swig的工具使用简单的模板为所有公开的c ++函数生成C#包装器。我们已经使用它在Windows,Mac OS和Linux上取得了巨大的成功。