①建立项目:
[新建项目]选择Win32控制台应用程序,输入项目名点击确定。
在Win32应用程序向导的应用程序类型中选择DLL,附加选项勾选空项目,如下图,之后点击完成。
②创建头文件,代码如下:
1 2 3 4 5 6 7 8 | #ifndef DLLTEST_H #define DLLTEST_H //防止重复定义 #define DECLDIR extern "C" __declspec(dllexport) //宏定义 DECLDIR int Test(int a, int b); //函数声明 #endif |
这里解释一下 __declspec(dllexport) 的作用是导出函数符号到DLL的一个存储类中
③创建源文件,代码如下
1 2 3 4 5 6 7 8 | #include"DllTest.h" DECLDIR int Test(int a, int b) { return a + b; } |
这里要注意一下有些朋友喜欢将头文件的内容归并在stdafx.h中,但上文的代码放在这里是无效的,需要另外创建一个.h文件。
编码部分到这里就完成了,接下来点击[生成]->[生成DllTest],VS就好在项目根目录文件夹中的debug文件夹生成一个DllTest.dll文件。
当然如果对外发布请使用Release模式,成功导出的标志是该文件夹同时拥有.dll及.pdb文件,只有.dll文件这个Dll是不可用的。
有些朋友可能一开始创建项目的时候并不是DLL项目,所以点击编译时是不会生成DLL文件了,这里也可以通过设置进行调整
如图 点击[项目]->[DllTest属性]->[配置属性]->[常规]->[配置类型] 选择下拉框 [动态库(.dll)]
之后生成DLL文件的方法同上
这里我们用的VS版本为VS2005,其他版本的操作基本相同,以上方法仅仅为VS创建一个DLL文件的常规方法,还有其他的方法待续。
生成DLL之后我们就可以通过其他语言进行调用,使程序的编码组合更加的灵活多变。同时这个DLL是可以加壳的,这不仅对核心代码进行了封装并且在一定程度上做到了有效的保护。
BeiTown
2012.12.12