bbs
在軟體中心裡可以找到GEMANX,這是從PCMANX改過來的,但是連PTT的時候會有亂碼,只要在偏好設定裡將語系從GBK改為BIG5就好。
嘸蝦米
GCIN不能用,所以要用IBUS,這裡有很詳細的解說。
http://sreal.pixnet.net/blog/post/31827824
bbs
在軟體中心裡可以找到GEMANX,這是從PCMANX改過來的,但是連PTT的時候會有亂碼,只要在偏好設定裡將語系從GBK改為BIG5就好。
嘸蝦米
GCIN不能用,所以要用IBUS,這裡有很詳細的解說。
http://sreal.pixnet.net/blog/post/31827824
參考MSDN:
http://msdn.microsoft.com/en-us/library/bb384835.aspx
C++ 如何建立可以重覆使用的程式碼,方式有三種:
1. Dynamic link libraries(*.dll)
2. Static libraries(*.lib)
3. Managed assemblies
這三種有什麼不同呢?
首先先區分12及3的不同,dll及lib只能在c++中重覆使用,如果今天想建立一個讓.NET語言(c#、Visual Basic)都可以使用的library,就只能使用第三種方式。
而1跟2都是在c++中使用的,他們的區別在於static library會在程式碼連結(*1*)時就將程式碼中呼叫到的function取代為library中真正的程式碼,也就是說利用static library編譯出的可執行檔中,已經包含了static library裡面的程式碼了。
而dll則不同 ,雖然使用dll函數的程式碼一樣會在程式碼連結階段去讀取*.lib,但是並沒有將原始的程式碼替換為dll中的程式碼,這個時候僅僅只有確定function的名稱而已,要等到程式執行時,才會真正使用這段程式碼,這也就是dynamic所代表的意思。
在這三種方式裡,最廣為使用的是dll的方式。
(*1*)程式碼編譯成可執行檔有兩步驟:
原始碼 --編譯--> 中間檔(機器語言) --連結--> 可執行檔
參考
http://debut.cis.nctu.edu.tw/~ching/Course/AdvancedC++Course/__Page/DLL_Concept_page_content.html
http://msdn.microsoft.com/en-us/library/1ez7dh12.aspx
http://msdn.microsoft.com/en-us/library/ms682589.aspx
dll其實就是許多function的集合,這些function可以提供給其他的執行檔及dll使用,使用的方式如下:
先假設要被import的dll叫a.dll,要連結a.dll使用的執行檔叫b.exe,其原始碼為b.cpp
首先建立好dll檔時會產生兩個檔案,a.dll及a.lib,在編譯b.cpp的過程中,在連結階段會去對a.lib做連結,以得知要使用的function的名稱,最後在執行階段才會真正去呼叫a.dll中的function。
如何實作:
http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx