【问题标题】:Shared memory of same DLL in different 32 bit processes is sometimes different in a terminal session on Windows server 2008 with 64 bit在具有 64 位的 Windows Server 2008 上的终端会话中,不同 32 位进程中相同 DLL 的共享内存有时会有所不同
【发布时间】:2023-03-04 03:17:01
【问题描述】:

我们有一个由一些进程组成的 32 位应用程序。它们与每个进程使用的 DLL 的共享内存进行通信。共享内存是通过“#pragma data_seg ("Shared")”在 C++ 中使用全局变量构建的。

当在启动一个新进程以及现有(第一个)进程的过程中运行此应用程序时,我们观察到两个进程的共享内存不相同。所有新启动的进程都无法与第一个进程通信。 在停止所有进程并重新启动应用程序(使用某些进程)后,一切正常。但是在成功启动和完成新进程后,有时会再次出现问题。

在 Windows server 2003 上的所有其他 Windows 版本或终端会话上运行,我们的应用程序从未遇到此问题。 Windows server 2008 上是否有任何新的“功能”可能会破坏我们应用程序的和谐性?

【问题讨论】:

    标签: windows-server-2008 terminal 32bit-64bit shared-memory 64-bit


    【解决方案1】:

    Windows 在名为 Wow64 的包装器下运行 32 位程序。您的进程是否都在同一个 Wow64 包装器下运行(使用 Process Explorer 查看进程树)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      相关资源
      最近更新 更多