找回密码
 加入
搜索
查看: 3826|回复: 7

[系统综合] 【已解决】x86编译程序,为什么不可以在x64上正常运行???

  [复制链接]
发表于 2011-8-16 13:52:59 | 显示全部楼层 |阅读模式
本帖最后由 arkhe 于 2011-8-18 19:25 编辑

在x64的系统下,如果编译为x86,那么show的系统安装日期不正确,为:1970/01/01 08:00:00

如果编译为x64,那么就可以正确的显示了。

一般x86的程序是可以在x64上run的,可是为什么会出现这个问题?求解

在什么时候会区分x64和x86?

我看了date.au3的 _DateAdd()函数,没有发现撒有用信息。。。。

求解

ps:我有搜索以前的帖子,但是那个帖子的问题也没有解答。。。
Func _InstallRunTime()
        Local $_Date, $_TickCount, $iDate, $iHours, $iMins, $iSecs, $_Time[2]
        $_Date = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "InstallDate")
        $_Time[0] = String(_DateAdd( 's',$_Date, "1970/01/01 08:00:00"))
        
        $_TickCount =_Date_Time_GetTickCount()
        _TicksToTime($_TickCount, $iHours,$iMins,$iSecs)
        $_Time[1] = String($iHours)&"H "&String($iMins)&"M "&String($iSecs)&"S"
        
        Return $_Time
EndFunc
 楼主| 发表于 2011-8-16 22:56:59 | 显示全部楼层
为什么每人来说下这个问题呢
发表于 2011-8-18 06:34:41 | 显示全部楼层
没遇到过.....
发表于 2011-8-18 08:46:09 | 显示全部楼层
回复 1# arkhe

64位的注册表要加64字样:HKEY_LOCAL_MACHINE64


If StringInStr(@OSArch, "86") Then
        $_Date = RegRead("HKCM\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "InstallDate")
Else
        $_Date = RegRead("HKCM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "InstallDate")
EndIf
发表于 2011-8-18 09:20:22 | 显示全部楼层
又学习了一些知识.多谢.
 楼主| 发表于 2011-8-18 14:19:56 | 显示全部楼层
回复  arkhe

64位的注册表要加64字样:HKEY_LOCAL_MACHINE64
happytc 发表于 2011-8-18 08:46


谢谢。。。。你的解决方法是正确的

我现在所用到的机器都是64位的系统,
我都没有在注册表那里加64,
但是大部分程序编译为32bit的是可以正常运行的。

就是这个例外。。。。。
虽然解决了问题,但是还是想了解为什么有的可以用,有的必须加64呢?
发表于 2011-11-18 22:06:18 | 显示全部楼层
原来是这样啊
发表于 2011-11-18 22:23:50 | 显示全部楼层
原来是这样,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 15:45 , Processed in 0.093311 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表