March 19,2005
一些常用的檔名轉換函式
- g_filename_from_uri(const gchar *uri, gchar **hostname, GError **error);
- g_filename_display_name(const gchar *filename);
可以把以uri格式(*1)表示的檔案名稱轉換成該作業系統可接受的格式(*2)
其中hostname和error可為NULL
memo1: 轉出來的檔名是UTF8格式的,直接就可以餵給g_fopen了,不要再轉啦!!!
memo2: Win32下它會雞婆幫你把 / 轉成 \,請「手動」把它再轉回來ORZ
(*1) EX: file:///D:/%E6%B8%AC%E8%A9%A6.zip
(*2) EX: D:\測試.zip
轉換檔名成為可讀的UTF8格式,不可逆,記得把原來的檔名留下來。
GTK+ 下的 file drag&drop open
有許多程式可以將支援的檔案直接拖到程式裡就可以開啟檔案,
GTK+寫的當然也可以,不過有些需要特別注意的地方。
撰寫步驟如下:
GTK+寫的當然也可以,不過有些需要特別注意的地方。
撰寫步驟如下:
- 設定一個 GtkTargetEntry,其中 type 為 "text/uri-list",這個不管是 Win32 or Unix 都是一樣的,都可以吃到檔案列表。
- 對你要設定可拖放檔案的元件(通常為window) 設定成 drag_dest
- 設定該元件的 window_drag_data_received 事件回呼函式
| static GtkTargetEntry target_table[] = {{ "text/uri-list", 0, 0 }}; |
| gtk_drag_dest_set(window, GTK_DEST_DEFAULT_ALL, target_table, 1, GDK_ACTION_COPY); |
| gtk_signal_connect(GTK_OBJECT(window), "drag_data_received", GTK_SIGNAL_FUNC(window_drag_data_received), NULL); |
| static void window_drag_data_received( GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { g_print("Got: %s\n",data->data); } |
OpenGL 程式寫作 memo
- 使用float增進效能gluDisk中的Segment參數不要給太大(50左右就夠了)
- 將物件畫在原點再用位移(glTranslate)、旋轉(glRotate)、縮放(glScale)來修正位置比較好
- line anti-alias和polygon anti-alias似乎無法並存? 開啟line/ploygon anti-alias時除了用glEnable相關參數外,還要設定alpha blend function 待續……
打洞的方法
一般公司行號基本上都有封鎖員工上網的措施。但為了讓員工可以查工作所需的資料,一般都有開放http 協定,這就有打洞的機會了。不過要打洞,自己在外面得有外應是免不了的,反正我們也是圖個可以在防火牆內使用這些網路服務的方便性。
MSN:
不常用,上面的連絡人也挺少的,不過這個倒是很容易搞定,因為已經有Web MSN了。
http://www.e-messenger.net/
BBS:
putty可以透過proxy連線,但是proxy中的CONNECT Method必需要是開啟的。不過萬一不幸關掉了怎麼辦,試試看把外面跳板的SSH Server開到443(https)吧,魷魚(squid)的https CONNECT Method預設似乎是開的:P
其它:
SoftEther啦。這個和上面BBS那項很像,也是利用https CONNECT Method。此軟體裝完後會在電腦上安裝一張虛擬的網路卡,所有的連線會從這邊出去,再連到一個有開放的虛擬Hub就OK啦。但新改版之後好像要註冊後才能使用,還沒抓過新版,也懶得試,下次有用到它再說。
MSN:
不常用,上面的連絡人也挺少的,不過這個倒是很容易搞定,因為已經有Web MSN了。
http://www.e-messenger.net/
BBS:
putty可以透過proxy連線,但是proxy中的CONNECT Method必需要是開啟的。不過萬一不幸關掉了怎麼辦,試試看把外面跳板的SSH Server開到443(https)吧,魷魚(squid)的https CONNECT Method預設似乎是開的:P
其它:
SoftEther啦。這個和上面BBS那項很像,也是利用https CONNECT Method。此軟體裝完後會在電腦上安裝一張虛擬的網路卡,所有的連線會從這邊出去,再連到一個有開放的虛擬Hub就OK啦。但新改版之後好像要註冊後才能使用,還沒抓過新版,也懶得試,下次有用到它再說。