星期日, 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

星期二, 4月 24, 2007

clear Windows

@echo off
echo 正在清除系統垃圾檔案中,請稍候......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*.syd
del /f /s /q %systemdrive%\*.---
del /f /s /q %systemdrive%\*.$$$
del /f /s /q %systemdrive%\*.@@@
del /f /s /q %systemdrive%\*.??$
del /f /s /q %systemdrive%\*.??~
del /f /s /q %systemdrive%\*.~*
del /f /s /q %systemdrive%\*.err
del /f /s /q %systemdrive%\*log.txt
del /f /s /q %systemdrive%\*.prv
del /f /s /q %systemdrive%\*.wbk
del /f /s /q %systemdrive%\*.xlk
del /f /s /q %systemdrive%\*.diz
del /f /s /q %systemdrive%\*.dmp
del /f /s /q %systemdrive%\mscreate.dir
del /f /s /q %systemdrive%\chklist.*
del /f /s /q %systemdrive%\*.ftg
del /f /s /q %systemdrive%\*.fts
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
DEL /S /F /Q "%systemroot%\Temp\*.*"
DEL /S /F /Q "%AllUsersProfile%\「開始」功能表\程式集\Windows Messenger.lnk"
RD /S /Q %windir%\temp & md %windir%\temp
RD /S /Q "%userprofile%\Local Settings\Temp"
MD "%userprofile%\Local Settings\Temp"
RD /S /Q "%systemdrive%\Program Files\Temp"
MD "%systemdrive%\Program Files\Temp"
RD /S /Q "%systemdrive%\d"
net user aspnet /delete
echo 清除系統垃圾檔案完成!
echo. & pause

星期一, 4月 02, 2007

Extern How?

全域吃透透寫法
a.h

extern double someVar;

a.cpp

#include
#include "a.h"
#include "c.h"
using namespace std;

int main() {
cout << someVar << endl;
test();
return 0;
}


b.cpp

#include "aaa.h"
double someVar = 1000;


c.h

void test();


c.cpp
#include
#include "aaa.h"

using namespace std;
#include "aaa.h"
void test() {
cout << someVar << endl;

}



就可以讓其他檔案也吃透透了,要非常小心這樣的用法,當程式數萬行之後,很容易把自己搞混。小心用。

星期一, 2月 26, 2007

專案愛靠北

一個賺錢的公司必須建立在強大的工作能力上,但在工作能力很強,因為溝通上出了問題,所失去的卻是專案開發中最重要的東西"時間"。而時間又是金錢,一直在時間上流失下去,所失去的就是更多的金錢。

開發一個產品需要很多部門的人各其所常。但在大家都專所常時就會出現很多盲點。一隻球隊如果球園各個喜歡單打獨鬥,是沒辦法打贏一隻團隊性和團結力非常高的隊伍。但每個部門又互相的排斥,問題只會越來越大,如果今天有個好的軟體,能好好的幫忙各單位處理各溝通的問題,在時間上的問題一定能減低不少。

來想個好的專案來解決問題杯,應該會用php類的程式來實作

星期二, 1月 30, 2007

screen

先安裝screen 先

看是要apt 還是yum 不管反正裝起來就是了.


使用
screen 之後就進入一個process這時候用ps wx 可以看到screen的process開了一些先的 process

這時候如果執行了一些程式正在跑

按下ctrl + a 然後 ctrl +d 就會跳到原本的狀態

最後是screen -r 就可以回到剛剛的process

好玩吧.

如果有很多個的時候
screen -r 後面加上他列出來的序號

就可以轉過去了..

好用!!

MindManager

Mindmanager

有時候在想東西時會覺得紙似乎不好用嗎?還是覺得自己畫的圖會有點醜?現在介紹這一套,創意開發軟體,就是幫忙你,更好發揮您的想法,他利用圖形的方式表達,能很清楚的顯示出您的思為.

你有看過族譜吧?這套軟體可以輕易的畫出類似的樣圖,像金屬歷史那樣複雜的歷史關係也能輕易的畫出,就是這樣有不少人不小心著迷了呦.

下面是截圖,看官可以參考參考.

3

2

1



不知道為啥我NB裝不起來呀?真怪.

