青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Space

C++, 3DGame

2007年4月20日 #

關于DLL中對象的動態創建與刪除的問題

最近有看到一些文章討論怎樣輕松的使用DLL,其中有一個錯誤,那就是在DLL中創建的對象未在DLL中刪除,如下示:

//someheadfile.h
#include<memory>

class __declspec(dllexport) Interface
{
 
public:
  virtual 
void foo() = 0;
}
;

class __declspec(dllexport) Impl : public Interface
{
 
public:
   virtual 
void foo()
   
{}
}
;

__declspec(dllexport)
std::auto_ptr
<Impl> DLLCreate()
{
  
return std::auto_ptr<Impl>(new Impl);
}

上面的做法貌似可以做到自動刪除動態生成的對象,但,只有DLL和用戶都動態鏈接C/C++運行庫時它才會運行正確,否則,創建和刪除會在不同的堆??臻g進行,從而導致錯誤 
所以還是老實的在提供一個
DLLDelete()用于刪除在DLL中生成的對象。

posted @ 2007-04-20 13:35 Kooyu 閱讀(1581) | 評論 (6)編輯 收藏

2007年4月3日 #

一個浮點數表示產生的問題

半夜里剛睡著又被電話叫醒,一個項目的現場數據出現了錯誤。
我們的程序要分析的報告里的某一個字段使用了定點小數的表示方法,即兩個字節表示整數部分,再兩個字節表示小數部分。剛開始的時候沒注意到這里有個問題,那就是這種表示法要求小數部分一定是定長的,否則,就無法解析。例如,0.03和0.30的表示不同在哪里,0.30可不可以表示成0.300。怪我當初考慮欠佳,失敗。

posted @ 2007-04-03 00:27 Kooyu 閱讀(982) | 評論 (0)編輯 收藏

2007年3月9日 #

ACE_CDR::mb_align(ACE_Message_Block * mb)使用問題

ACE_CDR::mb_align(ACE_Message_Block * mb)用于對齊mb內部數據塊ACE_Data_Block所擁有的內存的起始地址,它的實現大致如下:

void
ACE_CDR::mb_align?(ACE_Message_Block?
* mb)
{
??char?
* ? const ?start? = ?ACE_ptr_align_binary(mb -> base?(),???ACE_CDR::MAX_ALIGNMENT);

??mb
-> rd_ptr?(start);
??mb
-> wr_ptr?(start);
}

由于要執行內存地址對齊,那么mb->base()所指示的地址可能需要向后移動(MAX_ALIGMENT - mb->base() % MAX_ALIGMENT)個字節。但在這個之后,mb->base()指向的可用內存將比它自己薄記的少,如果需要程序正常運行,那么依賴于在往它寫入數據時,寫入的字節數不能大于實際大小(這個實際大小為 :mb的薄記大小-移動的距離),而這需要由程序員來控制,容易出錯也就難免了。

也許可以在函數mb_align內部重設mb的大小,使其薄記大小與實際有效內存大小相符,但這引起內存拷貝,這個代價也太大了。

內存對齊的處理似乎應該在內存分配階段,比如提供類似下面的分配已對齊地址功能的分配器:

struct?Align_Alloc
{
????void?
* ?align_alloc(size_t?size,?unsigned?align)
????{
????????void?
* ?ptr? = ? new ?char[size? + ?align];
????????return?align_mb_ptr(ptr,?align);
????}
};

但ACE實際上沒這么做,它提供mb_align這個與內存分配毫不相干的功能,且希望由程序員自己來解決可能引發的問題!~
?

posted @ 2007-03-09 15:33 Kooyu 閱讀(1616) | 評論 (0)編輯 收藏

2007年3月7日 #

"危險"的函數指針類型的強制轉換

查看一個與別人合作的項目的代碼,發現了一個“隱秘”的問題,模擬這個問題如下:

typedef?void?( * foo_type)( int ,? int );

void?foo1(
int ,? int )
{
}

void?foo2()
{
}

