【发布时间】:2018-12-11 19:41:11
【问题描述】:
我正在使用带有 v141_xp 工具集的 Visual Studio 15 2017 来编译适用于 Windows XP 的 Win32 应用程序。该应用程序将在 Windows 10 和 XP 上运行良好,但运行一些 Windows API 命令,如 _chdir 和 _mkdir(或 CreateDirectory)似乎无法正常工作:未创建目录,或者在这种情况下_chdir 的应用程序不会更改其工作目录。
我认为问题在于名称中带有空格的路径,但我不完全确定是这种情况。我在需要的地方正确使用了\\ 和"\"" 在字符串中,但是在操作这样的路径时,它似乎可以在 XP 中工作,但不是 10,或者它可以在 10 中工作,但不是 XP。
我希望代码在两者上都能正常工作。还有其他我遗漏的兼容性问题吗?
谢谢。
更多信息
由于可移植性要求,我正在使用 /MTd 'Mult-threaded Debug' 进行编译。看起来这可能是编译 CRT 的问题。
【问题讨论】:
-
怎么不行?我们可以得到minimal reproducible example 吗?
-
您特别想在哪里创建这些目录?它可能与“标准用户”与“管理员”权限有关。
-
我总是在标准用户文件夹中创建。我认为这与重构 CRT 代码时引入的一些问题有关。我刚刚根据此处显示的统计数据修复了一个:stackoverflow.com/q/32452777/2079522
标签: c++ visual-studio windows-10 windows-xp