写了一个小程序(windows 控制台程序),想调用unrar.dll中的函数RAROpenArchive.用VC 6.0编译运行都没问题,但是就是调用不了这个函数,请懂unrar.dll的人给我指点一下,谢谢。源文件代码如下:call_unrar_dll.cpp#include "stdio.h"
#include "stdlib.h"
#include "windows.h"
#include "unrar.h"int main(int argc, char *argv[])
{
    char Achieve_Name1[50];
    struct RAROpenArchiveData *Achieve_Data1;    Achieve_Data1=(struct RAROpenArchiveData *)malloc(sizeof(struct RAROpenArchiveData));    typedef HANDLE (PASCAL *PF_RAROpenArchive)(struct RAROpenArchiveData *);    PF_RAROpenArchive pf_RAROpenArchive1=NULL;    HINSTANCE hDLL1;
    printf("please input the achieve file name to open:\n");
    scanf("%s",Achieve_Name1);    Achieve_Data1->ArcName=Achieve_Name1;
    Achieve_Data1->OpenMode=RAR_OM_EXTRACT;
    Achieve_Data1->CmtBuf=NULL;
    Achieve_Data1->CmtBufSize=0;    hDLL1=LoadLibrary("unrar.dll");
    if(hDLL1!=NULL)
    {
        printf("unrar.dll has been loaded...\n");
    }    pf_RAROpenArchive1=(PF_RAROpenArchive)GetProcAddress(hDLL1, "RAROpenArchive");
    if(pf_RAROpenArchive1!=NULL)
    {
        printf("RAROpenArchive loaded!\n");
        (*pf_RAROpenArchive1)(Achieve_Data1);        printf("Achieve_Data1->OpenResult is: %d\n",Achieve_Data1->OpenResult);    }
    if(FreeLibrary(hDLL1))
    {
        printf("unrar.dll has been free...\n");    }    return 0;
}运行的结果是这样的:please input the achieve file name to open:
aaa.rar
unrar.dll has been loaded...
RAROpenArchive loaded!
Achieve_Data1->OpenResult is: 15  //如果 RAROpenArchive成功打开aaa.rar.文件,这个值应该是0,15表示打开失败
unrar.dll has been free...
Press any key to continue
aaa.rar是我在Debug文件夹下随便放的一个rar文件。
unrar.dll我也放在Debug文件夹下了。
unrar.h我也放在工程文件夹下了unrar.h 和unrar.dll 我都是从rarlab的官网上下的。用过unrar.dll的人都知道怎么回事儿,没用过的人看看应该很快就会明白。
我的问题就是为什么调用unrar.dll中的RAROpenArchive函数,却打不开aaa.rar这个文件呢?希望高人不吝赐教,谢谢!