phpMyAdmin

執行下列動作前~請先確定您建立了 MySQL 管理使用者,請參考[教學]phpMyAdmin 建立 MySQL 管理者

為了避免您的 phpMyAdmin 門戶大開,請務必要修改您的 phpMyAdmin 登入 config 檔,防止外人進入您的 mysql 造成資料庫被刪除的危機。

首先,打開 phpMyAdmin/config.inc.php

找到
代碼:
$cfg['PmaAbsoluteUri'] =

請在等號的後方填入您的 phpMyAdmin 路徑,例如:
代碼:
$cfg['PmaAbsoluteUri'] = 'http://takeneko.no-ip.com/phpMyAdmin/';


接下來,修改成為限定登入的方式,找到
代碼:
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname

這個是您的 MySql 的伺服器名稱,如果您是使用網路空間,請洽詢您的網路空間提供商,所提供的 MySql 的伺服器名稱,假如您是架設在 Windows 系統(非 Server 系列)之上,通常為 localhost。

然後,找到下面兩段語法:
代碼:

$cfg['Servers'][$i]['controluser'] = 'xxxxxx'; // MySQL control user settings
// (this user must have read-only
紅色xxxxxx輸入您的 MySql 管理帳號
$cfg['Servers'][$i]['controlpass'] = 'xxxxxx'; // access to the "mysql/user"
// and "mysql/db" tables)
紅色xxxxxx輸入您的 MySql 管理密碼


最後要以瀏覽器開啟登入畫面的設定,找到:
代碼:

$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?

竹貓
把預設的 config 修改成紅色字體的 http,還有紅色字體的 root 移除,接著儲存檔案關閉就可以了。
代碼:

$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user

SCim

SCIM 也是現在很多人用的輸入法,最有名的就是裡面的「酷音」吧。

 請先安裝以下套件:

# sudo apt-get install scim
# sudo apt-get install scim-chinese
# sudo apt-get install scim-config-socket
# sudo apt-get install scim-gtk2-immodule
# sudo apt-get install scim-tables-zh

 接著編輯 ~/.gnomerc 加上

export LANG=zh_TW.UTF-8
export LC_CTYPE=zh_TW.UTF-8export
XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="scim"
export XIM_PROGRAM="scim -d"
export QT_IM_MODULE="scim"
scim -f x11 -d
scim -f socket -d

阿駕

Gentoo 練習

  • /etc/init.d/sshd start 打開 ssh server
  • /etc/runlevels/ //開機啟動
  • nano -w /etc/resolv.conf 裡面也DNS的設定
  • nano -w /etc/make.conf 放置編譯參數
  • nano -w /etc/modules.autoload.d/kernel-2.6 需要把網路卡先加上去 //設定模組您將需要將想要開機時自動載入的模組放到
  • nano -w /etc/fstab 磁碟機掛載設定
  • vi /etc/fonts/fonts.conf
  • nano -w /etc/conf.d/net 網路卡設定
  • nano -w /etc/hosts 寫入網路資訊
  • nano -w /etc/rc.conf 系統資訊 <---KDE要在這邊設定
  • /etc/X11/xorg.conf X的設定檔 <-- 滑鼠也要在這設
etc-update // 更新 emerge 後的資料
export 環境變數...有時會需要
如果開機要加入x 就要rc-update -a xdm default
/usr/portage/app-i18n/scim
http://www.gentoo.org.tw/proj/ebuild/ebuild.xml //最佳化中文
/ .bashrc // 加入中文參數 export LANG="zh_TW.Big5"
                           export LC_ALL="zh_TW.Big5"
export XMODIFIERS="@im=SCIM"
startkde
gcin 安裝 /kde/autostart ln /usr/bin/gcin
中文字型 /etc/fonts/fonts.conf 加入
ACCEPT_KEYWORDS="~x86" emerge
lsmod //看使用中的drvier
lspci //查硬體資料
安裝音效卡 之後在 /etc/modules.autoload.d/kernel-2.6 裡加上開機啟動
snd_intel8x0
snd_mixer_oss
snd_pcm_oss
qpkg -l 安裝套件資料......

打開無線網路

