Титла: Как се създават и използват библиотеки в Qt4 Публикувано от: X_F1 в Sep 13, 2010, 07:34 Здравейте! Нов съм в Qt4 (от два месеца!
Използвам Qt Creator, правя нова библиотека, после правя нов проект, инклудвам - Код
Може ли да ми дадете линк към статия, или да ми обясните как става номера, като фатката е - да създам библиотеката през Qt Creator, и през QtCreator да я инклудна в моя си проект. Смятам да я ползвам в повече от един проект! Благодаря! Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: remotex в Sep 13, 2010, 09:36 http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries
Какво добавяш : само заглавния файл или и изпълнимия т.е. LIBS += и/ли INCLUDEPATH = трябва и двете, после зависи дали е qmake или cmake project ... Я най-добре намери и прочети в помощната информация следната секция "External Libraries" Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: task_struct в Sep 13, 2010, 10:53 Ето ти и за cmake проект: http://techbase.kde.org/Development/Tutorials/Creating_Libraries :)
Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: X_F1 в Sep 14, 2010, 17:26 Ето ти и за cmake проект: http://techbase.kde.org/Development/Tutorials/Creating_Libraries :)Аз използвам чист Qt4. Ако може да е точно за Qt4. :) Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: bvbfan в Sep 14, 2010, 19:38 http://doc.qt.nokia.com/latest/qlibrary.html - зареждане на споделени библиотеки
http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ http://www.qtforum.org/article/33701/shared-library.html Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: X_F1 в Sep 15, 2010, 14:31 Пак не става. :(
QLibrary *l = new QLibrary("lib1.dll"); l->load(); l->resolve("Lib1::showButton()"); обаче - пак не дава. :( В случая не показва бутона! Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: bvbfan в Sep 15, 2010, 15:37 Цитат ("Lib1::showButton()");Това действие не е възможно при която и да е ОС, не може да вземеш указател към статична функция от клас без да си създал класа, тъй като няма кой да извика конструктора. Това се прави така: class Myclass { Myclass() {} int func1(); char *funcN(); }; extern "C" { Myclass* getClass(); typedef Myclass*(*func)(); } Хедър файла трябва да е и в двата проекта В динамичната библиотека int Myclass::func1() { return 50; } char* Myclass::funcN() { return "This is version 1.0"; } Myclass* getClass() { Myclass *p = new Myclass; return p; } В програмата, къде зареждаш библиотеката QLibrary *l = new QLibrary("lib1.dll"); l->load(); Myclass *f = (func)l->resolve("getClass"); if( f != NULL ) puts( f->funcN() ); example ($2) На линукс библиотеките трябва да са импортнати в Path или сложи симболик линк в /usr/lib/ към твойта библиотека Титла: Re: Как се създават и използват библиотеки в Qt4 Публикувано от: task_struct в Sep 15, 2010, 20:07 Според мен подхода с QLibrary не е най-доброто решение в този случай. QLibrary е подходяща в случайте, когато искаш да заредиш определен код, само ако е нужно. На пример, имаш много плъгини, които не са нужни непрекъснато, а само ако потребителя заяви желание да ги използва. За библиотека, която ще предоставя някаква функционалност на много приложения, е по-добре (даже си е задължително) да се инсталира отделно и приложенията да са линкнати към нея, както е обяснено тук: http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries
|