admin管理员组文章数量:1568418
旧项目是在Windows7x86/VS2008环境下使用makefile进行编译的纯C项目。
这次要求升级为Windows10环境编译
编译环境有几个关键点,分开组合,进行了调查
1.Windows10 VS2019(Framework4.7.2 这个升级了)
在这个环境下,是找不到Win32.Mak文件的
我想的办法是将旧系统中的文件拷贝到工程目录,然后进行引用
Win7下的Win32.Mak文件路径:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\Win32.Mak
将mak文件的头进行修改
!include <./Win32.Mak>
直接使用当前路径下的Win32.Mak文件
结果:编译打包为DLL,相同数据,运算结果与旧项目不一致,怀疑是因为Framework升级后导致,可以能是因为系统有差异,导致运算位数改变
2.因为怀疑是Framework的问题,所以这次使用Windows10+VS2008+Framework3.5
Windows10更新Framework3.5有很多方法,可以自行baidu,我是直接用手机给笔记本开热点,然后进行WindowsUpdate,也挺快的,手机网络比公司的网络给力多了。
此时你会发现,安装Framework3.5之后,Windows10中也会安装SDKv6.0A
然后其实旧项目可以直接进行编译。
结果:运算结果与旧项目一致。
结论,有一些代码中使用了WindowsAPI,这些WindowsAPI是基于WindowsSDK的,如果直接升级编译环境(WindowsSDK),而不修改对应的WindowsAPI函数,那么有可能会出现内存运算不一致,或者出现内存异常。
最后因为客户并没有给我们升级的钱。。就没有给他升级SDK,仍然使用了Framework3.5。。
版权声明:本文标题:Windows10 使用Win32.Mak 进行makefile编译 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1725828944a1044468.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论