我调用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,请指教