1

Visual Studio で絶対パスを読み取らない C++ プログラムがあります。

次のコードは、私のデスクトップ環境 (Windows 7、Visual Studio 2010、64 ビット) で動作します。ただし、私の macbook では、まったく同じ Visual Studio 2010 を持つ Windows 7 64 ビット仮想マシンに対して bootcamp や VMware を実行しています。

この問題を修正するための私の試み:

  1. デスクトップとMacbookの絶対パスが同じであることを確認しました。さらに、デスクトップで2回行ったのと同じ方法でwaveファイルを読み取るために、サードパーティのライブラリをインストールしたことを2回確認しました.

  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 に答える