社区
进程/线程/DLL
帖子详情
去掉msvcrt100.dll的依赖的问题
sryteawrt
2012-06-23 10:42:43
我的工程是一个VS2010创建的DLL工程
代码生成哪里已经 设置为MT模式了
连接器的 附加依赖项
odbc32.lib;odbccp32.lib;../../common/zlib/zlib.lib;Shlwapi.lib;MSVCRT.LIB;%(AdditionalDependencies)
编译出来的还是需要msvcrt100.dll
...全文
760
15
打赏
收藏
去掉msvcrt100.dll的依赖的问题
我的工程是一个VS2010创建的DLL工程 代码生成哪里已经 设置为MT模式了 连接器的 附加依赖项 odbc32.lib;odbccp32.lib;../../common/zlib/zlib.lib;Shlwapi.lib;MSVCRT.LIB;%(AdditionalDependencies) 编译出来的还是需要msvcrt100.dll
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
鸡崽
2014-07-25
打赏
举报
回复
您好,我也遇到这种问题,vs2010编译器要怎样设置呢???
RLib
2012-07-12
打赏
举报
回复
C/C++
代码生成
运行库
选择 多线程 (/MT)
其实是最佳的解决方案
sryteawrt
2012-06-24
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
#undef _DLL
[/Quote]
。这个怎么写?。。
Lactoferrin
2012-06-24
打赏
举报
回复
#undef _DLL
sryteawrt
2012-06-24
打赏
举报
回复
我用静态的
我去掉msvcrt.lib后 一大堆的错误
1>Buffer.obj : error LNK2019: 无法解析的外部符号 __imp__strstr,该符号在函数 "char * __cdecl strstr(char *,char const *)" (?strstr@@YAPADPADPBD@Z) 中被引用
1>FileManager.obj : error LNK2001: 无法解析的外部符号 __imp__strstr
1>KernelManager.obj : error LNK2001: 无法解析的外部符号 __imp__strstr
1>svchost.obj : error LNK2001: 无法解析的外部符号 __imp__strstr
1>Buffer.obj : error LNK2019: 无法解析的外部符号 __imp__ceil,该符号在函数 "protected: unsigned int __thiscall CBuffer::ReAllocateBuffer(unsigned int)" (?ReAllocateBuffer@CBuffer@@IAEII@Z) 中被引用
1>Dialupass.obj : error LNK2019: 无法解析的外部符号 __imp__strchr,该符号在函数 "char * __cdecl strchr(char *,int)" (?strchr@@YAPADPADH@Z) 中被引用
1>RegEditEx.obj : error LNK2001: 无法解析的外部符号 __imp__strchr
1>svchost.obj : error LNK2001: 无法解析的外部符号 __imp__strchr
1>install.obj : error LNK2019: 无法解析的外部符号 __imp__strncpy,该符号在函数 "void __cdecl ReConfigService(char *)" (?ReConfigService@@YAXPAD@Z) 中被引用
1>svchost.obj : error LNK2001: 无法解析的外部符号 __imp__strncpy
1>RegEditEx.obj : error LNK2019: 无法解析的外部符号 __imp__strnicmp,该符号在函数 "char * __cdecl DelSpace(char *)" (?DelSpace@@YAPADPAD@Z) 中被引用
Lactoferrin
2012-06-24
打赏
举报
回复
_DLL是vc内部使用的,不是你自己用的,就算你是dll工程也不能用
schlafenhamster
2012-06-24
打赏
举报
回复
strstr等改用windows提供的函数如CompareString
试试
RLib
2012-06-24
打赏
举报
回复
VS2010?
C/C++
代码生成
运行库
选择 多线程 (/MT)
sryteawrt
2012-06-24
打赏
举报
回复
我最后只能这样解决 返回VC6编译
sryteawrt
2012-06-24
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
#undef _DLL
[/Quote]
了解了 在 DLL里面这个不是那么容易去掉的
Lactoferrin
2012-06-23
打赏
举报
回复
如果用静态库,把附加依赖项的MSVCRT.LIB去掉,保留MT
如果用动态库,把vc6中的msvcrt.lib,msvcprt.lib放到工程的目录,加入msvcprt.lib,MT换成MD
sryteawrt
2012-06-23
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
vc2010的MSVCRT.LIB是连接到msvcr100.dll的,不是msvcrt.dll,你必须换
或者用静态库
[/Quote]
不懂 该怎么操作呢
Lactoferrin
2012-06-23
打赏
举报
回复
vc2010的MSVCRT.LIB是连接到msvcr100.dll的,不是msvcrt.dll,你必须换
或者用静态库
sryteawrt
2012-06-23
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
MSVCRT.LIB从哪来的,要用vc6的或者windows driver kit中的
[/Quote]
他这个工程本来是vc6下的 后来用vs2010编译了
可以编译通过也可以调用 就是去不掉msvcrt100.dll 和 msvcp100.dll
Lactoferrin
2012-06-23
打赏
举报
回复
MSVCRT.LIB从哪来的,要用vc6的或者windows driver kit中的
让VC编译出来的程序不
依赖
于msvcr80.
dll
/msvcr90.
dll
/msvcr100.
dll
等文件
---转载:http://hi.baidu.com/liu_haitao/item/e2157ac3a3c32a0bc610b253让VC编译出来的程序不
依赖
于msvcr80.
dll
/msvcr90.
dll
/msvcr100.
dll
等文件正常情况下,当我们用VC编译出一个Console/Win32类型项目的exe程序时(这里暂不考虑MFC程序),会
依赖
于msvcrxx.dl...
VC2010如何去除
MSVCRT100
.
DLL
的
依赖
明明是使用WINDOWS标准库,结果生成的EXE老是需要
MSVCRT100
.
DLL
解决方法 工程属性中,Code Generation中选择 /MT方式
用vc2008 开发
DLL
(SDK模式)去除msvcrt90.
dll
依赖
的方法
感觉是MS的BUG1、编译时用MFC静态连接,这时会出一堆错误不用管他2、切换回用windows标准库再编译,这时用view
dll
之类的工具看就不再
依赖
msvcrt90.
dll
了
去除对MSVCR120.
DLL
的
依赖
生成一个exe或者
dll
的时候可能会yil
借助WDK7.1让高版本VC生成的可执行文件不
依赖
msvcrtXX.
dll
高版本VS链接到msvcrt.lib上一篇中介绍的方法适用面并不广,毕竟C++有着一大堆的优良特性和类库,比如STL、boost、MFC和QT等等,在普通的开发中只使用Win32API确实有点苦行僧的感觉。下面我们就尝试使用高版本的VC++生成可以链接到msvcrt.
dll
的程序。
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章