Название: Проблема со слешами Отправлено: zlatko от Ноябрь 28, 2005, 17:38 На некоторых компах после запуска проги( везде стоят ХР проф ) в дебажном окне я вижу следующее:
Цитировать Failed to load library C:/cardreader_28.11/sqldrivers/qsqlpsql.dll! Error code 126 - The specified module could not be found. QSqlDatabase: QPSQL7 driver not loaded Failed to load library C:/cardreader_28.11/sqldrivers/qsqlpsql.dll! Error code 126 - The specified module could not be found. Failed to load library C:/cardreader_28.11/sqldrivers/qsqlpsql.dll! Error code 126 - The specified module could not be found. QSqlDatabase: available drivers: Can't connect to database! Error -1: Driver not loaded Driver not loaded Ну что и понятно поскольку слешы стоят не в ту сторону. Попробывал поменять ручками следующим кодом но не получилося.... Может кто-нить сталкивался с подобным ? Код:
использую кт 3.3.3 Название: Проблема со слешами Отправлено: zlatko от Ноябрь 29, 2005, 12:14 хм проблема вроди в самой библиотеке...по крайней мере в анонсе к qt3.3.5 подобные вещы упоминаются....
может ктонить подскажет где скачать релиз по студію :roll: Название: Проблема со слешами Отправлено: Dendy от Ноябрь 29, 2005, 22:33 Мммм... Хочу сразу разочаровать: никакой
Код: strPath.replace( '/', '\\'); не поможет, ибо при загрузке плагина QDir() перевернёт слеши как ему подскажет голос свыше (как правильно для данной ОС/компиллера). А проблема собсна не в слешах. Проблема с системой плагинов Qt4. Драйвера SQL в Qt4 реализованы плагинами, которые загружаются на лету по месту требования, а не линкуются с основным кодом. Заходим в документацию, читаем следующее: Цитировать But where is the plugins directory? When the application is run, Qt will first treat the application's executable directory as the pluginsbase. For example if the application is in C:\Program Files\MyApp and has a style plugin, Qt will look in C:\Program Files\MyApp\styles Цитировать Qt will also look in the directory specified by QLibraryInfo::location(QLibraryInfo::PluginsPath), which typically is located in QTDIR/plugins Другой способ: использоваться функции: QCoreApplication::addLibraryPath() и QCoreApplication::setLibraryPaths() Грубо говоря, чтобы не добавлять код в программу нужно поместить соответствующий плагин ( qsqlpsql.dll ) в папку: sqldrivers которая будет лежать точно рядом с исполняемым файлом. Плагины найдёшь здесь: QTDIR/plugins :D Название: Проблема со слешами Отправлено: Dendy от Ноябрь 29, 2005, 23:10 P.S. В Qt 4.1 плагины можно слинковать статически и проблема отпадает сама собой.
Название: Проблема со слешами Отправлено: zlatko от Ноябрь 30, 2005, 13:18 ты сам хоть понял суть проблемы? :D
-я использую qt 3 не qt 4 -папка sqldrivers у меня существует и там есть необходимые драйвера -на одних компах идет нормально а на других выдает вышеперечисленные сообшения -http://qtforum.org/thread.php?threadid=15442&sid= Название: Проблема со слешами Отправлено: Dendy от Ноябрь 30, 2005, 13:49 Уууупс.... оце тупанув... :oops: :D
Спробуй віддебажити процес завантаження плагинів. Якщо це робиться засібами Qt, то не повинно бути жодних проблем :? Название: Проблема со слешами Отправлено: zlatko от Ноябрь 30, 2005, 16:24 це можна..але в мене таке враження шо якшо я поставлю на необхідний комп студію і кт то воно запрацює :roll: ( аналогічно із моїм комппом)
треба десь дістати кт 3.3.5 |