找回密码
 赶紧注册吧

QQ登录

只需一步,快速开始

查看: 3399|回复: 0
打印 上一主题 下一主题

Dev-Cpp Mingw32 环境先容(6) [复制链接]

注意:1、各网友务必提高交友安全意识,不要轻易参加非天府交友网官方举办的见面交友活动,以防酒托,饭托或引发其他危险;请详细阅读《天府交友网服务条款》和《免责申明》!

Rank: 3Rank: 3

升级  74.33%

跳转到指定楼层
楼主
发表于 2011-10-24 02:37:11 |只看该作者 |倒序浏览
Dev-Cpp/Mingw32 环境介绍(6)
上文回顾:
上文《Dev-Cpp/Mingw32 环境先容(5)》中,我们懂得了如何来制作静态衔接库。的确,上一片文章至今已经很长时光了。所以,我这次会用更多的内容往返报各位读者的。下面我们就来说说如何制作动态链接库。
第九章 制造本人的动态链接库
  “我不做梦吧,Mingw32也能做win32的动态连接库?”对你没有做梦,我也没有胡说。下面我简略介绍一些动态库的生成和使用。
  还是老样子,我们来开启Dev-Cpp,而后我们新建工程。抉择DLL工程。这个就是我们的链接库。在新建以后,我们会天生一个dll.h和一个工程名.c文件。其中,dll.h中保存的是你动态库的函数。下面我们看看我的文件内容。
//dll.h
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
#endif /* _DLL_H_ */
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;
      case DLL_PROCESS_DETACH:
        break;
      case DLL_THREAD_ATTACH:
        break;
      case DLL_THREAD_DETACH:
        break;
    }
    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}
DLLIMPORT int HelloWorld(void);
//dll.h End
其中我在最后一行加入了自己的函数,HelloWorld。
下面咱们来看看我的HelloWorld.c
//HelloWorld.c
#include "dll.h"
DLLIMPORT int HelloWorld(void)
{
    printf("Hello,World!");
    return(0);
}
//HelloWorld.c End
好了,我们就来编译吧。使用Dev的编译命令或者用如下命令。
我们将会得到两个文件。一个libHelloWorld.a,一个HelloWorld.dll。我们使用这两个文件就可以编程了。
文外音:
说瞎话,这次这篇文章和前多少篇文章比拟距离确实有些长了。因为我前一阶段有些忙了,所以,这次为各位读者负疚了。下面我们要学的是如何使用刚才我们编写的动态库。
第十章 使用自己的动态链接库
上文回想:
上文,我们介绍了如何生成动态库。下面我们就来使用它吧。
新建一个工程main.c的文件如下
//main.c
#include <stdio.h>
#include <stdlib.h>
#include "dll.h"
int main()
{
  HelloWorld();
  return(0);
}
//main.c End
当初将方才那个工程中的 dll.h libHelloWorld.a HelloWorld.dll文件复制到你现在工程的目录里。
然后,我们现在开启工程属性。在链接器一栏中参加
-l"HelloWorld"
保留工程后编译。所有胜利后,我们就取得了应用动态链接库的方法了。当前我们只有修改链接库的HelloWorld就能够修正程序中的显示。盼望这篇文章各位能满足。
文外音:
确实,现在很忙,所以文章的品质也降落了不少。不外还是愿望给为可能多多体谅。最近在搞NASM汇编。发明实在Emcas和Nasm确切很不错。十分爱好。不过,C我仍是会寻求的。只是,可能以后跟各位的交换会少些,然而我还是会用我的文章来使各位失掉有关Dev的内容。本系列文章,未完,待续。
STUDIO软件开发组(SDT)
STUDIO Development Team
北斗星君(黄庠魁)
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0

使用道具 举报

※为保护您的个人隐私,防止被恶意盗用,在论坛中不得留下手机、QQ、邮箱等联系方式,否则将被屏蔽!,若有需要,请发送站内消息
您需要登录后才可以回帖 登录 | 赶紧注册吧

关于我们|网站地图|帮助中心|商务合作|法律声明|诚聘英才|联系我们| 时尚 娱乐 成都婚庆公司 网站制作天府星空
Copyright © 2010-2011 天府交友(Www.Tflove.Com)版权所有