WPF中使用MFC动态链接库(dll)函数

MFC导出函数, 在头文件中声明如下:

extern “C”_declspec(dllexport) void WINAPI fun();

其中extern “C”表示作用域是全局的,编译和链接按照C语言方式。
WINAPI表示函数调用规则,WINAPI在windef.h这个头文件中定义
#define WINAPI__stdcall
常用的调用规则有__stdcall、__cdecl和__pascal
__stdcall函数参数的入栈方式是最右边先入栈;__pascal则是从最左侧先入栈。

WPF中导入函数, 在partial class增加导入语句:

[DllImport(“xxx.dll”)]
public static extern void fun();

由于WPF为托管代码,如果函数参数需要传入指针,可以用与指针占用字节相同的变量接受,例如:

extern “C”_declspec(dllexport) void WINAPI fun(int* a, char* b);
对应:
[DllImport(“xxx.dll”)]
public static extern void fun(int c,byte[] d);

你可能感兴趣的:(mfc,dll,WPF,dllimport,extern-C)