C++ C++;:在混合使用C+;进行编译时获取c3859错误代码+/CLI和C++;

C++ C++;:在混合使用C+;进行编译时获取c3859错误代码+/CLI和C++;,c++,c++-cli,marshalling,unmanaged,C++,C++ Cli,Marshalling,Unmanaged,在我按照Hans Passant在中的建议(这是可行的)完成之后,我的代码现在如下所示: private: System::Void readPstFileButton_Click(System::Object^ sender, System::EventArgs^ e) { pstsdk::pst myfile(marshal_as<std::wstring>(fileNameTextBox->Text)); } private: Sy

在我按照Hans Passant在中的建议(这是可行的)完成之后,我的代码现在如下所示:

private:
    System::Void readPstFileButton_Click(System::Object^  sender, System::EventArgs^  e) {
         pstsdk::pst myfile(marshal_as<std::wstring>(fileNameTextBox->Text));
    }
private:
System::Void readPstFileButton\单击(System::Object^sender,System::EventArgs^e){
pstsdk::pst myfile(封送为(fileNameTextBox->Text));
}
现在我得到以下错误:

错误C3859:超出PCH的虚拟内存范围;请使用'-Zm111'或更大的命令行选项重新编译

错误C1076:编译器限制:已达到内部堆限制;使用/Zm指定更高的限制

我绝对没有想到会发生这些事情,我也不知道如何解决它们

  • 在解决方案资源管理器中右击C++项目;选择属性
  • 在属性对话框中,展开配置属性>C/C++>命令行
  • 在附加选项中,添加
    /Zm120
  • 对调试和发布以及您拥有的任何其他配置重复此步骤


    有关此命令行选项的作用(以及更改它意味着什么)的详细信息,请参阅。

    错误告诉您如何解决它们。这非常有帮助!谢谢除了错误,尽管所有的错误都说明了,但是似乎没有什么解决方法,因为我不在命令行编译,而是使用VS2010。删除“托管C++”标签——管理C++已经死了——如果你使用C++ + CLI,你就用了“托管C++”。谢谢Billy ONeal!我不知道,只是学到了一些新东西!这可以正确编译,而且我现在了解了
    /Zm
    选项开关的功能,这有助于我更充分地学习。谢谢!=)(+1和接受的答案)只是一个提示:您可以选择所有项目,并在一个步骤中将相同的属性表添加到它们。该工作表还将添加到调试和发布版本中。这对于数百人来说根本不起作用。我们已经设置为最大值。。这完全是随机的,无论这个错误是在重建时出现的。