如何调用C++/CX代码来自纯C++;DirectXXaml项目中的类? 我有一个直接的游戏项目和代码,用纯C++编写,我需要在我的一个类中打开一个文件。我怎么做

如何调用C++/CX代码来自纯C++;DirectXXaml项目中的类? 我有一个直接的游戏项目和代码,用纯C++编写,我需要在我的一个类中打开一个文件。我怎么做,c++,c++-cx,C++,C++ Cx,我想我必须使用#pragma managed,但没有结果 以前我有这样的代码: void DataLoader::load(std::string const& file) { std::ifstream fileStream(file.c_str(), ios::binary); fileStream.seekg(0, ios::end); _dataSize = fileStream.tellg(); fileStream.seekg(0, ios

我想我必须使用
#pragma managed
,但没有结果

以前我有这样的代码:

void DataLoader::load(std::string const& file) {
    std::ifstream fileStream(file.c_str(), ios::binary);

    fileStream.seekg(0, ios::end);
    _dataSize = fileStream.tellg(); 
    fileStream.seekg(0, ios::beg);

    std::vector<char> buffer(_dataSize);
    fileStream.read(&buffer[0], buffer.size());

    _data = new ByteArray(buffer);

    fileStream.close();

    dispatchEvent(new Event(Event::COMPLETE));
}
void DataLoader::load(std::string const&file){
std::ifstream fileStream(file.c_str(),ios::binary);
seekg(0,ios::end);
_dataSize=fileStream.tellg();
seekg(0,ios::beg);
std::向量缓冲区(_dataSize);
fileStream.read(&buffer[0],buffer.size());
_数据=新字节数组(缓冲区);
fileStream.close();
dispatchEvent(新事件(事件::完成));
}

在这里如何使用C++/CX?

要使用C++/CX,需要为正在构建的项目启用/ZW标志。您可以在“项目属性->配置属性->C/C++->使用Windows运行时扩展”下找到此设置。如果还没有,请将此设置为“是”

<>这个标志一旦打开,就应该能够从现有的C++代码调用C++/CX Windows运行时API。
这是我不久前写的一篇关于这个主题的博文,你可能会遇到这样的情况:你只想在你的项目中包含一些文件的/ZW标志,这是可以做到的:

请将博文中的相关部分复制到答案中,指向外部站点的链接可能会变为非活动(甚至你的博客)因此,答案的全部价值都消失了。我做到了。最重要的是,正如我在回答中提到的,只需设置Consume Windows Runtime Extension标志。此博客文章仅包含可能有用的附加信息。警告:在windows上不建议使用
ifstream
的窄构造函数,因为它使用ANSI代码页打开文件。如果路径包含无法在该代码页中表示的字符,则打开将失败。