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

4
我试图在Rust中通过FFI使用“xerces-c”,但没有成功。 在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个回答

7

Rust不支持与C++进行FFI。如果您想使用这个库,您需要找到或编写一个翻译层,为该库提供纯C接口,然后绑定到那个接口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接