У меня есть приличное понимание C #. Меня попросили сделать SDK вместе с нашей программой, чтобы клиент мог создать свой собственный пользовательский интерфейс, используя наши функции. В C # я сделал это, добавив DLL. Мне пришлось использовать файл базы данных (.db) для хранения команд, и все прошло успешно. Теперь меня попросили сделать то же самое в C ++. Я очень плохо знаком с C ++. Но вот что я прочитал из MSDN и сделал:
Все идет нормально. Теперь, когда я пытаюсь использовать этот библиотечный файл и заголовок, я получаю следующие ошибки во время сборки.
error C2059: syntax error : '<'
error C2018: unknown character '0x7'
error C2018: unknown character '0x60'
error C2018: unknown character '0x7'
error C2018: unknown character '0x2'
error C2018: unknown character '0x1e'
error C2018: unknown character '0x18'
Я некоторое время боролся с этим, когда вспомнил, что эти ошибки были такими же, как и несколько дней назад. Я на самом деле задал вопрос в SE и получил ответ (Ошибка при включении файла базы данных в проект C ++).
Поэтому я сделал вывод, что компилятор пытается прочитать файл базы данных, сохраненный в файле библиотеки, и, следовательно, я получил эти ошибки.
Теперь у меня есть три вопроса:
Я использую Visual Express C ++ 2010. Я использовал командную строку, которая поставляется вместе с Visual Studio, для создания файла .lib. Моя ссылка для создания .lib файла была https://msdn.microsoft.com/en-us/library/ms235627.aspx#BKMK_CreateAppToRefTheLib.
Файл базы данных не может быть сохранен в статическом файле библиотеки для развертывания. Потому что компилятор ВСЕГДА читает содержимое библиотеки. Это показывает, что он читает это, когда вы строите программу.
Так что делать, если вам нужно выдать базу данных с вашим SDK? У меня есть два решения:
Итак, поехали. Проблема не может быть решена. Но две альтернативы.