logo资料库

在Qt中调用vs2008生成的dll以及lib的方法.pdf

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
在 Qt 下调用 vs2008 生成的 dll 以及 lib 在开发的时候,我们经常要遇到两种开发环境相互结合的情况,在这 个时候,一般有两种方法解决这个问题 第一种方法是:讲一种语言改为另一种语言 这种方法一般需要的工作量都是比较大的,所以当时间紧迫的时候大 多数的人都会感觉很麻烦,毕竟是费力还费事费时,所以这个时候就 要另辟捷径那么就要用第二种方法了。 第二种方法:调用一个程序生成的 dll 以及 lib 文件 用这种方法省时,只是对于一些新手来说可能不知道要怎么操作,下 面我就结合 Qt 以及 vs2008 来简单讲述一下具体的怎么用,首先在 vs2008 的环境下新建一个工程,在选择应用程序设置的时候选择 DLL, 并且选择空项目,如下图所示:
在 vs 里面建立 mydll.h 文件以及 mydll.cpp 文件,两个文件的内容分 别如下所示: mydll.h extern "C" _declspec(dllexport) int myMin(int a,int b); mydll.cpp #include"mydll.h" #include int myMin(int a,int b) { } printf("Min is called"); if(a>=b)return b; else return a; 其中 extern "C" _declspec(dllexport) int myMin(int a,int b); 这句话的作用是将函数 myMin(int a,int b)声明成一个导出函数,说明 这个函数要被其他的程序调用,即作为 dll 的一个对外函数接口 将此函数编译过后,就会在目录下产生 mydlltest.dll,mydlltest.lib 两个 文件,其中 mydlltest 是自己所定义工程的名字。 下面详细介绍两种环境下调用 dll 以及 lib 的方法,一种是同样在 vs2008 环境下,另外一种就是在 Qt 下面调用 1)、在 vs2008 环境下调用
新建一个工程添加.cpp 文件,在文件里面进行如下的代码: #pragma comment(lib,"mydlltest.lib") extern "C" _declspec(dllimport) int myMin(int a,int b); #include int main() { } int a; a=myMin(8,10); printf("\n"); printf("%d\n",a); return 0; 其中要注意:要把 mydlltest.lib 文件和所写的.cpp 文件放在一个文件 夹,将 mydlltest.dll 文件放在 Debug 的文件夹下面,运行一下就可以 看到结果如下图所示:
在此实现了在同样的环境下调用 dll 以及 lib 文件。 需要注意的是:注意 lib 还有 dll 在所调用文件夹所放的位置。 2)、在 Qt 环境下调用 在 Qt 工程下新建 Qt gui 应用,命名项目工程 myMintest,目标设置为 桌面,类的信息为 MainWindow,生成文件之后,右击 myMintest 之 后,选择添加库,选择添加外部库,将目录底下的 lib 文件添加进去, 这一部是至关重要的。 直接在 ui 下面拉进去空间 label,然后在 mainwin.cpp 下面初始化的 部分添加如下的代码: #include "mainwindow.h" #include "ui_mainwindow.h" #include #include
#include extern "C" __declspec(dllimport) int myMin(int a,int b); MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); label=new QLabel(this); int a; for(int i=0;i<10;i++) { a=myMin(i,10); ui->label1->setText(QString::number(i)); qDebug()<
因为我想测试一下是不是可以时时的调用函数,所以增加了循环以及 qDebug()<
分享到:
收藏