如何在DirectXXaml项目中从纯C++类调用C++/CX代码



我有一个DirectXXaml项目,我的游戏代码是用纯C++编写的,我需要在我的一个类中打开一个文件。我该怎么做?

我想我必须使用#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));
}

如何在此处使用C++/CX?

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

打开此标志后,您应该能够从现有的C++代码中调用C++/CX Windows运行时API。

这是我不久前写的一篇关于这个主题的博客文章,你可能会遇到这样的情况,你只想在你的项目中包含一些文件的/ZW标志,这可以做到:http://robwirving.com/2013/10/01/windows-phone-8-native-dev-tip-hack-your-vcxproj-file-to-selectively-include-the-winrt-extensions/

最新更新