64 位 Windows 上的 32 位和 64 位互操作性

2024-03-26

是否有讨论 32 位和 64 位进程之间的互操作性的全面权威参考资料?根据谷歌搜索,我推断出:

  1. 32位DLL只能驻留在32位进程中,64位DLL只能驻留在64位进程中。
  2. 32位和64位进程只能使用松散耦合的消息系统进行通信,例如网络通信,这意味着它们可以使用COM/DCOM进行通信。
  3. 32 位和 64 位 COM 组件具有不同的注册表项。组件通常仅在两个世界之一中注册,并且通常仅在两个世界之一中可见。
  4. 如果 32 位进程使用带有 64 位调用标志的 CoCreateInstance,或者(我猜测这可能吗?)如果 64 位组件使用 CoCreateInstance,则它只能创建注册为 64 位 COM 组件的内容以某种方式在 32 位注册表中注册,但在幕后仍然创建为进程外 64 位进程,或者如果有一个 32 位 shell COM 组件创建 64 位组件,然后将调用重定向到它?

这表明: 1. 32位应用程序无法使用GetObject来获取正在运行的64位版本的Excel?或者可以吗? 32 位与 64 位问题对运行对象表 (ROT) 有何影响?如果仅安装 64 位版本的 Office,32 位进程是否可以创建 Excel 实例?我认为答案是“否”,除非 32 位进程在其 CoCreateInstance 调用中使用 64 位标志,或者 Excel 以某种方式也在 32 位世界中注册自己?

Microsoft 是否会自动执行类似让 32 位进程中的 CoCreateInstance 检查 64 位注册表并尝试创建进程外 64 位组件(如果 32 位注册表中没有注册)之类的操作?我看过 64 位 Office 的一些发行说明,其中 Microsoft 警告从 32 位应用程序访问 64 位 Excel 无法正常工作,但我知道有一个实例似乎可以正常工作。

对此有很好的技术事实参考吗?


中解释得很好MSDN 库文档 http://msdn.microsoft.com/en-us/library/ms693716%28VS.85%29.aspx对于 CLSCTX。很多规则,默认行为是:

如果客户端和服务器都没有 指定一个首选项,然后:

  • 如果托管服务器的计算机运行的是 Windows XP 或 无服务的 Windows Server 2003 安装 Pack 1 (SP1) 或更高版本,然后 COM 更喜欢 64 位版本 服务器(如果可用);否则它 将激活 32 位版本 服务器。

  • 如果托管服务器的计算机运行的是 Windows Server 2003 安装 SP1 或更高版本,然后安装 COM 将尝试匹配服务器 给客户的架构 建筑学。换句话说,对于一个 32位客户端,COM会激活一个 32 位服务器(如果可用);否则 它将激活 64 位版本 服务器。对于 64 位客户端,COM 将激活 64 位服务器,如果 可用的;否则它会激活 32 位服务器。

如果您想覆盖此行为,请查看 MSDN 文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

64 位 Windows 上的 32 位和 64 位互操作性 的相关文章

