C#DllImport帮助(Mac Os)

问题描述 投票:1回答:3

[我正在用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>

谢谢

c# macos interop dllimport
3个回答
1
投票

您可以通过用[DllImport()]属性修饰方法调用来声明和调用C#中的方法,就像这样(前提是您要调用的方法确实是静态方法,并且没有返回类型):

[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);

0
投票

此页面将对您最有用:

Interop with Native Libraries

通常,Mono中的OS X / Linux上的P / Invoke的工作方式与Windows中的P / Invoke相同。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.