一般问题
有没有办法找出为什么一个DLL无法加载程序? 在我和第三方软件中加载DLL时,我会定期碰到错误。 有一个共同的方法来解决这种情况,并确定特定系统上的特定DLL有什么问题,这将是很好的。
例如
我用Rust(x64,MSVC ABI)编译了一个简单的DLL:
在运行iter :: count时收到“非法指令”
为什么时间的纳秒值:持续时间在Windows上最接近100的倍数?
无法在Windows上链接hello_world程序:/ usr / bin / link:额外的操作数
书中的FFI示例在Windows下找不到-lanneclib
use std::fs::File; use std::io::Write; #[no_mangle] pub extern fn test_dll_call() -> u8 { let mut f = File::create("C:\test.txt").unwrap(); f.write(b"Hello,world!").unwrap(); return 0 }
它通过以下方式构build:
cargo build --release
DependencyWalker在我的系统中为编译的DLL显示了很多API-MS-WIN-CORE- * DLL:
API-MS-WIN-core-apiQUERY-L1-1-0.DLL
API-MS-WIN-CORE-程序兼容性-L1-1-1.DLL
API-MS-WIN-CORE-APPINIT-L1-1-0.DLL
API-MS-WIN-COREprimefaces-L1-1-0.DLL
…
但是,在我的Windows 10 x64系统上,我已经安装了MS Visual Studio 2015和MS C ++ Redistributables 2005,2010,2012,2013和2015。
很多在DependencyWalker中缺less依赖的DLL工作正常,所以我试图在Lua中使用我的DLL:
require("test"); function main() test.test_dll_call(); end
但是,我得到简洁的错误“循环或以前的错误加载模块”testing“” 。 一些其他的第三方DLL已经加载像一个魅力。 如何检查我的DLL有什么问题?
使用Linux调用dumbbuffer上的mmap在Rust中直接渲染pipe理器在C中工作时失败
Valgrind显示没有分配
运行时使用Rust构build的DLL需要libgcc.dll吗?
当我的程序在Rust中被破坏时如何显示callstack行号?
我无法将颜色转义码打印到terminal
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。