注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

C++小知识71——静态变量的导出  

2016-11-22 10:15:11|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
C++小知识71——静态变量的导出
其实本来也不想干这种事,主要是应用的程序出来一个比较恶心的问题,于是想用这种方法来验证什么原因。什么问题呢?就是一个数据结构体不大,也就几百个字节吧,竟然做为类成员变量分配不出来,一使用memset,这个程序,退出就崩溃。NEW和全局变量没有问题。可是这个字节数也太少了,为什么在栈上分配不出来呢。因为这是一个库,链接式的调用,所以就随着链条向上找,最终使用者是一个智能指针也是分配在堆上的,理论上更不应该分配不出来。
实际使用的情况是,如果不使用 memset,这玩意儿用着也没问题。可能还是加载的顺序和时间的问题,这个库就是难以捉摸。
为了测试,引入了一个静态的变量,结果编译没有问题,链接时报一个错,说“XXX静态变量找不到”,这玩决并没有导出啊,没办法,只好加上了__declspec(dllexport) XXXState XXXClient::_xxxState;,结果好,又报这个类使不得,只好在类的声明前面也增加了__declspec(dllexport),这才过了,可这玩意儿不靠谱啊。
想起原来总结__declspec(dllexport)和__declspec(dllimport)时,提到过,静态变量如果想导出去,这玩决是非常有用的,今天等于是进行了一次完美的实践啊。
前后呼应,来得好。
  评论这张
 
阅读(19)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017