int ?main()
{
??foo_type?f?1
= ? & foo1;??????????????????????// <1>
??foo_type?f?2
= ?(foo_type) & foo2;?? // <2>
???? return 0;
}
語句<1>肯定是對的,語句<2>強轉一個函數類型到foo_type類型,我當時擔心這會不會導致下面的語句導致運行時錯誤:
(*f2)(1,2);

幸運時這里它不會導致錯誤,這是由于:
<1>我們使用C/C++的默認函數調用方式__cdecl,也就是傳入的函數參數是由調用者清理的;
<2>函數foo2沒有使用任何參數。
這種做法肯定不值得提倡,但實際的項目中要避免還是不太容易,畢竟每個人的習慣不一樣,還有為了與框架協同工作,有時候可能也不得不這樣做。但是,一旦函數調用方式發生改變,或者被強轉的那個函數是帶參數的,而它又使用了這些參數,隱秘的錯誤也就埋下了。

posted @ 2007-03-07 13:38 Kooyu 閱讀(3079) | 評論 (1)編輯 收藏

2007年3月6日 #

實在讓人無法忍受

C++ = VC++ = MFC/ATL/COM
我已經記不清多少次看到與此類似甚至比這更離譜的關于C++的表述,真是害人不淺,特別是對C++新手而言。
還有一些C++的半調子動輒批評、諷刺他們一知半解的C++特性,拿C++與另一種毫不相干的語言大肆比較,得出稀奇古怪的結論。

一些氣話,心情不好。

posted @ 2007-03-06 13:17 Kooyu 閱讀(2307) | 評論 (7)編輯 收藏

