@violin
如果用DLL或LIB的話,注意傳入UNICODE字符串就可以了。
如果要源代碼方式重用的話,不知道改動大不大。
支持多文件
@OwnWaterloo
我覺得我的需求有點既要“被中止”又要“主動中止”的意思。。。事實上好像免不了在任務(wù)函數(shù)里插入檢測語句或者如上面說的標(biāo)記點。。。算了,,,應(yīng)該就差不多那樣子了。
另外,我突然覺得。一個“好”的程序,不,一個正確的程序。里面除了 WaitForSingleOnject(..., 0) 和 WaitForSingleOnject(..., INFINATE) 之外,是不應(yīng)該出現(xiàn) WaitForSingleOnject(..., 其他數(shù)值) 的,就像不應(yīng)該出現(xiàn) TerminateThread 一樣。這看法合理否?
@SOS
嗯,我有處理的,目錄的話 zipOpenNewFileInZip 里那個 ZIP中的文件名加一個“/”,然后不要添加數(shù)據(jù)直接zipCloseFileInZip就可以了
@SOS
那就 zipOpenNewFileInZip,然后直接 zipCloseFileInZip,不要寫數(shù)據(jù)了
我記得處理過的,等下檢查下
@yrj
所以最后還是需要類似我開頭寫的那樣子,是嗎?
@OwnWaterloo
好像有點矛盾的感覺。。。
但是,安全的退出點我覺得是必須的。比如我在寫文件,過程雖然中斷了但是我必須保證已寫部分是符合格式的,還可能要寫點結(jié)尾性質(zhì)的數(shù)據(jù);又比如我在更改一系列具有關(guān)聯(lián)的狀態(tài)數(shù)據(jù),我必須保證這些數(shù)據(jù)的一致性,不能隨便找個點退出;。。。是不是?
我想了解對于此類函數(shù)你們大家都是怎樣寫的?是否也跟我一樣隔段代碼檢測一下隔段步驟再檢測一下?
@放屁阿狗
不錯。那么是不是只能像我一開始舉例的那樣子寫任務(wù)代碼呢?任務(wù)代碼里要充斥著退出條件檢測?
@OwnWaterloo
還是同樣的問題啊,在執(zhí)行 ctx.Eip = (DWORD)cancel; 的時候,原始的代碼執(zhí)行到哪一步了呢?當(dāng)下是否適合跳到別處呢?
@天堂的隔壁
@yrj
我發(fā)這篇文章,說這么多,就是為了不使用暴力手段。不然怎么知道線程究竟在哪兒被結(jié)束的?只有天知道了
re: 再次批判 裘宗燕 溪流 2011-05-20 00:27
@Martin
這個解釋我看過,雖然作者是經(jīng)過深思熟慮的;可是拋開已有的約定成俗的翻譯,去造一個生僻詞,個人并不怎么認(rèn)同。
另外,LZ沒有對裘老師做任何人身攻擊,只是客觀的闡述他的看法而已,用“批判”并無任何不尊敬之處。何況,學(xué)術(shù)交流、學(xué)術(shù)批判,本來就該在平等的基礎(chǔ)之上進(jìn)行的,尊敬了反而不好。只要不帶惡意人身攻擊,任何質(zhì)疑、批判,偶覺得都是可行的。不然就得這樣說話了:
裘老師在書里把 inline 翻譯成了‘在線’了。作為一個著名譯者,應(yīng)該不會犯這樣的低級錯誤的,一定是他有他的想法??墒俏覍W(xué)識淺薄,有點不理解裘老師的用意,弱弱地覺得還是按照大眾譯法說成‘內(nèi)聯(lián)’好一些。不知道是不是?
別扭不?
@風(fēng)聲邊界
當(dāng)作普通文件處理,ZIP格式保證了其中可以含有ZIP文件。
編譯示例代碼,運行 ZLibWrapTest.exe 測試看看?我試過好像沒問題。
re: GUI庫分塊 溪流 2011-05-09 07:57
@陳梓瀚(vczh)
那也該有自己的虛擬控件管理體系嘛
@釀妹汁
當(dāng)然要較真,因為LZ較真了?,F(xiàn)在LZ不較真了,于是我們也可以不較真。這就是態(tài)度。
re: GUI庫設(shè)計前奏 溪流 2011-05-06 23:10
@陳梓瀚(vczh)
你到處推銷codeplex啊~
re: GUI庫分塊 溪流 2011-05-06 23:08
LZ考慮的好像都是些外圍的東西。
那些內(nèi)在的消息處理等等,處理起來并不輕松的樣子。要很細(xì)致入微、精巧才行。
嚴(yán)格的說,LZ想做的不是GUI庫,是GUI上層庫了。
@裝配腦袋
遇到了SVN,我就不再碰CVS了;遇到了GIT,一段時間后我又回到了SVN。。。
@陳梓瀚(vczh)
可以知道啊,即便是C#工程,花一點點時間了解下試驗下,就可以了呀
不用VS插件,只用資源管理器插件,不就沒事了么。。
@天下
哎,,我說的不是學(xué)術(shù)上的,而是工程上的。
學(xué)術(shù)上倒是可以假定某個操作是原子的,就可以了;假定實時性“不高”也可以。。。
@天下
這不是能被說成“實時性高不高”的,只有兩種情形:1、需要線程安全;2、不需要線程安全。不存在兩者之間的模糊界限,否則,即使是你認(rèn)為的是實行不高的場景,在用戶那里一定會出現(xiàn)你預(yù)料之外的情況。
@天下
還是不可以。
1、如果GetData是從數(shù)據(jù)庫或者文件獲取,那么線程安全的責(zé)任被轉(zhuǎn)嫁到了相關(guān)的IO層面;如果是放在內(nèi)存中,那么這里你還是需要解決線程安全問題。
2、你的 IsModified 變量的改變,也不具有原子性。當(dāng)數(shù)據(jù)源更新后,可能在你試圖將 IsModified 改為 True 的同時,線程 A 已經(jīng)讀到了舊的 False 值。
其實,特征很好找,保證線程安全必須有具備原子操作特征的玩意兒出現(xiàn),如 Windows 下的 CriticalSection、InterlockedIncrement 等等;如果沒有,你就沒法保證。
@陳梓瀚(vczh)
這樣子啊,,我原先也嫌多,打算幾個幾個小范圍合并來著。。。合并成一個。。。。。我想想。。。。
@陳梓瀚(vczh)
Exchange通訊錄里木有等級。。。
@ccsdu2009
哎,目前好像只能這樣了。期待不定模版參數(shù)。。
@陳梓瀚(vczh)
問題是我想回的時候,總不能一個一個查他們的資料吧?那樣就太累了。。。下午那人至少比我高四個級別。。。
@foxtail
哥今天也碰了個壁很郁悶。公司里某人群發(fā)郵件說造了 json 的輪子,偶很興奮,表示支持的同時,看他們的宣傳點除了性能還是性能,于是多說了幾句提了下不要只關(guān)注性能考慮點易用性等等。結(jié)果沒想到那個人是個很高級別的家伙,針對我的意見一一表示已經(jīng)做到或已經(jīng)在考慮了,最后再加一句“把文章看完是一件很重要的事情”。NND,不爽。
@oo
NULL 檢查還是有點意義的吧,這是唯一能檢查的值,其他情況就讓用戶自生自滅吧,檢查了 NULL 就表示告訴用戶我盡力了。。。
拋異常我也覺得不妥,這里沒必要引入異常體系
re: Win32 RPC 編程(一) 溪流 2011-04-27 09:28
@liweihua
/LIBPATH:"X:\xxx\xxx"
@C小加
嗯?你要表達(dá)什么意思?和C++0x有何關(guān)系?
re: 博客遷移 溪流 2011-04-24 21:19
獨立博客雖然自在些,但博客還是需要交流的,獨立博客很難有一個相對穩(wěn)定的圈子??戳瞬┲鞯膸灼恼?,覺得博主是個樂于分享的人,希望不要過于淡出CppBlog,期待能有更多的碰撞和交流~
@Kenny Jiang
正因為壓棧是主調(diào)函數(shù)做的,所以,如果存在你說的“編譯器不同導(dǎo)致‘棧不同’”的問題,出棧工作不是應(yīng)該同樣由主調(diào)函數(shù)承擔(dān)才不至于出問題嗎?所以從這一點上說,__cdecl 顯得更合理。
其他的,是否語言間能互相識別,只要遵循同樣的調(diào)用約定就可以了,不存在某種調(diào)用約定的特殊優(yōu)勢。
@Kenny Jiang
你可以仔細(xì)看看我的回復(fù)以及樓上,我覺得你理解的有問題
1、最新 C++ 標(biāo)準(zhǔn)是 C++03 吧?
4、引號的搜索路徑中我記得是當(dāng)前目錄找不到就找include目錄,這是標(biāo)準(zhǔn)吧?
@Kenny Jiang
這怎么說?壓棧工作難道不是主調(diào)函數(shù)做的?
其實,從設(shè)計角度上說,還是覺得__cdecl 合理些,誰創(chuàng)建誰銷毀
re: WinInet編程中如何使用異步 溪流 2011-04-18 12:37
@4321
僅僅WinCE下InternetReadFileEx未實現(xiàn)而已
re: 移居北京 溪流 2011-04-12 15:58
@陳梓瀚(vczh)
呃,好吧,轉(zhuǎn)調(diào)。
期待成品啊。
再加上MIDI導(dǎo)入導(dǎo)出吧,嘿嘿。
re: 移居北京 溪流 2011-04-11 22:35
@千暮(zblc)
太復(fù)雜了啊,搞個編輯器生成譜子的腳本,再搞個渲染器生成圖片,支持簡譜、五線譜,支持各種變調(diào),就已經(jīng)很強(qiáng)大了
re: 移居北京 溪流 2011-04-11 22:23
打算搞個語法來定義音符和各種記號嗎?