- 注册时间
- 2011-10-23
- 最后登录
- 2011-10-31
- 阅读权限
- 50
- 积分
- 519
- 精华
- 0
- 帖子
- 169

升级   3.8%
|
相关的主题文章:
因你而瞎
他亲吻她的额头轻声说
本人感想最深的是
本来洋葱是不心的.
等候的是四季的变迁
Dev-Cpp/Mingw32 环境介绍(4)
上文回想:
上文《Dev-Cpp/Mingw32 环境介绍(3)》向各位介绍了有关使用GDB调试程序的简略办法。本文我们将会看看Mingw32如何来使用静态连接库。固然本文出炉的时光确实是有些慢了点。不过我想各位应当可以懂得的。
第七章 在你的程序中使用静态连接库
在Windows中兴许各位都会熟习以obj和lib结尾的文件。这些文件就是Win32下的二进制文件和静态连接库。但是在Mingw32下有些特别,我原来在第一章介绍过的。他们是o和a。很奇异吧。不外我们这里只有知道如何使用就可以了。对于更多的不在本文的范畴内。
我们先以VC为例,各位晓得在VC中使用静态库,要在连接程序的时候抉择导入的静态库。参数为静态库的全名。比方winmm.lib然而在Mingw32下有些不同。你所使用的参数为 -lwinmm这个就可以了。而-lwinmm的意思是导入静态链接库libwinmm.a。是不是有些想不通?下面我们来介绍一下在Dev中的使用和意思。
首先我们启动Dev,新建一个工程。然后挑选工程->工程属性。(如果你使用New Look图标,那么工程属性就是一个盾型图标。)然后,取舍参数选项卡。在连接器的文本框中输入你要的参数,如-lwinmm。至于宰割符,可以使用空格,也可以使用回车。不过我个人推举回车。如果顺利,你的界面看起来会像下图。
[img]
当然你如果要使用*.lib可以,只要将文件名直接填入就可以了。就像 winmm.lib。当然如果用相对路径也可以。
下面我们来看看静态连接库的格式。当然,我们不是从文件格局去剖析,而是从调用格式看。通常静态库的文件名为 lib*.a其中*表现的就是任何字符。而在我们调用的时候,不需要将所有的文件名都用上,只要要应用*的内容就可以了。就像调用libwinmm.a的静态库我们只须要在连接的时候加参数 -lwinmm就可以了。前面的lib和后面的.a都不需要了。如果,还不太清楚。可以看看dev装置目录中的lib目录。里面有良多win32下的静态连接库。本人分析一下文件名跟调用方式就会很明白了。
最后我们实战一下静态连接库的使用。
写什么好呢?写一个节制台上的音乐播放器吧。当然只是简单的播放音乐罢了,而且门路不支撑中文。这里只是为了熟悉一下静态库的使用。
新建一个把持台工程,然后我们在main.c的代码中写如下代码。
//main.c
#include <windows.h>
#define MAX 255
int main(int argc, char *argv[])
{
if (argc == 2)
{
char filename[MAX];
strcpy(filename, "open ");
strcat(filename, argv[1]);
strcat(filename, " alias media");
mciSendString("close media",0,0,0);
mciSendString(filename,0,0,0);
mciSendString("play media",0,0,0);
system("pause");
}
else
{
printf("play.exe musicfilename");
}
return 0;
}
//main.c end
而后我们在工程属性的衔接器参数中输入 -lwinmm 好了。开端编译。假如顺利,咱们的程序就会编译胜利。并且能够播放一些常用的音乐文件。愉快吧。
好了,这章我们就到这里用这个例子停止了。
问外音:
因为自己最近比拟忙,所以本来的两章一文改成了一章一文。请谅解。下一章我们将先容如何树立Mingw32的静态连接库。敬请等待。并且盼望各位可能多提看法。由于不管是程序仍是细想唯有通过一直的交换才干更加完美。
STUDIO软件开发组北斗星君(黄庠魁) |
|