winapi - 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]
有没有办法可以避免这种情况?
解决方案
推荐阅读
- javascript - 'SyntaxError: Invalid shorthand property initializer' 使用正则表达式时
- pandas - 从以有序字典为行的系列创建熊猫数据框
- python - Tkinter ScrolledText,将光标移动到给定行时如何自动更新滚动条?
- generics - 如何在 rust 中正确设置通用集合类型
- python - 安装包含二进制文件的轮子时出现问题
- javascript - 从 Chrome 中的 window.addEventListener('error') 获取回溯?
- python - 求输入数字相乘的结果
- angular - 角度测试,有没有更好的方法来编写这段代码?
- css - 如何在悬停超链接上设置图像旋转
- swift - 如何将 UIActivityViewController 与 SwiftUI 的 ScrollView 集成?