我的发卡器开发包中有wdcrwv.h、wdcrwv.dll、wdcrwv.lib三个文件,头文件我已经定义了,怎么吧动态连接库加到VC中使用啊?我直接将wdcrwv.lib夹道工程中,错误提示说无效文件!

解决方案 »

  1.   

    有静态和动态两种,静态的需要lib而动态的只需要一个dll就可以了(但是要知道函数的定义一般是头文件)动态相对复杂一点!但是掌握了也不是很难
    //第一步  定义函数指针就是你要调用的函数,参数必须一致,不然就内存泄露
    typedef HANDLE (PASCAL * OPEN)(char *,int);
    //第二步  定义本地函数
    //一般前两步都在头文件里面声明
    OPEN   open;
    //第三步 加载dll
    HMODULE m_hLib;
    m_hLib  ::LoadLibrary"E:\\yewufuwu\\TERMINALDLL\\Debug\\TerminalDLL.dll");
    //输入相应的路径
    if(m_hLib == NULL )
    {
       MessageBox("动态连接库没有找到!!!","LoadLibrary",MB_OK);
      return ;
    }
    //第四步
    else
    {
       MessageBox("动态连接库成功打开...","LoadLibrary",MB_OK);
       open=(OPEN)GetProcAddress(m_hLib, "OpenDevice");
    }//第五步
    long  handle =open("EF",1);动态库下的函数如下
    //*************打开终端*****************************************
    HANDLE __declspec(dllexport)  WINAPI
    OpenDevice(char * szType,int nType)
    { hReader=theTerminal.OpenReader(szType,0);
    if(hReader==0)
    return 0;
    DWORD ThreadID=0;
        return hReader;
    }