2017-08-07 77 views
3

我想通過FFI在Rust中使用「xerces-c」而沒有成功。在C++中,我會寫下面的代碼來使用它:如何通過Rust FFI調用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? 
} 

回答

6

Rust不支持FFI和C++。如果你想使用這個庫,你將不得不尋找或者寫一個翻譯層,爲庫提供一個純粹的C接口,然後綁定到

相關問題