日期:2023-02-03 09:49:34
来源:互联网
点击:26
以下就是为您整理的dllhost 65位调用 32位调用超时的答案
win7旗舰版32位的系统中,在安装程序后显示程序已加载,但是调用失败。请问是什么原因,怎么解决?急急急!!!你是安装什么程序出现的?
如果当前已安装的 Comcat.dll 文件不是正确的版本,则会出现此行为。注册 Srvcstat.ocx 文件调用 Comcat.dll 文件。如果 Comcat.dll 文件不是版本 4.71,Srvcstat.ocx 文件未注册。
若要解决此问题,将版本 4.71 Comcat.dll 文件替换为包含在 Microsoft Windows NT 4.0 Service Pack 4 (SP4) 文件:
找到 Winnt.sbsSystem32 文件夹。
将该 Comcat.dll 文件重命名为 Comcat.old
展开到一个临时文件夹 SP4,通过键入以下命令:
c:program filesmicrosoft backofficesp4setup/x
将从临时文件夹的 Comcat.dll 文件手动复制到 Winnt.sbsSystem32 文件夹中。
通过键入以下命令来注册新 Comcat.dll 文件,请执行以下操作:
regsvr32 c:winnt.sbssystem32comcat.dll
重新启动以完成升级 BackOffice 安装程序。
程序无法运行,它说找不到***文件急需求解!。。。[b]方案一:[/b]
在c:windowssystem32中找到CMD.EXE,然后重命名为CMD.COM,在开始运行里面输入CMD.COM,就能打开命令提示符,输入assoc .exe=exefile
[b]附assoc更详细的说明,借助系统提供的assoc命令来恢复。[/b]
恢复方法一:
点开始菜单,打开运行对话框,然后输入cmd,这里会打开msdos窗口,在命令提示符后输入格式:
assoc .扩展名=扩展名file(记住扩展名前要加点的)
比如,要恢复.MP3的文件关联,我们可以输入:c:\assoc .mp3=mp3file就可以了
补充说明:
这种恢复的方法,是恢复到文件的最原始的关联,和我们在文件的打开方式中更改的文件关联是有区别的。比如:EXE文件(Flash文件)与WinAMP建立了关联,这样,以后只要双击EXE文件,不管它是Flash文件也好,不是其它可执行文件都会调用WinAMP的,这样是最麻烦的。可是如果我们在命令提示符下输入:assoc .exe=exefile,这样就恢复了EXE文件的默认关联,以后再运行可执行文件就不会再调用WinAMP程序了。
用这种方法还可以恢复.com命令文件、.zip压缩文件、.rar压缩文件、.html网页文件以及一些视频和音频文件的默认关联,大家可以试试。
开始-运行-输入command (在 Windows 2000/XP/2003 中,输入cmd),回车
在命令行中,依次执行以下命令:
cd %windir%
copy regedit.exe regedit.com
regedit
注册表编辑器打开后,找到以下分支:
HKEY_CLASSES_ROOT\exefile\shell\open\command
双击右侧窗口中的 (默认) 值,设置为 %1 %* [包含引号]
再找到:
HKEY_CLASSES_ROOT\.exe
双击右侧窗口中的 (默认) 值,设置为 exefile
然后退出注册表编辑器,重启电脑
恢复方法二: 适用于 Windows 2000/XP/2003
开始-运行-输入cmd,回车
在命令行中,依次执行以下命令:
ftype exefile=%1 %* [包含引号]
assoc .exe=exefile
重启电脑
MP4连接电脑无法打开提示函数错误怎么回事?在线求助!当调用一个windows函数时,它首先要检验传递给它的各个参数的有效性,然后再设法执行任务.如果传递一个无效参数,或者由于某种原因无法执行这项操作,那么操作系统就会返回一个值,指明该函数在某种程度上运行失败了。
windows函数常用的返回值类型:
void
bool:0,非0,ture,false
handle:handle,null,invalid_handle_valid)
pvoid:null,pvoid
long/dword:具体函数而定
...
microsoft编译了一个所有可能的错误代码列表,并且为每个错误代码分配了一个32位的号码. winerror.h头文件(大约2万多行)包含了micorsoft定义的错误代码列表.
当一个windows函数检测到一个错误时,它会使用线程本地存储(thread-local storage)机制,将相应的错误代码号码与调用的线程关联起来.这将使线程能够互相独立的运行,而不会影响各自的错误代码.
当函数返回时,它的返回值就能指明是否有错误发生,若有且要确定是什么错误,就需要调用dword getlasterror()函数,它返回线程的32位错误代码.visual studio有一个error lookup程序可用将错误代码的号码换成相应文本描述.windows还提供了一个函数formatmessage可以将错误代码转换成它的文本描述.
dword formatmessage(
dword dwflags, // source and processing options
lpcvoid lpsource, // message source
dword dwmessageid, // message identifier
dword dwlanguageid, // language identifier
lptstr lpbuffer, // message buffer
dword nsize, // maximum size of message buffer
va_list *arguments // array of message inserts
);
我们也可以在自己的函数中使用该机制,只需要使用void setlasterror(dword dwerrcode)函数即可,如果winerror.h中的任何代码都不能正确地反映该错误的性质,那么可以创建你自己的代码。错误代码的域的划分表:
位 31~30 29 28 27~16 15~0
内容 严重性 microsoft/客户 保留 设备代码 异常代码
含义 0=成功 0=ms定义的代码 必顺是0 由ms定义 由ms或客户定义
1=参考
2=警告 1=客户定义的代码
3=错误
注:如果创建自己的错误代码,必顺使29位为1.
外接函数调用时不能有NA/NaN/Inf,这个错误怎么解决急急急!!!GPIO_Write(GPIOB,(GPIOB-ODR 0xfff0 | 0xf)) 这个地方是说!你先把GPIOB口的输出寄存器低四位清零,让后在把他与0xf相与在把低四位置高。 GPIOB是32位寄存器所以,0xfff0正好是32位,那个0xf是0x0f的意思!
汇编语言中的CPU的16位,32位和当今操作系统所指的32位,64位概念有点模湖,请大侠们赐教.在线求助!操作系统上的位宽与CPU所指的位宽不是同一概念。CPU的位宽指的是寄存器最大位数。如果64位CPU最大的寄存器是64bits。而寄存器位宽就是所指的寄存器的位数。如果8位寄存器ah,ax。
操作系统上的64位操作系统指的是混合调用指令,调用了64位的指令集。并不表示每一条指令都是64位的。在CPU中有不同的指令集,有些是在64位下操作的指令集,而调用这些指令集的系统就是原生64位。相反调用32位指令集的则是32位系统。所以它们不同于CPU的位宽,但是却有联系。64位指令集是那么调用CPU64位寄存大的指令的集合,根据CPU周围译码电路的不同,还有分IA-64等不同的指令集合。你可以认为64位系统中有部分指令调用了64位寄存器。
事实上在64位环境下,调用32位指令与32位上的调用并不相同!
也有有关理解为64系统指的是采用了64位寻址方式。事实上32位系统与64位系统的确有不同的寻址方式,但是64位操作系统与全新的寻址方式,是因为64位采用不同的方式,而不是不同的寻址方式而造就是64位,再者说寻址能力不全是因为寄存器,而是因为CPU总线宽度,比如在32位机中,CPU的总线宽度为20位,而64位机各框架下CPU的总线宽度并不相同。
32位EAX扩展后使用的是RAX为标记寄器的。在window7 32位下是存在debug命令的,而这个命令却在64bits下取消了!这就是主什么有些人会说win7下有,而另一些人说没有的原因!既然是没有,那么就必须使用外挂的命令,但外挂的命令是否支持64位,这个要看你使用的具体的外挂程序。
80486推后,AMD推出了一个新折产品,而intel急于推出80586与之抗衡,不幸的是AMD挑起了官司,intel的命名有误导标准之嫌疑——严禁intel再使用数字命名CPU,而正准备发行的intel 80586遇到了大麻烦,为了不改变消费者对其的固有支持,注册了pentium,并根据音译,中文商标为奔腾,其实在拉丁语系中,其意思就是数字5,用来标识自己的586。事实使用数注册的另一个好处就是,在不同的读言系中,都可以做到商标的统一(阿位伯数字是印度人发明,阿位伯向全球传递,任何语言都没有组数字通用,几乎任何语言中都存在阿拉伯数字的),所以在586上市前输掉官司的intel只有使用了Pentium,这也是合理的。
奔腾经历了奔腾,多能奔腾,高能奔腾,麻点奔腾之后,开始使用了Pentium-II,一直到Pentium IV,同期发行赛场之后,转入了Pentium D,Core等多种不同架框的686,而前几代的奔腾与赛扬都是586的。而现在的Pentium D,pEntium E等都是686!
事实上64位上的RAX名称只是汇编语言中的一个助记标,它与寄存器的关系非常小的,至于叫RAX还是你想叫EEAX,那只是一个名字而已,主要是为了人们交流而已,只不过汇编语言也采用了这种人们交流的名称。不要以为计算机会知道它自己一个寄存器叫RAX,它只认识二进制编码,所以在计算使用时0001对应了AX,EAX,RAX,当出现这个指令时,它就知道你要调用的是编码为0001的寄存器了,如果是16位操作数,它就用AX,如果是32位操作数,它就用EAX,如果是64位,用的是全寄存器RAX,换句话来说AH,AL,AX,EAX,RAX指出同一寄存器的不同位长而已。
64位编程时,介绍一个网站:http://www.mouseos.com/x64/extend64.html,看一下能更加深你的理解。
内容dllhost 65位调用 32位调用超时来源于网友整理,仅供参考。提示:想了解更多dllhost 65位调用 32位调用超时(dllho)相关的内容,请尝试通过上方搜索框搜索。