Здравствуйте, commando, Вы писали:
C>Жило-было приложение, написанное на MSVC 2005, которое использовало библиотеку Qt 4 версии в виде dll. Потом было решено заменить dll на статические библиотеки (Qt была удалена и пересобрана с опцией -static). В результате при компиляции появились ошибки вроде:
C>C>qtgui.lib(qfiledialog_win.obj) : error LNK2001: unresolved external symbol __imp__GetOpenFileNameA@4
C>
Судя по __imp_ — функция явно откуда-то импортируется (из dll). Судя по имени — похожа на WinAPI.
Ищем в MSDN — comdlg32.dll,
Header: Declared in Commdlg.h, include Windows.h
Import library: Comdlg32.lib
Теперь идем в свойства проекта Project properties/Linker/Input/Additional Dependencies, добавляем comdlg32.
Когда вы собирали с Qt dll-ками, они уже импортировали все, что нужно, а ваш код непосредственно не вызывал эту функцию. а теперь Qt в либах, все внешние зависимости и вылезли, многие удовлетворены теми либами, которые MSVC всегда использует (Default libraries), но Comdlg32.lib к их числу не относится.