关于dll接口调用问题

zxhong 2009-12-19 05:47:37
vc中调用dll
有的说是在link中包含.lib,代码中包含dll接口头文件就可以了
有的还要用_declspec(dllexport)定义接口才能使用,外部才能调用

我用第一种方式,好像可以,那么第二种方式用在什么场合?
...全文
89 点赞 收藏 8
写回复
8 条回复
oldn123 2009年12月20日
第二种适用于loadlibrary时,要动态取函数地址,这时就需要函数名的原型
回复 点赞
哈利路亚1874 2009年12月20日
一个是静态链接;
一个是动态链接;
回复 点赞
snowying2008 2009年12月20日
(1)定义一个头文件,头文件里用_declspec(dllexport)声明dll要导出的函数;》》在使用到dll接口函数的cpp文件中包含该头文件。
(2)用#pragma comment(lib,lib的路径)将dll对应的lib库文件包含到使用dll接口函数的cpp文件中。(注:也可以在VC的在link配置中包含.lib)
(3)将dll拷到.exe可执行文件的目录中。

回复 点赞
xingpacer 2009年12月19日
一般的做法:
(1)定义一个头文件,头文件里用_declspec(dllexport)声明dll要导出的函数;》》在使用到dll接口函数的cpp文件中包含该头文件。
(2)用#pragma comment(lib,lib的路径)将dll对应的lib库文件包含到使用dll接口函数的cpp文件中。(注:也可以在VC的在link配置中包含.lib)
(3)将dll拷到.exe可执行文件的目录中。
回复 点赞
zoulie 2009年12月19日
你用的那个头文件里应该就申明了_declspec(dllexport)的东东
回复 点赞
webipstin 2009年12月19日
大家来总结"VC环境下DLL编写的相关知识"

http://topic.csdn.net/t/20030325/12/1573546.html
回复 点赞
珍惜生命远离CPP 2009年12月19日
1就可以了
用def也可以导出函数,_declspec(dllexport)也可以。
回复 点赞
zw157877672 2009年12月19日
DLL导出函数,可供应用程序调用,写dll一般都是给接口给别人用。即_declspec(dllexport)修饰。
DLL内部函数,只能在DLL程序使用,应用程序无法调用它们。
动态调用方式的特点是完全由编程者用 API 函数加载和卸载 DLL(如:LoadLibrary,GetProcAddress,FreeLibrary),程序员可以决定 DLL 文件何时加载或不加载,显式链接在运行时决定加载哪个 DLL 文件。动态调用不需要包含dll接口头文件。
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7898

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告