初学DLL有关配置步骤的问题

蒙飞鸿 2009-08-02 11:15:29
初学DLL,教学例题里,是需要在调用DLL的工程工作空间里建立DLL工程,然后还有进行一系列没介绍详细机制的设置以后,才能运行。所以对DLL的配置实际上感觉只能死板地按部就班,没有灵活发挥的空间(至少我试了只建立程序工程再添加DLL工程,然后复制一些文件的办法,不能够成功运行DLL)。

所以想了解配置和编写DLL的根本机制(让它能被程序调用的机制)是什么,有没有什么灵活编写DLL的方法。(注:还没有接触到MFC的DLL,请以SDK为基础)


顺便想了解下:在不修改原有程序和原有DLL的情况下,怎么让原有程序调用新写的DLL?(注:还没有接触到MFC的DLL,请以SDK为基础)
...全文
75 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf54318 2009-08-03
建议仔细研究下孙鑫的《VC++》深入详解动态链接库那一章
回复
xquanhao 2009-08-02
没听过要设置.调用DLL的工程里面最主要的是DLL的路径正确就行啦。
回复
wltg2001 2009-08-02
初学DLL,教学例题里,是需要在调用DLL的工程工作空间里建立DLL工程,然后还有进行一系列没介绍详细机制的设置以后,才能运行。所以对DLL的配置实际上感觉只能死板地按部就班,没有灵活发挥的空间(至少我试了只建立程序工程再添加DLL工程,然后复制一些文件的办法,不能够成功运行DLL)。
======================
没听过做DLL还要设置什么的啊?不就是对于导出的函数要用相关的关键字说明要导出,为了防止编译时函数名会发生变化加extern "C",除此之外,还要什么设置啊?
回复
不动如岳 2009-08-02
学习一哈
回复
在他乡奋斗 2009-08-02
在被调用的函数声明时加一个__declspec(dllimport)
回复
wltg2001 2009-08-02
别人的程序已经写好了,我怎么让它调用我的DLL呢,
=============
两种方式,上面用LoadLibrary是一种方法,还有一种方法,在头文件中将要用到的DLL中的函数声明一下,不过注意要声明为导入。然后用.#pragma comment(lib,"xxx.lib")对LIB文件进行引用就可以了,你的程序中可以直接调用DLL中的函数,不过要注意DLL文件一般要和最后生成的EXE放在同一个目录下,但是LIB文件却要和源文件放在同一个目录下。
回复
WaistCoatX 2009-08-02
不是有向导嘛?
回复
oyljerry 2009-08-02
[Quote=引用 11 楼 mengfeihong 的回复:]
别人的程序已经写好了,我怎么让它调用我的DLL呢,
[/Quote]
LoadLibrary等调用DLL
回复
蒙飞鸿 2009-08-02
别人的程序已经写好了,我怎么让它调用我的DLL呢,
回复
wltg2001 2009-08-02
DLL工程在编译好之后,别人如果要用的话,只要用到两个文件,一个DLL文件本身,一个是LIB文件,当然,为了方便使用相应的头文件还是要提供的,一些教材里面为了教学方便,将宿主程序和DLL工程放在一个工作区,那不过是为了方便使用,不用考虑DLL的路径问题。
回复
oyljerry 2009-08-02
比较好的,就是替换原来的DLL,用同样的DLL名称,DLL导出函数..
回复
wltg2001 2009-08-02
比如说必须“设置”在同一个工作区,这不是设置么
===================
谁告诉你说必须在同一个工作区啊?按你这么说,你写的DLL我是没办法用的了,因为我的工程怎么可能会和你的DLL工程在同一个工作区呢?
回复
gg606 2009-08-02
关于你顺便想想了解的那个问题:
让新写的DLL和原来的DLL有相同的文件名,和相同的接口
回复
蒙飞鸿 2009-08-02
比如说必须“设置”在同一个工作区,这不是设置么
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告