Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Чтение данных Excel из QT

Автор: dima154 24.4.2010, 7:19

Хочу читать данный из Excel с помощью Qt.
Прочитал, что для этих целей надо использовать компонент ActiveQt.
Нашел следующий пример:
QAxObject* excel = new QAxObject( "Excel.Application", this );
Копирую эту строку в свой проект, собираю его, при линковке появляется ошибка:
Linking...
dialogimpl.obj : error LNK2019: unresolved external symbol "public: __thiscall QAxObject::QAxObject(class QString const &,class QObject *)" (??0QAxObject@@QAE@ABVQString@@PAVQObject@@@Z) referenced in function "public: __thiscall DialogImpl::DialogImpl(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0DialogImpl@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z)
QAxServerd.lib(qaxserver.obj) : error LNK2019: unresolved external symbol "class QAxFactory * __cdecl qax_instantiate(void)" (?qax_instantiate@@YAPAVQAxFactory@@XZ) referenced in function "class QAxFactory * __cdecl qAxFactory(void)" (?qAxFactory@@YAPAVQAxFactory@@XZ)
bin\ExcelReader.exe : fatal error LNK1120: 2 unresolved externals

Файл проекта:
TEMPLATE = vcapp
QT = gui \
core
CONFIG += qt \
qaxserver \
debug \
warn_on
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/dialog.ui
HEADERS = src/dialogimpl.h
SOURCES = src/dialogimpl.cpp \
src/main.cpp
Библиотеки QAxContainerd.lib, QAxServerd.lib лежат по путям проекта, но почему-то функции, определеные в них не выдны.
Кто чем может помочь по данной проблеме? Заранее спасибо всем ответившим!



Автор: Гость 24.4.2010, 16:31

Нда. У меня таже самая проблема с линковкой.

Автор: panter_dsd 24.4.2010, 18:13

Что-то не вижу, что бы ты либы линковал.

Автор: dima154 25.4.2010, 13:59

Цитата(panter_dsd @ 24.4.2010, 19:13) *
Что-то не вижу, что бы ты либы линковал.

А когда генериться проект для VisualStudio c помощью qmake, то библиотеки подключаются к проекту автоматически, при создании файла *.vcproj.
Получается, что библиотеки к проекту подключены, но ошибка сборки все равно происходит.

Автор: panter_dsd 25.4.2010, 14:14

Не подключаются. Допустим, для QtSQl нужно в про файле написать QT = gui core sql. Для ActiveQt тоже что-то добавить нужно.

Автор: Wlad 26.4.2010, 9:53

Цитата(panter_dsd @ 25.4.2010, 15:14) *
Не подключаются. Допустим, для QtSQl нужно в про файле написать QT = gui core sql. Для ActiveQt тоже что-то добавить нужно.

Правильно! Для использования ActiveQt в проектный файл нужно добавить:

CONFIG += qaxcontainer

Автор: Гость 26.4.2010, 20:11

Если интересно, то я могу сказать как эта проблема решилась у меня. В конструкции
QAXFACTORY_BEGIN(
...
...
)
QAXCLASS(XXX)
QAXFACTORY_END()
у меня была пустая строка между QAXCLASS и QAXFACTORY_END(). После того, как я убрал эту пустую строку, проблема с линковкой (unresolved external symbol "class QAxFactory * __cdecl qax_instantiate) исчезла.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)