1

我有一个 C++ 程序没有读取 Visual Studio 中的绝对路径。

以下代码适用于我的桌面环境(Windows 7、Visual Studio 2010、64 位)。但是,在我的 macbook 上,我正在为具有完全相同 Visual Studio 2010 的 Windows 7 64 位虚拟机运行 bootcamp 和/或 VMware。

我试图解决这个问题:

  1. 我确保我的 macbook 上的绝对路径与桌面上的绝对路径相同。我进一步确保我安装了第三方库来以与桌面两次相同的方式读取我的波形文件。

  2. 我重写了在桌面上运行的程序,在我的 macbook 上重新安装了库。更简单的程序可以在桌面上运行,但是唉,仍然无法在 macbook 上读取绝对路径。

  3. 我移动了 wav 文件,因此不是路径,而是实际项目解决方案本身。不用找了。

  4. 谷歌。

为了您的利益,我将代码包含在底部。我使用 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

一如既往,感谢您阅读此问题。我非常感谢你们中的任何人所获得的任何帮助、帮助或智慧。特别是如果您遇到类似的问题。

热烈的问候, GeekyOmega

4

1 回答 1

0

原来是和权限有关。此外,Hans Passant 是正确的,绝对路径不是好的编码习惯。这是作为概念证明的,所以请让我在技术性上有所保留。

问候, GeekyOmega

于 2012-11-02T04:42:57.053 回答