我在做一个射频卡读卡器的上位机的应用软件时,厂商只提供了一个带icbala32.dll的VB例子,现在的情况是VB的例子我搞懂了,但是老板要求要用VC++写应用软件,,,,但是 我发现他们没给icbala32.lib icbala32.h 这两个文件 我按VB例子里的函数声明,自己写了个icbala32.h 但是程序运行后有错误:TestDlg.obj : error LNK2001: unresolved external symbol _unlink_com@4
TestDlg.obj : error LNK2001: unresolved external symbol _rd_card@20
TestDlg.obj : error LNK2001: unresolved external symbol _link_com@4
Debug/ICProgram.exe : fatal error LNK1120: 3 unresolved externals以前都是把 XXXXX.lib XXXXX.h 文件Add To Project/Files 这么使用的,但是现在没有 XXXXX.lib XXXXX.h 这两个文件。。
1。我现在该怎么办 只有 icbala32.dll 文件和一些函数使用说明 在VC里真的不能使用这个动态连接库吗? 如果能使用 怎么使用?

解决方案 »

  1.   

    从错误上看是链接错误,看样子你只能用LoadLibary和GetProcessAddress来显式调用DLL中的函数.
      

  2.   

    楼主,这里有一篇相关的文章,相信对你起作用:http://www.vckbase.com/document/viewdoc/?id=1116
      

  3.   

    用LoadLibrary/GetProcAddress/FreeLibrary的方式使用此DLL。
      

  4.   

    这个有好几种方法,楼上说的都可以,这是动态,这个当然你要知道DLL的导出函数的参数.
    如果你不知道那这个DLL就不好用了.
    如果知道,你就可以自己写一个*.H文件,再用DLL导出一个*.lib
      

  5.   

    由于你有VB的例子,你就知道DLL的导出函数名称,用动态连接的方法就可以完成。也可以将DLL包装到一个类中,构造器和析构器分别调用LoadLibrary和FreeLibrary,并将所有的接口名称映射到你类的函数指针上
      

  6.   

    在 stdafx.h 里(大概其他的也行)加上下面一句话。
    #import "icbala32.dll"
    运气好的话,编译器会自动生成h和lib的