声明:下面这篇文章不是我写的,源自:饥尺一个叫,有容乃大 的博客
如何手工编写动态链接库(windows dll)
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 �0�7 INCLUDE �0�7 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++下,或者win32mfc下使用标准c写的dll,必须把上面的声明
extern int say_hello(char* name)改成:extern "C " int say_hello(char* name)
a.打开visualstudio-文件-新建-项目-类库-名称MyTestDll;
b.右键Class1.cs-修改为TestDll.cs
c.在让备里面写一个自己想 *** 作的函数
d.保存-生成解决方案;
e.这是你的Debug文件夹下就会有一个MyTestDll.dll文件,你就可以把它放在你想引用的工程。
DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可模滑亩执行文件,它们被分割成一些相旦森对独立的动态链接库,即DLL文件,放置于系统中。
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....欢迎分享,转载请注明来源:内存溢出
评论列表(0条)