Tommy 碎碎念

Tommy Wu's blog

win64 的程式執行時出現 0x000007b 錯誤
post by tommy @ 06 四月, 2011 17:22

最近試著用 mingw64 (其實是用 TDM64-GCC) 來產生 win64 版本的 FileZilla, 不過.... 弄了兩三天, 雖然可以產生 filezilla.exe, 不過一執行就會出現 0x000007b 的錯誤.

用 google 找了一下, 發現這問題通常發生在 64 位元的執行檔, 少了某些 DLL 或使用到某些 32 位元的 DLL 所造成的.

不過.... 我用 Process Explorer 查看了一下所產生的 filezilla.exe 的執行狀態, 並沒有發現有用到 32 位元的 DLL, 且用 dumpbin 或 objdump 查看, 也沒有發現有少那些 DLL.

最後看到了這篇文章,  發現除了 DLL 外, 在 resource 的產生上頭, 也可能會有產生這類混用的情形. 果然在 filezilla 的 windows_manifest.xml 裡頭, 發現 processorArchitecture 是設成 x86, 所以產生的 resource 會是給 win32 使用的, 在製成 win64 的程式時, 一執行就會有 0x000007b 的錯誤.

把 processorArchitecture 改成 * 或 amd64 (建議用 * 就可以, 這樣可以 win32/win64 通用), 果然產生的檔案就可以正常的執行了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
MinGW 使用 gcc 4.5.x 產生的執行檔需要 libgcc_s_dw2-1.dll 與 libstdc++-6.dll 才能執行?
post by tommy @ 24 三月, 2011 15:14

