C ++:在使用pstsdk时获取“错误C2065:'pst':未声明的标识符”?

时间:2011-01-04 14:25:59

标签: c++ visual-studio-2010 unmanaged managed-c++ pst

遵循在此问题中使用 pstsdk 的建议:
Processing Microsoft Office Outlook 2003/2007 email messages…

按照此处的说明进行操作:
PST File Format SDK - PST Layer Overview - Getting Started

并且根据这段视频:
In PST SDK Presentation, Terry Mahaffey, discusses the PST SDK file format SDK.
(转发到28:32)

他们都同意我只需在为 Boost pstsdk 添加包含路径后添加PST头文件,并将以下代码写入开始使用我的pst文件:

#include "pst.h"

pst myfile(L"myfile.pst");

现在,我正在使用托管和非托管C ++的混合,因此我试图将此代码放在我的函数中,如下所示:

private: 
    System::Void readPstFileButton_Click(System::Object^  sender, System::EventArgs^  e) {
        pst myfile(fileNameTextBox->Text);
    }

每次编译时,都会收到c2065错误代码,说明pst未声明。

有人知道吗?

编辑#1

按照Hans Passant(有效)的建议完成后,我的代码现在看起来像这样:

private:
    System::Void readPstFileButton_Click(System::Object^  sender, System::EventArgs^  e) {
         pstsdk::pst myfile(marshal_as<std::wstring>(fileNameTextBox->Text));
    }

我现在收到以下错误:

  

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

     

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

我绝对不希望这些发生。如何解决?

1 个答案:

答案 0 :(得分:2)

它应该在命名空间中声明。修正:

 pstsdk::pst myfile(fileNameTextBox->Text);