Qr使用leadtools在QT创建者下阅读和生成

时间:2015-05-06 08:43:52

标签: c++ qt qr-code leadtools-sdk

我想从 Leadtools 购买QR码阅读和生成许可证,但是首先,我想尝试他们的演示工具。 我正在使用MSVC 2013 x64编译器。我想我在文档中做了以下所有事情:




    

  1. 全部复制dll到我的项目目录(build和release文件夹所在的位置)
  2. 

  3. 将Include和Lib文件夹复制到我的项目目录并将这些行添加到.pro文件。
  4. &#xA ;




LIBS + = -L $$ PWD / Lib / CDLLVC12 / x64 / -lLtkrn_x
 INCLUDEPATH + = $$ PWD / Include
 PRE_TARGETDEPS + = $$ PWD / Bin / CDLLVC12 / x64 / Ltkrnx.dll




    

  1. include和#define LTV19_CONFIG,这是我的代码:

    


      #define LTV19_CONFIG
 #include< iostream>
 #include< Ltkrn .h>
 #include< ClassLib / LtWrappr.h>
使用命名空间std;

 int main(){
 if(LT_KRN == LBase :: LoadLibraries(LT_KRN,LT_DLGKRN))
 cout<< “成功”<< endl;

 L_TCHAR licenseFile [] = L“d:\\ temp \\ TestLic.lic”;
 L_TCHAR key [] = L“xyz123abc”;
 LSettings :: SetLicenseFile(licenseFile,key);

返回0;
}
  
  2. 

  3. 询问leadtools支持,但他们没有太多使用QT的经验...

  4. 





当我尝试构建时应用程序我得到以下错误:




  LNK2019:未解析的外部符号“__declspec(dllimport)public:static unsigned int __cdecl LBase :: LoadLibraries(unsigned int,unsigned int )“(__ imp_?LoadLibraries @LBase @@ SAIII @ Z)在函数main&#xA中引用; LNK2019:未解析的外部符号“__declspec(dllimport)public:static int __cdecl LSettings :: SetLicenseFile(wchar_t *,wchar_t *)”(__ imp_?SetLicenseFile @ LSettings @@ SAHPEA_W0 @ Z)在函数main
 中引用




对于以下方法,文档说我只需要一个dll / lib包(ltkrn)。怎么解决?我仍然没有得到静态和动态链接之间的差异,这可能是问题所在。




1 个答案:

答案 0 :(得分:0)

如果你的链接器接受了64位Ltkrn_x.lib,这表明问题与你如何使用LEADTOOLS而不是QT有关。这就是为什么我将此作为建议回复而不是留言发布的原因 使用LEADTOOLS和C ++编程时,通常使用2组标题和LIB中的一组:

  1. 包括L_Bitmap.H(或包含LtKrn.H的一堆标头)并使用Ltkrn_x,Ltfil_x等LIB文件集。

  2. 或者包含ClassLib \ LtWrappr.h并且只使用一个LIB文件,在您的情况下是Ltwvc_x.lib

  3. 虽然在这两种情况下你都会使用许多相同的DLL文件,例如Ltfilx.dll和Ltkrnx.dll,但是在使用LtWrapper时你不需要他们的LIB文件的原因是ClassLibrary执行起来很晚(在要求)在运行时加载这些DLL,而不是在链接时引用它们的LIB文件。

    这也是为什么你需要在代码使用这些DLL之前调用LBase :: LoadLibraries()并指定所需的DLL的原因。 总而言之,请试试这个:

    • 删除#include" Ltkrn.h"

    • 删除对Ltkrn_x.lib的链接器引用(尽管您需要DLL)

    • 保持#include" ClassLib / LtWrappr.h"

    • 添加链接器引用到Ltwvc_x.lib