C++ 制作dll文件
答案:4 悬赏:40 手机版
解决时间 2021-11-21 16:04
- 提问者网友:我的未来我做主
- 2021-11-21 05:21
C++ 制作dll文件
最佳答案
- 五星知识达人网友:荒野風
- 2021-11-21 06:51
1.在程序前面加一行代码
#pragma comment(linker,"/dll")
意思是告诉连接器,输出的是dll格式。这个好处是不用手动去修改工程属性。
2.或者vc编译器
新建工程,选择dll工程,然后将的示范cpp替换他原先的cpp。这样vc会自动设置连接器属性,其中包括输出dll
3.或者手动去修改工程属性,找到输出格式那里,将exe换成dll
建议:用第一个方法吧,看着专业点,用起来也简单。 其中dll编程不是光输出一个dll格式的东西就算完了,因为用的示范代码,所以不会存在额外问题了。如果要自己写,还要注意下mian函数入口的名称,以及导入导出函数的格式写法。一般 windos编程教程书也会写dll编程部分,要是想深究可以去查阅下。
其实dll编程,就多了一丁点东西而已,不是很复杂。
#pragma comment(linker,"/dll")
意思是告诉连接器,输出的是dll格式。这个好处是不用手动去修改工程属性。
2.或者vc编译器
新建工程,选择dll工程,然后将的示范cpp替换他原先的cpp。这样vc会自动设置连接器属性,其中包括输出dll
3.或者手动去修改工程属性,找到输出格式那里,将exe换成dll
建议:用第一个方法吧,看着专业点,用起来也简单。 其中dll编程不是光输出一个dll格式的东西就算完了,因为用的示范代码,所以不会存在额外问题了。如果要自己写,还要注意下mian函数入口的名称,以及导入导出函数的格式写法。一般 windos编程教程书也会写dll编程部分,要是想深究可以去查阅下。
其实dll编程,就多了一丁点东西而已,不是很复杂。
全部回答
- 1楼网友:风格不统一
- 2021-11-21 09:54
请用devcpp、cfree等建立dll工程...........追问哦。。好吧。问一下,如果想要自己的库的实现不被客户知道该怎么做追答动态库dll 工程
静态库 library工程
静态库 library工程
- 2楼网友:洎扰庸人
- 2021-11-21 09:07
你自己手工把实现分离到cpp里面啊。不然客户肯定会看到的。
- 3楼网友:枭雄戏美人
- 2021-11-21 07:51
没有实现怎么可能编译啊?至少要有实现才行。你确定你的头文件中有实现吗?
那你还做什么dll啊,反正C++的dll都必须要包含头文件才行,动态加载的dll只能是C类型的通用dll。一般加载了头文件,包括了实现,编译器根本就不会连接dll,有什么用?看着好看?
如果是用extern C写的c类型的dll的话建立一个xx.cpp只加入一句:#include"xx.h" 然后编译就行了。这个可以用loadlibrary或者dllopen加载。追问哦。。好吧。问一下,如果想要自己的库的实现不被客户知道该怎么做追答把库的实现和声明分开写就行了,给客户的时候只用提供头文件和dll或者静态库lib就行(如果使用mingw ,还应该提供用于连接dll的lib连接文件)。
不过C++的代码隐藏有缺陷的,不能像C一样完全的隐藏代码,尤其涉及到模板的时候,因为模板需要在编译期展开,需要完整的类声明,这样就会暴露类的部分实现。
所以一般dll都是通用C类型的dll,这样只用提供简单的函数声明头文件和dll文件就行了(mingw仍然需要一个连接文件)。
那你还做什么dll啊,反正C++的dll都必须要包含头文件才行,动态加载的dll只能是C类型的通用dll。一般加载了头文件,包括了实现,编译器根本就不会连接dll,有什么用?看着好看?
如果是用extern C写的c类型的dll的话建立一个xx.cpp只加入一句:#include"xx.h" 然后编译就行了。这个可以用loadlibrary或者dllopen加载。追问哦。。好吧。问一下,如果想要自己的库的实现不被客户知道该怎么做追答把库的实现和声明分开写就行了,给客户的时候只用提供头文件和dll或者静态库lib就行(如果使用mingw ,还应该提供用于连接dll的lib连接文件)。
不过C++的代码隐藏有缺陷的,不能像C一样完全的隐藏代码,尤其涉及到模板的时候,因为模板需要在编译期展开,需要完整的类声明,这样就会暴露类的部分实现。
所以一般dll都是通用C类型的dll,这样只用提供简单的函数声明头文件和dll文件就行了(mingw仍然需要一个连接文件)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