青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評(píng)論 :: 0 Trackbacks
公告
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊(cè)
公告照片
搜索
積分與排名
積分 - 659814
排名 - 25
最新評(píng)論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡(luò)庫(kù)
asio 成為C++首選網(wǎng)絡(luò)庫(kù)
--linda
2.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個(gè)mingw編譯好的OrzNet庫(kù)給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
5.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯(cuò)誤(11060)
2.?SVN中邪惡的replace(10984)
3.?VS2005編譯libevent(10430)
4.?混音算法的學(xué)習(xí)與研究(10237)
5.?C調(diào)用lua腳本的效率測(cè)試(9020)
評(píng)論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯(cuò)誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
behaviac動(dòng)態(tài)庫(kù)運(yùn)行出錯(cuò)
behaviac動(dòng)態(tài)庫(kù)運(yùn)行出錯(cuò)
(金慶的專欄 2017.3.16)
游戲是靜態(tài)鏈接的運(yùn)行庫(kù),添加behaviac動(dòng)態(tài)庫(kù)后,運(yùn)行出錯(cuò):
> ucrtbased.dll!free_dbg_nolock(void * const block, const int block_use) 行 996 C++
ucrtbased.dll!_free_dbg(void * block, int block_use) 行 1030 C++
libbehaviac_msvc_debug.dll!operator delete(void * block) 行 17 C++
libbehaviac_msvc_debug.dll!std::_Deallocate(void * _Ptr, unsigned int _Count, unsigned int _Sz) 行 132 C++
libbehaviac_msvc_debug.dll!std::allocator<std::_Container_proxy>::deallocate(std::_Container_proxy * _Ptr, unsigned int _Count) 行 720 C++
libbehaviac_msvc_debug.dll!std::_Wrap_alloc<std::allocator<std::_Container_proxy> >::deallocate(std::_Container_proxy * _Ptr, unsigned int _Count) 行 988 C++
libbehaviac_msvc_debug.dll!std::_String_alloc<std::_String_base_types<char,std::allocator<char> > >::_Free_proxy() 行 661 C++
libbehaviac_msvc_debug.dll!std::_String_alloc<std::_String_base_types<char,std::allocator<char> > >::~_String_alloc<std::_String_base_types<char,std::allocator<char> > >() 行 629 C++
libbehaviac_msvc_debug.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >() 行 1018 C++
libbehaviac_msvc_debug.dll!behaviac::CTagObject::Save(behaviac::IIONode * node, const char * szClassName) 行 100 C++
libbehaviac_msvc_debug.dll!behaviac::Agent::InitVariableRegistry() 行 476 C++
libbehaviac_msvc_debug.dll!behaviac::Agent::Init_(int contextId, behaviac::Agent * pAgent, short priority, const char * agentInstanceName) 行 227 C++
giant_test_client.exe!behaviac::Agent::InitAgent(behaviac::Agent * pAgent, const char * agentInstanceName, const char * agentInstanceNameAny, bool bToBind, int contextId, short priority) 行 56 C++
giant_test_client.exe!behaviac::Agent::Create<PlaneAgent>(const char * agentInstanceName, int contextId, short priority) 行 88 C++
giant_test_client.exe!Client::InitPlayer() 行 36 C++
giant_test_client.exe!Client::Client() 行 23 C++
giant_test_client.exe!main() 行 50 C++
giant_test_client.exe!invoke_main() 行 64 C++
giant_test_client.exe!__scrt_common_main_seh() 行 253 C++
giant_test_client.exe!__scrt_common_main() 行 296 C++
giant_test_client.exe!mainCRTStartup() 行 17 C++
kernel32.dll!@BaseThreadInitThunk@12() 未知
ntdll.dll!___RtlUserThreadStart@8() 未知
ntdll.dll!__RtlUserThreadStart@8() 未知
看來(lái)是string跨越動(dòng)態(tài)庫(kù)析構(gòu)。
如果string在動(dòng)態(tài)庫(kù)中構(gòu)造又析構(gòu),動(dòng)態(tài)庫(kù)的運(yùn)行時(shí)庫(kù)可以與主程序不同。
但如果用主程序的運(yùn)行時(shí)申請(qǐng)內(nèi)存,在動(dòng)態(tài)庫(kù)中用另一個(gè)運(yùn)行時(shí)庫(kù)釋放,就會(huì)產(chǎn)生上面的錯(cuò)誤。
可以建立一個(gè)最小化的程序來(lái)復(fù)現(xiàn)上面的錯(cuò)誤。
新建一個(gè)行為樹,為Agent創(chuàng)建一個(gè)屬性。
然后主程序運(yùn)行庫(kù)設(shè)為:多線程調(diào)試 (/MTd),而不是:多線程調(diào)試 DLL (/MDd)。
調(diào)試運(yùn)行創(chuàng)建Agent時(shí)就會(huì)出上面錯(cuò)誤。
疑問(wèn)是這是動(dòng)態(tài)庫(kù)內(nèi)部調(diào)用,怎么會(huì)產(chǎn)生跨庫(kù)析構(gòu)呢?
斷點(diǎn)進(jìn)入string的構(gòu)造過(guò)程可以發(fā)現(xiàn),string不是動(dòng)態(tài)庫(kù)構(gòu)造的,而是主程序構(gòu)造的:
> test_client.exe!behaviac::StringUtils::internal::ToString(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & val) 行 138 C++
test_client.exe!behaviac::StringUtils::Detail::ToStringPtrHanler<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,0>::ToString(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & v) 行 192 C++
test_client.exe!behaviac::StringUtils::Detail::ToStringEnumHanler<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,0>::ToString(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & v) 行 228 C++
test_client.exe!behaviac::StringUtils::Detail::ToStringStructHanler<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,0>::ToString(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & val) 行 242 C++
test_client.exe!behaviac::StringUtils::ToString<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & val) 行 256 C++
test_client.exe!behaviac::SetFromString_t<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,0>::Get(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & value) 行 790 C++
test_client.exe!behaviac::CProperty<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::GetValueToString(const behaviac::Agent * self) 行 848 C++
libbehaviac_msvc_debug.dll!behaviac::CTagObject::Save(behaviac::IIONode * node, const char * szClassName) 行 97 C++
libbehaviac_msvc_debug.dll!behaviac::Agent::InitVariableRegistry() 行 476 C++
libbehaviac_msvc_debug.dll!behaviac::Agent::Init_(int contextId, behaviac::Agent * pAgent, short priority, const char * agentInstanceName) 行 227 C++
test_client.exe!behaviac::Agent::InitAgent(behaviac::Agent * pAgent, const char * agentInstanceName, const char * agentInstanceNameAny, bool bToBind, int contextId, short priority) 行 56 C++
test_client.exe!behaviac::Agent::Create<PlaneAgent>(const char * agentInstanceName, int contextId, short priority) 行 88 C++
test_client.exe!Client::InitPlayer() 行 36 C++
test_client.exe!Client::Client() 行 23 C++
test_client.exe!main() 行 50 C++
test_client.exe!invoke_main() 行 64 C++
test_client.exe!__scrt_common_main_seh() 行 253 C++
test_client.exe!__scrt_common_main() 行 296 C++
test_client.exe!mainCRTStartup() 行 17 C++
kernel32.dll!75c3336a() 未知
[下面的框架可能不正確和/或缺失,沒(méi)有為 kernel32.dll 加載符號(hào)]
ntdll.dll!76fa9902() 未知
ntdll.dll!76fa98d5() 未知
原因?yàn)?IProperty::GetValueToString()是虛函數(shù),實(shí)際實(shí)現(xiàn)是由主程序?qū)崿F(xiàn)模板類。
behaviac::CProperty<>::GetValueToString()
解決方案為使用behaviac靜態(tài)庫(kù)并且靜態(tài)鏈接運(yùn)行時(shí)庫(kù)。
posted on 2017-03-16 11:40
金慶
閱讀(764)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
1. C/C++
、
2. 網(wǎng)游開發(fā)
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內(nèi)存錯(cuò)誤
std::thread 中的異常會(huì)丟失調(diào)用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標(biāo)記
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美激情在线有限公司
|
美女国内精品自产拍在线播放
|
欧美日韩亚洲一区在线观看
|
欧美日韩影院
|
亚洲在线观看免费视频
|
香蕉成人伊视频在线观看
|
99视频精品全国免费
|
欧美日韩免费观看一区二区三区
|
亚洲一区二区三区四区中文
|
午夜精品久久久久久久99黑人
|
极品少妇一区二区三区
|
亚洲国产视频一区二区
|
欧美乱人伦中文字幕在线
|
午夜精品久久久久久久99黑人
|
欧美/亚洲一区
|
欧美激情综合五月色丁香
|
午夜精品久久久久久
|
久久综合中文字幕
|
亚洲女人天堂av
|
久久影院亚洲
|
午夜欧美不卡精品aaaaa
|
久久阴道视频
|
午夜亚洲性色视频
|
欧美成年人视频网站
|
午夜精品久久久久影视
|
女女同性精品视频
|
久久精品噜噜噜成人av农村
|
欧美日韩三级视频
|
久久只有精品
|
国产精品免费观看在线
|
欧美黄色精品
|
国产一区二区按摩在线观看
|
亚洲三级电影全部在线观看高清
|
国产一区二区丝袜高跟鞋图片
|
亚洲二区免费
|
黄色亚洲在线
|
亚洲永久免费视频
|
中文国产亚洲喷潮
|
蜜臀91精品一区二区三区
|
欧美在线视频全部完
|
欧美日韩精品高清
|
亚洲国产91精品在线观看
|
国产亚洲毛片在线
|
亚洲视频电影图片偷拍一区
|
日韩一区二区久久
|
蜜臀av一级做a爰片久久
|
欧美一区二区三区在线看
|
欧美日韩亚洲网
|
亚洲黄网站黄
|
亚洲精品久久在线
|
麻豆成人av
|
麻豆精品精品国产自在97香蕉
|
国产亚洲福利社区一区
|
亚洲一区日韩
|
亚洲自拍偷拍视频
|
国产精品国码视频
|
国产精品99久久久久久久久
|
国产精品99久久久久久有的能看
|
免费观看30秒视频久久
|
欧美成人a视频
|
永久免费视频成人
|
久久久国产精品亚洲一区
|
亚洲自拍另类
|
国产精品一区久久
|
亚洲欧美国产另类
|
欧美在线一区二区
|
黄色成人在线网址
|
美女主播一区
|
亚洲国产精品日韩
|
牛牛国产精品
|
一本到12不卡视频在线dvd
|
一区二区免费在线播放
|
欧美性猛片xxxx免费看久爱
|
亚洲视频大全
|
久久色在线观看
|
亚洲国产欧美一区二区三区丁香婷
|
久久青草欧美一区二区三区
|
欧美成人精品一区二区
|
亚洲人成小说网站色在线
|
欧美精品三级
|
亚洲欧美国产不卡
|
欧美r片在线
|
在线视频欧美精品
|
国产色爱av资源综合区
|
久久婷婷丁香
|
日韩视频免费观看高清在线视频
|
小黄鸭精品密入口导航
|
樱桃视频在线观看一区
|
欧美激情亚洲自拍
|
中国成人在线视频
|
免费成人网www
|
亚洲综合成人在线
|
亚洲国产成人精品女人久久久
|
欧美日韩精品国产
|
欧美一区二区精美
|
亚洲欧洲午夜
|
久久亚洲欧美
|
亚洲一区二区三区视频
|
激情亚洲成人
|
欧美午夜宅男影院
|
久久中文欧美
|
亚洲在线一区二区
|
亚洲第一在线综合在线
|
午夜精品视频在线观看
|
亚洲日本国产
|
国产午夜精品在线观看
|
欧美三级乱码
|
欧美电影在线观看完整版
|
香港久久久电影
|
一区二区三区视频免费在线观看
|
欧美大片一区
|
欧美一区亚洲二区
|
亚洲视频综合
|
91久久久久久
|
黄色欧美成人
|
国产欧美精品日韩
|
欧美日韩一区二区三区四区五区
|
久久久噜噜噜久噜久久
|
亚洲电影免费在线
|
猫咪成人在线观看
|
久久久久一区
|
欧美伊人久久
|
欧美一级专区免费大片
|
亚洲与欧洲av电影
|
一区二区三区日韩欧美精品
|
亚洲激情六月丁香
|
在线观看成人一级片
|
国产日本欧美一区二区
|
国产精品毛片在线
|
欧美午夜激情小视频
|
欧美日韩亚洲一区
|
欧美理论电影在线观看
|
你懂的成人av
|
欧美成人免费一级人片100
|
久久久久国内
|
久久久五月天
|
久久综合一区二区三区
|
久久久五月婷婷
|
久久亚洲一区
|
免费h精品视频在线播放
|
老司机午夜精品视频在线观看
|
久久久亚洲国产天美传媒修理工
|
亚洲一区二区三区精品动漫
|
欧美一级播放
|
久久精品日韩欧美
|
蜜桃av噜噜一区
|
欧美高清在线观看
|
91久久视频
|
亚洲网站在线
|
欧美一区二区在线免费播放
|
久久精品二区三区
|
免费久久精品视频
|
欧美片第一页
|
国产欧美日韩一区二区三区在线观看
|
国产欧美在线视频
|
精品999久久久
|
亚洲精品国产系列
|
亚洲欧美国产另类
|
久久青草久久
|
亚洲经典在线
|
午夜精品亚洲
|
欧美va日韩va
|
国产精品久久久久久久久久直播
|
国产午夜亚洲精品不卡
|
亚洲欧洲另类国产综合
|
一区二区三区欧美成人
|
久久er99精品
|
欧美激情91
|
99精品视频免费观看
|
性欧美大战久久久久久久久
|
蜜臀av在线播放一区二区三区
|
欧美日在线观看
|
国产视频精品免费播放
|
最新国产成人av网站网址麻豆
|
中文一区在线
|
美女精品网站
|
亚洲一区二区三区在线看
|
免费成人高清视频
|
国产日本精品
|
亚洲私人影吧
|
蘑菇福利视频一区播放
|
国产精品99久久久久久白浆小说
|
久久婷婷影院
|
国产精品一区二区在线观看网站
|
亚洲精品美女在线
|
久久福利毛片
|
99re这里只有精品6
|
久久亚洲一区二区
|
国产日韩欧美中文
|
亚洲一区在线看
|
亚洲成人在线免费
|
久久一区国产
|
亚洲性夜色噜噜噜7777
|
欧美二区在线播放
|
国模精品一区二区三区色天香
|
一级成人国产
|
亚洲激情网站免费观看
|
另类尿喷潮videofree
|
国产视频久久
|
欧美一区二区女人
|