各位仁兄,我是刚学VC的,现在有一个地方要用到DLL的输出参数,但是我现在总是搞不定,怎么样才能让参数输出。
问题哪下:
    有一个DLL,就叫CallUserDll.dll吧,在这里面想调用加一个DLL(UserDll.dll)里的方法,getData(char *bookName,char *bookInfo),其中 bookInfo 为输出参数,想通过bookName 来到 bookInfo 的信息,但是我不知道怎么样对能将这个bookInfo信息传出来,并且不能用函数返回值来做,请各位帮帮忙了。
        谢谢!

解决方案 »

  1.   

    dll不能传全局变量吧,用指针就可以了啊。
    一个值结果参数嘛
      

  2.   

    用指针的指针做出参:
    getData(char *bookName,char **bookInfo)exe中:
    char *tmp=NULL;
    getData(bookName,&tmp);
    这样tmp就指向你输出的返回数据了
      

  3.   

    没必要吧,
    在你的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,说明处理成功
    }]这样应该没有问题的呀!
      

  4.   

    同意:livelivelive(神仙般的生活) 
     
    用指针的指针做出参:
    getData(char *bookName,char **bookInfo)exe中:
    char *tmp=NULL;        //这里要分配空间
                           //char *tmp = new char[64];
    getData(bookName,&tmp);
    这样tmp就指向你输出的返回数据了//释放 堆空间
    //delete [] tmp;