我試圖寫武裝突襲3 DLL延伸和game docs說:如何在Rust中爲ArmA 3 DLL實現RVExtension功能?
該DLL應該包含一個形式 _RVExtension的切入點@ 12,用下面的C簽名:
void __stdcall RVExtension(char *output, int outputSize, const char *function);
C++代碼示例的一部分是:
// ...
extern "C" {
__declspec(dllexport) void __stdcall RVExtension(
char *output,
int outputSize,
const char *function
);
};
void __stdcall RVExtension(
char *output,
int outputSize,
const char *function
) {
outputSize -= 1;
strncpy(output,function,outputSize);
}
該文檔也有很多其他語言的例子如:C#, D and even Pascal,但那些幫助不大,因爲我沒有很好地理解他們的FFI =(。
我堅持用下面的代碼鏽:
#[no_mangle]
pub extern "stdcall" fn RVExtension(
game_output: *mut c_char,
output_size: c_int,
game_input: *const c_char
) {
// ...
}
但武裝突襲拒絕調用它。
如何對Mingw做同樣的想法?似乎它發生類似的事情(https://forums.bistudio.com/topic/193084-building-extensions-on-mingw/?p=3073069) – xbelanch
對不起,我沒有MinGW的經驗。 – Ridim