自己写了个lib 在exe中调用,出现以下错误:
error LNK2019: 无法解析的外部符号"public: __thiscall CTestSession::CTestSession(void)" (??0CTestSession@@QAE@XZ),该符号在函数"public: virtual int __thiscall CTest_ConSession::Init(class Observer *,char *,int)" (?Init@CTest_ConSession@@UAEHPAVIObserver@@PADH@Z) 中被引用.              
CTestSession是lib中的一个类,编译lib没问题,在exe上编译会出现上述的错误。
编译环境VC2005, 高手指教

解决方案 »

  1.   

    我只会VC++6.0。
    猜测问题是你没有把这个lib包含进来?
    我是Lib和Exe是在一个WorkSpace里的。所以就在代码中输入#include,然后在Project->Dependencies里面选择那个lib工程,不知道这样算不算调用lib?
      

  2.   

    你没有将.lib文件放入到输入库之中。
    你的第二个问题应该是不可能出现的,仔细检查自己是否做过修改。
      

  3.   

    需要让你的 exe 依赖那个 lib 工程, 这样 exe 就会在 lib 源程序中找你需要调用的函数.
    选中你的 exe 所用的工程, 然后在设置依赖关系,
    VC6 是菜单:Project->Dependencies
    VS2005 是菜单: 项目->项目依赖项 ...
    在需要被 exe 依赖的工程边打上勾.
      

  4.   

    我是在VS2005的一个sln中包含lib和exe 的,目录设置肯定是没有问题的,  因为用其他的lib不会出错。
      

  5.   

    依赖关系也是有的, 我是在lib文件中引入了别人的写的一个lib,会出现问题,在lib中用自己写的lib编译通过。exe
     ^
     |
    lib(自己封装的lib)
     ^
     |
    lib(别人提供的媒体lib)这样子就会出现问题
    ///////////////exe
     ^
     |
    lib(自己封装的lib)
     ^
     |
    lib(自己写的一个的媒体lib)这样就不会有问题。
      

  6.   

    #pragma comment (lib, "yourlib.lib")