问题描述
- C++编写的动态库,可不可以只有一个dll文件。
- 用C++编写动态库,根据我现阶段的学习,感觉.h、.lib、.dll三个文件都要,
如果采用动态链接,一般需要.h和.dll文件(动态库中含有类),而静态调用则需要.h和.lib文件,
可不可以只要一个dll文件,就可以拿给别人使用?求解。
解决方案
就是一个,你编译后就是一个,给别人
解决方案二:
数量不确定的,一个也可以啊。
解决方案三:
如果只给dll的话,就只能动态的加载,如果为了方便静态加载dll的话,就需要输出lib和dll一起。头文件肯定必须要啊,不然怎么知道你的函数怎么设计的。
解决方案四:
- .h文件是动态链接库的头文件,这个可以不要,而且这个.h文件只适用于C/C++,其他的必须自己写
- .lib可以称之为""导入库""它的作用是在编译的时候提供一个链接的入口点这个入口点在执行的时候会占到动态链接库的对应函数的入口.
- c/c++也可以不用.lib而直接使用LoadLibrary导入dll文件.而且.lib文件对于其他开发语言也一样完全没有作用,
- .dll是真正意义上的动态链接库,它自己独自可以完成所有动态链接库所需要做的事情。
解决方案五:
你好,http://blog.csdn.net/dl88250/article/details/1455601
希望对你有用
解决方案六:
理论上说,只要dll,并且dll有导出函数表就可以了。但是请你千万不要这么“节省”。
因为没有办法从编译后的dll知道每个函数有几个参数,参数类型,返回值类型。所以别人拿到你的dll,在一无所知的情况下调用,如同瞎蒙。
解决方案七:
http://blog.csdn.net/dl88250/article/details/1455601
解决方案八:
这方面在csdn的博客里面搜一下,东西蛮多的
解决方案九:
可以只有一个动态链接库的,只是还是推荐分开放,一个模块的功能实现放在一个动态链接库里面,而且如果你要更新一个模块的内容,只需要更新对应模块的动态链接库就可以提了,而不是全都更新
解决方案十:
不需要,有h跟dll,别人i就可以调用,不过需要显示方式,就是用LoadLibrary,GetProcAddress方式。
有lib的化,就可以工程直接link,可以隐式调用动态库。
时间: 2024-11-01 20:57:01