error LNK2001: 无法解析的外部符号 "protected: virtual struct - 小众知识

error LNK2001: 无法解析的外部符号 "protected: virtual struct

2015-10-28 12:44:19 苏内容
  标签: LNK2001
阅读:7515

error LNK2001: 无法解析的外部符号 "protected: virtual struct AFX_MSGMAP const * __thiscallSelectDLG::GetMessageMap(void)const " (?GetMessageMap@SelectDLG@@MBEPBUAFX_MSGMAP@@XZ)
1>MainFrm.obj : error LNK2001: 无法解析的外部符号 "protected: virtual struct AFX_MSGMAP const * __thiscall SelectDLG::GetMessageMap(void)const " (?GetMessageMap@SelectDLG@@MBEPBUAFX_MSGMAP@@XZ)
 fatal error LNK1120: 1 个无法解析的外部命令
 3 个错误,0 个警告

 

编程报错了,忙活了一晚上终于错误找到

其实,这是不应该出现的,出现这个原因是因为创建一个新类时,不能设置基类为CObject,随便选择了一个基类,然后,在将其改为CObject。当然,改变的过程是比较麻烦的,所以也就出现了很多的错误。上面是其中之一。
“MSGMAP”这个词出现在了错误中,说明与MessageMap有关。经过无奈的网上查询和自己对照,终于才将问题找了出来。

“DECLARE_MESSAGE_MAP()”就是因为多加了一句这个。


所以,再将基类改变后,特别是改为CObject后,要特别注意不再需要MessageMap。要将与他有关的全部删除干净。而用DECLARE_SERIAL(  )和IMPLEMENT_SERIAL( ,  ,  ),这是CObject是最基类的性质决定的。

扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1