最近需要在开发中使用C#调用一个C编写的dll函数库。调用过程真是困难重重……首当其冲就是数据类型的正确映射。

MSDN实际上有给出两种语言各个数据类型对应的数字范围,这里综合到一张表里,方便以后备查。

实际应用中,如果C下的API函数中使用的是long类型

void func(long a);

那么在C#中调用时,就需要将API函数写为

[DllImport("XXX.dll",EntryPoint ="func", CallingConvention = CallingConvention.StdCall)]
public static extern void func(int a);

至于调用中其他的坑,稍候继续……

Last modification:August 24, 2019
如果觉得文章对你有用,请随意赞赏