installshield10.5中的SYSINFO结构没有那个成员,换成高版本程序转换后卸载不了了.点卸载的图标提示找不到目标.
在程序中根本就没办法判断,网上说法很多,但没一个能用.比如:
BOOL IsWow64()
{
     typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
     LPFN_ISWOW64PROCESS fnIsWow64Process;
     BOOL bIsWow64 = FALSE;
     fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle("kernel32"),"IsWow64Process");
     if (NULL != fnIsWow64Process)
     {
         if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
         {
             return FALSE;
         } else
             return TRUE;
     }
     return bIsWow64;
}int main()
{
     BOOL f64;
     f64 = IsWow64();
     if (f64)
         printf("64\n");
     else
         printf("32\n");
}

解决方案 »

  1.   

    程序中 可以用 IsWow64Process() API,为什么不能用? 程序提升权限没..
      

  2.   

    http://msdn.microsoft.com/en-us/library/bb756929.aspx
      

  3.   

    你的代码写错了,当函数调用成功时,应该返回bIsWow64这个变量。MSDN中也有例子。
      

  4.   

    BOOL IsWow64() 

        typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); 
        LPFN_ISWOW64PROCESS fnIsWow64Process; 
        BOOL bIsWow64 = FALSE; 
        fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle("kernel32"),"IsWow64Process"); 
        if (NULL != fnIsWow64Process) 
        { 
            fnIsWow64Process(GetCurrentProcess(),&bIsWow64);
        } 
        return bIsWow64;