none
将vc2008 32位程重新编译为64位 在win7 64位下提示不是有效的32位应用程序 RRS feed

  • 问题

  • 一个在xp 32位下,用vc2008编译运行都没有问题的c++ project,程序是32位

    重新到win7 64位下,用vc2008编译成功,程序是64位,但运行时提示"不是有效的Win 32应用程序"

    请问这其中的原因是什么?如何解决?

    用Dependency Walker查看,CPU是AMD64,没有任何error,warning.

    代码如下:

    #include "testgen.h"

    DWORD WINAPI DllMain()
    {
    return TRUE;
    }

    如果在到win7 64位下,用vc2008新建一个project,运行没有问题,其中的原因是什么?

    2013年6月16日 2:15

答案

  • 你好,你可以在Solution或Project的properties中,選Build的菜單中,有選單可以選"目標平台"是X86還是X64

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2013年6月17日 1:25

全部回复

  • 你好,你可以在Solution或Project的properties中,選Build的菜單中,有選單可以選"目標平台"是X86還是X64

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    2013年6月17日 1:25
  • 原因是程序编译环境的.NET Framwork与运行环境的.NET Framwork不兼容。

    解决步骤

    1、检查程序目标运行环境的.NET Framwork版本。

    2、在Visial studio 编译生成环境中:

    2.1、选择解决方案资源管理器,右键选择程序属性、2.2、选择应用程序、2.3.选择目标框架,设置目标框架中的.Net Framwork与将要运行的环境一致。

    2016年11月16日 9:19