C++ 程序未在 Visual Studio 2010 中读取绝对路径 [关闭]
Posted
技术标签:
【中文标题】C++ 程序未在 Visual Studio 2010 中读取绝对路径 [关闭]【英文标题】:C++ Program Not Reading Absolute Path in Visual Studio 2010 [closed] 【发布时间】:2012-10-29 16:27:53 【问题描述】:我有一个 C++ 程序没有读取 Visual Studio 中的绝对路径。
以下代码适用于我的桌面环境(Windows 7、Visual Studio 2010、64 位)。 但是,在我的 macbook 上,我正在为具有完全相同 Visual Studio 2010 的 Windows 7 64 位虚拟机运行 bootcamp 和/或 VMware。
我尝试解决这个问题:
我确保我的 macbook 上的绝对路径与桌面上的绝对路径相同。我进一步确保我安装了第三方库来读取我的波形文件 与我两次为桌面所做的方式相同。
我重写了在桌面上运行的程序,在我的 macbook 上重新安装了库。更简单的程序可以在桌面上运行,但是唉,仍然无法在 macbook 上读取绝对路径。
我移动了 wav 文件,因此不是路径,而是实际项目解决方案本身。不用找了。
谷歌。
为了您的利益,我将代码包含在底部。我使用 libsndfile 库来读取 wav 文件。我可能只是尝试使用我非常旧的蹩脚 Windows 笔记本电脑,但无法理解我的 macbook VM 机器上可能出了什么问题。
// WaveReader.cpp : main project file.
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <sndfile.h>
using namespace System;
int main(array<System::String ^> ^args)
Console::WriteLine(L"Hello World");
SNDFILE *sf;
SF_INFO info;
/*Open the wav file. */
info.format = 0;
sf = sf_open("C:\\Users\\geekyomega\\gameover.wav",SFM_READ,&info);
if (sf == NULL)
printf("Failed to open the file.\n");
getchar();
exit(-1);
我的输出,当我运行这个程序时
Failed to open the file
一如既往,感谢您阅读此问题。我非常感谢你们中的任何人所获得的任何帮助、帮助或智慧。特别是如果您遇到类似的问题。
热烈的问候, 极客欧米茄
【问题讨论】:
尝试运行 Process Monitor 并将过滤器设置为“进程名称”包括“WaveReader”,它应该准确显示它试图打开的文件或目录 您是否有权读取 VM 中的 geekyomega 文件夹?您是否在 VM 上以 geekyomega 以外的任何人身份登录。您可能需要以管理员身份运行调试器吗? 这是一个非常奇怪的文件位置。确定它属于您的 Documents 或 Music 文件夹吗?只是忘记将文件从一台机器复制到另一台机器将是一个典型的错误。使用 Environment::GetFolderPath() 避免硬编码路径。 我认为这与权限有关。此外,汉斯是完全正确的。我从不建议为任何事情做绝对路径。该代码旨在作为概念证明,让我可以将其移植到一个 GUI,在那里我已经有了一个类/方法。 【参考方案1】:原来和权限有关。此外,Hans Passant 是正确的,绝对路径不是好的编码习惯。这是作为概念证明的,所以请让我在技术性上有所保留。
问候, 极客欧米茄
【讨论】:
以上是关于C++ 程序未在 Visual Studio 2010 中读取绝对路径 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 VS Code 中使用 C++ COM/IFileDialog 时出错,而在 Visual Studio 中使用相同的代码。消息:“IID_IFileOpenDialog”未在此范围内声明
Visual Studio 错误:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册
通用 Windows 应用程序运行时组件未在使用 Visual Studio 2015 的 Windows 10 上生成 UserIdentity