2015-02-06 106 views
1

我正在构建Windows 8.1 DirectX应用程序,并试图在外部加载存储级别数据。DirectX Windows 8.1 fstream不会加载文件

相关的代码目前(此方法是所谓的AssetHandler构造函数):

void AssetHandler::LoadLevelsData() 
{ 
    unsigned int i = 0; 
    std::string lineData; 

    this->currentFile.open("Assets/reg.txt"); 
    //Below statement here purely to check if the blasted thing is opening 
    if (this->currentFile.is_open()) 
    { 

    i++; 
    } 
    while (std::getline(this->currentFile, lineData)) 
    { 
    levels[i] = lineData; 
    i++; 
    } 
    currentFile.close(); 
} 

说我遇到的问题是,该文件没有出现是开放。我曾尝试:

  • 使用完整路径
  • 打开文件中的初始化列表
  • 断点表明,它是跳跃过,如果同时

我发现了一些信息说DirectX对使用外部文件有限制,但没有具体说明它们是什么。

+0

此问题似乎与DirectX无关。 – SurvivalMachine 2015-02-06 13:19:56

+0

我只是不想排除任何事情。我的印象是这个问题可能是特定于开发DirectX应用程序的。 – InvertedIdeals 2015-02-06 13:22:00

回答

1

项目类型被设置为'不参与构建'。将此值设置为“文本”解决了该问题。

+1

这意味着你得到的错误是它不存在。当''is_open''返回false来查明发生了什么时,你应该可以调用''errno''或''GetLastError()''。 – 2015-02-07 06:07:33