如何从0到1编写一个dll文件
如何从0到1编写一个dll文件
本人小白一枚,由于刚刚开始接触dll,文件编写,苦于不知道如何进行编写,再加上对工具的不熟悉,查了很久的资料,经过了好几天的摸索,才勉勉强强掌握了一点点怎么写dll文件,这里就记录一下,如何编写我们的dll文件,然后成功的链接到我们的程序中去。
对于编译dll文件,有两种,一种是使用我们强大的环境,vs ,另一种就是使用我们强大的编译器gcc。这里对于这两种方式进行简单的演示。
gcc编译链接dll文件
对于gcc,我们首先写三个文件
一个头文件head.h,这个头文件很有必要,一方面在dll文件中的表明我们要导出哪些函数,在main.c文件中表明dll文件中被导出的文件有哪些。
1 |
|
一个要编译成dll的文件,mydll.c
1 |
|
最后一个我们要执行的程序,main.c
1 |
|
准备工作做完了,开始进行我们的gcc编译
首先,先将我们的mydll.c文件编译成mydll.dll形式
1 | gcc -shared -o mydll.dll mydll.c |
之后再将dll文件链接到我们的main.c中形成main.exe文件
1 | gcc -o main.exe main.c -L . -l mydll |
L 表示链接库的目录(这里我们是本目录下,以输入得是 . ),-l(小写L)表示链接库名称(编译器会自动添加.dll或者.so后缀)
这样就完成了我们的dll文件编写与链入
我们main.exe就会输出
运用万能的vs来进行编译
首先我们创建一个空项目
我们在这个文件下,再创建一个新的项目,用来写我们的dll文件
分别创建两个源文件,就先前gcc那样
在main.c里面写
1 |
|
注意这里的名称需要一样,生成的dll文件名称是按照项目名称来的
在mydll中写
1 |
|
下面在mydll项目右键,点击属性
将配置类型设置为dll文件
最后一般生成解决方案
找到文件夹执行我们的main.exe文件
大功告成
注意:我们函数运用的是win32的函数,因此我们生成的可执行文件也需要是32位文件,因此可能我们需要调整
将这里调为x86就会生成32位程序了。(x64是生成64位程序)
评论