這兩天為了編譯 SciTE (以前都是 VC++ 來編譯), 所以把使用的 MinGWgcc 升級到 4.5.x, 結果, 發現產生的執行檔在執行的時候, 需要 libgcc_s_dw2-1.dll 與 libstdc++-6.dll 才能運作. 網路上查了一下, 發現 gcc 4.5 預設對所有函式庫的連結方式都改成動態連結, 所以做出來的執行檔依據所使用到的函式庫, 往往會需要一些原本不存在 Windows 系統的 dll 才能正常運作.

 (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
MSYS 的 iconv.exe --silent 無法正常運作?
post by tommy @ 24 三月, 2011 13:18

這幾天把我用來編譯 filezilla3MinGW/MSYS 環境改成 gcc 4.5.x (之前是用 gcc 3.4.5), 結果在處理 libgpg-error 時, 會停在這個訊息:

make[3]: Entering directory `/usr/src/libgpg-error-1.10'
set -e; \
for i in $(./potomo --get-linguas ./po); do \
/bin/mkdir -p "/usr/local/share/locale/$i/LC_MESSAGES" || true; \
rm -f "/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" \
2>/dev/null || true; \
./potomo ./po/$i.po \
"/usr/local/share/locale/$i/LC_MESSAGES/libgpg-error.mo" ; \
done
potomo: '
./po/cs.po' keeping UTF-8
potomo: '
./po/de.po' keeping UTF-8
potomo: '
./po/fr.po' keeping UTF-8
potomo: '
./po/it.po' keeping UTF-8
potomo: '
./po/nl.po' keeping UTF-8
potomo: '
./po/pl.po' converting from ISO-8859-2 to utf-8

查看一下執行的指令, 應該是執行 iconv.exe (會一直使用約 12% 左右的 CPU), 放著不管跑一晚上, 也跑不出結果.

potomo 是一個 bash 的 script, 所以看了一下這地方是處理是:

case "$fromset" in 
utf8|utf-8|UTF8|UTF-8)
echo "potomo: '$infile' keeping $fromset" >&2
msgfmt --output-file="$outfile" "$infile"
;;
*)
echo "potomo: '$infile' converting from $fromset to utf-8" >&2
iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
msgfmt --output-file="$outfile" -
;;
esac

試著自己把那個 iconv 指令, 果然會停住. 試了一下, 把 --silent 拿掉就正常. 看一下 iconv --help 的說明, --silent 與 -s 是一樣的意思. 同一個指令, 改用 -s 來取代 --silent, 結果居然可以正常執行. 真是一個奇怪的問題.

如果你有碰到 iconv 跑不出來的問題, 可以看看有沒有用到 --silent 吧, 改用 -s 試看看吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
用 MPC-HC 看 .asf 檔案時會停格
post by tommy @ 31 十二月, 2010 23:14

這個月幫老婆的車子裝了一個行車記錄器, 產生的檔案是 mpeg4 編碼的 .asf 檔案. 發現拿到我的電腦上頭用 MPC-HC 播放時, 會有停格的現象. 難道是我的電腦等級太差? 可是它可是一台 i7 的筆電, 加上平時播放一堆 1080p 的檔案都很正常, 實在想不出為什麼.

原本還以為是機器有問題, 錄的時候就停格, 還問了賣家要怎麼處理, 結果... 在退回去前, 用轉檔軟體轉成 h264 的影片, 發現不會停格了. 所以.... 不是錄的問題, 真的是我的電腦播放時造成的停格.

後來發現有人在 MPC (或 MPC-HC) 上頭, 也有類似的問題 (不是 .asf 的檔案). 發生問題時, 似乎都是使用 EVR 自訂的這個視訊輸出, 只要改成 EVR Sync 就可以正常播放. 試了一下 (記得把 MPC-HC 關閉再打開), 果然不會停格了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
pietty 終於可以取消 session 過多時所出現詢問刪除舊 session 的問題了
post by tommy @ 25 十一月, 2010 10:37

由於公司的機器愈來愈多, 所以... 在 pietty 裡頭所儲存的 session 也跟著變多了. 不過.... 在之前版本的 pietty, 在超過 40 (好像是) 個 session 之後,  每次執行就會跳出來一個對話盒詢問是否要刪除舊的 session, 每次都要多按一個取消才能用, 總覺得有點麻煩.

剛好今年作者終於繼續釋出新的版本, 因為多了 portable 的功能, 和上頭所說的這個問題剛好出現了一個小 bug, 會產生一個空的 .ini 檔案, 造成原本不是 portable 的版本變成 portable 版本而找不到儲存在 registry 的 session.

所以就跟作者回報了這個問題, 順便建議是否可以取消那個 session 數量的檢查或讓使用者決定超過多少再詢問.

感謝作者接受這個建議, 在目前的 0.4 beta 14 版本中, 已經不會詢問了 (其實我覺得好像沒改好, 依照作者所說的, 應該是在 Connection 選單下有個 Auto Clear Old Sessions 可以選擇要不要詢問刪除, 不過... 我試的結果, 不管有沒有選擇這功能, 都不會詢問). 

Del.icio.us Furl HEMiDEMi Technorati MyShare
VPN 連線時使用 ssh 常常沒回應?
post by tommy @ 25 十一月, 2010 10:30

改用 Shrew Soft VPN Client 也一陣子了, 原本用起來都很正常, 但是最近常常發現在 VPN 連上後, 使用 pietty 來連線時, 常常一個指令打完按 enter 之後, 回應的畫面顯示一半就不動了.... 可是看起來 VPN 又沒有斷線, 就單純那個 session 不動了.

找了半天找不出原因, 後來就開始看 VPN client 上頭那一些設定, 發現 MTU 的設定好像與之前習慣用的不同, 改回成 1326 後, 似乎就解決這個問題了, 因為改了之後到目前為止, 並沒有發生過類似的問題.

Del.icio.us Furl HEMiDEMi Technorati MyShare
Avira AntiVir 10 無法自動更新?
post by tommy @ 23 八月, 2010 15:51

這是個很奇怪的問題, 似乎不是每個人都會碰到, 但是看網路上的回應, 似乎碰到的人也不少.

基本上, 免費版本的 AntiVir 應該每天會更新一次, 如果需要比較多次的更新, 還可以在排程裡頭自定新的更新. 不過... 在升級到 10 版之後, 常常碰到無法更新的情形. 查看 AntiVir 的記錄, 並不是有去更新而失敗, 而是完全沒有去執行更新的動作.

如果你有類似的情形, 可以選擇手動的更新. 而 AntiVir 也提供一個 update.exe 指令, 可以簡單的去做更新的動作. 預設執行 update.exe 會去做更新的工作, 但不會有任何的訊息 (查看 AntiVir 的 Log 或 Event 會有記錄), 如果需要查看更新的狀態, 也可以加上 /dm=0 這個參數, 就會顯示更新的視窗.

也因為 AntiVir 本身的排程怪怪的, 所以, 我們可以利用 Windows 本身提供的工作排程器, 執行下面這個指令:

C:\Program Files\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180

或 (64 位元系統下):

C:\Program Files (x86)\Avira\AntiVir Desktop\update.exe /DM=2 /NOMESSAGEBOX /receivetimeout=180

利用 Windows 的工作排程器還有個好處, 就是可以自己想多久更新一次都可以, 所以... 如果有更新的問題,  可以自行加上這個更新的行程會比較好一些.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
PerfectDisk 的 offline defragmentation 無法正常使用?
post by tommy @ 21 八月, 2010 12:26

最近朋友的電腦突然發現原本可以使用的 PerfectDisk offline defragmentation 功能無法使用, 每次只要選擇這個功能, 重開機後就會停在 Windows 開機的畫面, 且硬碟燈一直閃, 不過看起來不太像是在做 defrag 的動作, 因為放了好幾個小時還是一樣的情形, 就只能關機重開. 重開後可以正常進入 Windows, 不過會跳過 defrag 的動作.

Google 查了一下, 發現這篇文章, 原本有些驅動程式會造成這個問題. 不過, 下載了那個 BlockedFileList.exe 並安裝之後, 情況並沒有改善. 詢問了一下朋友, 發現最近應該只有把 OpenVPN 由 2.1.1 升級到 2.1.2, 看來也許是這個軟體造成的.

查了一下 OpenVPN 安裝的驅動程式, 試著把 tap0901.sys 加到  HKLM\SYSTEM\CurrentControlSet\services\DefragFS\Parameters 裡頭的 BlockedFileList 裡頭. 果然就解決了這個問題.

如果有類似的問題, 試著看看是那個驅動程式造成的吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
奇怪的 EzBuilder avs2wav.exe 錯誤
post by tommy @ 09 二月, 2010 00:08

最近發現在使用 EzBuilder 轉檔時, 常常出現 avs2wav.exe 的錯誤, 以前這類的錯誤是偶而才發生, 發生時我通常會把 codecs 的套件解除安裝再重裝一次就可以避免這個問題. 不過... 最近這個方法也沒有效果了.

不管怎麼弄, 似乎都會出現這個錯誤. 連剛裝起來的 XP VM 都一樣有相同的錯誤, 真不知道是那兒出的問題. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
解決 EzBuilder 在 Windows 7 底下轉檔聲音速度不正常的問題
post by tommy @ 09 二月, 2010 00:05

其實這個問題應該不算是 EzBuilder 的問題, 也應該不算是 Windows 7 的問題, 嚴格說來算是 K-Lite Code Pack 的設定問題 (不過似乎只會在 Windows 7 發生這問題, 而且不是每種格式轉出來都是有問題的).

記得在 Windows 7 RC 之前, 這個問題應該還不存在 (也許是那時的 K-Lite 設定不同吧), 不過自從 Windows 7 RC 開始, 這問題就出現了. 一直以來, 我也找不出是什麼原因, 後來就因為這樣子, 把轉檔的動作改到別的機器或用 VM 來處理了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
IPSec VPN Client for Windows 7 x64
post by tommy @ 06 二月, 2010 18:43

最近把筆電的作業系統換成 Windows 7 x64 測試, 結果發現原本用到的 Cisco VPN Client 在 x64 無法使用. 網路上找了一下, 有人說 Shrew Soft 的 VPN Client (還是免費的) 可以在 x64 使用, 抓了 2.1.5 回來, 安裝時會有個錯誤, 改抓 2.1.6 beta 4 就可以正常安裝了. 不過... 看了半天, 完全想不出來要怎麼把原本 Cisco VPN Client 的設定轉過來使用, 那些設定似乎完全對不起來... (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
CDBurnerXP 找不到燒錄機?
post by tommy @ 04 元月, 2010 09:48

這星期幫家人換了一台新的筆記型電腦, 結果裝上 CDBurnerXP 之後, 發現抓不到燒錄機. 看了一下官方的討論區, 似乎有不少人也有類似的問題.

後來看到這篇文章, 裝了 Intel Matrix Storage Manager 之後, 就可以抓到燒錄機並正常使用了. 可以參考看看.

Del.icio.us Furl HEMiDEMi Technorati MyShare
下載來的 .chm 檔案, 打開後只有索引, 看不到內容?
post by tommy @ 21 七月, 2009 21:02

最近由 php 的網站, 下載了新版本的 php_manual_en.chm 回來使用, 不過... 發現打開後, 只有左邊的索引可以點選, 但是右邊的內容都是 "已取消瀏覽該網頁". 找了半天, 終於發現了解決的方法:

在檔案總管中對該檔案按右鍵選擇內容 (Properties), 然後在一般 (General) 下面有個安全性 (Security) 的說明, 右邊有個解除封鎖 (Unblock) 的按鈕, 點了之後就可以正常打開了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
自製 tpfnf9.exe 取代 ThinkPad EasyEject 程式
post by tommy @ 18 五月, 2009 11:28

最近因為 Windows 7 RC 推出, 所以就裝了一套來測試看看. 多數我常用的軟體似乎都運作正常, 不過... 在 ThinkPad 上頭有個 EasyEject 程式並無法正常運作.

雖然 Windows 本身就有這類退出硬體的功能, 不過... 在 Windows 7 上頭, 那個圖案預設是在工具列上隱藏的, 就算設定成在工具列上顯示, 仍然要移動滑鼠去點選才能執行, 並沒有以往使用 EasyEject 時, 只要按 Fn+F9 的快速鍵就可以運作.

而 ThinkPad 本身附的 Hotkey 程式, 是可以正常運作的. 在沒有安裝 EasyEject 時, 仍可以按 Fn+F9, 這時會顯示你並沒有安裝 EasyEject. 再看一下安裝後的目錄下頭, 有個 tpfnf9.exe 的程式, 看起來應該就是當使用者按下 Fn+F9 時, 就會去執行這個檔案.

而 Windows 本身的那個安全退出硬體的對話盒, 我們一樣也可以用下列的指令來執行:

rundll32 Shell32.dll,Control_RunDLL HotPlug.dll

所以, 看來我們只要自己寫個程式來取代原本的 tpfnf9.exe, 並執行上頭的指令, 就應該可以在按 Fn+F9 時, 把這個安全退出硬體的對話盒叫出來, 這樣子與原本 EasyEject 所提供的功能, 應該也差不到那兒去了.

下頭就是我寫的一個小程式, 在我這兒運作正常, 有興趣的自己抓回去用吧:

http://www.teatime.com.tw/~tommy/files/tpfnf9.7z

本人不保證程式運作的任何結果, 使用後有任何問題請自行負責, 不要來找我. :-)

 


2009/05/19:

 

用了一天, 發現怪怪的, Windows 7 裡頭的 hotplug.dll 似乎有問題, 因為雖然叫的出來移除硬體的畫面, 但是多數時候都無法退出.
不過同時使用工具列上的圖示來做退出的動作又很正常.

看來也許是 bug, 也許是在 Windows 7 裡頭改了做法.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
可以在 Thunderbird 3 使用的 SmtpSelect
post by tommy @ 24 二月, 2009 22:25

Thunderbird 3.0 beta1 出了有一陣子了, 我在剛推出時就換到這個版本, 使用上頭, 除了原本使用的 SmtpSelect 這個程式沒辦法運作外, 其他的都還算正常. 原本想找看看有沒有什麼能夠替代的程式可以用. 不過前一陣子在 Addons 上頭能夠找到的, 都一樣不能在 3.0 beta1 中使用. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
MSYS 發生 Couldn't reserve space for cygwin's heap 的錯誤
post by tommy @ 21 二月, 2009 18:50

今天 FileZilla 推出了新的版本, 所以就試著為 FileZillaPV 製做相對應的版本. 不過... 當執行 MSYS 之後, 在處理 patch 指令時, 出現了 Couldn't reserve space for cygwin's heap 之類的錯誤. 由於之前都是在 XP 裡頭執行, 現在換到 Vista 使用, 難道是與 Vista 不相容嗎? (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
讓 All CPU Meter 搭配 CoreTemp 使用
post by tommy @ 17 二月, 2009 12:41

由於 SpeedFan 在我的 T60 機器上頭跑起來怪怪的, 所以就改用 CoreTemp 來偵測溫度. 由於 CoreTemp 本身就有提供一個 gadget 的 sample, 所以改起來並不會太困難.

加上溫度後就順便加上 CPU 速度的顯示與 uptime 的顯示. 同樣的, 我沒有四核心的機器, 所以不確定這個東西在四核心上頭的顯示結果會不會正常, 有的人就自己試看看吧.

由於修改的部份還有一些 dll 的檔案, 所以就不提供 patch 的檔案了, 有需要就自己去比對兩者之間的差異吧.

檔案可以由這兒抓取: http://www.teatime.com.tw/~tommy/files/AllCPUMeterByTommyWithCoreTemp.gadget

Del.icio.us Furl HEMiDEMi Technorati MyShare
修改某些 Vista Sidebar Gadget
post by tommy @ 11 二月, 2009 16:23

最近終於開始接觸 Vista 了, 自然也用了 Windows Sidebar 這個程式. 找了一些 gadget 回來用, 不過有些 Gadget 是不錯用, 不過總覺得少了某個小功能, 為了做到該功能, 可能要多放幾個 gadget 來取代... 不過... 桌面就那麼大, 放太多總是不好, 所以就自己動手改了幾個來用. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
MyTV 0.0.2
post by tommy @ 03 八月, 2008 18:18

更新 MyTV 為 0.0.2 版. 修正如下:

  • 加入 check_session.sh, 把超過一段時間沒有連線的 producer 結束運作
  • 加入預約錄影的功能

主要就是加上預約錄影的功能. 並可以直接用 web 介面抓取或刪除錄影的檔案.

可以由這兒抓取: http://www.teatime.com.tw/~tommy/files/mytv-0.0.2.7z

Del.icio.us Furl HEMiDEMi Technorati MyShare
TortoisePlink 出現 Unable to write to Standard output 錯誤
post by tommy @ 03 八月, 2008 17:59

這幾天在家裡的伺服器弄了 subversion 上去, 要把目前 laptop 上頭一些程式放到上頭去. 結果, 每次一執行 TortoiseSVN 要連線時, 就會出現一個 TortoisePlink 的 Unable to write to Standard output 的錯誤訊息. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
MyTV 0.0.1
post by tommy @ 04 三月, 2008 09:54

幾年前, 自從出國工作後, 就在家裡的機器上, 裝上一張電視卡, 然後利用 Helix 的程式, 讓我可以在國外連線回去看國內的電視節目 (請參考這篇). 雖然運作都很正常, 不過... 每次要打開或關閉或切換頻道時, 總要用 ssh 連回去主機操作, 說實在, 也不怎麼方便. 尤其是這一兩年來, 有許多類似的產品出現, 都可以利用 web 介面來操作. 所以.... 決定動手寫個介面來用, 就這樣, MyTV 就這麼產生了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
在 Windows XP 中取代某個執行檔的方法
post by tommy @ 24 二月, 2008 14:56

由於 Windows 本身所附的 notepad.exe 實在不怎麼好用, 但是, 很多程式在執行編輯功能的時候, 都是去執行 notepad 來使用, 雖然部份的程式也可以讓人自定所要使用的編輯器, 不過, 每個都要去改實在很麻煩, 而且... 有些還沒辦法改. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Skype 搭配 QuickCam 在視訊時切換中文輸入法會無回應的問題
post by tommy @ 20 二月, 2008 20:34

最近突然發現, 在使用 Skype 與家人視訊時, 如果把即時訊息的視窗叫出來, 要打字時, 一切換到中文輸入法時, 整個 skype 就不動了 (影像與聲音還是持續傳送), 完全沒有任何回應. 到 Skype 網站看了一下, 好像沒有看到有人反應相同的問題, 不過有類似的問題都是在切換中文輸入法時造成當機. 不過... 我這兒有點不一樣, 如果沒有打開視訊, 這時切換輸入法並不會有問題. 但是只要開始視訊之後, 一切換中文輸入法就會有問題. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
讓 GMail Manager 0.5.4 可以在 Firefox 3 中使用
post by tommy @ 23 十二月, 2007 14:25

今天把 Firefox 改用 Firefox 3 beta 2 的版本, 多數常用的外掛, 使用 Nightly Test Tools 之後, 似乎都可以正常的使用. 不過... 唯獨 Gmail Manager 有點小問題. 在記憶密碼的上頭, 因為 FF3 改用 LoginManager 的原因, 原本的寫法會無法儲存密碼, 也無法取得密碼. 不過... 輸入密碼後, 仍可以正常運作. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
使用 Grub4Dos 來做隨身碟的開機管理
post by tommy @ 01 十二月, 2007 00:03

上星期買印表機時, 送了一個 1G 的 USB 隨身碟. 由於容量不小, 自己每天也都是筆記型電腦帶來帶去的, 也沒什麼東西要用這個來存放. 最後想說, 這玩意也可以拿來開機, 我只要把一些常用的程式放到上頭去, 就可以取代原本的一堆緊急救援的光碟片了, 這樣子應該會方便許多. 不過這些光碟, 有些是 DOS, 有些是 Linux, 也有些是 XPE 的程式, 如果要都放在一個隨身碟上頭, 就必須要有個開機管理的程式, 能夠在開機時選擇要進到那一個系統才可以. 所以就想到了在 Linux 中常用的 grub 這個 boot loader, 剛好也有個 DOS 版本的 grub4dos 可以使用. 所以... 就決定使用 grub4dos 來處理了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Bad Behavior 已經阻擋了 95 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS