关于Win7 64位的问题

发布于 2024-10-17 05:05:32 字数 283 浏览 5 评论 0原文

我有一个加载 DLL 的 32 位 C++/MFC 应用程序 (X)。

我有另一个加载相同 DLL 的 32 位 .NET 3.5 应用程序 (Y)。

当我在 Windows 7 64 位下测试这些应用程序时,X 加载 DLL 时没有 任何问题。但是 Y 一旦尝试调用函数就会崩溃 来自 DLL。

我的问题是:我该怎么做才能使 Y 正常工作。

我是否需要某种特殊命令来表明它是 32 位 DLL?

提前致谢!

问候,

jfronner

I have a 32 bit C++/MFC application (X) that loads a DLL.

I have another 32 bit .NET 3.5 application (Y) that loads the same DLL.

When I test these applications under Windows 7 64 Bit, X loads the DLL without
any problems. But Y crashes as soon as it attempts to call a function
from the DLL.

My question is: What can I do to make Y work properly.

Do I need some kind of special commands to indicate that it is a 32 bit DLL?

Thanks in advance!

Regards,

jfronner

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故笙诉离歌 2024-10-24 05:05:32

通常,当事情“崩溃”时,会出现错误消息。此错误消息通常很有用。如果没有这条消息,我只能猜测。

我猜您的 .net 应用程序的目标是“AnyCPU”,因此在 64 位计算机上它作为 64 位进程运行。 64 位进程无法加载 32 位 DLL。如果您将其切换到目标“32 位”,那么一切都会再次工作。

或者您可以将 DLL 编译为 64 位,但这可能会更棘手。

Usually when things "crash" there is an error message. This error message is often useful. In the absence of this message I am reduced to guessing.

I guess that your .net app targets "AnyCPU" and so on the 64 bit machine it runs as a 64 bit process. A 64 bit process cannot load a 32 bit DLL. If you switch it to target "32 bit" then it will all work again.

Or you could compile your DLL to 64 bit but that may be more tricky.

要走就滚别墨迹 2024-10-24 05:05:32

如果您将 .Net 应用程序编译为平台无关的,则它将在 32 位平台上以 32 位的方式执行您的应用程序,在 64 位平台上以 64 位的方式执行您的应用程序。

在后一种情况下,您的应用程序在尝试加载 32 位 DLL 时可能会崩溃,因为 64 位应用程序只能加载 64 位 DLL。

将您的 .Net 应用程序显式编译为 32 位。

If you compile your .Net application as being platform-neutral, it will execute your app as 32-bit on a 32-bit platform, and as 64-bit on a 64-bit platform.

In the latter case, your app will probably crash when it tries to load the 32-bit DLL because 64-bit apps can only load 64-bit DLL's.

Compile your .Net app as 32-bit explicitly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文