![]() |
Модераторы: Alexeis |
![]() ![]() ![]() |
|
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Всем доброго времени суток! Решил использовать в качестве БД для телефона SQLite... Но под WinCE никак скомпилить не могу... Исходники качал отсюда. При компиляции выдаёт ошибки типа...:
Не понимаю.. как эти исходники под Win CE, если даже константу FILENAME_MAX он найти не может?! (в Win32 она определена в stdio.h) Так же нашёл в инете статейку.. и по ней тоже пробовал.. Скомпилилось вроде всё норм, но при подключению полученной lib'ы к проекту и вызове функций также сыплюца ошибки о том, что не определенна какаято переменная, нашёл в исходниках с помощью каких макросов она создаёца, но вот в мкрос надо передать значению её.. а где его взять?! вообщем уже совсем запутался.. Помогите пожалуйста! ОЧЕНЬ НАДО! :( |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Brodyaga, насколько я помню для компиляции исходников под CE нужен gcc или еще какой-то гнутый компилятор. Там часть сорцов генериться на лету при помощи make файла. Но у них есть еще скрытые сорцы уже готовые. Я качал такой пак и компилировал его в Билдере. Получилась вполне рабочая Dll ина. Для CE есть нюансы. Функция CreateFile работает не с файлом во флеше, а с его образом в ОЗУ, т.о. в памяти будет висеть вся база, а сам движок ничуть не ответственен за то чтобы сохранять базу во флеш. Потому ИМХО, нужно переписать файловый интерфейс под работу с конкретной флеш памятью. Для этого нужно передать в конфигурационную функцию структуру с указателями на функции для работы с файлами. После этого перекомпилировать. Сейчас под рукой нет исходников, на работе остались.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Спасибо за ответ! Завтра скинуть сможете??? На работе посмотрю, поковыряю!
|
|||
|
||||
t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 1 Всего: 7 |
Ты б хоть build log выложил, а то телепаты в отпуске, а мы тут без них хз что там за проблема. --------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Значит ссылка такая http://www.sqlite.org/sqlite-source-3_6_7.zip На момент скачки версия может измениться, но архив продолжают заливать, потому если файл не найден попробуйте другое имя в формате http://www.sqlite.org/sqlite-source-x_y_z.zip т.е. 3.67 -> 3_6_7 . 4я цифра в имени архива не участвует. Добавлено через 5 минут и 15 секунд Если, в последствии будет желание открыть эту базу на PC, то удобно использовать odbc драйвер. Например при помощи него в билдере можно приконектиться к базе используя ADO. http://www.ch-werner.de/sqliteodbc/sqliteodbc.exe (http://www.ch-werner.de/sqliteodbc/) Добавлено через 9 минут и 46 секунд Хотя не, на счет того что скрыта ссылка пожалуй я не прав, нашел таки ее на http://www.sqlite.org/download.html Последняя ссылка в разделе "Source Code" -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Дык для Win CE же в другом месте лежит... тута или я ошибаюсь и надо всётаки брать то, что вы указали?? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Не знаю даже, они какие-то урезанные и не очень свежие "sqlite-wince-3.3.5". Мне кажется если адаптировать, то лучше самые свежие. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
t_rex,
Извините.. я думал они вернулись из отпуска.. ну да ладно, ошибки вот такого плана
Это так он ругаеца на вызов функции sqlite3_open.. Заходим в исходный файл и видим, что эта фунция не что иное как...
А вот те самые макросы из исходников, которые создают эту переменную:
А вот где взять это загадочное v... вот в чём вопрос... Напоминаю, это способ представленный в этой статье. Потому что в сущности то мне под Win Mobile нужно. Это сообщение отредактировал(а) Brodyaga - 23.12.2008, 22:03 |
||||||||
|
|||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Brodyaga, думаю дело в том что не определены некоторые дефайны, от того у компилятора проблемы с именами.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 1 Всего: 7 |
Да, здесь, похоже, проблема именно в директивах компилятора. Думаю, проще всего было бы открыть исходник SQLite Amalgamation в Visual Studio и посмотреть почему этот код не включается в сборку, там должны быть условия в коде вида или #ifdef _SOME_MACRO или #if defined(_SOME_MACRO) и опытным путем определить какие из них нужно подобавлять в C/C++ -> Preprocessor
--------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
Brodyaga |
|
||||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Есть в коде условия такого вида!
Но не в этом суть... причом тут дефайны это же макросы которые нужно вызывать самому... Например если я в коде вызываю макрос
,то описанные ошибки пропадают... но при обращениям к функциям выскакивают другие так как этот макрос лишь инициализирует переменную sqlite3_api присваивая ей 0, а не реальное значение... Реальное же значение передаётся макросу
Но вот где его взять(реальное значение в смысле)?!? Если бы я смог инициализировать переменную sqlite3_api, то и дефайны типа...
заработали бы... Но вот как это сделать...??? |
||||||||||||
|
|||||||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Не всегда, есть дефайны условной компиляции, которые определяют какой код будет компилироваться, а какой нет. Функция с одним т тем же именем и параметрами может иметь несколько реализаций, зависящих от возможности ОС. Например если нет возможности синхронизировать доступ к файлу на диске, то часть кода ответственную за этот механизм можно исключить из проекта. В проекте SQLLite есть набор фич, которые можно исключить из работы и тем самым упростить движок. Если не компиляться те исходники советую взять полные, те что я указал. У меня они скомпилировались правильно, может и у вас заработают без ошибок. В них тоже есть директивы специально для CE. И из них можно скомпилировать версию для CE. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
В тех исходниках, что лежат на официальном сайте компилятор не может найти tcl.h и io.h. Первый я нашёл в инете, а второй для WinCE хз где... ПОделитесь если есть? И что вы из этих исходников делали? lib или dll ?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Я делал Dll, но не для CE. Думаю его можно сделать самому по аналогии с виндовым вариантом или вообще взять от обычного видового, там же основные функции совпадают, тока в других Dll инах. Напильник в руки ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Тоесть вы вручную подписывали к функциям export чтоли и т.д.??? так как в исходниках этого нет помоему...
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Нагуглил def файлик, чуток подправил под обновленную версию. Подключил def к проекту и экспорт готов. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Эм... Ну может глупый вопрос.. но я не знаю как подключить def файл к проекту, чтобы он экспорт сам сделал.. или как его использовать таким образом, подскажите плиз?
![]() |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Ну что никто не знает? :( Срочно надо...
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Brodyaga, выходные все таки. Вот тут можно почитать как можно создать def file
http://www.sqlite.org/cvstrac/wiki?p=HowToCompile под заголовком "MSVC and SQLite DLL" -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
Так мне не надо создавать деф файл, он у меня есть, мне нужно с помощью него сделать экспорт функции в проекте, чтобы самому к каждой не дописывать экспорт и т.д. Как это сделать? |
|||
|
||||
masterik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 28.8.2006 Где: Остенд, Бельгия Репутация: нет Всего: нет |
Не имею опыта работы на С++ под WinCE, но успешно использую SQLite Provider для .NET [Compact] Framework. Эта библиотека через P/Invoke использует откомпилированную под WinCE/WinMo dll'ку SQLite. Отлично работает на Windows Mobile и на Windows CE, так что думаю можно просто выдрать отсюда SQLite dll'ку.
В наборе имеются исходники как managed так и native библиотек. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Просто добавить def файл в проект, по нему и будет создан экспорт. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Brodyaga |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 599 Регистрация: 19.1.2008 Репутация: нет Всего: 2 |
При простом добавлении и компиляции с деф файлом никакой экспорт не создаётся (MSVC2005) |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Значит неправильный def файл. Проще было бы скинуть весь проект ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: нет Всего: 1 |
Всем привет! Я тут тоже выбираю где бы хранить данные. Начал подумывать про SQLite, вот только я пишу, пока что, на Visual Basic ... Как её туда прикрутить? (чтобы было одним файлом)
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
APro, ну если барсик поддерживает линковку MS OBJ файлов, то можно.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: нет Всего: 1 |
Alexeis, а может как-то подробнее?
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
Ну как еще подробнее, билд проекта в С/С++ состоит из 2х частей.
1) компиляция модулей с, cpp в obj файлы 2) сборка экзешника из этих скопилированных файлов исполняемого файла. Obj файл это уже файл с ассемблером, где нереализованны внешние ссылки то бишь неизвесны адреса функций и переменных из других модулей. Линкер этим и занимается что подставляет правильные адреса. Например в Delphi или асме можно линковать "чужие" модули вместе со своими. Линкер разбирается куда какие адреса подставлять. Билдер умеет линковать делфийские компилированные модули. VC умеет линковать любые модули сделанные в его формате. Возможно и в бейсике есть редкие малоиспользуемые директивы для линковки чужих модулей. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
APro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 328 Регистрация: 5.12.2006 Репутация: нет Всего: 1 |
а где лучше хранить данные на 60 000 записей?
-------------------- Никогда не спорь с дураком, другие могут не заметить между вами разницы. Чем реже открываешь рот, тем меньше слышишь глупостей. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
APro, смотря каких данных и как часто их нужно менять. Если это просто лог, в который инфа добавляется в конец, то хватит и текстового файла, если же нужна вставка данных, поиск, организация связей между данными, то это БД.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 1 Всего: 7 |
--------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование мобильных устройств" | |
|
Раздел посвящен программированию мобильных устройств. Все остальные вопросы по мобильным устройствам (КПК, смартфоны, телефоны, фотоаппараты и т.п), |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Платформы Windows Mobile и Windows Embedded | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |