去掉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 打赏 收藏 转发到动态 举报
写回复
用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中的

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