问题标签 [win64]

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 回答
1577 浏览

manifest - msvcp90.dll 依赖于错误的 msvcr90.dll?

我有一个用 VS2008 (amd64) 构建的 dll 项目。dll的清单说

当我将 dll 加载到 DependencyWalker 中时,它指的是 winsxs-directory

怎么会这样?这整个清单不是为了避免这样的情况,通过为每个 dll/exe 提供它所构建的版本以及它所依赖的 CRT 版本的信息吗?

第二个更令人困惑的是,msvcp90.dll依赖于msvcr90.dll但找不到 msvcr90.dll!?!嘿,它与 msvcm90.dll 和 msvcp90.dll 位于同一个 winsxs 目录中!如果我将正确的 msvcr90.dll 复制到与我的 dll 相同的目录中,它就可以工作!(但同样,这不是我们在 DllHell 时代的情况吗?既然我们有清单,msvc*.dll 复制不应该结束吗???)

如果有人对我有解释,我将不胜感激!

0 投票
2 回答
1373 浏览

visual-c++ - visual c++ 虚拟相机应用程序在 64 位 Windows 上不起作用

我正在尝试在 Visual C++ 中为 64 位 Windows 实现一个虚拟相机应用程序。我从这里的代码开始:tmhare.mvps.org/downloads/vcam.zip,它使用 DirectShow 过滤器模拟视频捕获设备。它适用于 32 位窗口,但不适用于 64 位窗口。我将 Visual C++ 项目修改如下:

dll 注册成功,regedit 显示我的虚拟相机的三个键

但是,Skype 和 Windows Live Messenger 在 64 位 Windows 上都看不到摄像头。
我究竟做错了什么?我知道 Win64 有 HKEY_LOCAL_MACHINE\Software\Classes\CLSID{guid} 用于 64 位应用程序和 HKEY_LOCAL_MACHINE\Software\Wow6432Node 用于 32 位应用程序,但由于我将我的代码编译为 64 位应用程序,在我看来它的密钥被放置在注册表的正确部分。是否有适用于 64 位窗口的 DirectShow 虚拟相机滤镜实现我可以用作示例(我只找到了一个适用于 32 位窗口的)?

0 投票
1 回答
136 浏览

win64 - 无法在不同机器上运行win 64下的应用程序

我一直在 MS VC++ 2008 中编写我的应用程序。

在 win32 下,我的应用程序在没有 VC++ 的机器上运行良好,但编译为 64 位的版本不能。

我有这个错误:

我正在编译为 Release,目标平台是:x64 并且运行时库被选为多线程 (/MT)。

我不想让用户安装任何额外的 VC Redist,我只想将每个需要的库静态链接到我的应用程序中。

也许是 VC 中的某种错误?(获得 VC SP1)

0 投票
3 回答
1585 浏览

windows - 将 Delphi 代码移植到 64 位 - 为什么没有编译器警告?

我们有一个大型的 Delphi XE 代码库,我们想要移植到 64 位。

我拥有 Delphi XE2 许可证,我找不到任何警告或提示可以帮助我检测有效的 32 位结构,这些结构现在可能导致 64 位平台下的数据丢失。例如,在 32 位编译器中完全有效的THandleCardinal分配在为 Win64 编译时不会引发任何警告。

在使用 Delphi 2009 迁移到 Unicode 时,我们收到了大量警告,这些警告对我们跟踪和修复可疑代码很有帮助。使用 XE2,我找不到任何东西。我无法想象编译器级别没有集成任何东西来避免我们对所有代码进行手动审查。

我错过了什么吗?如果您尝试过,您是如何将项目移植到 64 位的?

谢谢 !

0 投票
3 回答
2516 浏览

delphi - Delphi XE2:为 Win64 平台转换 ASM 方法

当我尝试为 Win64 平台编译一个帕斯卡单元时,我遇到了错误。这些方法包含 ASM 块。我不知道如何使它适用于 Win64 平台:

