我正在尝试使用" xerces-c"通过FFI在Rust没有成功。在C ++中,我会编写以下代码来使用它:
XMLPlatformUtils::Initialize();
{
XercesDOMParser domParser;
ParserErrorHandler parserErrorHandler;
domParser.setErrorHandler(&parserErrorHandler);
domParser.setDoSchema(true);
domParser.setValidationSchemaFullChecking(true);
domParser.parse(xmlFilePath.c_str());
if(domParser.getErrorCount() != 0) {
// ...
}
}
XMLPlatformUtils::Terminate();
我如何使用这些"复杂" Rust内的数据类型?我找到了许多导出/创建FFI以在其他语言中使用它的示例,但没有在Rust中使用复杂类型。
extern crate libc;
#[link(name = "xerces-c")]
extern {
// How do i have to implement the constructor here?
}
答案 0 :(得分:6)
Rust不支持使用C ++的FFI。如果要使用此库,则必须查找或编写提供库的纯C接口的转换层,然后绑定到 。