一个静态库。编译后,发布给我我使用VC++ 目录的库文件中引用,把头文件也和LIB放一起的,然后通过VC 目录中添加他们的目录
问题来了,通过它给我的头文件我使用,然后 #program lib(lib,"xxx.lib")后
编译 提示  error LNK2001: 无法解析的外部符号 __imp__xxxx  。。这些函数都是 lib 里面已经写好并且实现了的请问下怎么解决呢?

解决方案 »

  1.   

    引入库和头文件不匹配吧!
    要不然就是头文件里没有extern C,而你用C去调用,弄不懂mangling
      

  2.   

    XXX.lib 不全. 大概是  版本不对. 
      

  3.   

    是C写的 lib 我用C++来调用 LIB绝对没问题
      

  4.   

    #pragma comment(lib,"XXXX")??? 什么意思? 麻烦给我说下是怎么回事,这里没问题 lib是导进去了的
      

  5.   

    静态链接lib文件,使用#pragma comment(lib, "XXXX")
    没有#pragma lib命令吧
      

  6.   

    1、#program  编译器表示不懂,忽略之,貌似不认识的directive都会被忽略
    2、你如何得知“lib是导进去了的”?3、你在MSDN的索引里输入#pragma,有非常详尽的解释
      

  7.   

    c++ 如何调用C写的LIB库嘛谁知道的说下 谢谢。extern "C" 是在C的LIB编译的时候修饰,还是导入的时候修饰?还有没有其他办法?
      

  8.   

    都说了 #program lib(lib,"xxx.lib")这个不对
    是这个#pragma comment(lib, "XXXX")
      

  9.   

    打错了而已,你这个打错了能编译通过吗?现在问题是,这个代码是别人写的,他发给我之前,我看了 他没用LIB测试,直接用控制台测试的时候正常,
    但是打包给LIB给我我缺出现这个问题 是杂回事?
      

  10.   

    打错了可能会被忽略
    你用link /dump /all看一下那个lib有哪些符号
      

  11.   

    lib是能用的,我是WIN32 DLL,我把工程属性配置类型改成 lib后 就正常了 。dll 始终出错我看他定义里面写的是
    #ifndef __DECLSPEC_H__
    #define __DECLSPEC_H__#if defined(WIN32) && !defined(STATICLIB)
    #ifdef MINIARP_EXPORTS
    #define LIBSPEC __declspec(dllexport)
    #else
    #define LIBSPEC __declspec(dllimport)
    #endif
    #else
    #define LIBSPEC
    #endif#endif
      

  12.   

    LIBSPEC int GetExternalIP(const char * a1L,const char * a2,char * a3);
      

  13.   

    LIBSPEC 换成__declspec(dllimport)试试