老老實(shí)實(shí)用win不就好了。。。。
re: 智能指針LytPtr LOGOS 2009-03-20 16:26
噴不出來XD
沒看出什么不妥的地方
google一下 share_ptr和weak_ptr
1.setPos必然是C函數(shù),注冊(cè)到lua的虛擬機(jī)后,腳本即可調(diào)用該函數(shù)
2.可以自己寫一個(gè)腳本系統(tǒng),如果有閑,有能力,有后期維護(hù)的覺悟
3.從使用者的角度看,腳本最重要的應(yīng)該是萬能容器,類似lua中的table
struct{ int a} test;test是一個(gè)變量
typedef struct{int a} test; test是一個(gè)類型
你把他們當(dāng)成一回事了嗎⊙﹏⊙b
re: mysql的入門(1) LOGOS 2009-03-04 19:50
@true
xmind
http://www.xmind.net/
re: 復(fù)雜的邏輯的BUG LOGOS 2009-03-04 09:07
遍歷的過程很可能會(huì)調(diào)用一些刪除操作,而且調(diào)用得很隱含
這樣的情況是有的,而且不算什么異常的事情
這種情況下采用異步的刪除機(jī)制就可以了
做得不錯(cuò)
最后給的經(jīng)驗(yàn)也很好
1.如果使用腳本,不在每一幀多次由C穿越到lua是沒有意義的,這屬于事件驅(qū)動(dòng)的一種腳本使用方式。既然是利用腳本所擁有的靈活性,那么應(yīng)該按需穿越,而不是限制穿越
2.lua慢于C/C++10倍以上,所以Lua loop_add的計(jì)時(shí)我沒有異議。但是這個(gè)時(shí)間的主要部分是loop_add的運(yùn)行耗時(shí),而不是穿越耗時(shí)
3.Loop lua add的計(jì)時(shí)也是正確的,但是你從該計(jì)時(shí)認(rèn)為穿越很耗費(fèi)就是錯(cuò)誤的。
為什么?因?yàn)槟闶褂昧恕發(fā)ua_getglobal(L, func_name);”,這個(gè)函數(shù)是C函數(shù),負(fù)責(zé)查找和壓棧,即你所謂的穿越中的一步,你用這個(gè)函數(shù)10000000次,字符串的解析和全局表的查找是很費(fèi)時(shí)的,這里真正花在lua_call上的時(shí)間又有多少呢
有關(guān)優(yōu)化調(diào)用lua函數(shù)的方法,可以參考我的
http://m.shnenglu.com/darkdestiny/archive/2008/10/17/luafunction.html
re: DX11與多線程渲染 LOGOS 2009-02-16 17:51
所有的表面都可以并行的渲染
這個(gè)確實(shí)很吸引人
@Dancefire
VC下的源文件一般不會(huì)是utf8的吧
re: 編程雜燴 LOGOS 2009-02-01 08:12
好經(jīng)驗(yàn)收藏
re: perl 入門指引 LOGOS 2009-01-14 21:43
perl的作為腳本語言來說,詞法挺糟糕的,不同的重的變量要用$%@&做區(qū)分;
容器的填充樣式也有(){}[]多種規(guī)定
相比lua,變量只要給名字就可以了,容器的填充樣式只有一種{}
只有在lua缺少相應(yīng)的模塊的情況下,我才考慮perl,畢竟cpan上東西太多了
客戶端接觸太多了
我隨便畫了個(gè),你看看
@cppexplore
》mvc并不是23種設(shè)計(jì)模式的任意一種。
所以我才說他們不是一回事嘛
》我答observer,標(biāo)準(zhǔn)答案mvc,老師給零分,郁悶
observer內(nèi)容很小覆蓋卻很寬泛,當(dāng)然給你0分了,O(∩_∩)O~
@cppexplore
我google了一下,observer是用來在view和model之間解耦的,算是一種常用的方式吧。
不過 mvc是observer的特例 這個(gè)說法太牽強(qiáng)了,他們根本不是同一回事
哈哈,我也用上這個(gè)了
確實(shí)非常容易上手
我記錄id的方式是
function ctrl_set.regist(name, ctrl )
ctrl_set[name] = ctrl
return ctrl
end
dlg = iup.dialog
{
ctrl_set.regist("myfrm",
iup.frame{}),
}
用ctrl_set.myfrm引用即可
re: 3D引擎多線程:渲染與邏輯分離 LOGOS 2009-01-05 11:08
re: 3D引擎多線程:渲染與邏輯分離 LOGOS 2009-01-05 09:20
yf同學(xué)吧。使勁的踩一下,oye,處女踩
我看過的一個(gè)同步方案,和你的不同
邏輯線程在每幀結(jié)束的時(shí)候,將新的渲染context同步到渲染線程中
渲染線程在沒有新的context的仍用老的context渲染
你使用了過于底層的數(shù)據(jù)結(jié)構(gòu)作為數(shù)據(jù)的同步方案,看起來以后的拓展性不是太好。
另外,jl同學(xué)說了,m_index=index在intel的CPU上也許是原子操作,但是其他CPU就不一定了。所以read方法讀取到的是不是一個(gè)合法的索引值很難說
@true
我覺得如果多個(gè)線程做select,連接的數(shù)量規(guī)模較大的話,還是使用epoll或者IOCP好一點(diǎn)
如zuhd所說,內(nèi)核處理的代碼總是相當(dāng)穩(wěn)定和有效率的
@關(guān)中刀客
回復(fù)1就是我想表達(dá)的
回復(fù)2,由主線程在每幀結(jié)束的時(shí)候執(zhí)行真正的發(fā)送——socket對(duì)象是被包裝過的,sendbuf并不是可重入的?;旧暇褪?,我所使用的socketlib無法便利的做到這點(diǎn)
不錯(cuò),最近正有使用lua做些工具的傾向,收獲一個(gè)新工具,不需要編譯的東西真是好東西啊
回調(diào)函數(shù)的問題
btn_brower:action,其實(shí)和wxLua.bind差不多
只不過bind顯式的提供了不同的函數(shù)名綁定到signal的方法
而action則隱含了這一點(diǎn),如果換個(gè)寫法
btn.action = function btn:ooxx() ... end
和bind應(yīng)該是無異的
樓上的做法應(yīng)該是一般人都這樣的
文中提到的解決方案不知道是不是編譯器增加的功能,以前好像不是這樣子的
re: 俄羅斯方塊設(shè)計(jì)的思考 LOGOS 2008-12-29 08:35
UML圖挺好
re: 使用線程局部存儲(chǔ)TLS LOGOS 2008-12-11 09:47
終究是線程 “局部” 存儲(chǔ),看不出和傳參給線程相比,優(yōu)勢(shì)在哪里
re: 求救:我的第一個(gè)C++窗口程序 LOGOS 2008-12-04 21:20
用wxWidget吧
像你這段程序,用wxWidget的話,隨便改改就能編譯并運(yùn)行了
不知道DEV能不能編譯wxWidget
@vczh
type traits
pfpf....
@OHFISH
老狼說得對(duì)
模板不生成對(duì)象
@OHFISH
文章的這句話。。。。
sizeof(int),sizeof(double)
Data::a既不是一個(gè)類型,也不是一個(gè)變量
@過路人
只是一個(gè)簡(jiǎn)單的模板而已
R即成員變量的類型
template<typename R , typename T>
size_t member_size( R T::* )
{
return sizeof(R);
}
printf( "%d\n" , member_size( &Data::c );
convert<100>( ... )
{
convert<98>()
convert<96>()
convert<94>()
convert<92>()
......... N extand
convert<2>()
}
說真的,這個(gè)函數(shù)除了看起來漂亮,我真的不覺得有什么好的
re: 安全的list LOGOS 2008-11-18 17:06
頂樓上
mark it & lazy delete
這樣做在在邏輯上更為完整,相對(duì)于作者直接刪除對(duì)象而言
一開始我也用你現(xiàn)在說的這套東西
后來我發(fā)現(xiàn),自己手工寫makefile,比搞這東西容易和效率多了
re: 打造自己的Unit Test工具 LOGOS 2008-11-14 08:50
輪子,雖然是以學(xué)習(xí)為目的
使用太繁瑣,我現(xiàn)在手頭上使用的非常方便
TEST( testa )
{
}
TEST_F( fixture , testb )
{
}
win98,VC5.0,可見這是多老的文章
根本沒有粘包這種東西,TCP本身是流協(xié)議,包這種概念,不過是人加上的
至于收包和分包,中規(guī)中矩的解決方案是:
1.TCP棧收到包后,立即拷貝到用戶空間的一段循環(huán)緩沖區(qū)上
2.回調(diào)OnRead
3.在OnRead中,進(jìn)行分包。包結(jié)構(gòu)像文章的圖5那樣也行,不過類型是多余的,分包的話有包的長(zhǎng)度就夠了。長(zhǎng)度不屬于包邏輯的一部分,而類型則是
4.根據(jù)包長(zhǎng)度從循環(huán)緩沖區(qū)中讀取完整的包進(jìn)行處理,重復(fù)這個(gè)過程,直到?jīng)]法讀取出完整的包為止
5.清除循環(huán)緩沖區(qū)上已經(jīng)被處理的包
總而言之,TCP粘包什么的,根本就不存在。文章居然還搞得多線程什么的。。。
re: 怎么做codereview LOGOS 2008-10-17 10:12
如果做一下codereview就能解決bug的話
軟件業(yè)就不會(huì)是現(xiàn)在這個(gè)樣子了
認(rèn)同你的做法
這種做法很常見,簡(jiǎn)單實(shí)用
re: 讓人無語的boost LOGOS 2008-10-15 14:06
我是看到boost就貼邊走
咱惹不起,還躲得起
re: 材質(zhì)的可視化編輯 LOGOS 2008-10-08 19:05
可視化編輯器
很強(qiáng)
bless
話說你一個(gè)學(xué)生為啥會(huì)大晚上的讓手收傷?
@a
呵呵,挺逗
我的意見是,隨便看看socket raw api,了解個(gè)大概
然后找一個(gè)簡(jiǎn)單的框架用就可以了,比如c++ socket lib
re: 初探DirectDraw 第1集 LOGOS 2008-09-26 11:56
直接看D3D吧
DD已經(jīng)是很古老的東西了
re: Ogre在游戲開發(fā)中逐幀更新 LOGOS 2008-09-25 08:49
這是開了兩個(gè)線程嗎?
一個(gè)做DP和flip
另一個(gè)回調(diào)frameRenderingQueued
re: 垃圾收集的那點(diǎn)事(J) LOGOS 2008-09-23 10:57
re: 垃圾收集的那點(diǎn)事(I) LOGOS 2008-09-22 14:11
@來支持
沒聽說過,搜索了一下,不知道你說的是不是這個(gè)
http://blog.csdn.net/xushiweizh/archive/2006/11/19/1396573.aspx
這個(gè)autofreealloc的責(zé)任很明確-----理解該垃圾回收器的關(guān)鍵點(diǎn)在于,是在于理解它的目標(biāo):為一個(gè)復(fù)雜的局部過程(算法)提供自動(dòng)內(nèi)存回收的能力。
所以從各種意義上他都比yfgc簡(jiǎn)單得多
感嘆一下
已經(jīng)老婆孩子了,最好還是能深入一個(gè)領(lǐng)域,長(zhǎng)期駐扎在一個(gè)公司
另外給性格問題一個(gè)建議吧:
吃別人的飯,聽別人的話
re: 再辨同步/異步與阻塞/非阻塞 LOGOS 2008-09-11 17:59
如果你是指將控制權(quán)交給客戶端,那么異步和非阻塞沒什么差別
但是非阻塞的東西不一定會(huì)給你回調(diào)通知,而異步則一定會(huì)
我覺得這兩個(gè)詞不是用來描述同樣的事情的