问题标签 [syswow64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
808 浏览

.net - 使用 SysWow64\Regsvr32 注册 32 位 DLL 会生成不同的 CLSID,然后会出现错误消息

开发环境:

  • Windows 2008 服务器32 位
  • Visual Studio 2010 专业版
  • 视觉基础 6

目标环境:

  • Windows 2012 R2 64 位

VB6 应用程序 ( app.exe) 依赖于 COM 可见的 .NET DLL ( netdll.dll),它本身依赖于由 Visual Basic 6 生成的 COM DLL(处理 ListBox 对象的包装器,我们称之为vb6dll.dll)。

如上所述,它们都是 32 位的,因为 dev os 是 32 位的。我还file使用 Cygwin 提供的命令检查了它们:

RegAsm用于注册netdll.dll

SysWow64\RegSvr32用于vb6dll.dll在目标环境中注册。

当我启动 VB6 应用程序时,我收到以下消息:

由于以下错误,检索具有 CLSID {XXXX} 的组件的 COM 类工厂失败:80040154

我认为这不是这个问题的重复。我想出了从 Windows 2008 更改为 Windows 2012 R2的 CLSIDvb6dll.dll ......这似乎是为什么netdll.dll找不到它......如果是这样,为什么注册会这样?

更新:我承认我是 CLSID 的新手......如果我清楚地理解它,VB6 会为每个 COM 对象编写自己的 CLSID,这些 CLSID 由 RegSvr32 检索。如果属实,为什么 Windows 2012 版本的 RegSvr32 (SysWow64) 在注册表中写入另一个 CLSID?

0 投票
1 回答
2462 浏览

php - PHP 没有在 IIS Windows Server 2012 上运行,尽管 FastCGI 和 MySQL 是

这应该不会花很长时间,但我有 Windows Server 2012/R2 并在 IIS8 上安装了 PHP 管理器。

我尝试点击简单的“localhost/phpinfo.php”,得到以下信息:

所以我查看了错误代码,但无济于事,没有什么适用于我的情况。

http://forums.iis.net/t/1166213.aspx?The+FastCGI+executable+Error+Number+2+0x80070002+

在尝试vcredist_x64.exe后,我通过vcredist_x86.exe安装了 MSVCR110.dll 的正确版本。

程序无法启动,因为您的计算机缺少 MSVCR110.dll

我已确保 DLL 在System32SYSWOW64文件夹中。

尽管如此,PHP 并没有像预期的那样在 IIS8 下运行。

我只是想运行 Concrete5。我之前可以在另一台 Win2012 服务器上执行此操作,但我忘记了该服务器是如何消失的....需要复制程序文档....假我!

任何帮助将不胜感激...

更新:尝试从我的本地机器或从服务器内部访问我的服务器时;我现在明白了:

更新2:马克的问题:这就是我得到的:

另外:这是基本设置对话框:

在此处输入图像描述

注意:D:\inetpub\wwwroot已向 IIS 注册,因为D:我的服务器上的驱动器刚刚超过 800GB,而C:驱动器还剩下不到 25GB... 1and1 没有按照我的需要对驱动器进行分区。需要让 Aome for Servers 将空间从 移动D:C:,除非有人有“免费”的开源方式......


马克更新!!!马克,谢谢,我检查并重新安装了它们。都在“正确”文件夹中...... 32 位SYSWOW64和 64 位System32......是的,有点奇怪。

我再次测试了文件,然后......哇!!!!该死的啊!!!!你大男人!!!!棒呆了的家伙!

看一下,大佬!!!!呜呜!!!

在此处输入图像描述

0 投票
1 回答
527 浏览

c# - 通过安装程序安装 INF 时文件被复制到 SysWOW64 而不是 System32

我们有 INF 文件,它将一个 .sys 文件安装到 Windows 驱动程序文件夹。场景如下:

1) 从文件资源管理器安装 INF。右键单击 INF 文件,然后单击安装。在这种情况下,.sys 文件在 Windows\System32\drivers 文件夹下获得副本。

