在 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()<