changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1600回复:11

在一个.CPP的文件中,在函数前加一个Virtual 就出错,不加 编译能通过?

楼主#
更多 发布于:2005-02-04 23:31
class RegBase
{
  virtual ~RegBase() {}
};

去掉这个virtual就能正确编译 , 加上编译就出错。
我是在别人的代码上做修改 所以这个vitual是一定要保留的
别人的代码编译是能通过的

error LNK2019: unresolved external symbol "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) referenced in function "public: virtual void * __thiscall RegBase::`scalar deleting destructor'(unsigned int)" (??_GRegBase@@UAEPAXI
@Z)
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-05 20:52
class RegBase
{
public:
virtual ~RegBase()
{
}
} ;
这样可以编译通过
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-05 21:31
AllenZh ,

你骗我, 不行啊!
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-06 14:44
会不会是你的开发环境设置欠妥呢?
[b]万水千山总是情,回个帖子行不行?[/b]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-06 20:00
AllenZh ,

你骗我, 不行啊!
 

我骗你!我有必要骗你吗?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-02-06 23:09
ft
这哪是编译错误,明明是链接错误!
changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-15 11:31
我发现从头开始来 堆代码 就不会再有这个问题

有些问题不必搞得那么清楚
bh_zhouqian
驱动牛犊
驱动牛犊
  • 注册日期2002-04-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-02-19 13:20
"从头开始来 堆代码"
是么子意思喽?
changys
驱动小牛
驱动小牛
  • 注册日期2004-11-15
  • 最后登录2008-08-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-21 09:10
从DriverEntry开始,
一步一步的添加代码
我不确定 是什么原因产生这个错误
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-02-21 15:22
从DriverEntry开始,
一步一步的添加代码
我不确定 是什么原因产生这个错误

从你的错误信息error LNK2019: unresolved external symbol "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) referenced in function "public: virtual void * __thiscall RegBase::`scalar deleting destructor'(unsigned int)" (??_GRegBase@@UAEPAXI
@Z)
肯定是连接错误出现乱码(??3@YAXPAX@Z),肯定跟你的区域设置有关系,如果设置成中国,直接下载的代码中可能有些符号便错了,重写一遍,消除了这样的错误,我以前遇到过多次
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2005-02-22 12:19
[quote]从DriverEntry开始,
一步一步的添加代码
我不确定 是什么原因产生这个错误

从你的错误信息error LNK2019: unresolved external symbol \"void __cdecl operator delete(void *)\" (??3@YAXPAX@Z) referenced in function \"public: virtual void * __thiscall RegBase::`scalar deleting destructor\'(unsigned int)\" (??_GRegBase@@UAEPAXI
@Z)
肯定是连接错误出现乱码(??3@YAXPAX@Z),肯定跟你的区域设置有关系,如果设置成中国,直接下载的代码中可能有些符号便错了,重写一遍,消除了这样的错误,我以前遇到过多次 [/quote]
ft,这怎么成了乱码?这是C++的函数名修饰
不知道楼主是不是用了DriverWorks。在驱动中用C++...
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-02-23 09:59
[quote][quote]从DriverEntry开始,
一步一步的添加代码
我不确定 是什么原因产生这个错误

从你的错误信息error LNK2019: unresolved external symbol \"void __cdecl operator delete(void *)\" (??3@YAXPAX@Z) referenced in function \"public: virtual void * __thiscall RegBase::`scalar deleting destructor\'(unsigned int)\" (??_GRegBase@@UAEPAXI
@Z)
肯定是连接错误出现乱码(??3@YAXPAX@Z),肯定跟你的区域设置有关系,如果设置成中国,直接下载的代码中可能有些符号便错了,重写一遍,消除了这样的错误,我以前遇到过多次 [/quote]
ft,这怎么成了乱码?这是C++的函数名修饰
不知道楼主是不是用了DriverWorks。在驱动中用C++... [/quote]
那??3@YAXPAX@Z是什么函数,难道是3吗?再说,为什么重写一边就好呢?
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部