2) 创建控制台应用程序以使用进程对象下的 RunDll32 / CMD 安装并安装 INF 文件。在这种情况下,.sys 文件在 Windows\System32\drivers 文件夹下获得副本。

3) 创建具有安装程序类的 x86 安装程序,使用进程对象下的 RunDll32 / CMD 安装并安装 INF 文件。在这种情况下,.sys 文件在 Windows\SysWOW64\drivers 下获得副本。

我们的目标是复制 Windows\System32\drivers 文件夹下的 .sys 文件,而不管 WinXP、Windows7、Windows 8/8.1/10 等 32/64 位风格的 Windows 操作系统。

0 投票
0 回答
487 浏览

php - 完全意外的异常:无法创建 COM 对象“TestCOM.generateLockPIN”:语法无效

我正在尝试使用 regsvr32 连接已经在 SysWow64 中注册的 com dll,

并且

而是TestCOM我的 dll 名称和generateLockPIN函数名称。

我还在 dcomcnfg 中添加了权限

组件服务 -> 属性 -> Com 安全性 -> 编辑默认值 -> 权限所有人,IUSR

在 php.ini 中我设置了

我提到了很多解决方案,但没有运气

以前的问题这样试过

任何帮助都会非常感激。

0 投票
1 回答
3728 浏览

windows - C:\windows\SysWow64\CScript.exe 窗口弹出

我在 Excel 中创建了一个宏,并从 .vbs 文件运行它。它在我的笔记本电脑上运行良好。我在一台新笔记本电脑上复制了相同的工作,每次我运行 vbs 文件时,此窗口都会出现在屏幕上。

在此处输入图像描述

我进行了一些研究并阅读到我提到的情况是在启动时加载 CheckNDISPort 服务时发生的。但我不相信这是原因,因为当我转到任务管理器并检查启动选项卡时,我没有找到此服务。此外,当我重新启动我的笔记本电脑时,我没有看到这个窗口,只有当我运行我的 vbs 文件时。我确信我的 vbs 文件也有任何问题,因为在其他笔记本电脑上它工作正常。

有什么建议请教如何驾驭这个弹出窗口?现在我每次都关闭窗口或从任务管理器结束任务,但每次我再次运行它时它都会再次弹出。
非常感谢。

0 投票
1 回答
386 浏览

c++ - Windows API SysWOW 重定向意外行为

我有一个旧的 32 位安装程序,它将一些 32 位依赖 DLL 安装到 Windows 系统文件夹中。我发现它无法在 64 位系统上安装一些 32 位 DLL,因为 SysWOW 重定向正在做一些我不理解的事情。

安装程序依赖于 Windows API 函数 GetFileVersionInfo 来指示 DLL 是否已经存在更新版本号。但是,我现在看到文件 MSVCR100.DLL 已经存在于 System32 文件夹中,但不在 SysWOW64 文件夹中的情况。当 GetFileVersionInfo 用于测试 C:\Windows\System32\MSVCR100.DLL 时,我希望它重定向到 C:\Windows\SysWOW64\MSVCR100.DLL。似乎如果 SysWOW64 中不存在该文件,那么它会在 System32 中查找作为后备。因此,安装程序认为 MSVCR100.DLL 已经存在并且无法安装它。

我创建了一个 C++ Win32 控制台应用程序来测试它。整个代码是:

我在 3 台不同的 64 位计算机上进行了测试,包括 Win 10、Win 7,我得到了相同的结果。

如果 MSVCR100.DLL 在 SysWOW64 但不在 System32 中,那么我的测试显示重定向按预期工作:

如果 MSVCR100.DLL 既不在 System32 也不在 SysWOW64 中,则预期结果:

如果 MSVCR100.DLL 在 System32 但不在 SysWOW64 中,则结果会显示一些意外且无用的内容:

