星期四, 10月 30, 2008

win api

comctl32.lib list control

#include

INITCOMMONCONTROLSEX icex;
TOOLINFO ti;

// Load the tooltips class from the DLL.
icex.dwSize = sizeof(icex);
icex.dwICC = ICC_BAR_CLASSES;

if(!InitCommonControlsEx(&icex))
return;

星期三, 8月 27, 2008

List BOx

小計一下
LB_ADDSTRING

LB_GETCURSEL

LB_DELETESTRING

LB_GETITEMDATA

LB_GETTEXT

LB_GETCOUNT

LB_FINDSTRING

星期三, 8月 20, 2008

轉換型態


struct A
{

char a;
};

char *kkkk={"123456789"};

A * =(A*)kkkk;
A->a
結果是
1


struct A
{
int b;
char a;
};
A * =(A*)kkkk;
A->a
結果是 5

星期日, 8月 10, 2008

GCC G++

參數: -O (大寫)
說明: 在編譯過程做最佳化,以提升增快程式執行速度。

參數: -Idir_name
說明: 將目錄 'dir_name' 設定為搜尋標頭檔目錄之一。
簡化: -I


參數: -Ldir_name
說明: 將目錄 'dir_name' 設定為搜尋程式庫目錄之一。
簡化: -L

參數: -lname
說明: 聯結程式庫 libname.a 。

範例一:本例中假設你的程式檔名為test.c,數學函數如 sin等,所要聯結的程式庫為 libm.a。

gcc -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 test.c -o test

範例二:本例中假設你的程式檔名為 test.c,使用到 X window 函數,所需的 include 檔放在 /usr/X11R6/include 中,所須聯結的程式庫放在 /usr/X11R6/lib,所要聯結的程式庫為 libX11.a。
gcc -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 test.c -o test



提供進一步的資訊以便使用者找尋程式中的錯誤。
參數: -Wall
說明: 輸出較多的警告訊息,以便找出程式的錯誤。


參數: -g

說明: 在編譯出可執行檔時,附加執行時除錯資訊,以供 gdb 讀取 (若要使用 ABSoft 的除錯程式,則須將參數改為 -gdwarf )。

參數: -c
說明: 僅編譯成 object 檔而不進行程式庫聯結。


參數: -E
說明:展開程式中的巨集以便了解巨集是否依照預期方式展開。


聯結數個 object 成可執行檔。
參數: -o
範例: 將 'test1.o'、'test2.o' 和程式庫聯結後成為可執行檔 test。
gcc test1.o test2.o -o test

參數: -S
範例:編譯 test.c 產生對應的組合語言程式碼檔 test.s。

星期二, 8月 05, 2008

越來越無痛了

當裝好了該有的

mysql-server
phpmyadmin

最後到了開發期就還要裝 mysqllib 不然玩啥?

sudo apt-get install libmysql++-dev

星期三, 7月 09, 2008

TraceWin

http://dilascia.com/TraceWin.htm


選用30版


try ing


可以得到外部的測試碼 MFC 限定




TRACE() 是給程式編寫員做 debug 用途的
在 Release build 的時候, 這個 macro 就變成 NOP (no-op), 所以它不會佔 Release build 的空間.

非MFC可以用 ATLTRACE()

星期四, 6月 26, 2008

關於寫文件

寫文件對一個開發人員有時候還挺頭大的,因為當你接到開發需求時,有時候這開發需求也沒文案,在製作的時候也只想著怎樣達成功能,就會很懶惰的把文件打開去想怎樣撰寫他。

但其實是需要一個工具來幫助管理這件事,Doxygen似乎就是個好東西,Mars這邊有人家使用的範例,其實就只是將你寫Log的習慣多加了一點點,利用寫註解的方式順便把文字寫進去,之後再用Doxygen把文字轉出來,之後你只要培養了好習慣,那麼文件就是在程式撰寫的時候自然而產生的東西了,當然這只是一份類似API的文件而已。

首先到Doxygen去下載你的平台可以用的執行程式,如果你想SVn一下那也是可以的,這次是使用1.5.6版。


裝了之後會有像專案管理的介面可以使用,output的方式有HTML可以選也有PDF(需要Latex),還有可選擇C++ JAva C # C的最佳化output,當然你可能要多注意一下上面的wizard上的選項,選完後就自動產生Html了,非常酷,大家最好通通都去用。



最後是參考文件

星期三, 6月 18, 2008

剪貼簿 真機歪

不知道有沒有人遇過這樣機歪的事
當你使用簡貼簿時拿書上範例一用中文怎樣弄都是亂碼?

上網找了一下結果發現是編碼簿的問題,當你的輸入法都為中文系統時又沒啥問題
可是你用英文輸入法然後使用減貼簿的功能,貼出的中文字就是亂碼,這問題當然和編碼有關,網路上有人說調整輸入法就好了...,看到這樣我覺得根本就是整人吧。
有這樣不實際的方法嗎?那寫程式寫成這樣麻煩幹麻

一般來講書上的範例只會是下面這樣

TChar szTemp[512];
GetWindowText(m_hAppWnd,szTemp,512);

HGLOBAL hGlobal = GlobalAlloc (GHND | GMEM_SHARE, ( (lstrlen (szTemp) + 1)* sizeof (TChar)) );
LPTSTR pGlobal = (LPTSTR)GlobalLock (hGlobal) ;
lstrcpy (pGlobal, szTemp) ;
OpenClipboard (m_hAppWnd) ;
EmptyClipboard () ;
SetClipboardData (CF_TCHAR, hGlobal) ;

GlobalUnlock (hGlobal) ;
CloseClipboard () ;



這時你就會出現,我一開始遇到的問題了。
最後發現他是要這樣用


TChar szTemp[512];
GetWindowText(m_hAppWnd,szTemp,512);

HGLOBAL hGlobal = GlobalAlloc (GHND | GMEM_SHARE, ( (lstrlen (szTemp) + 1)* sizeof (TChar)) );
LPTSTR pGlobal = (LPTSTR)GlobalLock (hGlobal) ;
lstrcpy (pGlobal, szTemp) ;
OpenClipboard (m_hAppWnd) ;
EmptyClipboard () ;
SetClipboardData (CF_TCHAR, hGlobal) ;
SetClipboardData(CF_LOCALE, hGlobal);
GlobalUnlock (hGlobal) ;
CloseClipboard () ;


好杯中文字遇到的問題就是這樣多 -_-

星期三, 6月 04, 2008

why Android

Why is Google launching the Android Developer Challenge?

A thriving developer community will be an important part of creating better mobile experiences that delight users around the world. We want to support and recognize developers who build great applications for devices based on Android.


以上敘述是Goole 網站中的解釋,他們是希望能用世界上各種的想法,來創新手機的應用。所以建立一個號稱更好開發的SDK更Open的系統。



奇怪了?MS的mobile就不好用嗎?

奇怪了Sybian就不行嗎?

還有其他系統?

待查清....

就我所知MS的mobile似乎不好跨平台開發
Sybian其實也是寫java類,但好像又多了很多的神密處。

那如果這兩套系統都不錯用?那Google的Android好在哪?



加兩條理由

1.新東西
2.Gphone希望能讓各種手機都能使用這OS