modprobe ath_pci
iwconfig ath0 essid default
ln -s net.eth- net.ath0
./net.ath0 start
vi /etc/conf.d/net <---加無線的dhcp
dmsg
lspci 要安裝 pciutils
root的顏色 cp /etc/skel/ *.* 到root裡來..就ok之後在source .bashrc
USE="cjk nls arts kde qt ssl scim zh_TW X dvd alsa cdr"
consol看中文locale
emerge fam //
acpid 管理notebook上按鍵

Linux SSH 程式 SCREEN

rc-update add sshe default (設定起動開起)
/etc/init.d/sshd start (打開sshd)
如果要連上不同帳號 sssh Hisashi@140.130.13.114
如果不用之就直接 ssh 140.130.13.114 幾即可
ssh sreen -R Ctrl +a +d or Ctrl +a +c

如何 Register ?

REGSVR32 /u C:\DXSDK\Samples\C++\DirectShow\Filters\Dump\Debug_Unicode\dump.ax
/u是解除
如這行指令就能註冊了...
如果還要更方便就要修改
工具=>資料夾選項=>檔案類型=> 加一個新的檔案類型

執行動作: 名稱
用來執行動作的應用程式 C:\WINDOWS\system32\regsvr32.exe /u "%1"
這樣就完成了!! 之後按右鍵就會出現了趣的事了

系統分析

主要點
開發前要有一定的目標,資源,時程(按時程逐步進行)

需求分析

開發軟體系統必定經過有八個部奏的流程
中途有錯不可以直接回頭....要結束一輪後
才可重新除錯

八種modes
瀑model
漸增model
雛形model(用來給不熟析的人了解,做基本功能)
開發model
螺旋model
同步(Concurrent model)
開發時的團隊可以很多個但是整合&測試只有一個team

需求擷取與分析
有需求的定單後->訂單處理!!



結構化技術

Director SDK 環境 設定

安裝Director SDK 後
編譯Direct show

X:\DXSDK\Samples\C++\DirectShow\BaseClasses
編譯baseclasses.dsp檔

進Visual C++後 打開 Build=>set Active Configure
選取Debug 和 Debug Release 編譯後會產生
Strmbase.lib 和 Strmbase.lib 之後把這兩檔案放至 X:\DXSDK\Lib
在把所有的 .H檔放在 C:\DXSDK\Include方便以後使用

要把Strmbase.lib 和 Strmbase.lib 註冊一下
之後就可以打開GraphEdit了

(接)重灌gentoo

一個字...蠢...沒有DNS MIRRORS又怎麼出現啦....耍白吃勒...
忘東忘西的各性呀..><" 這次在/etc/make.conf 多加了USE參數..hmm
"cjk nls " 一定要加外多加了 kde dvd 幾個..hmm...
我就是從錯誤中學習...
之後就一連串的到了裝核心的時候了...
http://dev.gentoo.org/~brix/papers/X31/X31.html
這勒...有x31的相關說明...有前輩已經搞出了點東西
可以抄一抄...
把dotconfig copy 到 usr/src/linux-x 下的.config
在make menuconfig 存一下..多補些東西
hmm
make就ok了....
不過要先研讀好...核心設定...不然編出來的可能只是白編了

http://www.study-area.org/linux/system/linux_kernel.htm
補一下..安裝 Portage 光碟安裝
tar -xvjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr

# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/


最後總結一下...
這次重灌很久...遇到不少問題..
編核心時 現在已經有一份好的genkernel的 dotconfig可以用了
X11的xorng.conf 也有一份
這兩個重點要收藏好..
在來是輸入法的問題...scim..在.bashrc....打錯大寫小寫有差,,..所以別打錯

星期三, 9月 13, 2006

玩win32 MFc 很重要的東西

Message Routing
Message Loops
Message Maps


在MFC中很多東西都被藏起來了,所以為了瞭解,就必須找些win32的source code來參考一下,馬上就會得到解答.


Msg msg

while(GetMessage(&msg,NULL,0,0))<-- from 32api
{
TranslateMessage(&msg); <-- from 32api
DispatchMessage(&msg); <-- from 32api 會呼叫WinProc去處理Message
}




其中WM_USER(即0x0400)及以後的數字,均為使用者定義訊息代碼。