首页 > 解决方案 > DllMain 在 rust 中的正确签名是什么?

问题描述

我正在尝试在 rust 中创建一个 cdylib 并为 DllMain 定义了这个函数

use winapi::shared::minwindef::*;
use winapi::um::winnt::DLL_PROCESS_ATTACH;

#[no_mangle]
pub extern "stdcall" fn DllMain(_h_inst_dll: HINSTANCE, fdw_reason: DWORD, _lpv_reserved: LPVOID) -> BOOL {
    if fdw_reason == DLL_PROCESS_ATTACH {
        //do stuff
    }
    return 1;
}

但是当dll附加到进程时代码没有运行,签名有问题吗?当我检查 dll 时,我注意到函数名称是自动导出的,#[no_mangle]有没有办法可以避免这种情况?

标签: winapirust

解决方案


推荐阅读