随机推荐

  • 将 SpellCheck.IsEnabled 添加到控件后,WPF 表单加载速度非常慢

    所以我有一个神秘的问题 在我添加之后SpellCheck IsEnabled对于我的其中一个控件 承载该控件的表单需要 3 秒以上的时间才能加载 删除拼写检查属性 表单会立即加载 仅供参考 以下是表格中唯一更改的地方
  • 在 Python 3.5 而不是 2.7 上运行 Django 1.9

    我在 OSX 10 10 上运行 Python 2 7 和 3 5 还有 Django 1 9a 这两个版本都支持 Python 问题是我想在 Python 3 5 而不是 2 7 上运行 Django 在某些线程上 我发现了通过包含 Py
  • 生成传出 URL 时选择了意外的路由

    请考虑以下路线 routes MapRoute route1 controller month year action user routes MapRoute route2 controller month year action 以及以
  • ColdFusion 8中是否有类似于ColdFusion 9中的ArrayFind的功能?

    我在工作中与另一位程序员同事交谈 我们使用 ColdFusion 他告诉我只需在数组中查找一个值我必须执行整个循环 ColdFusion 8 中是否真的没有函数可以简单地在数组中查找值 arrayFind ColdFusion 8 中不存在
  • 从 mongoDB 中删除文档

    这可能是一个非常愚蠢的问题 但我是 MongoDB 的新手 所以请耐心等待 我创建了一个独立的红宝石类 require rubygems require mongo require bson require mongo mapper Mon
  • 如何计算Java中的时差?

    我想从 19 00 00 减去两个时间段 例如 16 00 00 Java 有没有这个功能 结果可以以毫秒 秒或分钟为单位 Java 8 有一个更清洁的解决方案 https docs oracle com javase 8 docs api
  • 从 std::cout 或 std::ofstream(file) 获取 std::ostream

    我如何绑定std ostream到任一std cout或到一个std ofstream对象 取决于特定的程序条件 尽管由于多种原因这无效 但我希望实现语义上与以下内容等效的东西 std ostream out condition std c
  • 我什么时候应该使用 LRUCache 回收位图?

    我正在使用一个LRUCache缓存存储在文件系统上的位图 我根据这里的示例构建了缓存 http developer android com training displaying bitmaps cache bitmap html http
  • 在 Tkinter 中处理触摸屏手势

    我将如何在 Tkinter 中安装触摸屏手势处理程序 我需要一些特别简单的事情 每当检测到 展开 手势时就增加字体大小 如果 Tcl Tk 没有具体实现的话 这是否可以在 Tkinter 中实现 我想要么窗口管理器向客户端窗口发送一些我可以
  • 如果更改来源不是来自 html,则不会触发 Javascript 事件?

    我试图理解为什么以下示例中的更改事件没有被触发 我将准确显示在哪里 我有一个复选框 我们将其称为 主复选框 选中时 我想检查一些其他相关的复选框 到目前为止有效 此外 当我取消选中相关复选框之一 子复选框 时 我想取消选中 mainChec
  • Android 中流畅的视频擦除

    我正在尝试使用 Android 实现流畅的视频擦除VideoView The seekTo的方法MediaPlayer没有完全按照我想要的方式做 它并不完全寻求我在其中传递的毫秒 它实际上从 跳转到最近的位置 而不是我想要的确切位置 框架也
  • 如何按顺序循环 GET/POST 调用(等待上一个)返回?

    我正在为网页编写 Tampermonkey 脚本 并尝试从其他页面提取数据 我正在尝试创建一个内部有一个循环遍历列表的函数 llcList 并从 ajax 方法 GET 检索数据 但希望等待第一个请求完成后再转到第二个请求 如果我能让它多等
  • 如何找出 Android 中的 GMT 偏移值

    如何找出用户的 GMT 值 例如印度为 05 30 如何在 Android 中计算 05 30 值 我需要这个 因为我在我的应用程序中使用一个java库 它有一个带有这个 05 30字段的函数 我想通过计算生成这个字段 这样我就不必填写国家
  • Visual Studio 2008 中无法识别的标记前缀或设备筛选器

    我有一组 Web 控件 位于网站引用的程序集中 我可以毫无问题地构建和运行所有内容 但是当我查看正在使用控件的 aspx 页面时 我会在标签前缀下方看到一条绿色下划线
  • 删除字符串中多余的空格

    我想使用 VB net 删除多余的空格 ex The Quick Brown Fox 我要输出 The Quick Brown Fox 谢谢 英奇卡 您可以使用一个简单的正则表达式来实现 Dim cleaned As String Rege
  • 如何从传递到 scalatags 的事件处理程序访问“this”元素?

    我正在尝试访问当前的文本 this 元素来自使用 scalatags 创建的事件处理程序 这是我尝试过的 val onChange e HTMLElement gt number e textContent toInt js ThisFun
  • Rails/ActiveRecord 按月+年分组并计数

    我有一张桌子Albums有一个date列名为release date 我想获得所有月份 年份组合的列表以及该月份 年份发行的专辑数量 因此 输出可能类似于 2016 年 11 月 11 2016 年 10 月 4 2016 年 7 月 19
  • DropArea 不会通知有关 onEntered、onExited、onDropped 的操作

    I have Rectangle洋溢着MouseArea其中上onPressAndHold 处理程序透露第二个Rectangle和转账drag对此采取行动Rectangle 问题是当我移动那一秒时Rectangle over DropAre
  • Kendo UI 树视图父节点不带复选框

    什么方法可以实现显示带有复选框的 TreeView 但我不需要父节点的复选框 仅适用于没有子项的 项目 即 我正在显示文件夹结构 但不希望仅针对文件为任何文件夹设置复选框 Thanks 你应该使用使用复选框模板 http docs kend
  • 64 位 Windows 上的 32 位和 64 位互操作性

    是否有讨论 32 位和 64 位进程之间的互操作性的全面权威参考资料 根据谷歌搜索 我推断出 32位DLL只能驻留在32位进程中 64位DLL只能驻留在64位进程中 32位和64位进程只能使用松散耦合的消息系统进行通信 例如网络通信 这意味