动态链接库32位和64位版本的问题
我编译了32位和64位的两个库,为什么它们都依赖于 WindowsSystem32msvcr100.dll,
难道这个msvcr100.dll可以同时支持32位和64位的? 我们自己写的库,好像不行吧?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我编译了32位和64位的两个库,为什么它们都依赖于 WindowsSystem32msvcr100.dll,
难道这个msvcr100.dll可以同时支持32位和64位的? 我们自己写的库,好像不行吧?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
我做了一个小工具,可以批量检测32位、64位,
http://www.xdowns.com/soft/6/56/2015/Soft_146958.html
哇!也多谢大神提点!!!原来有这么一回事!
64系统中,32位程序请求的system32目录会被系统改写成syswow64目录,在这个目录中存放的都是32位的dll,而system32目录中存放的是64位的dll。
用ida打开这个库看看
哇!多谢大神提点!!!原来有这么一回事!
这个是个大坑,你用depends看到的不是真的,任何32位程序访问system32都会被定向到syswow64去,用ida打开也是没用的,你会发现system32里面的和syswow64里面的是一样的,但是你把两个目录下的同名动态库拷出来,他们又是不一样的,因为ida不管是分析32位用的还是分析64位程序用的,他本身是32位的。可以做个小实验,你在syswow64下见一个文件,用32位编辑器,比如notepad++打开system32目录下,就可以找到,而你用系统自带记事本在system32下就找不到