如何让VS2005的工程能在WIN XP和WIN 7 64位下都能编译连接。

serf 2014-07-12 01:29:17
现在机器装了双操作系统WIN XP和 WIN 7 64。启动后操作系统为C盘,工程文件在E盘。
原来项目在WIN XP下开发,现在想迁移到WIN7下开发,以便解决XP下内存不足问题。但因有时会启动XP,因此希望一个项目同时能在两个操作系统下编译。
项目中引用了一些头文件,在XP下,是在目录C:\program files下,在WIN7中,目录变成了C:\program files (X86).原来的项目就不能编译了。
大家有没有遇到过类似问题,是如何解决的?

我想办法之一是编译的时候用宏判断当前的操作系统,记不得内置的宏是什么了。有没有其他更好的办法?
...全文
384 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
serf 2014-08-20
  • 打赏
  • 举报
回复
包含头文件的目录好办,大不了把带和不带X8
引用 3 楼 Ice_Nature 的回复:
[quote=引用 2 楼 serf 的回复:] [quote=引用 1 楼 Ice_Nature 的回复:] VS有一个宏是$(ProgramFiles)指向当前操作系统的Program Files目录 在项目属性 附加包含目录中引用就行了
好像WIN7操作系统的环境变量中有两个宏ProgramFiles和ProgramFiles(x86),我的要应用的头文件应该在ProgramFiles(x86)。 [/quote] ProgramFiles是直接指向C:/Program Files(x86)的吧,毕竟VS都是x86的[/quote] #include的问题不大,大不了把带和不带X86的都加到路径列表中。我的程序中还导出了ADO的东西,这个是用的是绝对路径。要根据环境改变路径就比较麻烦。如果实在不行,我就把ado目录拷贝到我的工程中去。看看有没有别的更灵活的办法。 #pragma message ("Make sure you go to Tools.Options.Directories.Library files and add the paths to msado15.dll and msjro.dll will usually be in C:\\Program Files\\Common Files\\System\\ado") #import "C:\Program Files\Common Files\System\ado\msado15.dll" rename("EOF", "EndOfFile") #import "C:\Program Files\Common Files\System\ado\MSJRO.DLL" no_namespace rename("ReplicaTypeEnum", "_ReplicaTypeEnum")
IceNature 2014-07-14
  • 打赏
  • 举报
回复
引用 2 楼 serf 的回复:
[quote=引用 1 楼 Ice_Nature 的回复:]
VS有一个宏是$(ProgramFiles)指向当前操作系统的Program Files目录
在项目属性 附加包含目录中引用就行了


好像WIN7操作系统的环境变量中有两个宏ProgramFiles和ProgramFiles(x86),我的要应用的头文件应该在ProgramFiles(x86)。
[/quote]

ProgramFiles是直接指向C:/Program Files(x86)的吧,毕竟VS都是x86的
serf 2014-07-14
  • 打赏
  • 举报
回复
引用 1 楼 Ice_Nature 的回复:
VS有一个宏是$(ProgramFiles)指向当前操作系统的Program Files目录 在项目属性 附加包含目录中引用就行了
好像WIN7操作系统的环境变量中有两个宏ProgramFiles和ProgramFiles(x86),我的要应用的头文件应该在ProgramFiles(x86)。
IceNature 2014-07-12
  • 打赏
  • 举报
回复
VS有一个宏是$(ProgramFiles)指向当前操作系统的Program Files目录 在项目属性 附加包含目录中引用就行了

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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