僅列出標題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美调教vk| 一区二区三区四区五区视频| 免费成人av资源网| 国产精品久久亚洲7777| 欧美中文字幕第一页| 亚洲国产小视频| 欧美精品综合| 亚洲欧美国内爽妇网| 亚洲激情综合| 久久久水蜜桃| 亚洲一区二区三区四区五区黄| 国产欧美日韩另类一区| 欧美精品一卡| 狼狼综合久久久久综合网 | 欧美日韩在线免费| 国产欧美精品日韩精品| 久久一本综合频道| 日韩视频一区二区在线观看 | 91久久久亚洲精品| 国产色视频一区| 欧美日韩在线观看视频| 国产欧美成人| 亚洲另类春色国产| 久久精品亚洲国产奇米99| 亚洲欧美国产不卡| 国产精品99久久久久久久vr| 亚洲精品在线看| 欧美一区二区三区视频在线观看 | aa级大片欧美三级| 亚洲国产婷婷香蕉久久久久久| 国产一区二区三区自拍 | 欧美午夜精品久久久久久浪潮| 欧美日韩国产综合网| 欧美成人影音| 欧美精品一卡| 好看的av在线不卡观看| 在线观看视频一区二区| 永久免费视频成人| 亚洲自拍偷拍色片视频| 亚洲欧洲99久久| 欧美一二三区在线观看| 欧美一区2区视频在线观看 | 亚洲午夜视频在线观看| 欧美~级网站不卡| 亚洲欧洲日本在线| 久久精品国产亚洲a| 久久亚洲私人国产精品va| 欧美一区二区三区日韩视频| 欧美亚洲综合在线| 国产精品国产三级欧美二区| 国产午夜精品麻豆| 亚洲欧美激情一区二区| 亚洲精品之草原avav久久| 亚洲午夜性刺激影院| 欧美一区二区免费| 国产精品成人一区二区三区吃奶| 亚洲精品美女久久7777777| 亚洲专区一区| 亚洲精品中文在线| 欧美日本一区| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 美女视频网站黄色亚洲| 欧美伦理视频网站| 亚洲成人直播| 亚洲免费一在线| 99在线热播精品免费| 久久岛国电影| 韩国一区二区三区在线观看| 欧美在线二区| 久久精品国产亚洲一区二区| 欧美国产专区| 国产亚洲一区二区精品| 久久精品盗摄| 久久久久国产免费免费| 国产精品久久久久久福利一牛影视 | 欧美电影免费网站| 日韩一级免费观看| 男女精品网站| 美女爽到呻吟久久久久| 日韩亚洲在线| 亚洲一区二区在| 欧美日韩免费观看一区二区三区| 这里只有精品在线播放| 欧美成年人在线观看| 欧美国产视频在线| 亚洲欧美日韩国产一区| 久久国产精品72免费观看| 亚洲国产影院| 亚洲一区影音先锋| 亚洲黄色影片| 亚洲一区二区三区在线观看视频| 国产一区二区三区高清| 欧美激情亚洲国产| 久久婷婷av| 亚洲图片你懂的| 久久久久久久一区| 亚洲图片欧美午夜| 久久免费黄色| 午夜精品福利一区二区三区av| 久久精品九九| 亚洲一区综合| 免费成人av在线看| 欧美一区免费| 欧美日韩四区| 欧美大片在线看免费观看| 久久躁狠狠躁夜夜爽| 亚洲综合电影一区二区三区| 久久午夜电影| 久久aⅴ国产紧身牛仔裤| 亚洲欧美综合另类中字| 国产欧美日韩精品专区| 亚洲福利电影| 欧美日韩在线三区| 欧美成人一区二区三区| 国产精品一区在线观看| 欧美在线免费视频| 欧美日韩国产综合久久| 欧美成人在线免费视频| 一本色道精品久久一区二区三区 | 欧美三日本三级少妇三2023 | 欧美人与禽猛交乱配视频| 噜噜噜噜噜久久久久久91| 久久日韩精品| 欧美一级理论片| 国产精品久久77777| 91久久精品国产91性色| 亚洲成色精品| 久久米奇亚洲| 欧美本精品男人aⅴ天堂| 国产一区二区中文字幕免费看| 欧美成人精品h版在线观看| 国产欧美亚洲日本| 亚洲一区二区免费在线| 亚洲伊人一本大道中文字幕| 欧美三级在线| 一区二区久久久久久| 亚洲一区二区视频在线| 欧美日韩成人综合在线一区二区| 亚洲成人在线视频播放| 欧美日韩精品在线视频| 亚洲电影免费| 亚洲精品一线二线三线无人区| 欧美国产日本| 日韩视频免费观看| 狠狠色丁香婷婷综合| 久久国产欧美精品| 欧美不卡福利| 99热免费精品在线观看| 欧美日韩一区二区三区免费看| 一区二区三区www| 欧美一区二区| 伊人成综合网伊人222| 久久综合国产精品| 亚洲激情电影在线| 亚洲少妇中出一区| 国产精品永久免费在线| 久久狠狠婷婷| 亚洲日本成人| 亚洲国产精品一区二区久| 99精品免费网| 欧美一区激情| 亚洲高清在线观看| 欧美日韩在线不卡一区| 欧美亚洲日本网站| 欧美1级日本1级| 在线亚洲国产精品网站| 国产精品一区二区三区免费观看| 久久精品视频va| 亚洲乱码国产乱码精品精可以看| 亚洲欧美日韩另类| 亚洲福利在线看| 国产精品视频专区| a91a精品视频在线观看| 欧美一区二区三区婷婷月色 | 久久久一二三| 一区二区欧美日韩| 国产午夜亚洲精品不卡| 欧美搞黄网站| 国产精品v欧美精品∨日韩| 亚洲人成久久| 久久aⅴ乱码一区二区三区| 亚洲黄色在线| 国产香蕉97碰碰久久人人| 欧美精品尤物在线| 久久精品九九| 亚洲一线二线三线久久久| 亚洲丶国产丶欧美一区二区三区 | 麻豆freexxxx性91精品| 亚洲深夜福利在线| 亚洲国产老妈| 久热精品视频在线免费观看 | 亚洲乱亚洲高清| 欧美成人精品福利| 久久九九免费视频| 一区二区三区在线视频播放| 羞羞视频在线观看欧美| 久久全国免费视频| 亚洲一区二区三区欧美| 亚洲国产精品一区| 黄色免费成人|