• 10740阅读
  • 6回复

使用QT可以调用WINAPI写的DLL么 [复制链接]

上一主题 下一主题
离线freedom0203
 

只看楼主 倒序阅读 楼主  发表于: 2007-11-06
使用QT可以调用WINAPI写的DLL么
— 本帖被 XChinux 执行加亮操作(2008-07-17) —
我有个DLL是用winAPI写的
现在我在使用QT,现在想使用该DLL,调用里面的函数功能。
不知道可以实现不?请大侠指教。
离线XChinux

只看该作者 1楼 发表于: 2007-11-06
可以
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线simonetta
只看该作者 2楼 发表于: 2007-11-07
同楼主问。

请问XChinux手头有没有这方面的资料,我google不到,郁闷。
我的blog
http://blog.csdn.net/solotek97/
离线XChinux

只看该作者 3楼 发表于: 2007-11-07
看一下QLibrary的手册就知道了
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线freedom0203

只看该作者 4楼 发表于: 2007-11-07
我调用dll的函数可以了,进一步问一下,我想调用dll里面的结构体对象,我想原理差不多,但就是取不到地址.不知道为什么.
代码如下:
生成dll的文件:
//mydll.h
  extern "C" __declspec(dllexport) int maxfun(int,int);    //函数
struct __declspec(dllexport) nNode  //结构体
{
    int x;   
};

//mydll.cpp
#include "mydll.h"
extern "C" __declspec(dllexport)int maxfun(int x,int y)
{
    return x+y;
}
__declspec(dllexport)nNode  temp={10};  //这里一个结构体对象

///下面是程序调用dll.
#include <qapplication.h>
#include <qlibrary.h>
#include <qmessagebox.h>

int main(int argc,char* argv[])
{
    QApplication app(argc,argv);
 
    struct mynode
    {
         int i;
    };
    QLibrary lib("mydll");
    mynode* no = (mynode*)lib.resolve("temp");
    if(no)
  {
    QMessageBox::information(0,"name",QString::number(no->i));
    }
    else
    QMessageBox::information(0,"name","no==0");
   
    return app.exec();
}

/////现在结果总是no==0,请指教
离线vifun
只看该作者 5楼 发表于: 2008-10-06
__declspec(dllexport)nNode  temp={10};  //这里一个结构体对象

改为

extern "C" __declspec(dllexport)nNode  temp={10};  //这里一个结构体对象
离线lzy1988
只看该作者 6楼 发表于: 2011-09-19
那调用其中的DLL类呢,我的调用总是有问题
快速回复
限100 字节
 
上一个 下一个