C++编写的动态库,可不可以只有一个dll文件。

用C++编写动态库,根据我现阶段的学习,感觉.h、.lib、.dll三个文件都要,
如果采用动态链接,一般需要.h和.dll文件(动态库中含有类),而静态调用则需要.h和.lib文件,
可不可以只要一个dll文件,就可以拿给别人使用?求解。

就是一个,你编译后就是一个,给别人

  • .h文件是动态链接库的头文件,这个可以不要,而且这个.h文件只适用于C/C++,其他的必须自己写
  • .lib可以称之为"导入库"它的作用是在编译的时候提供一个链接的入口点,这个入口点在执行的时候会占到动态链接库的对应函数的入口.
  • c/c++也可以不用.lib而直接使用LoadLibrary导入dll文件.而且.lib文件对于其他开发语言也一样完全没有作用,
  • .dll是真正意义上的动态链接库,它自己独自可以完成所有动态链接库所需要做的事情。

数量不确定的,一个也可以啊。

你好,http://blog.csdn.net/dl88250/article/details/1455601
希望对你有用

不需要,有h跟dll,别人i就可以调用,不过需要显示方式,就是用LoadLibrary,GetProcAddress方式。
有lib的化,就可以工程直接link,可以隐式调用动态库。

理论上说,只要dll,并且dll有导出函数表就可以了。但是请你千万不要这么“节省”。
因为没有办法从编译后的dll知道每个函数有几个参数,参数类型,返回值类型。所以别人拿到你的dll,在一无所知的情况下调用,如同瞎蒙。

http://blog.csdn.net/dl88250/article/details/1455601

这方面在csdn的博客里面搜一下,东西蛮多的

可以只有一个动态链接库的,只是还是推荐分开放,一个模块的功能实现放在一个动态链接库里面,而且如果你要更新一个模块的内容,只需要更新对应模块的动态链接库就可以提了,而不是全都更新

如果只给dll的话,就只能动态的加载,如果为了方便静态加载dll的话,就需要输出lib和dll一起。头文件肯定必须要啊,不然怎么知道你的函数怎么设计的。