最近想來研究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
搜尋此網誌
2013年10月16日 星期三
2013年10月14日 星期一
C語言 字串相加
在做多圖像處理時,需要做檔名組成
函式取至
通常我是使用 這個函式做組合
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* string_concat [字串相加]
* 將 str1 與 str2 相加,並返回新的字串
* */
char *string_concat(char *str1, char *str2) {
// 計算所需的陣列長度
int length=strlen(str1)+strlen(str2)+1;
// 產生新的陣列空間
char *result = (char*)malloc(sizeof(char) * length);
// 複製第一個字串至新的陣列空間
strcpy(result, str1);
// 串接第二個字串至新的陣列空間
strcat(result, str2);
return result;
}
int main(){
char *a="123456";
char *b="abcde";
char *c=string_concat(a,b);
printf("%s\n",c);
_getch();
return 0;
}
函式取至
http://jax-work-archive.blogspot.tw/2009/04/c_7407.html
訂閱:
文章 (Atom)