微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何找出为什么DLL不能在不同的程序中加载?

一般问题

有没有办法找出为什么一个DLL无法加载程序? 在我和第三方软件中加载DLL时,我会定期碰到错误。 有一个共同的方法解决这种情况,并确定特定系统上的特定DLL有什么问题,这将是很好的。

例如

我用Rust(x64,MSVC ABI)编译了一个简单的DLL:

在运行iter :: count时收到“非法指令”

生成文件夹外部的Windows库链接

为什么时间的纳秒值:持续时间在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] 举报,一经查实,本站将立刻删除。

相关推荐