网络搜索向我展示了许多有关 SysWOW 重定向的信息,但我找不到任何有关此行为的文档或讨论。这真的是我应该期待的吗?我的测试还表明,如果我使用 API 函数 GetSystemWow64Directory,我可以拥有一个不依赖重定向的文件路径。只复制 DLL 并在该路径上注册它们是否安全?

0 投票
0 回答
125 浏览

iis - 未找到 SysWOW64 支持。Windows Process Activation Service (WAS) 将禁用应用程序池

在 IIS 中,我已经配置了网站并在应用程序中配置了启用 32 位应用程序以运行。多年来一直运行良好,今天我经常遇到应用程序池的关闭。然后我从系统日志下的事件日志中捕获了以下日志详细信息。

“应用程序池‘xxxxxx’已启用 32 位工作进程,但未找到 SysWOW64 支持。Windows 进程激活服务 (WAS) 将禁用应用程序池。要解决此问题,请禁用以 32 位工作程序运行处理或安装 SysWOW64 支持。数据字段包含错误号。”

我试图解决使用 Google 的问题,但没有适当的解决方案来启用 IIS 中的 SysWOW64 支持。

任何人都让我知道解决我的问题的配置过程。

0 投票
2 回答
2009 浏览

windows - 如何在不重定向到 WOW6432Node 的情况下使用 32 位 Powershell 访问 64 位注册表项

我有一个简短的 Powershell 脚本,它应该在以下注册表路径中设置一个值:

我的问题是,脚本可以工作,但是当它从 32 位环境运行时(实际上我们使用自动调用脚本的 32 位自定义应用程序),调用被重定向到

HKEY_LOCAL_MACHINE\SOFTWARE\ WOW6432Node \Microsoft\Windows NT\CurrentVersion\Accessibility

并且该项目设置在那里,因此它没有按预期工作。

如何在 32 位和 64 位 Windows 10 系统上访问正确的注册表路径 HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility,无论脚本是从 32 位还是 64 位命令行运行的?

0 投票
1 回答
669 浏览

iis - 应用程序池 - 启用 32 位应用程序 = false 生成堆栈溢出错误

如果将其设置为 True - IIS > Application Pools > DefaultApplicationPool > Enable32BitApplication 那么应用程序工作正常。但是,如果将其设置为 False,则应用程序正在运行,但在记录后,它会显示 StackOverflowException。

.Net 框架:4.0

为什么它在 32bit-true 上正常运行并且无法运行 -false?信息是否足够?如果需要,我可以提供更多。

我尝试了很多解决方案来解决 - 框架注册、ISAP、处理程序、ISAP-CGi 限制、在 x64 上构建应用程序,但它没有解决。

观察:当我查看进程探索时,它从 SYSWOW64 加载 dll。

你能帮忙吗,那对我们来说会很棒。

0 投票
2 回答
345 浏览

windows - 如何在 Windows 上使用 x86 perl 系统启动 x64 shell

我使用 perl 来调用system start我需要指定我希望我的程序绑定到的 cpu 编号。

当我使用 x86 perl 时,它会启动 x86cmd来运行 start 命令。此 x86start不接受该参数0x100000000,因为它超过 32 位长度。如果我使用 x64 perl,整个事情都可以正常工作,因为 x64 perl 启动 x64cmd接受0x100000000.

那么在使用 32 位 perl 时如何启动 x64cmd来运行命令?start

细节:

首先,我验证了 32 位 cmd shell 不接受start /affinity 100000000,而 64 位 cmd shell 可以。在 32 位 cmd shell 中,它会抛出错误The system cannot accept the START command parameter 100000000.

然后我分别尝试了x64 perl和x86 perl,发现x86 perl会得到同样的错误。请参阅下面的命令。

有什么方法可以使用 x86 perl 启动 x64 shell 来执行启动?