@Shepmaster Dependency Walker, , . , _name@X, . RVExtension , ArmA _RVExtension@12.
, , . ~ 8 32- Rust nightly 1.8 (GNU ABI).
:
#![feature(libc)]
extern crate libc;
use libc::{strncpy, size_t};
use std::os::raw::c_char;
use std::ffi::{CString, CStr};
use std::str;
#[allow(non_snake_case)]
#[no_mangle]
pub extern "stdcall" fn _RVExtension(
response_ptr: *mut c_char,
response_size: size_t,
request_ptr: *const c_char,
) {
let utf8_arr: &[u8] = unsafe { CStr::from_ptr(request_ptr).to_bytes() };
let request: &str = str::from_utf8(utf8_arr).unwrap();
let response: *const c_char = CString::new(request).unwrap().as_ptr();
unsafe { strncpy(response_ptr, response, response_size) };
}
:
#[export_name="_RVExtension"]
pub extern "stdcall" fn RVExtension(
Rust :
#[export_name="_RVExtension@12"]
pub extern "stdcall" fn RVExtension(
, , 1.8 (MSVC ABI) 32- VS 2015 @ . MSVC @12 .
@12, _RVExtension@12@12.
, ArmA - 32- , 64- DLL.