【问题标题】:Is it possible to set an application's windows compatibility mode at run-time?是否可以在运行时设置应用程序的 Windows 兼容模式?
【发布时间】:2009-11-11 14:45:01
【问题描述】:

我们使用的第 3 方库有时无法在 Win7 上正常运行。我们知道如何在安装时进行配置,但我们也想考虑在运行时进行设置。这是可能的,还是必须在启动之前设置上下文? (我认为几乎没有机会,但我想我还是会问)

(C++ 应用程序 - 并不重要)

【问题讨论】:

    标签: c++ windows compatibility-mode


    【解决方案1】:

    应用程序运行后无法更改兼容性设置。

    但是,您可以做一个启动器应用程序,确保兼容性设置正确,然后启动您的应用程序。当然,您需要确保启动器应用程序没有兼容性问题。

    【讨论】:

    • 这就是我们的想法 - 只是确保我们没有错过任何技巧。
    【解决方案2】:

    兼容性设置只是预处理器宏,用于阻止在所选平台上不可用的头文件中的部分 Win32 API。

    但是,由于整个 API 由 DLL 提供,您可以确定运行时运行的操作系统,然后使用 LoadLibrary 和 GetProcAddress 获取必要的平台特定入口点。

    【讨论】:

    • 这很有趣——但这不是我要问的
    • 啊,我又看到了,您指的是“安装时间”而不是“构建时间”,以及第三方库,而不是 Win32 API。在那种情况下,也许“接受”的答案也不正确。我想说它完全取决于第三方库以及它对“安装”的作用。老实说,我不清楚你的意思。但是,如果这个库使用与 Win32 API 相同的技术,并且是一个 DLL,那么同样适用。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多