锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1銆佹簮紼嬪簭 //hello.c 1. #include <linux/init.h> 2. #include <linux/module.h> 3. 4. MODULE_LICENSE("Dual BSD/GPL"); 5. 6. static int hello_init(void) 7. { 8. printk(KERN_ALERT "hello module!\n"); 9. return 0; 10. } 11. 12. static void hello_exit(void) 13. { 14. printk(KERN_ALERT "bye module!\n"); 15. } 16. 17. module_init(hello_init); 18. module_exit(hello_exit); 2銆侀┍鍔ㄧ▼搴忎粙緇?/span> 涓涓?/span>linux鍐呮牳妯″潡涓昏鐢卞涓嬪嚑涓儴鍒嗙粍鎴愶細 錛?/span>1錛?/span>module鍔犺澆鍑芥暟銆?/span> 褰撻氳繃insmod鎴?/span>modprobe鍛戒護鍔犺澆鍐呮牳module鏃訛紝module鐨勫姞杞藉嚱鏁頒細鑷姩琚唴鏍歌繍琛岋紝瀹屾垚鏈?/span>module鐨勭浉鍏沖垵濮嬪寲宸ヤ綔銆?/span> module鍔犺澆鍑芥暟閫氳繃module_init()鍑芥暟鍚戝唴鏍告敞鍐屻?/span> 錛?/span>2錛?/span>module鍗歌澆鍑芥暟銆?/span> rmmod鍛戒護鍗歌澆鏌愪釜妯″潡鏃訛紝妯″潡鐨勫嵏杞藉嚱鏁頒細鑷姩琚唴鏍告墽琛岋紝瀹屾垚鏈ā鍧楀垵濮嬪寲鐨勭浉鍙嶅姛鑳姐?/span> module鍗歌澆鍑芥暟閫氳繃module_exit()鍑芥暟鍚戝唴鏍告敞鍐屻?/span> 錛?/span>3錛?/span>module璁稿彲澹版槑錛堝繀欏伙級 璁稿彲璇?/span>license澹版槑鎻忚堪鍐呮牳妯″潡鐨勮鍙潈闄愶紝濡傛灉涓嶅0鏄?/span>license錛屾ā鍧楄鍔犺澆鏃訛紝灝嗭紝鏀跺埌鍐呮牳琚薄鏌擄紙kernel tainted錛夌殑璀﹀憡銆?/span>linux涓彲鎺ュ彈鐨?/span>license鍖呮嫭“GPL”錛?#8220;GPL v2”錛?#8220;Dual BSD/GPL”錛?#8220;Dual MPL/GPL”絳夈?/span> 澶氭暟鎯呭喌涓嬶紝鍐呮牳妯″潡搴旈伒寰?/span>GPL鍏煎璁稿彲鏉冿紝2.6鍐呮牳妯″潡鏈甯歌鐨勬槸浠?/span>MODULE_LICENSE("Dual BSD/GPL"錛夎鍙ュ0鏄庢ā鍧楅噰鐢?/span>BSD/GPL 鍙?/span>LICENSE銆?/span> 錛?/span>4錛夋ā鍧楀弬鏁幫紙鍙夛級 錛?/span>5錛夋ā鍧楀埌澶勭鍙鳳紙鍙夛級 錛?/span>6錛夋ā鍧椾綔鑰呯瓑淇℃伅澹版槑錛堝彲閫夛級錛屽MODULE_AUTHOR錛堬級錛?/span>MODULE_DESCRIPTION錛堬級錛?/span>MODULE_ALIAS錛堬級絳夈?/span> 緙栬瘧寰楀埌hello.ko錛岀劧鍚?/span>insmod hello.ko鍔犺澆妯″潡錛?/span>rmmod hello.ko 鍗歌澆妯″潡銆?/span> linux鍐呮牳鐨勬暣浣撶粨鏋勫凡緇忛潪甯稿簽澶э紝鑰屽叾鍖呭惈鐨勭粍浠朵篃闈炲父澶氾紝鏈変袱縐嶆柟娉曟妸闇瑕佺殑閮ㄥ垎閮藉寘鍚湪鍐呮牳涓?/span> 涓錛屾妸鎵鏈夊姛鑳介兘緙栬瘧榪涘唴鏍革紝浣嗚繖鍥炲鑷翠袱涓棶棰橈紝鐢熸垚鐨勫唴鏍鎬細鐗瑰埆鎵擄紝鍋囧瑕佹妸鐜板湪鐨勫唴鏍稿鍔犳垨鍒犻櫎鍔熻兘錛屽皢涓嶅緱涓嶉噸鏂扮紪璇戞暣涓唴鏍搞?/span> 浜岋紝浣跨敤妯″潡module錛屼笂榪版垜浠啓鐨勬渶綆鍗曢┍鍔紝灝辨槸涓涓ā鍧?/span>module錛屽彲浠ラ殢鎰忕殑澧炲姞鎴栧垹闄ゃ?/span> 3銆?/span>Makefile鏂囦歡 鎬庢牱鎶?/span>hello.c婧愭枃浠剁紪璇戞垚helo.ko鍐呮牳妯″潡鍛紝鍚屾牱浣跨敤make錛屼絾榪欓噷鐨?/span>Makefile涓庝竴鑸殑搴旂敤紼嬪簭Makefile鏈夋墍涓嶅悓錛岄┍鍔?/span>Makfile瑕佹寚瀹氬唴鏍告簮浠g爜浣嶇疆錛屽厛鐪嬩竴涓畝鍗曠殑椹卞姩Makefile錛?/span> 1. obj-m := hello.o 2. KERNEL_DIR := /lib/modules/$(shell uname -r)/build 3. PWD := $(shell pwd) 4. all: 5. make -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules 6. clean: 7. rm *.o *.ko *.mod.c 8. 9. .PHONY:clean KERNEL_DIR涓哄唴鏍告簮浠g爜build鐩綍錛屾垜浠煡閬擄紝鍐呮牳瀛樻斁鍦?/span>/usr/src涓紝/lib/modules鍏跺疄鏄繛鎺ュ埌榪欎釜鍦版柟錛屽湪shell涓墽琛?/span>uname -r浼氬緱鍒版鍦ㄤ嬌鐢ㄧ殑瀹屾暣鍐呮牳鐗堟湰鍙鳳紝榪欐牱灝遍夋嫨浜嗛傚綋鐨勫唴鏍告簮鐮併?/span> PWD涓烘簮鏂囦歡hello.c鎵鍦ㄧ洰褰曘?/span> make -C 錛堝ぇ鍐?/span>C錛?/span> make浼氳繘鍏?/span>KERNEL_DIR鐩綍鎵ц姝ょ洰褰曚笅鐨?/span>Makefile錛岀劧鍚庡湪榪斿洖PWD鐩綍鎵ц鑷繁鍐欑殑Makefile銆?/span> 4銆佸湪緇堢涓?/span>make 1. [root@localhost driver]# make 2. make -C /lib/modules/2.6.9-89.ELsmp/build SUBDIRS=/root/linux/driver modules 3. make[1]: Entering directory `/usr/src/kernels/2.6.9-89.EL-smp-i686' 4. CC [M] /root/linux/driver/hello.o 5. Building modules, stage 2. 6. MODPOST 7. CC /root/linux/driver/hello.mod.o 8. LD [M] /root/linux/driver/hello.ko 9. make[1]: Leaving directory `/usr/src/kernels/2.6.9-89.EL-smp-i686' 榪欐牱hello.ko椹卞姩妯″潡灝變駭鐢熷ソ浜嗐?/span> 5銆?/span>insmod鍔犺澆 1. [root@localhost driver]# insmod hello.ko 6銆?/span>lsmod鏌ョ湅妯″潡 lsmod涓涓嬪氨浼氱湅鍒?/span>hello妯″潡鐨勫瓨鍦ㄤ簡錛屽茍涓斿湪緋葷粺鐨勬棩蹇?/span>/var/log/messages涓細璁板綍妯″潡鐨勮緭鍑猴紝涔熷氨鏄?/span> 1. printk(KERN_ALERT "hello module!\n"); 杈撳嚭鐨?/span>hello module錛?/span> 1. <pre name="code" class="plain">[root@localhost driver]#tail -1 /var/log/messages 2. Oct 13 11:27:07 localhost kernel: hello module! 7銆?/span>rmmod helle 鍗歌澆hello.ko
]]>#include <linux/init.h>
#include <linux/module.h>
#include <asm/gpio.h>
#include <linux/moduleparam.h>
#include <linux/mm.h>
#include <asm/io.h>
#define DEVICE_NAME "LEDS"
#define NUM_MAJOR 240
MODULE_LICENSE("Dual BSD/GPL");
static int leds_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
{
return 0;
}
static struct file_operations fops =
{
owner: THIS_MODULE,
ioctl: leds_ioctl,
};
static int leds_init(void)
{
// 娉ㄥ唽璁懼
register_chrdev(NUM_MAJOR, DEVICE_NAME, &fops);
return 0;
}
static void leds_exit(void)
{
// 娉ㄩ攢璁懼
unregister_chrdev(NUM_MAJOR,DEVICE_NAME);
}
module_init(leds_init);
module_exit(leds_exit);
]]>
]]> char szCurPath[256];
GetModuleFileName(NULL, szCurPath, 256);
for(int i=strlen(szCurPath)-1; i>=0; i--)
{
if(szCurPath[i] == '\\')
{
szCurPath[i+1]=0;
break;
}
}
2銆佽緗瓹ListCtrl椋庢牸
m_List1.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP);
3銆両NI鏂囦歡鎿嶄綔
GetPrivateProfileString("COMM", "BaudRate", "", ss, 20, szCurPath);
WritePrivateProfileString("COMM", "BaudRate", ss, szCurPath);
4銆佸瓧絎︿覆杞負16榪涘埗
{
int i;
char s[10];
buf[0]=0;
for(i=0; i<dwLength; i++)
{
sprintf(s, "%02X ", hex[i]);
strcat(buf, s);
}
}
]]>
銆銆鎶奧INDOWS2000瀹夎鏂囦歡鎷瘋礉鍒扮‖鐩橈紝鎵撳紑i386鐩綍涓嬬殑setupp.ini錛屽皢PID鍚庨潰鐨勬暟瀛楁敼鎴?1873270錛岄偅涔堝湪鏁翠釜瀹夎榪囩▼涓氨涓嶄細鏈夎緭鍏ュ簭鍒楀彿鐨勮繃紼嬩簡銆?
2錛氬疄鐜癢IN2000鐨勬棤浜哄煎畧瀹夎
銆銆鍦╓INDOWS2000鐨勫畨瑁呯洏涓婃湁涓涓猄UPPORTTOOLS鐨勭洰褰曪紝灝嗗叾涓殑DEPLOY.CAB鎷瘋礉鍒扮‖鐩橈紝鐢╓INZIP榪涜瑙e帇緙┿傜劧鍚庤繍琛屽叾涓殑setupmgr.exe錛學INDOWS2000浼氭牴鎹綘鐨勯渶瑕佸緩绔嬩竴涓嚜鍔ㄦ壒澶勭悊鏂囦歡銆備互鍚庡啀瀹夎WINDOWS2000錛屽彧闇瑕佸湪DOS涓嬮敭鍏innt錛?s:瀹夎鏂囦歡鐩綍錛斤薊/u:鑷姩瀹夎鏂囦歡鍚嶇О錛戒緥濡傦細
銆銆d:i386winnt /B /u:d:setup.txt /s:d:i386
銆銆琛ㄧず浣跨敤D:涓嬪垱寤虹殑setup.txt鏂囦歡瀵筗IN2000榪涜鑷姩瀹夎銆?/p>
鏂規硶1錛?br />1銆佹帶鍒墮潰鏉匡紞錛嶅尯鍩熷拰璇█閫夐」錛嶏紞鎶婃椂闂磋緗負24灝忔椂鏍煎紡銆?br />2銆佹墦寮娉ㄥ唽琛ㄥ緩绔婬KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT\VarConversionLocaleSetting = 2 (DWORD)
澶囨敞錛歄LEAUT 欏瑰彲鑳戒笉瀛樺湪銆傚鏋滃畠涓嶅瓨鍦紝鍒欏繀欏誨厛鍒涘緩璇ラ」銆?br />3銆侀噸鏂板惎鍔↖IS銆?/p>
闂瑙e喅錛屽師鐞嗘槸寮哄埗浣縜sp鏃墮棿浣跨敤鍖哄煙鏍煎紡銆?/p>
鏂規硶2錛?br />鏌ユ壘娉ㄥ唽琛紝鍏ㄩ儴鍖歸厤錛屾妸iTime鐨勫煎叏閮ㄦ敼鎴? 銆?
鐒跺悗淇敼鏈嶅姟鍣ㄧ郴緇熸椂闂達紝閲嶈搗鏈哄櫒瀹屽叏姝e父浜嗭綖
錛堟鏂規硶璇曡繃濂藉儚涓嶈錛?br />
聽
2銆佺偣欏規枃浠舵爮涓婄殑"欏圭洰"錛岀劧鍚庣偣"webproject1灞炴?--"閰嶇疆灞炴?--"璋冭瘯"閲岋紝鎶?ASP.NET璋冭瘯"鍘繪帀錛屾妸"ASP"璋冭瘯鎵撳紑銆?nbsp;
3銆佸彸閿畐ebproject1錛屾坊鍔犳柊欏?--WEB紿椾綋錛屽悕縐板彨index.asp錛堟敞鎰忓悕縐頒笉鏄痑spx錛屾槸asp錛夈傜劧鍚庡彲浠ョ湅鍒癷ndex.asp鐨凥TML澶勭悊緙栬緫鐘舵併?
4銆佹妸鐜版垚鐨勪唬鐮佸叏閮ㄥ垹闄わ紝鍥犱負榪欎釜鏄疺S鑷姩鐢熸垚鐨勶紝褰撲腑鏈変簺浠g爜鏄敤浜巃sp.net鐨勩傜劧鍚庝綘灝卞彲浠ヨ嚜鐢辯紪鍐欎綘鐨凙SP欏甸潰浜嗐傚湪緙栧啓浠g爜鐨勬椂鍊欙紝VS浼氭彁渚涗竴浜涜嚜鍔ㄥ畬鎴愬姛鑳斤紝寰堟柟渚跨殑銆?BR>
5銆佺幇鍦ㄥ噯澶囪皟璇曘傚湪璧勬簮綆$悊鍣ㄤ腑index.asp錛屽彸閿紝璁劇疆涓鴻搗濮嬮〉銆?
6銆佺劧鍚庣偣宸ュ叿鏍忎笂鐨?涓夎"錛堝搱鍝堬紝灝辨槸鎾斁閿級鍟︼紝榪欎釜灝辨槸debug鐨勮皟璇曘?
7銆佺劧鍚庝細璺沖嚭涓涓獥鍙h浣犺緭鍏ユ湰鏈哄瘑鐮侊紝浣犲氨杈撳叆浣犵櫥褰曠敤鎴風殑瀵嗙爜濂戒簡銆?IE璺沖嚭鏉ヤ簡錛岄〉闈腑鏄劇ず鍑?VS涓嬭皟璇旳SP欏圭洰"錛屽搱錛岃皟璇曟垚鍔熶簡錛?
緇撴潫璋冭瘯鐨勮瘽浣犲彲浠ュ湪VS閲岀偣宸ュ叿鏍忎笂鐨勯偅涓?鏂瑰潡"錛堝氨鏄仠姝㈣皟璇曪級錛屼篃鍙互鐩存帴鎶奍E鍏蟲帀錛屼篃浼氳嚜鍔ㄥ仠姝㈣皟璇曠殑銆?
濂戒簡錛屼笅闈㈡潵璋堣皥鎴戠殑涓鐐圭粡楠屽拰浣撲細鍚с?
1銆乂S璋冭瘯ASP紼嬪簭姣旇緝鎱紝榪欎釜鎱㈡槸浣撶幇鍦ㄦ墦寮IE欏甸潰鏃訛紝鎵浠ユ垜寤鴻涓鑸殑鍐欎唬鐮佸拰緙栫▼灝卞湪VS閲岋紝璋冭瘯鐨勬椂鍊欏氨鍍忎互鍓嶉偅鏍鳳紝鐩存帴寮涓狪E榪涜璋冭瘯銆備絾鏄紝瀵逛簬澶嶆潅鐨勯棶棰橈紝娑夊強鍒版祦紼嬮敊璇殑錛屾垜榪樻槸鍠滄鍦╒S閲岀敤鍗曟璋冭瘯錛岀敤F9鍦ㄦ煇涓湴鏂硅涓柇鐐癸紝鐒跺悗鐢‵10榪涜璺熻釜錛岃繖鏍峰浜庣▼搴忕殑嫻佺▼錛屽彉閲忓奸兘鍙互寰堝ソ鐨勭湅鍑烘潵錛堣繖浜涜皟璇曟妧宸уぇ瀹跺彲浠ュ弬鑰冧竴浜沘sp.net鏂歸潰鐨勪功錛屾垨鏄互鍓嶇殑VS6鐨勪功涔熻錛夛紝瑙e喅澶嶆潅闂涔熷氨蹇簡璁稿銆?
2銆佸緩绔嬫柊欏甸潰鏂囦歡鏃訛紝鎴戝緩璁繕鏄洿鎺ヨ繘鍒扮洰褰曚腑錛岀劧鍚庡緩绔嬪ソ錛屽啀鍒癡S鐨勮祫婧愮鐞嗗櫒涓紝鐢ㄦ坊鍔犵幇鏈夐」榪涜瀵煎叆錛岃繖鏍峰緩绔嬬殑鏂囦歡娌℃湁鍨冨溇浠g爜銆?
3銆乂S2003鍙互鎻愪緵寰堝ソ鐨勮嚜鍔ㄥ畬鎴愬姛鑳斤紝澶у鍙互鍏呭垎鐨勫埄鐢ㄣ?
4銆乂S.net鍙互瀹炵幇鎺т歡鎷栨斁鍔犺澆錛屼綘鍙互鍦ㄥ乏杈圭殑"宸ュ叿綆?--"HTML"閲屽彲浠ョ湅鍒幫紝鐩存帴鐐逛簡錛屾寜浣廙OUSE宸﹂敭鐩存帴鎷栧埌浣犳兂娣誨姞鐨勫湴鏂廣傜敱浜嶸S.net鏄拡瀵?net鐨勶紝鎵浠ヤ竴浜汬TML鎺т歡鐨勫睘鎬т腑涔熶綋鐜頒簡榪欎簺錛屾瘮濡?runat"榪欐牱鐨勫睘鎬э紝鍦╝sp涓槸鏍規湰鐢ㄤ笉璧鋒潵鐨勩備笉榪囧ぇ澶氭暟鎺т歡鐨勫睘鎬ч兘鏄彲浠ョ殑錛岃屼笖鍙互鍦?璁捐"瑙嗗浘涓嬭繘琛屾柟渚跨殑璁劇疆灞炴уソ鍟﹀氨璇磋繖涔堝鍚? 澶у鍙互鎱㈡參浣撲細錛氾級鏈変漢璇碊W涓嶉敊錛屾垜娌℃湁鐢ㄨ繃錛屼笉鐭ラ亾鎬庝箞鏍鳳紝涔熸湁浜鴻DW鏈変笉灝戝瀮鍦句唬鐮侊紝鍛靛懙錛歅
鏈枃鎽樺綍鑷細http://www.81819.com/Article/2004-3-1/news2004-6-2535008925.html
_CrtMemCheckpoint( &s2 );
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
鍙互緇熻紼嬪簭孌?涓槸鍚﹀彂鐢熶簡鍐呭瓨娉勬紡銆?/P>