2014年5月5日 星期一

解決 KMPlayer 播放 UTF-8 編碼字幕時出現亂碼

         明明是 UTF-8 的字幕為何透過 KMPlayer 播放時卻是顯示亂碼呢? 如下圖所示,上網查詢發現播放  UTF-8 字幕必須含有 BOM (位元組順序記號 byte-order mark,EF BB BF)。所以只要將你下載下來的字幕檔,透過一些文字編輯器就可以將其轉成含 BOM 的 UTF-8 字幕檔,之後播放就沒問題了。

        下面是透過 Notepad++ 來檢查以及存檔,開啟字幕檔你可以看到該字幕檔是不含 BOM 資訊的 UTF-8 編碼的字幕檔,然後你只要選擇下方的 "編譯成 UTF-8" 然後存檔就可以將 BOM 資訊塞到原本的字幕檔了。

[參考來源]

2014年4月21日 星期一

解決重新開機螢幕顯示 "Not Support"

     最近終於把電腦從 Windows XP 更新到 Windows 7,重新裝好作業系統之後就是趕快來安裝驅動程式,沒想到安裝 Intel HD Graphics 驅動程式後,重新開機螢幕便顯示 "Not Support",之前安裝 Windows XP 也是有遇到,但是只需要到安全模式調整螢幕解析度就可以了,但對 Windows 7 卻沒用。
      最後發現,透過 Windows  7 調整解析度是沒用的,你必須透過 Intel HD Graphics 驅動程式 所附管理的軟體來調整。
      下面是解決這個問題的步驟:

  1. 重新開機後按 F8,選擇 "啟用低解析度視訊 (640 x 480)"。
  2. 開啟  Intel HD 圖形 程式設定螢幕解析度,之後重新開機即可。 Intel HD 圖形 設定畫面如下:

[圖一 開啟 Intel HD 圖形程式]

[圖二 選擇基本模式]

[圖三 顯示->一般設定 解析度調整為適合的解析度即可]

PS: 我使用的硬體資訊如下:

  1. ASUS P8H61-M LE
  2. Intel(R) Pentium(R) CPU G840@2.80GHz

2014年3月27日 星期四

如何移除迅雷遊戲盒子

        今天嘗試移迅雷遊戲盒子時,當執行內建的移除程式一直跳出 "Error launching installer" 而無法順利地移除它,上網查詢了一下資料在巴哈姆特討論區發現有人提問相關問題,結果原因真的是路徑名稱的問題,解決方式你可到 Program 資料夾中發現 "游戏盒子",接著你把它改成英文或者數字名稱資料夾,然後在執行該資料夾內的反安裝程式,便可以順利移除了。:) 

[參考資料]
請問有人知道訊雷的遊戲盒子怎麼刪除嗎?

2014年3月4日 星期二

