You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Eclipse编译Windows API C程序后,如何消除程序兼容性助手弹窗?

解决Eclipse+MinGW编译Windows API程序后弹出兼容性助手弹窗的问题

以下是几个可行的解决办法:

  • 添加程序版本信息资源
    Windows兼容性助手常因程序缺少版本元数据,误判为未正确安装的旧程序。给程序加上版本信息即可解决:
    1. 创建名为version.rc的资源文件,内容如下:
#include <windows.h>

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904B0"
        BEGIN
            VALUE "CompanyName", "自定义名称\0"
            VALUE "FileDescription", "你的应用程序\0"
            VALUE "FileVersion", "1.0.0.0\0"
            VALUE "InternalName", "your_app.exe\0"
            VALUE "LegalCopyright", "版权声明\0"
            VALUE "OriginalFilename", "your_app.exe\0"
            VALUE "ProductName", "产品名称\0"
            VALUE "ProductVersion", "1.0.0.0\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END
  1. 在Eclipse中右键项目→Properties→C/C++ Build→Settings→MinGW C Linker→Input,将version.rc添加到“Other objects”中;或者先执行命令windres version.rc -o version.o把rc文件编译成目标文件,再将version.o加入链接对象。
  • 检查可执行文件命名
    确保Eclipse生成的程序是标准.exe后缀,名称不含特殊字符:
    右键项目→Properties→C/C++ Build→Settings→MinGW C Linker→Output,确认输出文件名为${ProjName}.exe这类规范命名。

  • 手动禁用兼容性提示(临时方案)
    如果上述方法无效,可直接修改程序兼容性设置:
    找到生成的.exe文件,右键→属性→兼容性,取消勾选“兼容模式运行这个程序”,可勾选“以管理员身份运行此程序”(或点击“更改所有用户的设置”做全局修改),应用后再运行程序就不会弹出提示。

  • 确认链接必要的Windows库
    检查Eclipse是否正确链接Windows API所需库,避免因缺失库导致的异常被误判:
    右键项目→Properties→C/C++ Build→Settings→MinGW C Linker→Libraries,添加user32、kernel32这类需要的库(无需加.lib后缀,MinGW会自动处理)。

内容的提问来源于stack exchange,提问作者Hantalyte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:52:39