登录 注册 找回密码 开启辅助访问 商业用户中心 购物车有0件商品 切换到宽版
搜索
查看: 3341|回复: 6
打印 上一主题 下一主题

[求助] 黑月1.72 DLL 编译是否也使用黑月的Bootloader

[复制链接]
跳转到指定楼层
楼主
发表于 2011-1-18 12:47:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 1.72 编译DLL,明显感觉编译后的文件比 1.61 大45K左右,使用大鸟的
[link]
opt=/ENTRY:BMEntrypoint /nodefaultlibIBCMT /DEFAULTLIB:MSVCRT

会出现一大堆 unresolved external symbol
是否需要指定其他的链接开关哪?
回复

使用道具 举报

沙发
发表于 2011-1-19 00:41:16 | 只看该作者
从黑月诞生的那一天起,DLL一直都是用VC++6.0的LOADER,所以黑月DLL很少误报的
你用这个链接参数是不能用在DLL程序,只能用在EXE程序
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2011-1-19 12:53:16 | 只看该作者
大鸟神速。我的理解是:体积变大无非是链接进去的东西多了,从链接的结果看,1.61 的 DLL 体积确实要小很多,方才请教是否1.72版 EXE Loader 也被链接进 DLL中了,呵呵
回复 支持 反对

使用道具 举报

地板
发表于 2011-1-21 14:28:57 | 只看该作者
本帖最后由 云外归鸟 于 2011-1-21 14:33 编辑

还是选择静态库版的问题
/nodefaultlib:LIBCMT /DEFAULTLIB:MSVCRT

这两个参数就是选LIBCMT,还是MSVCRT,一般MSVCRT版本的DLL会比较小,因为一些C函数是从MSVCRT.DLL调用的,不编译代码进DLL,但如果固定用MSVCRT版本,一些支持库的静态库就会编译失败.

编译DLL就不用要用opt=/ENTRY:BMEntrypoint 这个参数了,这个是选择入口函数,DLL的入口函数是固定的.
回复 支持 反对

使用道具 举报

5#
发表于 2011-2-14 08:06:24 | 只看该作者
希望在黑月设置中加个参数选项,选LIBCMT,还是MSVCRT
回复 支持 反对

使用道具 举报

6#
发表于 2011-2-27 14:38:58 | 只看该作者
这个必须的顶。。。连接参数我不明白。。。也没有相应的教程说明。。。如果能出一个文字说明简单的。或者弄个选择项什么的。
回复 支持 反对

使用道具 举报

7#
发表于 2011-2-28 14:43:14 | 只看该作者
阿杰 发表于 2011-2-14 08:06
希望在黑月设置中加个参数选项,选LIBCMT,还是MSVCRT

非MFC类的DLL固定是用MSVCRT的
这没什么可选的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表