顯示具有 技術練習 標籤的文章。 顯示所有文章
顯示具有 技術練習 標籤的文章。 顯示所有文章

星期四, 4月 02, 2009

抓mmmmacaddress

IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information
DWORD dwBufLen = sizeof(AdapterInfo); // Save memory size of buffer
DWORD dwStatus = GetAdaptersInfo( AdapterInfo, &dwBufLen);
PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo; // Contains pointer to
do {
if(strcmp(pAdapterInfo->IpAddressList.IpAddress.String,"0.0.0.0")!=0)
{
int a=0;
}
pAdapterInfo = pAdapterInfo->Next; // Progress through
// linked list
}
while(pAdapterInfo); // Terminate if last adapter

星期一, 1月 12, 2009

Struct 小記

struct MsgStruct
{
int m_nprotocol;
int nSize;
char myData[0];
};

可變長度 只要把
myData 用隨意的記憶體蓋過就是長在MsgStruct之後隨之送出即可,比較要注意的是,加上的記憶體長度。

星期四, 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月 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

星期二, 1月 30, 2007

screen

先安裝screen 先

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


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

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

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

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

好玩吧.

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

就可以轉過去了..

好用!!

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)及以後的數字,均為使用者定義訊息代碼。

星期三, 8月 23, 2006

char 陣列 指標 問題

char* s1 = "abcde";
char* s2 = "abcde";
char s3[] = "abcde";
char s4[] = "abcde";
char* skk = "abcde";
printf("%p\n", s1);
printf("%p\n", s2);
printf("%p\n", s3);
printf("%p\n", s4);
printf("%p\n", skk);

所得到的
s1
s2
skk位置都會一樣


char aa[64];
cout<<\sizeof(aa)<<\endl; //大小64
\strcpy(aa,"ddd");
cout<<\strlen(aa)<<\endl; 長度3


char*a="~~~~~~~~~~~~";
char a[]="~~~~~~~~~~~~";
printf("%s\n",a);
printf("%s\n",*a); //只會顯示~

Blog E

最好搞清楚一點這小東東

星期四, 7月 27, 2006

朋友函數 friends

friend 不會受到 private protected public 的影響!!
friend有可能是一個namespace的函式.也可能是class member function 也可能是朋友類別 .

當 class test{

};

架構定義下之後並沒有配制到記憶體內,只有當 test aa;時才會,這和JAVA小小的不同
JAVA要new過之後才算數.

星期三, 7月 19, 2006

MFC 讀一張bmp and 秀出來

如果要用DIB就要傳一堆的參數給DIB的section
比如說加上一些有的沒的資料結構
struct {
BITMAPINFOHEADER info;
DWORD Bitfield[3];
}Header;

可以存一些BMP裡面的資訊,比如說,size,


void CChildView::OnPaint()
{
CPaintDC dc(this);
HDC memDC;
memDC=::GetDC(0);

HDC dd;
dd=::CreateCompatibleDC(memDC);

hbitmap=(HBITMAP)::LoadImage(::GetModuleHandle(0), _T("acropolis.bmp"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE);

holdbitmap=::SelectObject(dd,hbitmap);
// Attach(memDC);
// memDC.CreateCompatibleDC(dc);
BitBlt(dc,0,0,1024,600,dd,0,0,SRCCOPY); //BitBLT是秀圖用的funtion 第一個參數是準備要秀圖的dc,後面的dd是存好圖的的dd,第一個x,y是基準座標,然後是大小,後面的x,y是dd裡面的坐標.最後要加上SRCCOPY

星期一, 7月 17, 2006

MFC 影像處理

首先將焦點放在這兩個 MFC裡的東西上

DIB – Device-Independent Bitmap
DDB – Device-Dependent Bitmap

是windows GDI上面的繪圖格式,就以前的方式,我通常一般的書上只會交pixel的繪圖,可是當圖非常大的時候,顯示的效能就明顯有差距.

這可以配合serialize()進行檔案的串流.
不過寫MFC感覺真恶心..><"

星期四, 7月 13, 2006

Makefile 小試身手


main.cpp


#include <iostream>
using namespace std


int main(void)


{
cout << "Can You Feel My World?" ;


return 0;
}


----------------------------------------------

all:main.cpp
<tab> g++ main.cpp -g -o run
注意一點 <tab>要按tab 按了g++那行變紅色才ok不然不會過的呦



等瞭解多一點在寫個解釋的文