目前日期文章:200812 (4)

瀏覽方式: 標題列表 簡短摘要

 

⓪著作: 蕭沖

 

何謂thread-safe? 這個問題我看過許多論壇都有討論過,都總讓人覺得不很滿意。在此,筆者想要用更logical的方式來把議題說清楚。首先,我們要了解它的定義! 定義若都不明白就難以判別安不安全了!

thread是什麼呢? 可能也有人不太了解。就從這裡開始… 當cpu處理一段(區塊)的程式碼時,從開始的第一行程式碼來跑就算是thead的開始,直到區塊的最後一行程式結束,就算是thread的結束。所謂的「主thread」,在dos (或dos like)程式裡,就是指main( )這個函式的開始到結束的一個thread。而主thread以外的一個子thread則是指程式人員自行在主thread裡再定義一個「程式區塊」,並請cpu同步的去執行那個區塊。

aftcast 發表在 痞客邦 留言(7) 人氣()

⓪編著: 蕭沖

我們知道dll最主要的用途就是在於程式碼共享。而共享的過程中又會演生出全域資料(變數)是否共享的問題。

在多個process間共用同一個dll時,變數的共享與否是靠二個機制:
1/ 不共享全域變數 : 使用copy-on-write的觀念來處理  ( windows 系統自動預設是如此)
2/ 共享全域變數: 我們可以透過把變數放入一個share的segment的記憶體區段內,然後process間就可以共用。

aftcast 發表在 痞客邦 留言(2) 人氣()

⓪編著: 蕭沖

 

經實測VC6能夠使用最穩定的DirectX版本為 sum2004版,往後的版本因為有加入bufferoverflow的安全性問題函數,使得VC6無法正確編譯。

然而,在使用sum2004版的時候,確也發生了一個致命的問題,在網路上找了許久才在日本的網頁上找到答案… 此問題是

d3dx9.lib(fastftoa.obj) : error LNK2001:  "__aulldvrm"

aftcast 發表在 痞客邦 留言(0) 人氣()

⓪編著: 蕭沖

經過數回合的安裝測式後發現,最好的組合有二種:

1/ BcB6(經過update4) + DsPack231 + DirectX 9.0c 第一版(sum2004) + dxsdk_oct2004_extras (修正vc6用的lib)

2/ BcB6(經過update4) + DsPack234 + DirectX 9.0c dec2004

第一種方式還可以配合VC6的使用。第二種則VC6無法使用,會有許多compiler的錯誤,但DsPack在bcb上是正常的。

aftcast 發表在 痞客邦 留言(4) 人氣()