搜尋此網誌

2013年10月16日 星期三

GTK於VS2010之配置

最近想來研究GTK,一個可以使用C語言來寫GUI
為了設置VS2010上的配置,不斷地出錯與爬文
終於千辛萬苦的成功了!!!
因網路上大多為大陸的相關資料,而簡體版VS與繁體VS翻譯有所落差
所以將其流程記錄下來,以供後用。
我的系統是win7、64位元、VS2010
以下為所進行流程

1. 第一步於官網 http://www.gtk.org/download/index.php下載
選擇對應系統進入,找尋 All-in-one bundle的部分下載,於此我下載的是2.22版


2. 解壓縮至文件夾

我的解壓縮後位置為"C:\gtk+-bundle_2.22.1-20101229_win64"


3. 添加環境變數
"開始" → "電腦" 按右鍵選 "內容"  → "進階系統設定" → "環境變數" 
於path中加入 "C:\gtk+-bundle_2.22.1-20101229_win64\bin",若之前還有其他位置
,則輸入";"做分隔。


4. VS配置

開一個新專案,於方案總管內對專案名稱點右鍵選擇 "屬性" 
4.1 於 "VC++目錄" 中的 "Include目錄"
加入 "C:\gtk+-bundle_2.22.1-20101229_win64" 中
include與其底下次一級的子資料夾
lib資料夾中的 glib-2.0\include 與 gtk-2.0\include
再於 "程式庫目錄" 中加入 "C:\gtk+-bundle_2.22.1-20101229_win64\lib"


4.2 於 "連結器" 中的 "輸入" 的"其他相依性" 輸入

"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gtk-win32-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gdk-win32-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\glib-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gobject-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gdk_pixbuf-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gthread-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\gmodule-2.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\pango-1.0.lib"
"C:\gtk+-bundle_2.22.1-20101229_win64\lib\intl.lib"


5 進行測試
#include "stdafx.h"
#include <gtk/gtk.h>  
#include <windows.h>
int main(int argc, char** argv)  
{  
 GtkWidget* window;  
 gtk_init(&argc, &argv);  
 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  
 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);  
 gtk_widget_show(window);  
 gtk_main();  
 return 0;  



6. 顯示中文問題與關閉主控台之方法
http://www.cnblogs.com/hanxi/archive/2011/05/19/2051518.html所提供的函式,可解決中文顯示問題
函式為
char* T(char* str) { return g_locale_to_utf8(str, -1, 0, 0, 0); }
之後呼叫
T("中文") 即可

http://www.cnblogs.com/hanxi/archive/2011/05/03/2035587.html中也提供關閉主控台之方法
6.1
簡體版
进入属性设置窗口,修改:链接器->系统->子系统设为Windows(/SUBSYSTEM:WINDOWS)
繁體版為
進入屬性設置視窗,修改:連結器→系統→子系統設為Windows(/SUBSYSTEM:WINDOWS)
6.2
簡體版
再修改:链接器->高级->入口点设为mainCRTStartup
繁體版
再修改:連結器→進階→進入點設為mainCRTStartup
感謝涵曦提供的解決方案

PS 最後Run的時候,跳出需要zlib1.dll,從GTK資料夾裡找出來,丟到編譯好的程式資料夾中,就可以正常使用 



參考資料

1. http://www.gtk.org/download/win64.php
2. http://blog.csdn.net/zfpnuc/article/details/5646735
3. http://blog.sina.com.cn/s/blog_6adcb3530101dd5r.html
4. http://www.cnblogs.com/hanxi/archive/2011/05/19/2051518.html

沒有留言:

張貼留言