Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > создание библиотеки


Автор: shara 29.11.2006, 21:35
народ, подскажите ка как в Microsoft Visual C++ 6.0 создать библиотеку в которой будут содержаться функции. для дальнейшего их вызова в других прогах.

Автор: Partizan 29.11.2006, 21:41
New Project -> DLL

Автор: Terrorist 29.11.2006, 22:03
И не забудь прописать новую функцию в таблице экспортируемых функций. Найдеш файлик *.def ,
там после слова EXPORT запишешь
        <имя функции> @п\п 

p.s.

Модератор: Пожалуйста, один топик - один вопрос.

Автор: shara 1.12.2006, 21:06
библиотеку надо гдето дополнительно включать? или можно ее просто скопировать в папку с проектом или готовой программой программой?

и еще один вопросик, обращение к функциям из тела основной программы такоеже?

и что такое 
Цитата(Terrorist @  29.11.2006,  22:03 Найти цитируемый пост)
 @п\п
 ето две руских буквы П? помоему компилятор их непоймет smile 

Автор: Любитель 3.12.2006, 15:32
Классический подход:
1. Создаём новую Win32 DLL.
2. В пропертях проекта добавляем в препроцессорные объявления что-то вроде MU_FIRST_DLL_BUILDING
3. Создаём какой-нибудь config.h, в нём пишем
Код

#ifdef MU_FIRST_DLL_BUILDING
#    define MY_FIRST_DLL_API __declspec(dllexport)
#else
#    define MY_FIRST_DLL_API __declspec(dllimport)
#endif

4. В хейдерах библиотеки инклюдим config.h.
5. Функции объявляем так:
Код

void MY_FIRST_DLL_API f();

6. В проект, юзающий либу в опции линкера в input добавляем my_first_dll.lib (по имени DLL)
7. Также добавляем additional lib directories - пути, где лежит наша либа (для дебаг - одно, для релиз - другое).
8. DLL копируем к бинарникам проекта.

Если проекты разрабатываем паралельно, то можно (да и вообщем-то нужно) копирование сделать как Post build event (через команду copy).

Автор: shara 4.12.2006, 21:25
не доконца понял смысл 6 и 7 шага,  какая разница между файлами *.lib и *.dll?
зарание спасибо. smile 

Автор: Любитель 5.12.2006, 18:02
lib - маленький файл, линкуемый статически, через который идёт вызов DLL-ных функций. Поставлять тебе его никуды не надо (в отличие от длл-ки).

Автор: shara 5.12.2006, 21:18
все, я понял, вроде работае . большое спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)