Visual C++ 2010 Express Tips: 用 C 和 C++ 创建动态链接库
来源:互联网 发布:设计心理学知乎 编辑:程序博客网 时间:2024/05/22 01:39
先简单说一下这篇小文的目的。其实纯粹是因为上一篇文章《将C语言源代码编译成动态链接库》里面介绍了用命令行工具(cl、link或gcc)创建动态链接库,但程序员在实际工作中用得最多的还是IDE,所以有必要说说在IDE里面怎么做这件事。
创建动态链接库,那就直接用C++好了,Visual C++多么强大。但是我喜欢C语言胜过喜欢C++,所以打算看看如何用纯C来创建动态链接库。
工具依然选择Visual C++ 2010 Express,种种好处不再一一敷述。
我们现看看怎么用C++创建动态链接库,再看看怎么用C创建动态链接库。
我们在Visual C++ 2010 Express里面,分别用 C++ 和 C 来把下面这个简单的函数封装到动态链接库(DLL)里面:
一、Visual C++ 2010 Express Tips: 用 C++ 创建动态链接库
Step 1:创建Win32 Console Application
本例中我们创建一个叫做“Test”的Solution。
Step 2:将Application Type设定为DLL
在接下来的 Win32 Application Wizard 的 Application Settings 中,将 Application type 从 Console application 改为 DLL:
Step 3:将方法暴露给DLL接口
现在在这个Solution中,目录和文件结构是这样的:
编辑 Test.cpp 如下:
#include "stdafx.h" extern "C" { __declspec(dllexport) int sum(int a, int b) { return a + b; } }
Step 4:编译
直接编译即可。
二、Visual C++ 2010 Express Tips: 用 C 创建动态链接库
下面我们用C来创建DLL。
前两步和用C++创建DLL是完全一样的:
Step 1:创建Win32 Console Application
本例中我们创建一个叫做“Test”的Solution。
Step 2:将Application Type设定为DLL
在接下来的 Win32 Application Wizard 的 Application Settings 中,将 Application type 从 Console application 改为 DLL:
Step 3:更改编译选项
现在我们在此Project的Properties里面,找到 Configuration Properties | C/C++ | Advanced | Compile As 把这一项从默认设置(Default)更改为Compile as C Code (/TC)
然后,再在此Project的Properties里面,找到 Configuration Properties | C/C++ | Precompiled Headers | Precompiled Header 把这一项从默认的 Use(/Yu) 更改为Create(/Yc)
Step 4:删掉/重命名.cpp文件,增加.c文件
现在在这个Solution中,目录和文件结构是这样的(当然现在和C++的例子完全一样,但是马上我们所删除/重命名.cpp文件):
现在,我们这样做:
- 将 dllmain.cpp 重命名(Rename)成 dllmain.c
- 将 Test.cpp 重命名(Rename)成 Test.c
- 删除 stdafx.cpp (Remove --> Delete)
现在我们的solution的目录和文件结构是这样的:
Step 5:将方法暴露给DLL接口
编辑 Test.c 如下:
#include "stdafx.h" __declspec(dllexport) int sum(int a, int b) { return a + b; }
和C++的代码相比,由于现在已经是纯C语言的环境了,所以不再需要 extern "C" 这个申明了。
Step 6:编译
直接编译即可。
参考文献:
- 将C语言源代码编译成动态链接库 http://blog.csdn.net/xinyaping/article/details/7284899
- Visual C++ 2010 Express Tips: 编写C语言程序 http://blog.csdn.net/xinyaping/article/details/6833679
- Visual C++ 2010 Express Tips: 用 C 和 C++ 创建动态链接库
- Visual C++ 2010 Express Tips: 用 C 和 C++ 创建动态链接库
- Visual C++ 2010 Express Tips: 用 C 和 C++ 创建动态链接库
- Visual C++ 2010 Express Tips: 编写C语言程序
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- 创建和使用动态链接库 (C++)
- Visual Studio Express 2013 for Windows Desktop 将c文件生成.dll动态链接库
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- DLL:创建和使用动态链接库的步骤 (C++)
- C/C++中动态链接库的创建和调用
- 创建和使用动态链接库 (C++)C#调用
- android相对布局
- 二叉树
- 用MobileVLCKit播放rmvb视频
- ORACLE临时表总结
- android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理
- Visual C++ 2010 Express Tips: 用 C 和 C++ 创建动态链接库
- 粤西专场
- win平台下搭建cocos2dx 3.1.1 lua开发环境 VS2012+sublime text+lua 5.2.3
- 《网络协议》TCP/IP 基本概述
- android开发经典实例系列-----ListView、GridView
- Java -- 体验窗口
- Nouveau源码分析(七): 各SUBDEV/ENGINE初始化 (1)
- 【VB.NET】——视频总结
- Zookeeper开源客户端框架Curator简介