各位仁兄,我是刚学VC的,现在有一个地方要用到DLL的输出参数,但是我现在总是搞不定,怎么样才能让参数输出。
问题哪下:
有一个DLL,就叫CallUserDll.dll吧,在这里面想调用加一个DLL(UserDll.dll)里的方法,getData(char *bookName,char *bookInfo),其中 bookInfo 为输出参数,想通过bookName 来到 bookInfo 的信息,但是我不知道怎么样对能将这个bookInfo信息传出来,并且不能用函数返回值来做,请各位帮帮忙了。
谢谢!
问题哪下:
有一个DLL,就叫CallUserDll.dll吧,在这里面想调用加一个DLL(UserDll.dll)里的方法,getData(char *bookName,char *bookInfo),其中 bookInfo 为输出参数,想通过bookName 来到 bookInfo 的信息,但是我不知道怎么样对能将这个bookInfo信息传出来,并且不能用函数返回值来做,请各位帮帮忙了。
谢谢!
一个值结果参数嘛
getData(char *bookName,char **bookInfo)exe中:
char *tmp=NULL;
getData(bookName,&tmp);
这样tmp就指向你输出的返回数据了
在你的app.exe里
char *bookname="book1.book";
BOOKINFO bookinfo; //你的bookinfo结构
getData(bookname,&bookinfo);dll中,
前面加上dll输出前缀 bool getData(char *bname,BOOKINFO * binfo)
{
......
//处理bookname
binfo->var1=...;
binfo->var2=...;
......
return true; //返回true,说明处理成功
}]这样应该没有问题的呀!
用指针的指针做出参:
getData(char *bookName,char **bookInfo)exe中:
char *tmp=NULL; //这里要分配空间
//char *tmp = new char[64];
getData(bookName,&tmp);
这样tmp就指向你输出的返回数据了//释放 堆空间
//delete [] tmp;