При сборке вываливается ошибка: LNK2001 неразрешенный внешний символ __chkstk. Как её обойти и продолжить сборку?

При сборке на платформе x64 в Visual Studio 2019 сборщик ругается на неразрешенный внешний символ __chkstk. Причем такой же код на платформе Win32 собирается без ошибок. В первом случае (x64) в компоновщике игнорируются все стандартные библиотеки (/NODEFAULTLIB), а на платформе Win32 - нет.

Ругается на эту строку:

LPCWSTR filenames[] = { file };

Немного кода main.cpp:

#include <Windows.h>
#include <string>
#include <strsafe.h>
#include <ShlObj.h>
#include <Shlwapi.h>
#include <TlHelp32.h>
#include <restartmanager.h>
#include <WinInet.h>
#include <intrin.h>
#include <wchar.h>
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>
#include <shellapi.h>
#include <cctype>
#include <iostream>

void RegProcess(const WCHAR* file)
{

    LPCWSTR filenames[] = { file }; // эта строка вызывает заявленную ошибку при сборке x64
    DWORD hSess = 0;
    WCHAR key[50] = SESS_NAME;
    DWORD regresources;

    RmStartSession(&hSess, 0, key);
    regresources = RmRegisterResources(hSess, 1, filenames, 0, NULL, 0, NULL);

    //////////////////
    // много кода
    //////////////////
}
//////////////////
// много кода
//////////////////

void mainThread(LPWSTR fileApp)
{
    RegProcess(fileApp);

    //////////////////
    // много кода
    //////////////////
}

#ifdef _WINDLL
#pragma comment(linker, "/ENTRY:DllMainCRTStartup")
BOOL WINAPI DllMainCRTStartup(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
#else
BOOL WINAPI WinMainCRTStartup(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdShow, INT nCmdShow)
#endif
{
#ifdef _WINDLL
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)mainThread, NULL, 0, NULL));
        break;
    default: break;
    }
    return TRUE;
#else
    mainThread();
    ExitProcess(0);
    return EXIT_SUCCESS;
#endif
}

Настройки конфигурации: введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

Подозреваю, что какой то библиотеки не хватает. Подскажите как обойти эту ошибку, если действительно с ней сталкивались.


Ответы (0 шт):