2

我正在使用名为 Raylib 的库开发桌面应用程序,对于那些不知道 Raylib 是什么的人来说,它是一个用于制作游戏的开源渲染 API。默认情况下,Raylib 不允许您调整大小或最大化为窗口。为了解决这个问题,我找到了这段代码:

void ToggleGlutNormalWindow(LPCTSTR szWindowTitle)
{

    long dwStyle;

    HWND hwndGlut;

    hwndGlut = FindWindow(NULL, szWindowTitle);

    dwStyle = GetWindowLong(hwndGlut, GWL_STYLE | WS_THICKFRAME | WS_SIZEBOX);
    // Flips Between On and Off
    dwStyle ^= WS_MAXIMIZEBOX | WS_THICKFRAME | WS_SIZEBOX;
    SetWindowLong(hwndGlut, GWL_STYLE, dwStyle);
}

正如您可能从我的标题中看出的那样,在编译和运行时,对我来说,这会产生一个 Windows Defender 警告,告诉我它检测到了一个名为 Ludicrouz.j 的木马。

有谁知道启用最大化按钮和调整大小的更好方法,或者您知道为什么将其检测为病毒?

4

2 回答 2

0

这是编程中的一个常见问题,并没有一个简单的答案。

防病毒程序保留一个恶意软件签名数据库,范围从引用特定 DLL 到实施特定算法(如加密货币矿工)或更奇特的东西(如 rowhammer)。这是相当有效的,可以轻松捕获衍生或简单的恶意软件,并且误报的可能性很低。但是,可能会发生误报,但我在您的代码中没有看到任何会导致误报的内容。

然而,越来越多的防病毒软件开始扫描可执行文件并将其分析结果发送到防病毒公司的云服务。如果他们的数据库中没有类似的东西,防病毒程序会将可执行文件标记为“低信誉”或“无法识别”或“未验证”。这相当有效,因为绝大多数人只会运行非常常见的程序,例如办公室编辑器和网络浏览器。当您是一名程序员并且每天生成数十次“低声誉”可执行文件时,就会出现问题。

这很可能是您遇到的情况。

于 2020-08-01T00:03:13.533 回答
-1

运行 CCleaner 并尝试重新创建消息后,问题已解决。我仍然不太清楚它为什么要这样做,因为我无法像Krantz建议的那样获得链接。感谢Krantz的帮助,感谢Ken Wayne VandeLinde在问题中修复我的代码。祝大家有个美好的一天!

于 2020-04-05T14:18:21.857 回答