您现在的位置是:主页 > news > 国有企业查询系统/seo优化排名方法

国有企业查询系统/seo优化排名方法

admin2025/5/3 2:48:46news

简介国有企业查询系统,seo优化排名方法,如何做网站的百科,百度上如何创建自己的网站创建动态库的时候注意点: 1、 创建动态库后,想要建立一个新的类,那么一定要在类的头文件 class 前加入***(工程名)SHARED_EXPORT。 调用动态库注意点: 1、 确认动态库是否和本项目使用同一个编译器编译的&…

国有企业查询系统,seo优化排名方法,如何做网站的百科,百度上如何创建自己的网站创建动态库的时候注意点: 1、 创建动态库后,想要建立一个新的类,那么一定要在类的头文件 class 前加入***(工程名)SHARED_EXPORT。 调用动态库注意点: 1、 确认动态库是否和本项目使用同一个编译器编译的&…

创建动态库的时候注意点:
1、 创建动态库后,想要建立一个新的类,那么一定要在类的头文件 class 前加入***(工程名)SHARED_EXPORT。

调用动态库注意点:
1、 确认动态库是否和本项目使用同一个编译器编译的,以及在build的时候注意,如果项目是build Debug模式下,那么调用的动态库也必须是build Debug编译的,必须对应。(如果项目需要调试,那么调用build Debug编译的动态库,等程序发布的时候,重新修改pro文件导入release版的动态库,在发布)。
2、 调用动态库有两种方法

尝试了在Qt调用VS动态库的2种方法:显式加载和隐式加载。Qt版本采用5.1,使用的默认编译器gcc;VS使用2010。详细过程如下:

(1)在VS2010中导出动态库,导出过程未使用windows平台相关的代码。

复制代码
 1 /***************************************
 2 * MyDll.h           
 3 ***************************************/
 4 #ifndef MYDLLEXPORT
 5 #define MYDLLEXPORT extern "C" __declspec(dllimport)
 6 #endif
 7 
 8 
 9 MYDLLEXPORT int  add(int a, int b);
10 MYDLLEXPORT int     g_nCount;
复制代码
复制代码
 1  /***************************************
 2  * DllDemo.cpp           
 3  ***************************************/
 4 #define MYDLLEXPORT extern "C" __declspec(dllexport)
 5 #include "MyDll.h"
 6 
 7 int  g_nCount = 0;
 8 
 9 int add(int a, int b){
10     return (g_nCount += a + b);
11 }
复制代码

编译后生成2个文件:DllDemo.lib,DllDemo.dll。

(2)Qt中实现调用

  不同调用方式需要的文件不同,对于显式加载只需要*.dll;隐式加载需要*.h,*.dll。这里只贴出部分代码如下:

  • 显式

  显式调用需要将*.dll文件复制到生成目录的执行文件所在路径下(.exe所在),注意的是Qt Creator中生成目录是在源码目录外的。然后在代码中Load。

复制代码
 1 QLibrary lib("DllDemo"); // 不需要后缀
 2 if (lib.load())
 3 {
 4      typedef int(*AddFunction)(int a,int b);
 5       AddFunction Add=(AddFunction)lib.resolve("add");
 6       if (Add)
 7       {
 8           int res = Add(20, 155);
 9           ui->lineEdit->setText(QString("%1").arg(res));
10       }
11 }
复制代码
  • 隐式

  隐式加载时在*.pro手动添加:LIBS+=DllDemo.dll,然后倒入所需头文件,在调用处包含并调用其中的接口即可。

复制代码
1 /***************************************
2  * LIBS += DllDemo.dll    
3  ***************************************/
4 #include "MyDll.h"
5 // 隐式调用 
6 int res = add(20, 155);
7  ui->lineEdit->setText(QString("%1").arg(res));
复制代码

  以上过程中调用动态库只是简单的C函数,关于C++类或包含win32的导出库待后研究......