用VS2010将C程序做成动态链接库dll

时间:2022-08-24 15:47:36

/*

一直在做linux编程,突然要移植到windows,摸索了好久,记录下,分三篇来记录:

1.用vs2010将C做成dll

2.c#做界面后,如何调用C语言函数/dll

3.c#程序的打包部署

*/


一、用vs2010将C做成dll


STEP 1:新建项目

文件--新建--项目--visual c++模块--win32项目--应用程序选择DLL--完成。

名称是指工程名,解决方案可以包括多个工程,这里在一个解决方案(IAPengi-Win)中包含核心dll工程(IAPengiCore),c#界面工程(IAPengiUI),c#打包部署工程(IAPengiSetup)三个工程

用VS2010将C程序做成动态链接库dll


STEP2:更改编译选项

项目--属性(ALT+F7)--配置属性--c/c++--预编译头--更改为创建(/Yc);

项目--属性(ALT+F7)--配置属性--c/c++--高级--编译为更改为编译为C代码(/Tc)

用VS2010将C程序做成动态链接库dll

用VS2010将C程序做成动态链接库dll


STEP3:更改源文件,添加源代码

xx.cpp重命名为xx.c

stdafx.cpp文件移除--删除(永久删除)

dllmain.c是入口函数,不要去更改

IAPengiCore.c通常放需要暴露的接口函数(即被外部调用的函数),这里添加自己写的一个头文件IapEngiHead.h

将需要做成dll的源程序代码文件拷贝到工程目录下,在VS2010中添加到工程里

用VS2010将C程序做成动态链接库dll

用VS2010将C程序做成动态链接库dll

给所有的.c文件加上头文件#include "stdafx.h"


STEP4:IAPengiCore.c文件里都是需要暴露的文件这样写,加上__declspec(dllexport)

用VS2010将C程序做成动态链接库dll


最后可以编译了,编译过程如果出现无法打开#include “stdafx.h”的错误时,检查STEP2是否设置


参考:http://blog.csdn.net/xinyaping/article/details/7288164