none
fatal error C1189: #error : Must define a target architecture RRS feed

  • 问题

  • D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\winnt.h(670) : fatal error C1189: #error :  Must define a target architecture.

    下面是winnt.h中的一段代码:
    #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b)))
    #define UInt32x32To64(a, b) ((ULONGLONG)((DWORD)(a)) * (ULONGLONG)((DWORD)(b)))

    #define Int64ShllMod32(a, b) ((ULONGLONG)(a) < < (b))
    #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b))
    #define Int64ShrlMod32(a, b) ((ULONGLONG)(a) >> (b))

    #else
    #error Must define a target architecture.//错误定位行
    #endif

    看了很多网上的说法,但解决不了问题!
    主流说法:重新新建项目,再把代码弄进去!我试过了,不行!

    我装是VS2005+WINCE6.0模拟器!没有板!
    应该不是#include"winnt.h"的问题,我昨天自己试了下,无论包含还是不包含都会出这个错!
    2010年1月13日 2:58

答案

  • wince上开发,怎么会include winnt.h呢?
    是不是把在windows上跑的一段代码来直接拿到ce下编译才出现这个问题的?
    ce根windows程序不具备代码级别兼容性,所以可能要改代码。

    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    2010年1月13日 14:06
    版主

全部回复

  • wince上开发,怎么会include winnt.h呢?
    是不是把在windows上跑的一段代码来直接拿到ce下编译才出现这个问题的?
    ce根windows程序不具备代码级别兼容性,所以可能要改代码。

    最近有了小宝宝,他比较淘气,所以来这里的时间少了挺多。非常抱歉。
    2010年1月13日 14:06
    版主
  • 谢谢版主大人的回复,我是一段EVC上的代码弄到VS2005上来运行的!

    2010年1月14日 0:14
  • 我觉得有可能是项目配置的问题:项目配置中的平台项:PocketPC 2003 (ARMV4) 就会导致这个错误。
    解决方法:将项目配置的平台选项选择:平台(Win32)。
    2010年2月2日 5:59
  • 这个问题怎么解决?我也正为这个问题头疼呢?  我是把eVC下开发的程序移植到VS2005上面来出现这样的问题的!
    2010年5月27日 8:22