Поэтому я несколько дней бился головой о стол, пытаясь понять, почему мой проект MFC продолжал терпеть неудачу на этапе соединения, потому что он не мог найти mfc40.lib. Я проверил #pragma comment
, я проверил входные данные lib в настройках проекта, я щелкал папку за папкой, я НИЧЕГО не нашел.
Непосредственно перед тем, как я собирался сойти с ума, я понял, что grepWin по какой-то причине игнорирует файлы LIB, поэтому я открыл старую библиотеку в моем текстовом редакторе и увидел это:
-defaultlib: mfc40.lib -defaultlib: mfcs40.lib -defaultlib: msvcrt.lib -defaultlib: kernel32.lib -defaultlib: user32.lib -defaultlib: gdi32.lib -defaultlib: com-db lib -defaultlib: advapi32.lib -defaultlib: shell32.lib -defaultlib: comctl32.lib / include: _ afxForceEXCLUDE / include: _afxForceUSRDLL / include: __ afxForceSTDAFX -defaultlib: LIB
-defaultlib: OLDNAMES
По какой-то странной причине указанная выше читаемая человеком часть фактически была в самом файле LIB, поэтому я могу только предположить, что, поскольку я связываюсь с этой библиотекой напрямую, она НЕПОСРЕДСТВЕННО вызывает включение mfc40.lib (и друзей).
Это то, что происходит? Почему вышеупомянутое внутри файла LIB? Объяснение того, почему это происходит, было бы бонусом.
Также указанная библиотека взята из Exchange SDK. Я собираю этот проект MFC в VS2008.