方法一:

方法二:

0 投票
1 回答
7621 浏览

open-source - 用于 64 位窗口的 pthread 源

我有一个必须在 Win32/Win64/Linux/MacOSX 下构建的开源项目。

我们想使用 pthreads 来支持我们的多线程范例,但是由于我的项目是开源的,所以一切都必须从源代码构建。因此,我需要将在 Win64 上编译的 pthread 版本的源代码文件。

有谁知道我在哪里可以找到上述文件?

0 投票
1 回答
427 浏览

windows - 如何捕获 Windows 消息?

我正在制作一个名为 Pwn16 的程序。它通过模拟 Intel 8086/Pentium 处理器和 DOS/Win3.x/Win98 系统,允许 16 位应用程序在 64 位系统上运行。Pwn16 使用一个小型加载程序来检测 Windows 何时给出“不兼容 16 位”消息(包括来自 CMD 的消息),当它注意到所述消息被召唤时,它将关闭它并自动启动 Pwn16。是否有任何库可以让我“捕获”这些消息并做其他事情来代替错误?我在 VB6 中完成了大部分工作,因此任何可以做到这一点的代码也会有所帮助。我已经完成了仿真和 GUI,我只需要完成这个加载程序即可完成它。我需要捕获的消息:

“此文件的版本与您运行的 Windows 版本不兼容。检查您计算机的系统信息以查看您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商。”

“不支持的 16 位应用程序:由于与 64 位版本的 Windows 不兼容,程序或功能‘(文件)’无法启动或运行。请联系软件供应商询问是否有 64 位 Windows 兼容版本可用。”

“这不是一个有效的 Win32 应用程序。”

“(文件)应用程序无法在 Win32 模式下运行。”

谢谢。

0 投票
1 回答
514 浏览

ipc - 如何确保内存映射文件始终在 RAM 中

是否可以为进程间通信创建内存映射文件,并保证内容始终保存在 RAM 中而不刷新到页面文件?

我目前正在开发一个定制的 OLAP 应用程序。其核心思想是拥有一个像存储库一样包含所有数据的进程,以及多个实际执行计算的工作进程。虽然通常一切工作都非常顺利,但当工作人员尝试在一段时间未使用的文件的一部分上创建视图时,有时会出现性能问题 - 因此我的问题是。

RAM 量不是问题(Windows/64 位)——我们只是不知道是否可以阻止系统使用页面文件。

0 投票
1 回答
111 浏览

python - 如何检测操作系统是否支持 Python 中的 16 位 exe?

这与询问如何检测我在 64 位版本的 Windows 下运行基本相同。

os.name在 win7 64 和 winXP 32(我的两台可用的测试计算机)下都给出“nt”。 sys.platform在这两种情况下都给出'win32'。

到目前为止,我发现唯一可行的方法是检查注册表项HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier,如果其中没有出现“x86”,则假设这意味着 64 位窗口。那可靠吗?

(python进程需要在python 2.7 32位下运行)

0 投票
0 回答
436 浏览

c++ - 您如何将静态库的汇编程序过程公开为外部 DLL 的 dllexport?

由于 64 位 VC++ (2010) 不支持内联汇编器,我最近将一个 70 页的内联函数静态 C++ 库转换为一个直接的 64 位汇编器静态库。然后,包含静态库的 64 位 DLL 将毫无错误地构建,并正确链接到 asm 函数中。但是将一个 EXE 链接到 DLL 并没有看到 asm 函数,得到一个 LNK2001: unresolved external symbol error for each unique symbol referenced。

静态库汇编代码如下所示:

包含静态库的 DLL 声明:

链接到 DLL 的 EXE 声明:

我一直在使用 _cdecl 并在各处编译为 C++ 代码。我没有东西可以尝试了,我在这里错过了什么?如果可能,我想避免向其中添加 .DEF 文件。