我试图写武装突袭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