re: 自己動手封裝LuaEngine zuhd 2010-05-05 09:47
@陳梓瀚(vczh)
我這里的封裝,不如說是腳本文件管理,我對template的使用沒有到那個層次,呵呵
re: 自己動手封裝LuaEngine zuhd 2010-05-05 09:45
@megax
貌似這個東東不能在linux下使用,需要自己DIY??
re: 某內存池中的指針用法 zuhd 2010-05-04 10:55
@小時候可靚了
我個人覺得
union BLOCK
{
DWORD next;
unsigned char data[BLOCKSIZE];
};
這樣寫都行,只要能把這個指針的地址保存到 data的前4個字節,后面自己做強制轉換就好了,不過BLOCK* next這樣的格式是科學的,用void* 或DWORD來聲明指針,然后用*(T*)這樣的格式去取,就太不和諧了
re: 游戲中的容器設計 zuhd 2010-05-03 09:15
@expter
是必須的,我思考的是無聊的玩家頻繁交換兩個格子內的物品,不做增減操作,是否有必要給個cold down?
re: 碩士論文致謝 zuhd 2010-04-30 09:51
好文,程序員亦有真情。更期待一文關于“陸鳳”的,呵呵,你懂的
re: 函數中分配內存的問題 zuhd 2010-04-28 09:26
buddy, some asm code will make it clear!
看到了這個好報,我仿佛看到了Linus的身影,but, without desitination like linux.我還是要頂一下,國內缺少的就是這種free & remote cooperation!!!希望你們能成功
re: [原]譯:一個游戲引擎所應具有的元素 zuhd 2010-04-27 09:35
我只想說樓主你很ass hole,你要是想備忘,拜托不要發到首頁好嗎!你轉到csdn的那些東西只會浪費大家的時間
如果單模塊的邏輯單一而且復雜,那就考慮拆出來單獨一個進程網絡通訊吧,那就永遠沒有callback了
這種情況我一般會這樣做,
class A
{
Root* m_pRoot;
}
class B
{
Root* m_pRoot;
}
class Root
{
A* m_a;
b* m_b;
}
讓Root來統一管理所有的數據,然后root提供出一些接口,讓a和b來做他們自己想做的事情,a,b去拿root的數據,root來回調a,b這樣能解決單向的callback.
re: 方法與工具 zuhd 2010-04-15 09:37
很同意第二條
re: 靜態變量的初始化問題 zuhd 2010-03-07 18:02
@小蘇
class CTest1
{
public:
CTest1()
{
printf("init\n");
}
};
class CTest2
{
public:
static CTest1 m_test;
};
CTest1 CTest2::m_test;
這段代碼按道理講是和上面的代碼功能類似的,
這段是可以打印出來的。
至于上面那段為什么沒有打印,
思考中(難道模板必須要實例化才能成為有效代碼??),期待高手解答
奇怪為什么有這樣的需求?為什么不用udp,udp可以穿越NAT
以前獲取mac地址時用到了這個東西,基本上用的第一個方案,學習!
謝謝孔雀的熱心回復,我還是有很多問題不懂:
1,template <typename T>
typename Singleton<T>::object_creator
Singleton<T>::create_object;
這句話的初始化把我弄糊涂了,我甚至連這句話的語法都沒有看懂
2,我下了斷點
如果我寫了int sint = Singleton<int>::instance();
這樣instance就會斷進去兩次,請解釋下!謝謝
沒明白你加的那段代碼放在什么地方,麻煩你貼個完整的代碼好嗎?謝謝
沒怎么看懂上面一段代碼,作者能詳細的解釋下嗎?謝謝
void Call(Base *ptr)
{
ptr->Call();
}
直接這樣傳函數指針不就可以了嗎?為什么要求是虛擬繼承啊,普通的函數指針不行嗎?
棧里有函數的返回地址,所以溢出了,覆蓋了返回地址,函數執行完就出錯了。
==========================================
這句話是重點,當ret的時候,call下條指令時異常了,如果你多定義了幾個變量,讓棧溢出不到函數的返回地址,錯誤依然不會出現的
對于堆來講,生長方向是向上的,也就是向著內存地址增加的方向;對于棧來講,它的生長方向是向下的,是向著內存地址減小的方向增長。看下反匯編代碼一切都明白了
re: 使用gdb跟蹤C語言中變長數組的實現 zuhd 2009-11-02 09:45
感謝提供詳細的asm分析,但是看了你這篇文章后,我還是沒有明白為什么要在arg[16]的位置保存了arg[0]的地址,另外:
變長數組在實現時實際上退化為了指針,原先定長的數組,它的地址同時也就是容納數組元素位置的首地址,而變長數組,退化為了指針,該指針指向的位置才是真正容納數組元素的首地址.
二維數組或是char** p的原理應該都是這樣的吧?
請指教
re: 基類角色之對象管理器 zuhd 2009-07-03 09:55
@Kevin Lynx
兄弟這段代碼很經典啊,學習了!
re: 用gdb跟蹤函數棧楨的變化情況 zuhd 2009-07-01 09:35
push %ebp ;保存ebp寄存器
mov %esp,%ebp ;將esp寄存器保存到ebp
sub $0x18,%esp ;調整esp,用以保存返回地址和局部變量,這個調整值并不確定,根據局部變量的情況而定
這樣的指令看起來好怪哦,這和在windows下的調試有什么區別?
用指針做key有什么意義呢?它和int做索引有什么區別?
re: 一年過去了... zuhd 2009-05-25 09:24
Just do it! Pretty girl
re: 復雜的邏輯的BUG zuhd 2009-03-04 09:37
只要是同一份內存數據,在同一個線程中,就不會出現所謂沖突的問題,仔細檢查下代碼,看看,你后面說的遍歷刪除map的問題是防止刪除最后一個元素的時候越界
nice English, how can you do this, really amazing!
re: 關于jmp相對跳的一道程序分析 zuhd 2009-02-13 09:43
理解jmp的時候,只要理解為ip"平移了n byte"而不是"移動到"這樣就不會搞錯了,我也是uestc的,不過畢業2年了,我郵箱:huhf#21mmo.com,大家一起學習
re: perl 入門指引 zuhd 2009-01-15 09:43
準備學習lua
心跳包要互發的和正常的req->ack一樣,也就是說保持穩定的脈沖,我覺得只要在最外面暴露登陸服務器和業務服務器,登陸服務器驗證完之后,告訴客戶端連接哪個業務服務器之后,這個鏈接就可以回收了
re: 自己設想的一個IM服務器的架構 zuhd 2009-01-14 09:40
1,服務器分層不太清晰,登陸服做的事情過多,考慮可以分層實現
2,消息跨服需中轉,如果服務器很多的話,那么服務器組的管理也是一個問題
re: 一道有意思的題目,大家看看輸出:) zuhd 2009-01-13 09:58
樓上說的內存泄漏是存在的,泄漏了4* (4 + 4) = 32 BYTE,在后面的4次只是刪除了成員指針,但沒有刪除自己(sizeof(B)),還有這種構造函數的嵌套是極不提倡的,如果基類的成員不是int,是int*的話,估計會讓人很頭痛的
re: VS2005斷點失效的問題 zuhd 2009-01-05 09:49
PDB文件失效了,Clean->Rebuild即可
re: 多線程下的select網絡程序結構 zuhd 2009-01-04 09:44
epoll的優勢是輪詢的效率高,會忽略閑置的fd,select不會。不管什么網絡模型,感覺網絡事件和邏輯處理都是兩個線程的,而且只需兩個線程。我比較同意1樓的想法,感覺很成熟。
re: linux學習一:wchar輸出 zuhd 2008-12-29 10:14
還是看看簡單點的界面開發。最關心的就是圖形 圖像 文本 窗口這些東西。
=============================================
我暈,為啥在linux下做這些東西啊
請問你這些代碼是在邏輯層的么?在邏輯層不是直接調用epoll的api就可以了么?沒明白你的意思和代碼哦
re: 在不同模塊分配和釋放內存時出錯的原因 zuhd 2008-12-29 09:46
建議dll中的函數參數都是原始類型,int ,char* 等
re: 中國象棋程序開發筆記 zuhd 2008-12-29 09:41
直接load一張底圖是很方便啊,不過,一點一點畫也能提高自己的能力,贊一個
re: 面試在華為 zuhd 2008-12-19 10:01
真的很魔鬼,雖然這樣的方式不能選出最好的人,但是有一點是可以肯定的,就是可以淘汰掉差的人。
=================================================
我覺得這話說的很中肯啊,上次在外旅游的時候也接到這個電話,被我拒絕了,一個是我已經上班了,主要是,我擔心去了打擊我的自信心,我覺得我肯定不會有博主做的好,good job!
re: 赫夫曼編碼 zuhd 2008-12-17 09:47
這樣看你的代碼更像一道作業題,其實你可以重構封裝一下,作為一個kit來用,提供給大家下載,這樣更有易讀和易用性