当前位置:首页 » 编程语言 » c语言库dll

c语言库dll

发布时间: 2023-08-31 08:50:28

Ⅰ dll文件如何用c语言生成

用 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++下,或者win32 mfc下使用标准c写的dll,必须把上面的声明
extern int say_hello(char* name);改成:extern "C " int say_hello(char* name);

Ⅱ c语言写的程序怎么样生成.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.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语言调用dll

LoadLibrary( "d:\\test.dll" ) ;带上库文件所在的全路径名

Ⅳ 在C语言中,能简单介绍一下DLL是干什么的么

exe是可执行文件,里面存的二进制代码,dll也是存的二进制代码,但是不可以自己执行,要有个exe调用它。就像是主函数和其他函数的关系,只不过存的是机器代码。

Ⅳ 用C语言编写DLL

一.动态链接库(dll)结构
——dll中定义有两种函数:导出函数(export
function)和内部函数
(internal
function),导出函数可以被其他模块调用,内部函数只能在dll内部使用。我们在用c++定制dll文件时,需要编写的就是包含导出函数表的模块定义文件(.def)和实现导出函数功能的c++文件。下面以sample.dll为例介绍def文件和实现文件的结构:
——1.模块定义文件(.def)是由一个或者多个用于描述dll属性的模块语
句组成的文本文件,每个.def文件至少必须包含以下模块定义语句:
第一个语句必须是library语句,指出dll的名字。
exports语句列出被导出函数的名字。
可以使用description语句描述dll的用途(此句可选)。
";"对一行进行注释(可选)
——2.实现文件(.cpp文件为例)
——实现入口表函数的.cpp文件中,包含dll入口点处理的api函数和导出
函数的代码。

Ⅵ C语言如何调用DLL

//dll
#include<windows.h>

extern"C"//保持C语言文件

void_declspec(dllexport)tryProc()//定义函数
{
MessageBox(NULL,_T("a"),_T("a"),MB_OK);
}

-------------------------------------

//C

#include<windows.h>

intmain()
{
HMOUDLEdll=LoadLibrary(/*DLL文件名*/);
if(dll!=NULL)
{
FARPROCtry=GetProcAddress(dll,"tryProc");
if(try!=NULL)
{
tryProc();//假如函数有返回值,可以用try()得到返回值
/*_asmcalltryProc*/
}
}
return0;
}

Ⅶ dll文件大都使用C语言或者C++编写的吗 我从网上搜相关的例子都是这两种语言编写的

dll 是动态连接库,里面包含的的是库函数的实现,有动态就有静态,静态链接库是程序用到这段代码,就会把库的这段代码复制到程序里,而动态链接库就是说当我调用这函数时,这函数的实现不在程序里,而在库里头,系统从c:\widnows\system32里找到对应库调用对应的函数。不管什么语言都,他们都可以写dll,因为在编写动态链接库时,你要声明里有什么函数还要实现它,不管什么语言,本质就是调用相同的系统API函数创建出来的dll文件。因此只要windows支持的语言都能用于创建dll,VB,delphi,C++,C#等都是可以的,鉴于为什么多数是C++,是因为做库和底层的东西多数用C/C++来做,比较高效,其实用delphi也可以的,只是delphi过时了,现在人不怎么用,所以代码不好找,本质:基本所有语言都能调用系统API函数创建动态链接库(dll).有不懂的请提问。

Ⅷ c语言怎么调用别人的dll文件

(1)编写程序时,你要包含(#include \"什么.h\") dll文件作者提供 的 头文件(.h文件) 。
程序里,便和普通函数调用一样,去调用它的函数。
(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。
当然,你可以在源程序里把.lib 名字 写上,编译时自动去链接,例子:
#pragma comment (lib, \"什么.lib\")
(3)执行时,要有 .dll 文件. 放在当前文件夹或系统文件夹里

热点内容
海控联盟怎么下载安卓版 发布:2025-02-04 04:55:52 浏览:763
妖荡三界安卓叫什么 发布:2025-02-04 04:54:24 浏览:831
数据库表的备份 发布:2025-02-04 04:53:50 浏览:560
python深度遍历 发布:2025-02-04 04:53:50 浏览:135
爱感大黑牛怎么连接安卓手机 发布:2025-02-04 04:41:31 浏览:219
publicftp 发布:2025-02-04 04:41:26 浏览:72
sqlserver超时 发布:2025-02-04 04:39:58 浏览:71
网络推理算法 发布:2025-02-04 04:37:00 浏览:260
c怎么存储数据 发布:2025-02-04 04:31:12 浏览:63
奥迪q3行驶证如何查配置 发布:2025-02-04 04:28:26 浏览:329