gpt4 book ai didi

c# - 在 Debug模式下加载 DLL 错误,但在 Release模式下正常

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:19 24 4
gpt4 key购买 nike

当我使用VS2008 构建我的项目时,我使用了我自己的DLL。它在 release 模式下工作正常,但是当我将其更改为 debug 模式时,出现错误:

DDKWidget.exe 中发生类型为“System.DllNotFoundException”的未处理异常

附加信息:无法加载 DLL“DDKLibA.dll”:找不到指定的模块。

DDKWidgetDDKLibA.dll 是我的项目可执行文件和我自己创建的DLL。我在 C++ 中创建了我的 DLL,但我在我的 C# 项目中使用它,使用 [DllImport("DDKLibA.dll")].

我的操作系统Win7 64位
我的 IDEVS2008 SP1

有人遇到过这个吗?
顺便说一句,前段时间一切正常,但最近,自从我重新安装了 OS 后,我开始遇到这些错误。谁能帮帮我?

最佳答案

这听起来像是 64 位与 32 位不匹配的问题。默认情况下,CLR 应用程序针对“AnyCPU”进行编译,这意味着它们将在 64 位操作系统上自 Action 为 64 位进程运行。

另一方面,C++ dll 必须针对 32 位或 64 位进行编译,并且一旦编译它们就会保持这种状态。

即使在 64 位操作系统下,您也可以强制 C# 应用以 32 位模式运行,但可以针对调试和发布配置独立更改该设置。

我的猜测是您的 C++ dll 被编译为 32 位并且您的 C# dll 的调试设置也是 32 位但在 Release模式下它被设置为 AnyCPU。这样它将作为 64 位进程运行并且将无法加载 32 位 C++ dll。

关于c# - 在 Debug模式下加载 DLL 错误,但在 Release模式下正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com