PV3Tool beta修得差不多了,原本有人反應說toolbar按鈕會一直閃而且不能按,
也回報沒問題了。(不過我完全沒改半行code說......)
其實我一直覺得這問題是driver的關係,因為我這邊原本開發的機器跟新組的電腦,
兩台跑起來都沒問題,我也去挖了XP日文版來測試,也是一樣沒問題。
真要說改了什麼的話,就是有把一些跟字串有關的sizeof改成了_countof ... 該不會是
memory爆了什麼的造成這個問題吧XD...。只能說又學到東西了:)
另外就是修掉了載入電視台logo功能裡面讀檔會掛掉的問題,這算是當初在unicode化時
沒注意到就改了。因為logo檔那邊的檔頭還是用ascii code的,所以檔頭structure裡面的
char[]被我改成TCHAR[]後就會有問題。改回原本的char[]後就沒問題了。
再來我還加了個可以自由切換aero mode開關的功能。
因為我自己在windows7下用,錄影的結果很正常,但monitor的畫面都頓頓的。
關掉aero mode就正常了。看來aero mode是很漂亮,但也吃掉一些資源。
最後就只剩下OSD在Directdraw off-screen surface會一直被消掉造成閃爍的問題。
這個我想只能用個thread一直強迫重畫才行,不知道會吃掉多少cpu。
有興趣的人可以下載final beta
for winxp
for vista/windows7
source code
2010年2月28日 星期日
2010年2月27日 星期六
sizeof, _countof
_countof -> static array的element數
sizeof -> 某個型態/變數的byte數
TCHAR haha[100]
sizeof(haha) in unicode = 200
sizeof(haha) in multibyte = 100
_countof(haha) in both = 100
no _countof() ? use sizeof(haha) / sizeof(TCHAR)
這東西真的會影響很多...
一堆strncpy什麼的 如果之前都寫sizeof的話 會掛得很難看..
sizeof -> 某個型態/變數的byte數
TCHAR haha[100]
sizeof(haha) in unicode = 200
sizeof(haha) in multibyte = 100
_countof(haha) in both = 100
no _countof() ? use sizeof(haha) / sizeof(TCHAR)
這東西真的會影響很多...
一堆strncpy什麼的 如果之前都寫sizeof的話 會掛得很難看..
標籤:
Note,
Programming
2010年2月26日 星期五
iPhone App Info->Identifier
from iPhone Dev Center
Example App ID: A1B2C3D4E5.com.domainname.applicationname
Identifier to enter in Xcode: com.domainname.applicationname
Example App ID: A1B2C3D4E5.com.domainname.*
Identifier to enter in Xcode: com.domainname.${PRODUCT_NAME}
Example App ID: A1B2C3D4E5.*
Identifier to enter in Xcode: ${PRODUCT_NAME:rfc1034identifier}
Example App ID: A1B2C3D4E5.com.domainname.applicationname
Identifier to enter in Xcode: com.domainname.applicationname
Example App ID: A1B2C3D4E5.com.domainname.*
Identifier to enter in Xcode: com.domainname.
Example App ID: A1B2C3D4E5.*
Identifier to enter in Xcode: ${PRODUCT_NAME:rfc1034identifier}
標籤:
iPhone,
Note,
Programming
iPhone Dev
今天真的差一點就要抓狂了XDD
iPhone的codesign一直有問題,每次程式傳上去iPhone之後,
GDB就說沒辦法跟iPhone連線orz
網路上有很多解法,像是重作Provisioning Profile、重開機、改plist都沒用
最後怒了,把Xcode整個刪掉重新裝一次。
就好了 囧囧囧囧囧囧.......
我覺得應該是我之前在試bypass sign check的時候改了Xcode的設定
結果試完之後沒有改回來
總之,終於可以實機debug了。
果然實機跑起來比較知道程式操作起來的感覺。
開始來寫一些測試的程式
iPhone的codesign一直有問題,每次程式傳上去iPhone之後,
GDB就說沒辦法跟iPhone連線orz
網路上有很多解法,像是重作Provisioning Profile、重開機、改plist都沒用
最後怒了,把Xcode整個刪掉重新裝一次。
就好了 囧囧囧囧囧囧.......
我覺得應該是我之前在試bypass sign check的時候改了Xcode的設定
結果試完之後沒有改回來
總之,終於可以實機debug了。
果然實機跑起來比較知道程式操作起來的感覺。
開始來寫一些測試的程式
標籤:
iPhone,
Programming
2010年2月25日 星期四
PV3Tool(續)
ok剛剛說按鈕有問題的人回報了 還錄了影片
看了一下 應該是更新按鈕state的部份有問題
或是timer的重畫時間太長
之前有試著改過timer時間為15ms畫一次
在off-screen surface下 osdbar不會一直閃
不過到了window7下因為aero的關係還是沒辦法解決
先丟一個timer 15ms的版本試試好了
如果還是有問題就要大改code了.....
看了一下 應該是更新按鈕state的部份有問題
或是timer的重畫時間太長
之前有試著改過timer時間為15ms畫一次
在off-screen surface下 osdbar不會一直閃
不過到了window7下因為aero的關係還是沒辦法解決
先丟一個timer 15ms的版本試試好了
如果還是有問題就要大改code了.....
PV3Tool
2ch那邊有人提到Clipboard的問題
稍微看一下code,發現原來我忘了改Clipboard的資料類型
原本是設定成ANSI TEXT,但因為整個程式都unicode化了
所以本來的檔案路徑也都變unicode了,所以抓圖完的Clipboard都會只有一個char
因為一般ascii code在unicode下都變成0x00??了,在記憶體裡排列就變成
?? 00,然後00剛好是null terminate,所以都只會有一個char
2000/XP之後有新的參數是可以指定Clipboard的資料內容是unicode text了,
改了之後就正常了,順便加上可以由ini/profile指定Clipboard字串format。
這樣應該就方便很多了。
不過有人說toolbar的按鈕問題解決了說XD
我根本沒動其它的code阿XD 要說其它修改的話,只有針對xp和windows7的def作修改
真是怪怪,不過沒問題就好,不然其實我也找不出原因orz
我換了兩台電腦都OK,想說再不行就只好灌日文XP來試了 XD
anyway, 沒問題就好:D
稍微看一下code,發現原來我忘了改Clipboard的資料類型
原本是設定成ANSI TEXT,但因為整個程式都unicode化了
所以本來的檔案路徑也都變unicode了,所以抓圖完的Clipboard都會只有一個char
因為一般ascii code在unicode下都變成0x00??了,在記憶體裡排列就變成
?? 00,然後00剛好是null terminate,所以都只會有一個char
2000/XP之後有新的參數是可以指定Clipboard的資料內容是unicode text了,
改了之後就正常了,順便加上可以由ini/profile指定Clipboard字串format。
這樣應該就方便很多了。
不過有人說toolbar的按鈕問題解決了說XD
我根本沒動其它的code阿XD 要說其它修改的話,只有針對xp和windows7的def作修改
真是怪怪,不過沒問題就好,不然其實我也找不出原因orz
我換了兩台電腦都OK,想說再不行就只好灌日文XP來試了 XD
anyway, 沒問題就好:D
2010年2月24日 星期三
2010年2月23日 星期二
2010年2月22日 星期一
Classicdanjon fuyokunomasoujin
再打一次Classicdanjon fuyokunomasoujin......應該沒打錯吧XD
剛剛在台灣PSN上看到這個遊戲的時候,我一直在嘗試要把名字完整的念出來
.
.
.
.
.
這是什麼東東阿XDD
類似的狀況也發生在最近發售的「100万トンのバラバラ」遊戲上面
100万トン = 1000000t 很忠實的翻譯 (我沒多打0吧XD)
兒子:「爸,我想買那個...個十百千萬十萬百萬...,一百萬噸的八拉八拉。」
女友:「那個看起來很有趣耶,叫什麼名字?」
.......我數一下個十百千萬十萬百萬......。
請加油XD 台灣PSN
剛剛在台灣PSN上看到這個遊戲的時候,我一直在嘗試要把名字完整的念出來
.
.
.
.
.
這是什麼東東阿XDD
類似的狀況也發生在最近發售的「100万トンのバラバラ」遊戲上面
100万トン = 1000000t 很忠實的翻譯 (我沒多打0吧XD)
兒子:「爸,我想買那個...個十百千萬十萬百萬...,一百萬噸的八拉八拉。」
女友:「那個看起來很有趣耶,叫什麼名字?」
.......我數一下個十百千萬十萬百萬......。
請加油XD 台灣PSN
2010年2月19日 星期五
PV3Tool問題
2ch那邊有人提到不能按toolbar上的open memory等按鈕的問題..
..........我都可以耶XD..... 這是要怎麼debug... -.-||
只好暫時先擺放了,反正他們還有areya的版本可以用
我不用unicode版的話畫面會很亂而且會有當機bug
話說最近還發現windows7的winmm.dll export function的順序編號跟XP不一樣了
不過怎麼用起來沒差.... 為了保險起見,我還是改了def檔
免得出一些怪問題
請大家開始學寫unicode程式了,不然你的程式永遠只能給自己用
..........我都可以耶XD..... 這是要怎麼debug... -.-||
只好暫時先擺放了,反正他們還有areya的版本可以用
我不用unicode版的話畫面會很亂而且會有當機bug
話說最近還發現windows7的winmm.dll export function的順序編號跟XP不一樣了
不過怎麼用起來沒差.... 為了保險起見,我還是改了def檔
免得出一些怪問題
請大家開始學寫unicode程式了,不然你的程式永遠只能給自己用
2010年2月17日 星期三
2010年2月16日 星期二
2010年2月10日 星期三
PV3Tool抓圖問題修正
會產生問題的原因是IDirectDrawSurface7::Lock()時會有SURFACE_BUSY的問題,加了一個新的參數MaxSnapShotRetry 讓程式在Lock有問題時可以重新再嘗試Lock
PV3Tool用Hook的方式... 這問題應該沒有好的解法吧
PV3Tool用Hook的方式... 這問題應該沒有好的解法吧
2010年2月5日 星期五
FindWindow與多語系 - 3
本來應該解決這個問題了
不過又半路殺出個程咬金
"另存新檔" -> 在xp, vista, windows7, 不管是x32或x64 中文版或日文版都能正確抓到字串
"開啟舊檔" -> 在xp, vista, windows7中 顯示出來是 "開啟舊檔"
但在windows7 中 comdlg32.dll裡存的字串卻是 "開啟" Orz
後來才發現 原來開啟舊檔的dialog應該是用dialog resource內#1547的dialog...
標題寫的正是"開啟舊檔"
不過打開其它的dialog 有的標題寫"開啟" 有的寫 "開啟舊檔"...... Orz
最後終於讓我用另一個方法解決這問題了
WM_ENTERIDLE會回傳給dialog的parent window
所以在parent window裡面攔這個message 其中的LPARAM就是dialog的handle了 -.-||
如果要確定是我們要的那個dialog 就用getdlgitemtext之類的檢查一下就好
不過又半路殺出個程咬金
"另存新檔" -> 在xp, vista, windows7, 不管是x32或x64 中文版或日文版都能正確抓到字串
"開啟舊檔" -> 在xp, vista, windows7中 顯示出來是 "開啟舊檔"
但在windows7 中 comdlg32.dll裡存的字串卻是 "開啟" Orz
後來才發現 原來開啟舊檔的dialog應該是用dialog resource內#1547的dialog...
標題寫的正是"開啟舊檔"
不過打開其它的dialog 有的標題寫"開啟" 有的寫 "開啟舊檔"...... Orz
最後終於讓我用另一個方法解決這問題了
WM_ENTERIDLE會回傳給dialog的parent window
所以在parent window裡面攔這個message 其中的LPARAM就是dialog的handle了 -.-||
如果要確定是我們要的那個dialog 就用getdlgitemtext之類的檢查一下就好
標籤:
Programming,
PV3Tool
2010年2月3日 星期三
FindWindow與多語系 - 2
今天終於解決(?)這個問題了
因為save dialog是依據comdlg32.dll來創造的,所以在comdlg32.dll中
就含有dialog對應的string resource
用visual studio開啟comdlg32.dll (個人是使用XP SP3)
可以看到resource id=385 就是我們要的 "另存新檔"
根據這個結果,寫了下面的程式:
LoadString((HINSTANCE)GetModuelHandle(_T("comdlg32.dll")), 385, buf, 1024);
這樣buf的內容就會是"另存新檔" 再丟給FindWindow就能找到我們要的dialog的handle
FindWindow(MAKEINTATOM(32775), buf) 這樣子就能找出SaveDialog的handle
vista下LoadString也能得到"另存新檔"字串
windows7下應該也沒有問題 而且在windows7下打開comdlg32.dll可以看到其它語系的string table
其它語系的"另存新檔" id也同樣是385
所以這個方法應該沒有問題吧... XD
現在要測試在64bits的os是否也能得到相同結果
>> 64bits OS OK!!
因為save dialog是依據comdlg32.dll來創造的,所以在comdlg32.dll中
就含有dialog對應的string resource
用visual studio開啟comdlg32.dll (個人是使用XP SP3)
可以看到resource id=385 就是我們要的 "另存新檔"
根據這個結果,寫了下面的程式:
LoadString((HINSTANCE)GetModuelHandle(_T("comdlg32.dll")), 385, buf, 1024);
這樣buf的內容就會是"另存新檔" 再丟給FindWindow就能找到我們要的dialog的handle
FindWindow(MAKEINTATOM(32775), buf) 這樣子就能找出SaveDialog的handle
vista下LoadString也能得到"另存新檔"字串
windows7下應該也沒有問題 而且在windows7下打開comdlg32.dll可以看到其它語系的string table
其它語系的"另存新檔" id也同樣是385
所以這個方法應該沒有問題吧... XD
現在要測試在64bits的os是否也能得到相同結果
>> 64bits OS OK!!
標籤:
Programming,
PV3Tool
2010年2月2日 星期二
FindWindow與多語系
最近遇到一個問題
有支程式,原本是日本人開發的。有個部份是程式會去檢查是否有跳出"另存新檔"的視窗
如果有,程式會代替使用者按下"儲存"按鈕.. 原本的程式是這樣寫的
FindWindow(NULL, _T("名前を付けて保存"))
"名前を付けて保存"就是日本的另存新檔的意思
這樣子寫,在日文的作業系統下運作當然是沒有問題
但是到了中文的系統下就不行了 因為中文的系統下 另存新檔視窗的title就是"另存新檔"
所以程式如果不修改的話,FindWindow一定會找不到對應的視窗
當然改成FindWindow(NULL, _T("另存新檔"))這樣子就沒問題了
但是變成要維護兩份source 而且一但之後再增加新語言支援 又要再多一份source..
原本是想把這個字串放到resource裡面,不過resource editor好像原生不支援unicode
看起來打進去的字串 會依照我們設定的語言跟codepage存起來 等到compile time才會轉成unicode存起來..
而且看起來這個視窗的標題應該是系統內部有定義好 如果可以由程式拿到這個字串的話
就能解決這個問題了
有支程式,原本是日本人開發的。有個部份是程式會去檢查是否有跳出"另存新檔"的視窗
如果有,程式會代替使用者按下"儲存"按鈕.. 原本的程式是這樣寫的
FindWindow(NULL, _T("名前を付けて保存"))
"名前を付けて保存"就是日本的另存新檔的意思
這樣子寫,在日文的作業系統下運作當然是沒有問題
但是到了中文的系統下就不行了 因為中文的系統下 另存新檔視窗的title就是"另存新檔"
所以程式如果不修改的話,FindWindow一定會找不到對應的視窗
當然改成FindWindow(NULL, _T("另存新檔"))這樣子就沒問題了
但是變成要維護兩份source 而且一但之後再增加新語言支援 又要再多一份source..
原本是想把這個字串放到resource裡面,不過resource editor好像原生不支援unicode
看起來打進去的字串 會依照我們設定的語言跟codepage存起來 等到compile time才會轉成unicode存起來..
而且看起來這個視窗的標題應該是系統內部有定義好 如果可以由程式拿到這個字串的話
就能解決這個問題了
標籤:
Programming,
PV3Tool
訂閱:
文章 (Atom)