Field `x' has incomplete type?

       當你有兩個Class,CLASS_A與CLASS_B時,如果再主程式中並沒有用include將其header file include進來時,而使用forward reference 時會出現下列的錯誤訊息:

aggregate `CLASS_B bb' has incomplete type and cannot be defined
aggregate `CLASS_A aa' has incomplete type and cannot be defined

範例:
main.cpp
class CLASS_A;
class CLASS_B;

int main()
{
     CLASS_A a;
     CLASS_B b;
     return 0;
}

CLASS_A.h
class CLASS_A{
     public:
            CLASS_A(){}
};

CLASS_B.h
class CLASS_B{
     public:
            CLASS_B(){}
};

         另外,你也許用CLASS_B的物件當做 CLASS_A建構的參數,你也許會看到下面的錯誤訊息:
aggregate `CLASS_B bb' has incomplete type and cannot be defined 
variable `CLASS_A aa' has initializer but incomplete type

範例:
main.cpp
class CLASS_A;
class CLASS_B;

int main()
{
     CLASS_B b;
     CLASS_A a(&b);
     return 0;
}

CLASS_A.h
class CLASS_B; // Forward reference declare

class CLASS_A{
     public:
            CLASS_A( CLASS_B *pB){}
};

      這些是典型的忘記將 header file inlude進來的問題,只要將該檔案的header file include到 main.cpp中即可。會發生 incomplete type 是因為編譯器在編譯時需要知道物件的大小,但是我們 在還不知道class定義在何處,就將其拿來宣告物件使用。 其詳細的 incomplete type 的解釋請參考 下面相關鏈結。

[Keyword]
    incomplete type ; incomplete type + C++ + Class

[相關鏈結]
Incomplete class declarations (C++ only)
Incomplete Type
Forward declarations in C++
C++ Tip: Forward Declaration
forward declaration 唯一的好处只是可以让编译快一点

2014年3月1日 星期六

FileZilla Server 設定筆記

      網路上已經有很多文章教你如何利用 FileZilla Server 架設一般 FTP 或者 FTPS (FTP over SSL/TLS) 網站,請參考下面的鏈結:

    依照上面的設定應該就可以輕鬆架設好你的 FTP Server。但當我在新增兩個不同的目錄 Shared folders 時,使用者連線都只會看到設定為 Home directory,另外新增的 Folder 並不會出現在 FTP Client 的畫面上;如果要讓另外新增的 Folder 出現在FTP Client 的畫面上,你必須設定 Aliases 將它掛到 User 的 Home directory 中,這樣就可以看到你另外新增的 Folder。設定如下:

<1> 點選你新增的資料夾右鍵,選擇 Edit aliases 

<2> 將它設到 Home directory下,這邊名稱也是設定為跟新加入的 Folder 一樣名稱,你可以將它設定為其他名稱,不一定要跟你的實際加入的資料夾名稱一樣。EX: C:\CFTP\DDD ,這樣當使用者登入時看到的就會是 DDD 資料夾了。

<3> 下面是設定的結果,可以發現我們在 User 的 Home directory 多了一個 DFTP 的資料夾。
    

         另外,如果你忘記了 Admin  Interface 的密碼時,你可以到 FileZilla Server 安裝的目錄下,開啟 "FileZilla Server.xml" 檔案 查詢 "Admin Password" ,就可以找回你的密碼了,密碼是用明文顯示。
         基本上 Admin  Interface Settings 不需要設定密碼,因為 Admin  Interface Settings 預設只能透過本機設定 (127.0.0.1),無法透過遠端設定,除非你有設定 "Bind the admin interface to the following ip-adresses:" 與 "IP address which are allowed to connect to the admin interface:"。

        根據 FTPS using Explicit SSL/TLS howto (Server) 文章,如果你有勾選 allow Explicit SSL/TLS on normal connections,建議將下面兩項也勾選:
  1. Disallow plain unencrypted FTP
  2. Force PROT P to encrypt file transfers in SSL/TLS mode
      至於 Explicit 與 Implicit SSL/TLS 的不同你可以參考 FileZilla Wiki SSL/TLS 該篇文章,基本上 Explicit 預設使用 port 21 做連線然後切換到 secure (SSL/TLS) mode,而 Implicit 則預設使用 990。
如果你沒勾選 allow Explicit SSL/TLS on normal connections,則 Client 連線就不能選擇使用此方式做連線。

     此外,你可以在 User Account Setting 中勾選 Force SSL for user login,這樣 FTP Server 就會強制Client 一定要使用 SSL 連線,但是如果 Server 把 FTPS 取消掉時,當 Client 透過一般的 FTP 連線時會出現下列錯誤訊息:

回應: 530 SSL required
錯誤: 無法連線到伺服器

     如果 Client 選擇 Explicit SSL/TLS 方式連線,則顯示下面訊息:

指令: AUTH SSL
回應: 502 SSL/TLS authentication not allowed

    選擇  Implicit SSL/TLS 方式連,則出現下面的錯誤訊息:

狀態: 正在連線到 AAA.BBB.CCC.DDD:990 ...
狀態: 以 "ECONNREFUSED - Connection refused by server" 嘗試連線失敗. 

     如果你有勾選此選項,當 Server 取消 FTPS 設定時,記得把 User Account 中相對應的設定也一併移除,或者一開始就不要把 "Force SSL for user login" 選項給勾選 :P

    最後,架設 FTP Server 最好網路頻寬大一點,不然 Client 下載速度太慢不如直接拿硬碟來 Copy 哈!!!




2014年1月16日 星期四

Outlook 2010 透過 IMAP 存取 Gmail 郵件

   如果你不知道 POP3 與 IMAP 來存取電子郵件的差異,可以參考 Gmail 的說明文件 '開始使用 IMAP 和 POP3'。
   要讓 Outlook 2010 利用 IMAP 來存取 Gmail 電子郵件,你必須先將 Gmail 的 IMAP 功能啟用,啟用的方式如下:
<1> 登入Gmail 點選右上角的 齒輪圖示,選擇 設定


<2> 選擇 轉寄和 POP/IMAP頁面, 在 IMAP 存取 啟用IMAP


   設定好你的 Gmail 後,接下來設定 Outlook 2010,如下列步驟:
<1> 點選 「檔案」後在 帳戶資訊下點選 「新增帳戶」

 

<2> 選擇 「手動設定伺服器設定或其他伺服器類型(M)」


<3> 選擇 「網際網路電子郵件(I)」


<4> 設定使用者資訊,請參考下面的設定,主要要注意的是登入資訊的使用者名稱必須是與電子郵件地址一樣;內送郵件伺服器填入「imap.gamil.com」;外寄郵件伺服器 (SMTP) 填入「smtp.gamil.com」。



 <5> 上面填寫好之後,點選右下的 「其他設定(M)...」按鈕。選擇「外寄伺服器」頁面,勾選「我的外寄伺服器 (SMTP) 需要驗證」。


 <6> 點選 「進階」頁面,內送伺服器(IMAP) port 設定為 993,加密類型選擇 「SSL」;外寄伺服器 (SMTP) port 設定選擇 465 或 587,加密類型選擇 「SSL」,設定好按確定。


<7> 上面按確定後會回到 步驟 <4> 的畫面,點選下一步後,Outlook 2010會測試該帳號,如果一切正常的話,會顯示如下的畫面。



[參考資料]










2014年1月6日 星期一

在 Virtualbox 中啟動 Ubuntu 12.04 LTS Unity-3D

    如果你想要讓安裝在 VitutalBox 中的 Ubuntu 12.04 LTS 支援 Unity-3D 的話,你只要執行下列步驟即可:

  1. Virtualbox 的 3D 加速必須勾選。
  2. 安裝 VirtualBox Guest Additions。
PS: 如果你執行了 apt-get update 與 apt-get dist-upgrade 後,發現原本的 Unity-3D 變成  Unity-2D的話,你只要重新安裝 VirtualBox Guest Additions 即可。

    另外,我在Youtube 找到教學影片,但是步驟有點繁瑣,如果上面方式無法解決你的問題,或許可以參考該影片:

[參考資料]