博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何手工编写动态链接库(windows dll)
阅读量:4228 次
发布时间:2019-05-26

本文共 1065 字,大约阅读时间需要 3 分钟。

1.本例介绍在命令行(Console)环境下制作dll的方法
2.读者动手前,请确保在windows中安装有编译、链接工具和必要的函数库文件。
3.本例使用C语言实现.
4.本例中使用路径均为我机器上的绝对路径,读者需根据实际情况调整。

    工具要求:

    Microsoft的编译器cl.exe

    MIcrosoft链接器link.exe

dll制作步骤:
1.编写dll函数实现源代码hello.c

#include

int say_hello(char* name)

{
printf("hello %s/n", name);
return 1;
}

2.编写dll函数输出定义文件hello.def.

LIBRARY hello

EXPORTS
say_hello @1

3.编译dll源码,生成dll,lib文件.

3.1 新建命令行窗口

3.2 设置PATH | INCLUDE | LIB 3个环境变量.

SET PATH=K:/vcnet/vc7/bin;%PATH%

SET INCLUDE=K:/vcnet/vc7/include;%INCLUDE%
SET LIB=K:/vsnet/Vc7/lib;%LIB%

3.3 编译hello.c

cd K:/Source/dllsample (hello.c和hello.def所在目录)

cl /c hello.c

3.4 链接hello.obj,生成hello.dll,hello.lib两个文件.

link /def:hello.def /dll hello.obj

4.测试dll函数.

4.1 编写测试代码 test.c

extern int say_hello(char* name);

int main(int argc,char** argv)
{
say_hello("robbie");
return 0;
}

4.2 编译测试代码test.c

cl /c test.c

4.3 链接test.obj和 hello.lib,生成可执行文件test.exe

link test.obj hello.lib

4.4 运行test.exe,屏幕输出:

hello robbie

至此,一个dll构造完毕.

下面是我自己的一点补充:
   如果要在c++下,或者win32  mfc下使用标准c写的dll,必须把上面的声明
extern int say_hello(char* name);改成:extern "C" int say_hello(char* name); 

转载地址:http://wedqi.baihongyu.com/

你可能感兴趣的文章
Linux 设备驱动 Edition 3
查看>>
Linux驱动开发学习的简单步骤
查看>>
LINUX下编程工具常见用法小结
查看>>
驱动中位域操作简析
查看>>
Linux 引导过程内幕
查看>>
十年学会程序设计
查看>>
GPS NMEA-0183协议详解
查看>>
Rational 最新软件试用下载地址
查看>>
正则表达式30分钟入门教程
查看>>
Build the Hack CPU with Verilog -- 陈硕
查看>>
《计算机系统要素》配套软件和资料下载
查看>>
u-boot 启动过程 —— 基于S3C2410 --转载自周明
查看>>
U-boot大全
查看>>
怎样开公司
查看>>
灵活使用Linux下的glimpse工具和tee命令
查看>>
介绍Linux下经典的文件传输工具: lrzsz
查看>>
活用AXD Debugger调试器的命令行,实现u-boot的源代码级调试
查看>>
程序员的一份礼物-常用工具集
查看>>
uClinux 启动过程详细分析
查看>>
嵌入式系统 Boot Loader 技术内幕
查看>>