在把一个工程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.
恳请高手帮忙解决!
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.
恳请高手帮忙解决!
CLcsAdoException::GetRuntimeClass 这个函数的入口地址,
从而无法生成最终的 exe,或者 dll,
在这种情况下,CLcsAdoException 这个类应该不是你自己些的代码,也就是说,
这个类的 cpp 文件应该是不在你的工程中的,如果在你的工程中,是不会出现这种情况的。
打开你的项目设置,在 release 配置中加入 CLcsAdoException 这个类的 lib 文件,
就可以了,这个 lib 文件,在你的 debug 配置中肯定存在,
CException 继承过来的,是不是需要重写某些函数拿?
问题会集中在指针结构没有初始化。
因为,在debug版时,系统会自动给指针结构初始化。
而在release版时,就不会了。
所以,我建议你看看,你定义的指针结构是不是都初始化了。