如何通过Rust FFI调用C ++构造函数?

时间:2017-08-07 05:33:20

标签: c++ rust ffi

我正在尝试使用" 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? 
}

1 个答案:

答案 0 :(得分:6)

Rust不支持使用C ++的FFI。如果要使用此库,则必须查找或编写提供库的纯C接口的转换层,然后绑定到