Russian Qt Forum
Ноябрь 26, 2024, 13:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование функций библиотеки dbx32.dll  (Прочитано 5131 раз)
Danila_Bagrofff
Гость
« : Июль 11, 2011, 12:45 »

Нужно использовать библиотеки P-CAD.
DBX32.dll, есть также dbx32.lib и dbx32.h файлы.

В pro-файл добавляю:
Код:
LIBS += dbx32.lib

В cpp-файл, где юзаю функции либы, добавляю:
Код:
#include "dbx32.h"

В описании либы есть функция, которую использую у себя:
Код:
long
DLLX TOpenDesign (long language,
                  long version,
                  const char* pDesignName,
                  DbxContext* pContext);

При сборке проекта выдается ошибка:
Цитировать
debug/DialogPE3.o:D:\Program\LoodsmanContext/DialogPE3.cpp:261: undefined reference to `TOpenDesign(long, long, char const*, DbxContext*)@16'

Видимо, библиотека собрана не под mingw, и mingw не может правильно обратиться к функции.
Что можно сделать, чтобы все-таки использовать данную либу?...

Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Июль 11, 2011, 13:20 »

Цитировать
LIBS += -ldbx32

А вообще, спроси ка лучше у  lit-uriy. Он вроде бы что-то подобное делал (именно с P-Cad).
Записан

ArchLinux x86_64 / Win10 64 bit
Danila_Bagrofff
Гость
« Ответ #2 : Июль 11, 2011, 13:42 »

чет никак:
:: error: cannot find -ldbx32

Так не выходит.

Нашел интересную инфу:
http://forums.codeblocks.org/index.php?PHPSESSID=svbllkfp58dk9tgq21m56hjnl4&topic=8411.msg62081#msg62081

В особенности:
Цитировать
I've replace
Код:
#define DLLX __stdcal
l

with
Код:
#define DLLX __cdecl

in DBx32.h and now I get a beautiful
Цитировать
Process terminated with status 0 (0 minutes, 26 seconds)
0 errors, 0 warnings


Это в файле dbx32.h подменили. так проблема с @16 вроде как пропала. Но не получается заюзать функцию.

Пытаюсь теперь заюзать в кути:
Код:
DbxContext tContext;
    if(TOpenDesign(DBX_LANGUAGE, DBX_VERSION, "sch", &tContext)==DBX_OK)
    {
        emit(addLog(tr("!!!!!")));
    }
    return true;

Но выдается ошибка:

Цитировать
mingw32-make: Leaving directory `D:/Program/LoodsmanContext'
debug/DialogPE3.o:D:\Program\LoodsmanContext/DialogPE3.cpp:262: undefined reference to `TOpenDesign(long, long, char const*, DbxContext*)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\LoodsmanContext.exe] Error 1
mingw32-make: *** [debug] Error 2
Процесс "D:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился с кодом %2.
Возникла ошибка при сборке проекта LoodsmanContext (цель: Настольный компьютер)
Во время выполнения сборки на этапе "Сборка"

Подскажите, где я теперь косяк?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.