免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2811 | 回复: 11
打印 上一主题 下一主题

dll初级问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-11 15:02 |只看该作者 |倒序浏览
现在我已经生成了dll,想使用它,该怎么做,在使用dll时要要考lib库吗?
环境vc++6.0 winxp 编程语言 c
菜鸟一个,请前辈门多多指导,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-09-11 15:13 |只看该作者
没人知道?还是我说的不清楚

论坛徽章:
0
3 [报告]
发表于 2008-09-11 15:14 |只看该作者
要把你的开发环境设置一下(dll的路径指好),编译的时候就能找到并链接dll,然后把头文件include进去,就可以调用dll的接口了吧

论坛徽章:
0
4 [报告]
发表于 2008-09-11 15:32 |只看该作者
那要拷lib库吗

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
5 [报告]
发表于 2008-09-11 15:34 |只看该作者
提供头文件和DLL就可以了

论坛徽章:
0
6 [报告]
发表于 2008-09-11 15:46 |只看该作者
哦我在网上找了份教程
调用DLL有两种方法:静态调用和动态调用.
(一).静态调用其步骤如下:
1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下;
2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下;
3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目
录下;
4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单;
5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然
后在Object/library modules输入框中输入:youApp.lib
6.选择你的目标工程Head Files加入:youApp.h文件;
7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "youApp.h "
注:youApp是你DLL的工程名。
2.动态调用其程序如下:
动态调用时只需做静态调用步骤1.
{
HINSTANCE hDllInst = LoadLibrary( "youApp.DLL ");
if(hDllInst)
{
typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC youFuntionNameAlias = NULL; // youFuntionNameAlias 函数别名
youFuntionNameAlias = (MYFUNC)GetProcAddress
(hDllInst, "youFuntionName ");
// youFuntionName 在DLL中声明的函数名
if(youFuntionNameAlias)
{
youFuntionNameAlias(param1,param2);
}
FreeLibrary(hDllInst);
}
}

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2008-09-11 16:08 |只看该作者
不会吧,哪有同时使用DLL 和LIB的啊

论坛徽章:
0
8 [报告]
发表于 2008-09-11 16:10 |只看该作者
哦那就是直接使用.dll和头文件就可以了,那对动态应用的那个呢你怎么看
唉其实只要自己去试试就知道了,呵呵!

论坛徽章:
0
9 [报告]
发表于 2008-09-11 17:23 |只看该作者
静态调用需要lib 的。
动态调用不需要。

论坛徽章:
0
10 [报告]
发表于 2008-09-11 17:47 |只看该作者
我也不是很了解,但是自己能用了,你生成dll时候,要指定导出函数式的,而且源代码中要导出函数也要有些类似dllimport一样的东西。

这样生成的结果有dll和对应的lib,这里的lib里面只有导出函数的声明,没有定义,作用就是连接时候用,否则会报错,找不到函数。

这与linux中不一样。随便找个小项目,带.bat构建脚本的,看看就知道了,比如lua。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP