关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C#调用C函数的方法是什么

发布时间:2020-01-21 18:41:38

C#调用C函数的方法:

方法一:

1.新建Visual C++类型的Win32项目

C语言的函数定义如下:

extern "C" __declspec(dllexport) int fnTestWin32(void);

实现如下

extern "C" __declspec(dllexport) int fnTestWin32(void)

{

 return 42;

}

工程属性页[常规]->[配置类型]选择[动态库.dll]

会生成.lib和.dll文件。用Dependency工具能看到fnTestWin32函数,因为使用了extern "C"

2.C#工程中

        [DllImport("TestWin32.dll", EntryPoint = "fnTestWin32", CharSet = CharSet.Ansi)]

        private static extern int fnTestWin32();

把Win32项目生成的dll拷贝到C#生成的exe文件,就可以调用了。

方法二:

1.新建Win32工程

直接使用C语言,函数定义不使用extern "C" __declspec(dllexport)

工程属性页[常规]->[配置类型]选择[静态库(.lib)]

2.新建Visual C++ CLR 类库工程

这里面写的是C++的类,提供给C#直接调用的,作为C与C#的中转,主要使用Marshal类

应用上面的Win32工程,并包含头文件

extern "C"

{

#include "app_notify.h"

}

3.C#工程中直接使用CLR类库工程生成的dll



/template/Home/Zkeys/PC/Static