LNK2001 неразрешенный внешний символ _main в .dll с DllMain объявлен? - PullRequest
0 голосов
/ 01 апреля 2020

Я получаю ошибку при компиляции в VS:

LNK2001 неразрешенный внешний символ _main Файл: MSVCRT.lib (exe_main.obj)

Эта ошибка возникает только при компиляции в Выпуске x86, а не в Debug x86.

 #include "includes.h"

BOOL APIENTRY DllMain(
    HINSTANCE handle,
    DWORD fdwReason,
    LPVOID lpReserved) 
{
    switch (fdwReason)
    {
    case DLL_PROCESS_ATTACH:
        AllocConsole();
        freopen("CONIN$", "r", stdin);
        freopen("CONOUT$", "w", stdout);
        _beginthreadex(NULL, 0, directxThread, 0, 0, 0);
        break;

    case DLL_THREAD_ATTACH:
        break;

    case DLL_THREAD_DETACH:
        break;

    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

1 Ответ

0 голосов
/ 01 апреля 2020

Вероятно, это проблема вашей команды IDE / компилятора. Если возможно, вы должны проверить точную команду, отправленную на cl.exe (компилятор Microsoft), когда включен режим выпуска, и убедитесь, что MSVCRT.lib присутствует в команде компилятора. См. эту ссылку для получения дополнительной информации.

Если MSVCRT.lib отсутствует в вашей команде компиляции, вам придется добавить MSVCRT.lib в качестве дополнительного ввода / зависимости для вашего компилятора в вашем проекте. настройки, если вы используете IDE, как Visual Studio. Если вы используете командную строку, вы можете просто добавить термин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...