В начале файла dllmain.cpp есть такой фрагмент кода: extern "C" HINSTANCE hAppInstance;. При линковке вылетает ошибка LNK2001 unresolved external symbol _hAppInstance C:\...\dllmain.obj, но никаких _hAppInstance в проекте нет. Есть только hAppInstance, который используется в dllmain.cpp и который объявлен. MSDN говорит, что LNK2001 появляется если символ не объявлен (https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk2001?view=vs-2019). Что не так с объявлением hAppInstance и почему линковщик не видит его?
При записи "в одну строчку", т.е. без {}
extern "C" HINSTANCE hAppInstance;
является объявлением, но не определением переменной. Без определения разумеется будет LNK2001.
Либо добавьте отдельное определение (после этого объявления)
extern "C" HINSTANCE hAppInstance;
HINSTANCE hAppInstance;
Либо превратите это объявление в определение путем добавления явного инициализатора
extern "C" HINSTANCE hAppInstance = 0;
Либо превратите это объявление в определение путем добавления {}
extern "C" { HINSTANCE hAppInstance; }
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости