我在我们公司现有的应用程序中实现了 Aspose.Cells和Aspose.PDF 。虽然我遇到了一些麻烦(主要是因为我试图将两个 API 实现到 exat 同一个文件中,这是一个坏主意),但我想出了如何让它或多或少地工作。
我现在的问题是Aspose.Cells工作得非常好并且似乎没有任何异常行为Aspose.PDF已经在努力设置许可证,即使我最终让它工作我什至无法启动Aspose::Pdf ::文件。
因此,第一个完全不寻常的事情是我必须在 Aspose 包提供的示例代码中设置许可证的方式,而在官方资源中,许可证是这样设置的。
auto lic = System::MakeObject<Aspose::Pdf::License>();
lic->SetlLicense("c:\\Foo\fooproj\\Aspose.Total.C++.lic");
此代码不会在我的机器上运行并导致错误。
粗译
food.exe 触发断点
原来的
food.exe Hat einen Haltepunkt ausgelöst
当我使用这样的 emtpy 构造函数初始化System::String时,也会发生同样的情况。
auto lic = System::MakeObject<Aspose::Pdf::License>();
System::String str;
str.FromUtf8("C:\\foo\fooproj\\Aspose.Total.C++.lic");
lic->SetLicense(str);
但是,如果我首先使用空字符串初始化System::String设置,则许可证似乎可以正常工作,因此可以正常工作。
auto lic = System::MakeObject<Aspose::Pdf::License>();
System::String str(u"");
str.FromUtf8("C:\\Projekte\\Aspose\\Lizens\\Aspose.Total.C++.lic");
lic->SetLicense(str);
如果上面的代码有效并且我尝试从Aspose::Pdf::Document创建一个对象,这将崩溃。
void Aspose_pdf::helloWorld()
{
auto doc = System::MakeObject<Aspose::Pdf::Document>();
.....
.....
}
我实际上不知道发生了什么。我目前没有使用任何using namespace命令。如果有人知道如何解决这个问题,那就太好了。
编辑:错误恰好发生在以下函数的 smart_ptr.h 中。
typename std::enable_if<!IsSmartPtr<T>::value, SmartPtr<T> >::type MakeObject(Args&&... args)
{
System::Detail::OwnNextObject ownershipSentry;
T *const object = ::new T(std::forward<Args>(args)...);
ownershipSentry.CreatedSuccessfully(object);
return SmartPtr<T>(object);
}
在第二行T *const object = ::new T(std::forward<Args>(args)...);
中“导致”错误或至少在这里错误将被触发。
编辑2:
在这里,您将找到一个简单示例,说明我的代码的一般外观。我开始在我的程序中实现Aspose.Pdf,所以我编辑了我的 Additional Library 目录、其他依赖项、其他包含目录、preprozessor 定义和我的堆栈大小,以适应Aspose.Pdf示例中给出的这些设置。在此之后,我创建了我的Aspose_Pdf类并对其进行了测试。到目前为止工作完美。在此之后,我进行了相同的编辑以适应Aspose.Cells。我还创建了一个Aspose_Cells类并对其进行了测试。虽然现在这有效,但我的Aspose_Pdf类停止工作。过了一会儿,我设法至少获得了许可证激活Aspose_Pdf从这一点开始工作,我遇到了上述问题。
附加依赖项:
...
Aspose.PDF_vc141x64d.lib
aspose_cpp_vc141x64d.lib
Aspose.Cells.lib
其他图书馆目录:
...
..\Aspose\Aspose.PDF\lib\Debug
..\Aspose\Aspose.Cells\lib64
额外的包含目录
...
..\Aspose\Aspose.PDF\lib\Debug
..\Aspose\Aspose.PDF\include\asposecpplib
..\Aspose\Aspose.PDF\include\Aspose.Pdf.Cpp
..\Aspose\Aspose.Cells\Include
..\Aspose\Aspose.Cells\Include\icu\include
..\Aspose\Aspose.Cells\Include\boost