叫什麼不打緊's profile單身不是罪PhotosBlogListsMore ![]() | Help |
|
September 29 花蓮驚奇之旅話說...跟之前一樣一時的口舌之快讓這次的旅行成行...
參加人員:英X一家人,挖特,棉森,我。
出發的前一天就知道有颱風要來,而且會從花蓮宜蘭東部登陸不過礙於某些原因大夥還是硬著頭皮出發XD
一行人在海洋公園漫步。
當天星期六的天氣就很不穩定,雨勢一陣一陣。
看的第一場秀美人魚秀,其實是海牛...我還以為會有比基尼辣妹潛水...
第二場秀的解說,介紹各種海底生物...主持人還有介紹哪種魚比較好吃....(舔嘴)
重頭戲之一,海豚秀...很厲害沒話說...有錢應該養兩隻,這養下次沖浪就可以耍帥了~ lol
瞧瞧這入場的盛況...ㄟㄟ颱風天還出門玩,你們頭殼有問題嗎?
海獅,海狗,海豹傻傻分不清楚@@,不過這場表演挺逗趣的也不錯,好像小朋友對於這種表演會比較有反應。
英X 跟他的小姪女玩碰碰船...
============================== 悲慘分隔線 ==============================
星期日強烈颱風"薔蜜"從花蓮登陸,一早離開民宿打算走原路蘇花趕回去,走到途中時聽到警廣說已經有坍方,而且沿路風雨超大看不到什麼路,加油站的小弟也說很多車開往蘇花後都折返了;因為尚未確定星期一的情況所以大家決定趕回去台北,於是展開環島之旅。囧rz
台東池上很意外的台東幾乎感受不到颱風的風雨...忘了買兩包池上米回來做紀念。
屏東的加油站...旁邊有地圖標示位置....忘了買萬巒豬腳回家孝敬母親
越開越晚風雨也越來越大...
清水休息站....車子越接近台中發現風雨越來越大,開車在高速公路上車子還會出現漂移@@
考量安全情況之下最後還是決定在台中住一晚,反正明天放颱風假。 A_A ㄎㄎㄎ
一樣忘了買台中太陽餅。 = ="
....沒想到長那麼大第一次開房間是在這種情況之下,哀...不勝唏噓。(而且還是 男男男 )
Motel 的電視頻道確實是"精采"沒話說...不知道是哪家Cable業者。
隔天清早起床就啟程回台北了...大約中午時刻到家,結束了這場驚奇之旅~ September 16 阿財交了一堆新朋友~IE6 R6025的錯誤 and 中秋節快樂這個問題困擾了我快一星期,最後找到原因是我的ActiveX內因為要丟出Audio的資料,於是在播放聲音的Thread內呼叫了Fire_OnNewAudioFrame()這個自訂Event事件,莫名奇妙的會在某些WinXP SP2 + IE6電腦上執行一段時間後產生R6025的錯誤,找了好多網路上的資訊結果最後印證都不是他們說的原因...所以寫這一篇獻給其他苦主。
願辜狗大神保佑大家!
越來越覺得自己不適合再繼續寫程式了...照理說有了6-7年工作經驗應該碰到問題可以迎刃而解才對,結果每次遇到這種棘手的問題最後也是搞到自己累的半死,對於微軟更是又愛又恨,愛的是我靠它吃飯,恨的是它老是出難題給我...看來我的能力還有待加強...或者,去加強賣雞排的能力?
中秋節又快到了...不知道中秋會不會在瞎掰一篇,所以先祝大家中秋快樂!
===============================正解===============================
HRESULT Fire_OnNewVideoFrame(VARIANT theBuffer, long theWidth, long theHeight, long thebpp, long theFormat)
{ CComVariant varResult; T* pT = static_cast<T*>(this); int nConnectionIndex; CComVariant* pvars = new CComVariant[5]; int nConnections = m_vec.GetSize(); for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) { pT->Lock(); CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex); pT->Unlock(); IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p); if (pDispatch != NULL) { VariantClear(&varResult); //寫反的關係?有待驗證...
pvars[4] = theBuffer; pvars[3] = theWidth; pvars[2] = theHeight; pvars[1] = thebpp; pvars[0] = theFormat; DISPPARAMS disp = { pvars, NULL, 5, 0 }; pDispatch->Invoke(0xff000B, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); } } delete[] pvars; return varResult.scode; } 正確答案是 Lock() 跟 Unlock() 這兩個函式,由於我的類別是繼承 CComObjectRootEx ,所以這兩個函式必須去覆寫他,也就是自己要在這兩個函式內寫CRITICAL_SECTION,這樣在Fire Event時才不會因為在不同Thread呼叫而造成錯誤。
|
|
|