- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在 VC2008 中创建和使用静态链接库方法之一
黄永峰
1.利用 VC 创建静态链接库
New-〉projects-〉Win32 Static Libaray
新建好工程 CreateStaticLib 后,创建一个.h 文件 staticLib.h
int max(int, int );
对应的.cpp 文件 fighting.cpp
Int max(int x, int y)
{int z;
If(xy) z=x;
Else z=y;
Return z;
}
编译后,在 Debug 文件中便生成了 CreateStaticLib.lib 静态链接库...
2.编写测试工程
新建一个 Win32 Console Application 工程 useStaticLibTest,新建 fighting.cpp 文件
#include stdio.h
#include staticlib.h
#pragma comment (lib, Static_Wrap.lib);
void main()
{ int c;
C=max(10,12);
Printf(“%d”,c);
}
将之前生成的静态库CreateStaticLib.lib 和头文件 staticlib.h 拷到当前目录下,
编译运行即可
以上仅仅是个小的 demo,继续学习中,加油...
在 VC2008 中创建和使用静态链接库方法之二
用 C语言写一个简单的函数,并在控制台(命令行)中将它编译为 DLL。
一、源代码
我们创建一个 C语言源程序:Test.c。关键:__declspec(dllexport) 申明将这个方
法导出到 DLL 中。
源代码:
[cpp] view plaincopyprint?
1. #include stdio.h
2.
3. __declspec(dllexport)intsum(inta,intb)
4. {
5. returna+ b;
6. }
二、编译
我们分别采用 Visual Studio 自带的cl、link,和 MinGW (gcc)进行编译。
2.1 用 Visual Studio 自带的 cl、link进行编译
假设我们在 Windows 上安装了 Visual Studio 2010,其安装目录为:C:\Program
Files\Microsoft Visual Studio 10.0
那么 cl、link 所在的目录为:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
我们可以在 Visual Studio Command Prompt (2010)中执行这样的命令来把源代码
编译成动态链接库:
[plain] view plaincopyprint?
1. cl /cTest.c
2. link/dllTest.obj
截图如下:
2.2 用 MinGW (gcc)进行编译
MinGW 是 gcc 在 Windows平台上的一个 porting。可以访问 mingw.org 来获得
它。
安装 MinGW 之后,就可以在 Windows平台上使用 gcc 了。用 gcc将上述 Test.c
编译成 Test.dll 的命令是:
[plain] view plaincopyprint?
1. gccsharedoTest.dllTest.c
无图无真相,我们截图如下:
注:使用 MinGW 的时候,如果遇到了“libgmp10.dll is missing...”这样的错误,
可以参考我前面写的一篇小文来解决:
解决 MinGW 运行时的 libgmp10.dll 丢失错误(libgmp10.dll is missing from your computer)
。
在 Linux 中用 GCC建立和使用静态链接库的方法
为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。用动态链接
库编译生成的可执行文件需调用.so文件方可正常运行,灵活但稍显麻烦; 用静态链接库编
译生成的可执行文件可直接运行,不用再调用
您可能关注的文档
- 华南师范大学《电磁学与光学》《电磁场与电磁波》2010试题.doc
- 华南师范《模拟电子电路》模拟电子技术试题及答案.doc
- 华南师范大学《电磁学与光学》06级电磁学与光学样卷.doc
- 华南师范大学《电磁学与光学》08级电磁波试题样卷.doc
- 华南师范大学《电磁学与光学》08级试题样卷.doc
- 华南师范大学《电磁学与光学》第1章矢量分析.ppt
- 华南师范大学《电磁学与光学》第2章电磁学基本理论.ppt
- 华南师范大学《电磁学与光学》第3章媒质的电磁性质和边界条件.ppt
- 华南师范《模拟电子电路》2012模电各章重点内容及总复习.doc
- 华南师范大学《电磁学与光学》第5章场论和路论的关系.ppt
- 黄永峰《程序设计教学》课外阅读之8-main()函数参数.pdf
- 黄永峰《程序设计教学》第15讲 课程总结.ppt
- 黄永峰《程序设计教学》课外阅读之四--条件编译.docx
- 黄永峰《程序设计教学》课外阅读资料之7-内存分配函数malloc.pdf
- 黄永峰《程序设计教学》课外阅读资料之二--变量的匈牙利命名法.pdf
- 黄永峰《面向对象的程序设计》C++库函数.doc
- 黄永峰《面向对象的程序设计》第2讲 类和对象(中).ppt
- 黄永峰《面向对象的程序设计》第3讲 类和对象(下).ppt
- 黄永峰《面向对象的程序设计》第4讲 运算符重载(上).ppt
- 黄永峰《面向对象的程序设计》第1讲 类和对象(上).ppt
文档评论(0)