【问题标题】:My vb.net Application Only works on 64-bit PC's我的 vb.net 应用程序仅适用于 64 位 PC
【发布时间】:2011-03-29 21:52:24
【问题描述】:

我有几个人测试了我的应用程序,所有 32 位用户都告诉我它不工作。 我对这种错误很陌生,所以我来这里寻求帮助。 我让他们复制应用程序崩溃的问题签名,这里是:

问题签名:问题事件名称:

CLR20r3 问题签名 02:1.0.0.0

问题签名 03:4d9235a5 问题

签名 05:1.0.0.0 问题

签名 06:4d9235a5 问题

签名 07:33 问题签名 08:

22 问题签名 09:

System.InvalidOperationException 操作系统

版本:6.1.7600.2.0.0.256.1 语言环境

ID:4122 附加信息 1:

0a9e 附加信息 2:

0a9e372d3b4ad19135b953a78882e789

附加信息 3:0a9e

附加信息4: 0a9e372d3b4ad19135b953a78882e789

【问题讨论】:

  • 根据错误,我实际上会首先查看您所针对的 .NET Framework 版本。然后查看正在使用的操作系统。您可能正在尝试调用特定平台不支持的 .NET API。 .NET 应用程序应该在任何架构下都可以正常构建和运行。除非您在 Config Mgr 中将 x64 指定为您的活动解决方案平台。
  • 会不会是我在代码中发出的user32.dll?
  • 不应该。这是 32 位系统的正确库。如果有什么我希望它反过来失败。
  • 我没有将 x64 指定为唯一平台的任何自定义设置,如果我有或没有,我在哪里可以检查 Visual Basic?

标签: vb.net crash 32bit-64bit


【解决方案1】:

我想我每周至少发布一次这个答案。我们又来了:不要猜这个。为 AppDomain.CurrentDomain.UnhandledException 事件编写事件处理程序。记录或显示 e.ExceptionObject.ToString() 的值。您可以毫不费力地从这些信息中找出代码爆炸的原因和位置。

您对 GetAsyncKeyState() 的声明是错误的,它返回的是 Short,而不是 Key。但这并不能解释异常。您也可以强制代码以 32 位模式运行。项目+属性,编译选项卡,向下滚动,高级编译选项。将目标 CPU 更改为“x86”。

【讨论】:

    【解决方案2】:
    1. 在 Visual Studio 中,转到您的项目属性。
    2. 点击编译部分。
    3. 点击底部的高级编译选项按钮。
    4. 确保目标 CPU 下拉菜单已选择“任何 CPU”。
    5. 构建/重建项目/解决方案。

    【讨论】:

    • 听起来你有快速的 Visual Studio 版本。试试Cody Gray回答here的方法。
    • 我实际上用谷歌搜索了它,我不得不设置高级设置和 exc,这太疯狂了,因为我以前从未遇到过这种情况,所以这是我最接近的答案,我还应该注意到 Cody Gray 的评论是对我使用的是正确的。
    • 好的,太好了!很高兴你把它修好了!
    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多