[Resolvido] Importar dll
-
Boas
Existe um SDK que me dá um header, librarias e até um .cpp de teste. Pretendo fazer a interface entre o software e um sensor.
Portanto:
No .pro adicionei as librarias e o path:
@LIBS += -L$$PWD\libs\Vicon\ -lViconDataStreamSDK_CPP
INCLUDEPATH += $$PWD\libs\Vicon\include@No .cpp já adicionei o meu header:
@#include "Client.h"@Este header é composto por uma data de classes dentro do namespace que adicionei nos ficheiros sempre que utilizo classes de lá:
@using namespace ViconDataStreamSDK::CPP;@Tudo parece em ordem mas quando faço debug aparece o seguinte erro:
engine.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: class ViconDataStreamSDK::CPP::Output_Connect __thiscall ViconDataStreamSDK::CPP::Client::Connect(class ViconDataStreamSDK::CPP::String const &)" (_imp?Connect@Client@CPP@ViconDataStreamSDK@@QAE?AVOutput_Connect@23@ABVString@23@@Z) referenced in function "public: void __thiscall Engine::ConnectVicon(void)" (?ConnectVicon@Engine@@QAEXXZ)
engine.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall ViconDataStreamSDK::CPP::Client::Client(void)" (_imp??0Client@CPP@ViconDataStreamSDK@@QAE@XZ) referenced in function "public: void __thiscall Engine::ConnectVicon(void)" (?ConnectVicon@Engine@@QAEXXZ)
No header Client.h se comentar o código seguinte passa o problema mas aprecem uma data deles relacionados com as classes que utilizo localizadas no header. Portanto penso que esteja relacionado com este código:
@#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif // _EXPORTING@Já adicionei as dll e o header nas pastas que estou a trabalhar e na pasta de debug.
Alguma ideia do que se passa? Estará relacionado com o facto de talvez as librarias terem sido desenvolvidas em VC++ e estar a usar um IDE diferente? Tenho que adicionar algo mais?Obrigado
-
leia: https://sites.google.com/site/qxormpostgres/generar-driver-postgres-qt
procure os passos sobre o aplicativo reimp e dlltool... gere os arquivos .a remova o "_" de todos os nomes de funçoes, gere outra dll com o dlltool e veja se resolve...
esse problema acontece pq a dll pode nao ser compativel com o mingw.
essas ferramentas que eu postei converte elas para dlls compativeis..
espero ter ajudado e desculpe nao ter respondido antes, pois vi o poste e fiquei com preguiça deresponder...
mas, antes tarde do que nunca, rs
se resolveu o seu problema poste, pois essa duvida pode ser a de outro...