在把一个工程builder成Release版链接时出现以下问题:
lcsado.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CLcsAdoException::GetRuntimeClass(void)const " (?GetRuntimeClass@CLcsAdoException@@UBEPAUCRuntimeClass@@XZ)
CLcsAdoException是一个CRuntimeClass类,在程序中是直接用CLcsAdoException定义对象的。
在build成Debug版本时不会出现这种问题,一切正常。
环境:Windows2000 Professional系统,VC++6.0 SP5,SDK August 2001.
恳请高手帮忙解决!

解决方案 »

  1.   

    这个错误信息的意思是说,在链接的时候,连接器找不到
    CLcsAdoException::GetRuntimeClass 这个函数的入口地址,
    从而无法生成最终的 exe,或者 dll,
    在这种情况下,CLcsAdoException 这个类应该不是你自己些的代码,也就是说,
    这个类的 cpp 文件应该是不在你的工程中的,如果在你的工程中,是不会出现这种情况的。
    打开你的项目设置,在 release 配置中加入 CLcsAdoException 这个类的 lib 文件,
    就可以了,这个 lib 文件,在你的 debug 配置中肯定存在,
      

  2.   

    可是CLcsAdoException 这个类确确实实是自己写的,是从
    CException 继承过来的,是不是需要重写某些函数拿?
      

  3.   

    CLcsAdoException 是从cexception 继承来的,是不是需要重写某些函数拿?
      

  4.   

    你在DEBUG 版本里肯定加入了一些LIB文件,但在RELEASE里没有引入,所以你应该在RELEASE里重新引入,在Project->Settings里面有一个link选项卡,在Object/library modules:下面添上你的lib文件名
      

  5.   

    试试在调换下LIB文件目录的顺序,在OPTIONS框的DICTORY标签下
      

  6.   

    debug时没出问题,而release时出问题。是很正常的。
    问题会集中在指针结构没有初始化。
    因为,在debug版时,系统会自动给指针结构初始化。
    而在release版时,就不会了。
    所以,我建议你看看,你定义的指针结构是不是都初始化了。