c怎么生成dll文件?

c怎么生成dll文件?,第1张

用 vc 6.0 下的cl.exe 和 link.exe工具,请读下文:

声明:下面这篇文章不是我写的,源自:一个叫,有容乃大 的博客

如何手工编写动态链接库(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)

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....

如果使用的是VS,可以进行如下 *** 作:

1.

打开VS,

文件-新建-新建项目-其他语言-Visual

C++

- Win32

控制台应用程序。

2.

单击确定后,d出对话框,按照对话框“下一步”提示进行 *** 作。

3.

将要编译的C文件拷贝到CreateDLL项目中,.h文件就放到头文件夹的目录下,.c文件放到源文件目录下,注意后缀名为.c的文件都要改成.cpp,否则编译会出错。

注意:申明函数时必须参照上图红框标示出来的规则,在Function.cpp文件中必须要引入对应的#include

CreateDLL.h。

4.

选中所有需要编译成dll的cpp文件,右键-属性-预编译头-不使用预编译头,然后选择

“生成”即可,这样在项目的Debug文件夹下面便可找到CreateDLL.dll文件


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7990453.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存