遵循在此问题中使用 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指定更高的限制
我绝对不希望这些发生。如何解决?
答案 0 :(得分:2)
它应该在命名空间中声明。修正:
pstsdk::pst myfile(fileNameTextBox->Text);