C#调用C函数的方法

 
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
 
 

你可能感兴趣的:(C/C++,.net)