/*
一直在做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)三个工程
STEP2:更改编译选项
项目--属性(ALT+F7)--配置属性--c/c++--预编译头--更改为创建(/Yc);
项目--属性(ALT+F7)--配置属性--c/c++--高级--编译为更改为编译为C代码(/Tc)
STEP3:更改源文件,添加源代码
xx.cpp重命名为xx.c
stdafx.cpp文件移除--删除(永久删除)
dllmain.c是入口函数,不要去更改
IAPengiCore.c通常放需要暴露的接口函数(即被外部调用的函数),这里添加自己写的一个头文件IapEngiHead.h
将需要做成dll的源程序代码文件拷贝到工程目录下,在VS2010中添加到工程里
给所有的.c文件加上头文件#include "stdafx.h"
STEP4:IAPengiCore.c文件里都是需要暴露的文件这样写,加上__declspec(dllexport)
最后可以编译了,编译过程如果出现无法打开#include “stdafx.h”的错误时,检查STEP2是否设置