crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в GUI внутри динамической библиотеки
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
kwisp Дата 17.5.2009, 17:52
  эт наверное я не понимаю.

я думал надо запускать программу с определенным PATH - это решается с помощью батника. точно так же можно имея на машине несколько вариантов(версий) библиотеки Qt и несколько компиляторов запуская определенный батник собирать проекты различными компиляторами и используя различные библиотеки... не коверкая системный PATH каждый раз.:)
Цитата(Гость_hmmm_* @ 17.5.2009, 15:57) *
ведь надо как-то отлаживать программу и при этом не кидать каждый раз dll-ки в debug..

и не будешь кидать их в дебуг, пропишешь путь к ним в PATH в батнике и должно заработать.

впрочем если я что то перепутал то простите. завтра с работы могу кинуть свои батники если надо.
hmmm Дата 17.5.2009, 14:57
  Этот вариант будет пригоден скорее уже для реализованного приложения нежели для процесса разработки.. ведь надо как-то отлаживать программу и при этом не кидать каждый раз dll-ки в debug.. самое печальное в некоторых книгах например Хортона по програмиированию в VSC++ 2008 указана такая проблема и они как раз и переносят файлик тупо в debug. Странное на мой взгляд решение.. Наверное буду решать этот вопрос динамическим подключением...

Кстати возможно я иду несколько не тем путём.. потому что мне в идеале нужна не столько прям сама dll сколько возможность собрать модуль который можно безболезненно подключать к различным проектам + возможность его отлаживать и проч.. тоесть фактически просто некоторый набор cpp и h, ui файлов которые можно подключать к разным проектам. Насколько я понял это решается именно через выделение их в отдельную библиотеку (а в рамках студии помещение их в отдельный проект) и компиляции как библиотеки в моём случае dll.

Возможно я что-то путаю или не понимаю, но перелопатил много материалла и на prog.org.ru и здесь и в документации и другое пути пока не нашёл. =((
kwisp Дата 17.5.2009, 13:51
 
Цитата(Гость_hmmm_* @ 17.5.2009, 13:25) *
з.ы. только если конечно мы можем указать path не глобально а исключительно для программы. Не совсем правда соображу как это сделать.

в винде можно в батнике прописать свой PATH(с помощью set) и потом запустить программу
PATH прописанная таким образом будет действительна только для сеанса батника и не будетп ортить глобальную PATH для всех прог и винды.

естественно прогу запускать через батник

что-то типа
=======файл toStart.cmd=====
@set PATH=пишем что надо для запуска проги
имя запускаемой программы
=======================

теперь прога запустится в нужном окружении
Litkevich Yuriy Дата 17.5.2009, 12:35
 
Цитата(Гость_hmmm_* @ 17.5.2009, 16:23) *
я думал проблема может быть решена каким либо шаманством с настройками проекта solutinа
ну в ней я думаю можно так сделать, но я студией не пользуюсь
hmmm Дата 17.5.2009, 12:25
  з.ы. только если конечно мы можем указать path не глобально а исключительно для программы. Не совсем правда соображу как это сделать.
hmmm Дата 17.5.2009, 12:23
 
Цитата(Litkevich Yuriy @ 17.5.2009, 2:15) *
Укажи в переменной среды PATH, путь к своей библиотеке. Виндовоз, не найдя в каталоге с exe'шником нужной dll'ки, полезит просматривать пути указанные в переменной PATH.

Жаль(( я думал проблема может быть решена каким либо шаманством с настройками проекта solutinа.. или ещё как. Для каждой своей либы такое делать не удобно, да и разрабатываю не один, поэтому надо и остальным прописывать.. вероятно придётся делать не статическую линковку а через QLibrary или QPluginLoader, что не оч удобно так как довольно много классов от туда хватать буду в разных местах программы, получается придётся делать синглтон для загрузки самой либы, чтобы не указывать в каждом месте её загрузку.. =(
Litkevich Yuriy Дата 17.5.2009, 2:15
  Укажи в переменной среды PATH, путь к своей библиотеке. Виндовоз, не найдя в каталоге с exe'шником нужной dll'ки, полезит просматривать пути указанные в переменной PATH.
hmmm Дата 17.5.2009, 0:59
  Вопрос совсем не в тему но пробовал на примерах из этой темы поэтому вопрос именно сюда.
Открыл тестовый проект в VS. Тоесть два проекта - один либа другой main. Собираб либу как dll и линкую к главному проекту. Прописываю в свойствах главное проекта связь с lib файлу из либы и пишу простенький header для использования функции из библиотеки. Когда запускаю на выполнение не может найти dll. Кидаю dll в папку debug c главным проектом - всё работает отлично. Скажите а как-нибудь можно реализовывать разработку чтобы не надо было постоянно кидать длл-ку ??Наверняка ведь как-то можно это подругому делать?? Просто в другом своём приложении хочу вынести ряд классов и функций в либу и не хотелось бы всё время переносить длл-ку.. глупо оно как-то=(((
ViGOur Дата 31.3.2008, 19:27
 
Цитата(ViGOur @ 31.3.2008, 16:13) *
Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его.
Извини, ошибся, библиотека должна быть динамической.

Думал о статической библиотеке, нужно было написать слово динамическая, а написал статическая. :)
silart Дата 31.3.2008, 15:48
 
Цитата(ViGOur @ 31.3.2008, 20:13) *
Да вроде не должно быть зависимости статическая или динамическая сборка.
Ведь может понадобиться как та так и другая сборка одновременно в проекте.

Последний архив, я компилил так:
qmake
nmake
без qmake -project, чтобы не портить pro файл.
Разумеется как для exe так и для dll.

Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его.


Механизм QLibrary мутный какой-то. lib-файл тоже не хочет загружать...
Вообще это все нужно для плагинов, мне он необязательно нужен. Я могу и статически связать dll с exe.
Но все равно никак не работает.

С QApplication вроде работало, но только немодальный диалог создавало, а модальнывй никак...
В чем же проблема...
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 16:36