Как подключить библиотеку к проекту в Visual Studio 2003?
Если проект на C# или VB.NET, то Project->Add Reference
прект на С++. Win32 project
Попробуй Project->Properties->Linker->Input->Additional dependencies
scrnsave.lib(scrnsave.obj) : error LNK2019: unresolved external symbol _imp__InitCommon4 referenced in function 16
Debug/ssaver1.exe : fatal error LNK1120: 1 unresolved externals
#include <windows.h>
#include <scrnsave.h>
LRESULT WINAPI ScreenSaverProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return 0;
}
BOOL WINAPI ScreenSaverConfigureDialog (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
return true;
}
BOOL WINAPI RegisterDialogClasses (HANDLE hInst)
{
return true;
}

может это будет в мной подключаемой библиотеке ScrnSave.lib
Ну так уточнил бы, что "исходный код", который ты привел, это код не библиотеки, а проги, которая юзает эту библиотеку
создаем win32 project. empty. Добавляем файл a.cpp. В нем пишем
#include <windows.h>
#include <scrnsave.h>
LRESULT WINAPI ScreenSaverProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return 0;
}
BOOL WINAPI ScreenSaverConfigureDialog (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
return true;
}
BOOL WINAPI RegisterDialogClasses (HANDLE hInst)
{
return true;
}
Дальше компилим без подключения, как ты сказал. Получаем ошибки
LIBCD.lib(wincrt0.obj) : error LNK2019: unresolved external symbol 16 referenced in function _WinMainCRTStartup
Debug/ssaver1.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\almaz\Мои документы\Visual Studio Projects\ssaver1\ssaver1\Debug\BuildLog.htm"
ssaver1 - 2 error(s 0 warning(s)
при подключении как ты сказал, те ошибки, что я написал раньше.
а где функция WinMain? без нее никак
должна быть в scrnsave.lib или scrnsave.h

А что вообще находится в scrnsave.lib. Как то он плохо открывается просмотрщиком
Ладно. если тот же код написать в VC6. И подключить библиотеку scrnsabe.lib к проекту, то прога нормально компилится.
Для создания хранителей экрана в комплект Visual C++ входит заголовочный файл srcnsave.h
(D:Program FilesMicrosoft Visual StudioVC98Includescrnsave.h в котором находятся определения
констант и функций на все случаи жизни, необходимых для функционирования screensaver'а в
среде Windows 9x/NT, и статическая библиотека scrnsave.lib. -------------Точка входа в программу
(функция WinMain) находится в самой scrnsave.lib, что очень сильно облегчает нам жизнь.-------------- Наш
хранитель пишется ориентировочно для Windows NT (другого у меня нету хотя должен
работать на всех платформах. Различие состоит в том, что для Windows 9x приходится писать
еще одну функцию, отвечающую за смену пароля. В NT и выше эту роль выполняет системный
процесс Winlogon. Если ключ HKEY_CURRENT_USERControl PanelDesktopScreenSaverIsSecure в
системном реестре Windows не равен нулю, то Winlogon будет запрашивать пароль перед
выходом из скринсейвера. Хотя без этой функции можно и обойтись.
вместо code лучше в данном случае использовать quote, чтобы не делать сообщение слишком широким...
дело не в коде и не куоте а в программе. Не хочет писаться. А за куот спасибо.
Ну тода я наврал... хотя че-то не видел нифига, чтоб winmain была в библиотеке...
Ну, например, в MFC так.
сomctl32.lib
так как подключить библиотеку в проект?
Project->Properties->Linker->Input->Additional dependencies
разобрался в чем ошибка была. Надо было еще одну библиотеку подключить.
Есть ещё способ подключать библиотеки с помощью #pragma, только как точно не помню.
В VC6:
В окне workspace'a кликаем назваине проекта (правой кнопкой? выбираем add files, добавляем нужную библиотеку *.lib. Bуаля.
ЕСли не знаешь, в какой либе функция, поможет поиск файлов с текстом типа ItIsTheNameOfTheFunction.
#pragma message(__FILE__": Automatically linking with abc.lib")
#pragma comment(lib, "abc.lib")
Оставить комментарий
morda31
ламерский вопрос у меня, думаю.