c# - P从用 C 编译的 DLL 中调用函数

标签 c# c pinvoke

我有以下 C 函数

typedef struct ekeycore_ctx_ ekeycore_ctx;

typedef struct ekeycore_enum_ ekeycore_enum;

typedef struct ekeycore_device_ {
    char *serial;
    char *portname;
    char *node;
    BOOL present;
    BOOL used;
} ekeycore_device;

typedef struct ekeycore_simple_ ekeycore_simple;

typedef enum {
    EKEYCORE_OK = 0,              /* everything was fine */
    EKEYCORE_NOMEM = 1,           /* out of memory */
    EKEYCORE_NODEVICE = 2,        /* no devices are available */
    EKEYCORE_TIMEOUT = 3,         /* key did not respond to request */
    EKEYCORE_FAULTY = 4,          /* device has reported faulty/attacked */
    EKEYCORE_UNKNOWN = 5          /* unknown error */
} ekeycore_result;

EKEYCORE_API ekeycore_result ekeycore_simple_get(ekeycore_simple *ctx, unsigned char *buff, size_t buffz)

我需要从 C# 调用这个函数 (ekeycore_simple_get),我该怎么做?上面的变量类型如何转换?

最佳答案

您可能会要求 StackOverflow 上有人为您解决所有问题,但 MSDN 上有关于编码结构的详细信息(请参阅下面的链接)

这些是我用来引用 P/invoke 技术的地方:

关于c# - P从用 C 编译的 DLL 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3353817/

相关文章:

c# - Prism 导航 - 上一个和下一个 View

c - 不显示链表中节点追加的结果

c# - CoTaskMemAlloc v malloc v AllocHGlobal

c - 如何跟踪对堆上分配的内存块所做的更改

c - 我现在正在学习如何使用数组,并且正在努力完成我的分配,以制作乘法表并获得平均值

c# - 使用 C# P/Invoke 通过方法编码(marshal)结构

c# - 调用 C++ 函数时尝试读取/写入 protected 内存错误

c# - 如何使用 MEF 在 MVC 3 Razor 中呈现控件

c# - 如何阻止 PDA 休眠

c# - 在 Fluent NHibernate 中,如何将自动映射类型与非自动映射类型结合起来?