使用/MT antivirus编译程序时,将其捕获为病毒 我在使用VS+C++ 2012用发布模式构建C++时,创建了一个C++程序

使用/MT antivirus编译程序时,将其捕获为病毒 我在使用VS+C++ 2012用发布模式构建C++时,创建了一个C++程序,c++,visual-c++,antivirus,virus,microsoft-runtime-library,C++,Visual C++,Antivirus,Virus,Microsoft Runtime Library,运行库:“多线程(/MT) 然后它被avast antivirus捕获为病毒。 但若我将运行时库更改为“多线程DLL(/MD)”,则avast不会将其捕获为病毒 这是代码 LPWSTR _GetUserName(); void FileWriteLine(LPCWSTR filePath,LPCWSTR line); int main() { LPCWSTR userName = _GetUserName(); FileWriteLine(userName,L"Hello Wo

运行库:“多线程(/MT)

然后它被avast antivirus捕获为病毒。 但若我将运行时库更改为“多线程DLL(/MD)”,则avast不会将其捕获为病毒

这是代码

LPWSTR _GetUserName();
void FileWriteLine(LPCWSTR filePath,LPCWSTR line);

int main()
{
    LPCWSTR userName = _GetUserName();
    FileWriteLine(userName,L"Hello World");
    return 1;
}


void FileWriteLine(LPCWSTR filePath,LPCWSTR line)
{
    wfstream fileHandle(filePath,ios::out | ios::app);
    fileHandle << line<<endl;
    fileHandle.close();
}

LPWSTR _GetUserName()
{
    LPWSTR username = new TCHAR[257];
    DWORD size = 257;

    if (!GetUserNameW(username,&size))
    {
        username = _wgetenv(L"USERNAME");
        if (username == NULL)
        {
            username = L"Error-Unknown";
        }
    }
    return username;
}
LPWSTR_GetUserName();
无效文件写入线(LPCWSTR文件路径,LPCWSTR行);
int main()
{
LPCWSTR用户名=_GetUserName();
FileWriteLine(用户名,L“Hello World”);
返回1;
}
无效文件写入线(LPCWSTR文件路径,LPCWSTR行)
{
wfstream文件句柄(文件路径,ios::out | ios::app);

fileHandle进入防病毒菜单,将创建可执行文件的文件夹设置为防火墙中的例外


设置>防病毒>向下滚动到排除>文件路径排除>键入路径并添加它,或浏览到路径然后添加它

看起来你并不孤单。


存根您所做的每个调用,并确定哪个API调用是问题所在,然后用其他东西替换它。-除非引起问题的纯粹是编译器切换。分而治之。还要将信息提交给Avast。

切换到更好的防病毒软件?另外,
\u GetUserName
是保留标识fier.你确定只是运行时让你的程序被检测为病毒吗?看起来很奇怪,你能把你的“病毒”上传到这里并在这里发布报告url吗?我把它上传到了virustotal.com上,它清楚地表明没有病毒。只有当它运行时,Avast才能将它捕获为病毒。