Название: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 19, 2014, 14:47 Здравствуйте, может у кого есть пример создания .dll c помощью VC для клиента на qt, неявное связывание?
Спасибо. Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: OKTA от Март 19, 2014, 14:50 берешь студию, создаешь новый проект, выбираешь в тэмплейтах библиотеку... ???
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 19, 2014, 14:56 Код: берешь студию, создаешь новый проект, выбираешь в тэмплейтах библиотеку... Это я сделал, спасибо. А вот дальше не понимаю. Написал вот такой код в хедере: Код: #ifdef IMPLICITBINDINGDLL_EXPORTS И не понимаю в нем, что значить IMPLICIT, а Q_DECL_IMPORT - у меня подсвечивает компилятор как this declaration has no storage class or type specifier. И не знаю куда мне нужно файлы библиотеки сохранять, чтоб потом можно было удобно импортировать их в клиента. Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: OKTA от Март 19, 2014, 15:11 Ты вроде недавно это уже делал, только в креаторе... Что теперь изменилось? зачем студия понадобилась? И зачем такой код написал, если не понимаешь? ???
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 19, 2014, 15:14 Код: Что теперь изменилось? зачем студия понадобилась? И зачем такой код написал, если не понимаешь? У меня это лабораторная в институте. И такое задание. А код такой написал, потому что он был в качестве образца в лаб. с чего начать=) Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: OKTA от Март 19, 2014, 15:28 Тебе нужна просто библиотека, как раньше? Не использующая Qt? Если да, то вот мануал тебе http://life-prog.ru/view_zam.php?id=189&cat=2&page=3
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 19, 2014, 15:43 Код: мануал тебе http://life-prog.ru/view_zam.php?id=189&cat=2&page=3 за мануал спасибо. почитаю. А мне нужно, чтоб библиотеку написаннуя в visual studio можно использовать в qt проекте. Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 20, 2014, 09:11 Я создал библиотеку. Как загрузчик ОС сможет найти мою библиотеку? Точнее, где мне можно её разместить, чтоб загрузчик ОС её нашел при запуске клиента?
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: Bepec от Март 20, 2014, 09:21 Эмм... Загрузчик ОС будет использовать вашу библиотеку?
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: Old от Март 20, 2014, 09:25 Я создал библиотеку. Как загрузчик ОС сможет найти мою библиотеку? Точнее, где мне можно её разместить, чтоб загрузчик ОС её нашел при запуске клиента? Рядом с клиентом положите или в любую из директорий прописанных в PATH.Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: OKTA от Март 20, 2014, 09:26 ;D ;D ;D стоит положить в папочку с exe-шником
А насчет загрузчика ОС - осторожнее с выражениями ;D ;D http://ru.wikipedia.org/wiki/NTLDR Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 20, 2014, 09:31 Код: Загрузчик ОС будет использовать вашу библиотеку? Я сделал так: din_lib.h : Код: extern "C" { din_lib.cpp Код: #include "stdafx.h" "D:\Temp\C++\QT_labs\lib" В файле client_dll.pro в qt проекте указал: Код: INCLUDEPATH += D:/Temp/C++/project/din_lib/din_lib/ #путь до хедера Но при запуске приложения на qt он : Starting D:\Temp\C++\QT_labs\client_dll\debug\client_dll.exe... The program has unexpectedly finished. D:\Temp\C++\QT_labs\client_dll\debug\client_dll.exe crashed Вот я и подумал, что загрузчик ОС не может найти мою библиотеку...Поправьте, если ошибаюсь.. Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: libertas от Март 20, 2014, 10:14 Все, разобрался.
Разместил файл библиотеки в проекте клиента и прописал путь к ней в client_dll.pro LIBS += D:/Temp/C++/QT_labs/client_dll/din_lib.lib и все заработало. Судя по всему оттуда загрузчик ОС может взять библиотеку. Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: Bepec от Март 20, 2014, 10:24 Тьфу блин, этот лексикон юных меня доканает :D А я голову ломал, что он собирает с системой делать :D
Название: Re: Пример создания .dll c помощью VC для клиента на qt. неявное связывание Отправлено: OKTA от Март 21, 2014, 10:06 Код: Загрузчик ОС будет использовать вашу библиотеку? Я сделал так: din_lib.h : Код: extern "C" { din_lib.cpp Код: #include "stdafx.h" "D:\Temp\C++\QT_labs\lib" В файле client_dll.pro в qt проекте указал: Код: INCLUDEPATH += D:/Temp/C++/project/din_lib/din_lib/ #путь до хедера Но при запуске приложения на qt он : Starting D:\Temp\C++\QT_labs\client_dll\debug\client_dll.exe... The program has unexpectedly finished. D:\Temp\C++\QT_labs\client_dll\debug\client_dll.exe crashed Вот я и подумал, что загрузчик ОС не может найти мою библиотеку...Поправьте, если ошибаюсь.. Не, тут что-то другое. Без .lib файла клиент просто не собрался бы. Линкер должен ругаться на udefined reference. |