问题标签 [x86-64]

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 投票
3 回答
4244 浏览

c# - 如何在运行时后期绑定 32 位/64 位库

我遇到了一个与此处描述的问题相似但略有不同的问题(加载程序集及其依赖项)。

我有一个用于 3D 渲染的 C++ DLL,这是我们卖给客户的。对于 .NET 用户,我们将有一个 CLR 包装器。C++ DLL 可以在 32 位和 64 位版本中构建,但我认为这意味着我们需要有两个 CLR 包装器,因为 CLR 绑定到特定的 DLL?

现在假设我们的客户有一个可以是 32 位或 64 位的 .NET 应用程序,并且它是一个纯 .NET 应用程序,它让 CLR 从一组程序集中解决它。问题是应用程序代码如何在运行时在我们的 32 位和 64 位 CLR/DLL 组合之间动态选择?

更具体地说,对上述问题的建议答案是否也适用于此处(即创建一个 ResolveEvent 处理程序)?

0 投票
8 回答
105408 浏览

.net - 在同一解决方案/项目中使用 Visual Studio 以 32 位和 64 位为目标

我对如何设置我的视觉工作室构建以实现多目标有点进退两难。

背景:c# .NET v2.0 带有 p/invoking 到第 3 方 32 位 DLL,SQL compact v3.5 SP1,带有安装项目。现在,平台目标设置为 x86,因此可以在 Windows x64 上运行。

第 3 方公司刚刚发布了他们的 DLL 的 64 位版本,我想构建一个专用的 64 位程序。

这提出了一些我还没有得到答案的问题。我想拥有完全相同的代码库。我必须使用对 32 位 DLL 集或 64 位 DLL 的引用来构建。(第 3 方和 SQL Server Compact)

这可以通过 2 组新配置(Debug64 和 Release64)来解决吗?

我必须创建 2 个单独的设置项目(std.visual studio 项目,没有 Wix 或任何其他实用程序),还是可以在同一个 .msi 中解决?

欢迎任何想法和/或建议。

0 投票
2 回答
1517 浏览

.net - 可以将 WinForms 应用程序配置为在不重新编译的情况下以“x86”运行吗?

是否可以将针对“任何 CPU”编译的 WinForms 应用程序配置为在 64 位服务器上作为“x86”运行而无需重新编译应用程序?具体来说,我正在寻找一个 app.config 设置或控制面板小程序来实现这一目标。客户所有的客户端都是x86的,但是服务器是x64的,我们喜欢在服务器上安装WinForms应用,供管理员配置和监控系统。我们宁愿不只为服务器重新编译。

0 投票
2 回答
38440 浏览

.net - 我可以在 Windows 上将 32 位 DLL 加载到 64 位进程中吗?

我最近升级了 ac# windows 服务以作为 64 位 .net 进程运行。通常,这很简单,但系统使用了一个用 C++ 编写的 32 位 DLL。将此 DLL 转换为 64 位不是一个选项,因此我将 DLL 包装在一个单独的 32 位 .net 进程中,并通过远程处理公开了一个 .net 接口。

这是一个非常可靠的解决方案,但我更愿意将系统作为单个进程运行。有什么方法可以将我的 32 位 DLL 加载到 64 位进程中并直接访问它(可能通过某种 thunking 层)?

0 投票
16 回答
187015 浏览

.net - 如何确定 .NET 程序集是为 x86 还是 x64 构建的?

我有一个任意的.NET 程序集列表。

我需要以编程方式检查每个 DLL 是否是为 x86(而不是 x64 或任何 CPU)构建的。这可能吗?

0 投票
5 回答
3979 浏览

python - Python ctypes 和函数调用

我的朋友制作了一个适用于 x86 的小型概念验证汇编器。我决定也将它移植到 x86_64,但我立即遇到了问题。

我用 C 写了一小段程序,然后编译和 objdump 代码。之后我将它插入到我的 python 脚本中,因此 x86_64 代码是正确的:

现在,为什么这个脚本在我运行它时总是出现分段错误?

我还有一个关于 mprotect 和没有执行标志的问题。据说它可以防止大多数基本的安全漏洞,如缓冲区溢出。但它被使用的真正原因是什么?你可以继续写,直到你点击 .text,然后将你的指令注入一个不错的 PROT_EXEC 区域。当然,除非您在 .text 中使用写保护

但是,为什么到处都有那个 PROT_EXEC 呢?.text 部分被写保护不是很有帮助吗?

0 投票
1 回答
4593 浏览

gcc - 如何在 x64 计算机上使用 gcc 编译 x86 汇编代码

对于学校作业,我必须编写 x86 汇编代码,但我不能使用 gcc 编译它,因为我的计算机是 x64 机器,而 gcc 只需要 x86 代码。是否有一个命令可以让 gcc 接受它的 x86 汇编代码?谢谢

PS 我知道我的代码是有效的,因为它在 x86 机器上编译得很好。

0 投票
16 回答
146435 浏览

.net - System.BadImageFormatException:无法加载文件或程序集(来自 installutil.exe)

我正在尝试使用 InstallUtil.exe 安装 Windows 服务并收到错误消息

System.BadImageFormatException: 无法加载文件或程序集“ {xxx.exe}”或其依赖项之一。试图加载格式不正确的程序。

是什么赋予了?


编辑:(不是由 OP)从 dup 中提取的完整消息获得更多点击 [for googleability]:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe C:\xxx.exe Microsoft (R) .NET Framework 安装实用程序版本 4.0.30319.1 版权所有 (c) Microsoft Corporation。版权所有。

初始化安装时发生异常:System.BadImageFormatException:无法加载文件或程序集“file:///C:\xxx.exe”或其依赖项之一。试图加载格式不正确的程序..

0 投票
7 回答
24296 浏览

msbuild - 在 msbuild 中使用 32 位“程序文件”目录

在 64 位版本的 windows 中,32 位软件安装在“c:\program files (x86)”中。这意味着您不能使用 $(programfiles) 来获取(32 位)软件的路径。所以我需要一个 $(ProgramFiles32) 在我的 MSBuild 项目中克服这个问题。我不想根据正在运行的操作系统更改项目。

我有一个我会发布的解决方案,但也许有一个更简单/更好的方法。

0 投票
12 回答
11584 浏览

open-source - 是否有任何适用于 x86 的开源实时操作系统?

是否有任何开源实时操作系统?我听说过实时 Linux,但大多数实现似乎真的是一个专有的 RTOS(你必须付费),它将 Linux 作为一个进程运行——与 Ardence 的 RTX 实时系统在 Windows 上工作的方式非常相似。

编辑:我应该澄清一下,我正在寻找与多核 x86 系列 CPU 一起使用的 RTOS。