亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

dotNET C# Programmer's Guide to the Win32 API (Win

2024-07-21 02:27:59
字體:
來源:轉載
供稿:網友
dotnet c# programmer’s guide to the win32 api (win32 api 聲明c#版)



小氣的神 2001.09.07



噢,對不起我用了這個標題,事實上如果我能做到10%,我就很高興了。因為我的桌上正放著一本dan appleman的書,它曾伴隨我許多年,也許你也有一本:1215頁,藍色書皮,機械工業出版社。英文名叫:《 dan appleman’s visual basic 5.0 programmer’s guide to the win32 api 》。而我除了借用這個類似的名字之外,只是做了一下整理工作,不過這是一個不小的工作量(haha)



我把kernel32.dll、user32.dll、gdi32.dll、 advapi32.dll、shell32.dll、spoolss.dll、winmm.dll的函數和聲明整理了一下,改用c#的語法重新改寫了一遍,整理出一個c#版本。這樣針對dotnet的platform invocation services(pinvoke),你就可以直接使用這些win32的api函數了。目前ms沒有公布整個的win32api有多少可以在dotnet中使用,有多少不行。有些功能在dotnet中沒有對應的實現,那么目前你可能還需要使用win32的api函數。



結構和枚舉聲明放在一起,kernel32.dll、user32.dll、gdi32.dll分別放在3個cs文件中;剩下的advapi32.dll、shell32.dll、spoolss.dll、winmm.dll四個dll的函數放在一個cs文件中,整個的namespace 起名叫win32api.大致的構架應該象下面這樣:

namespace win32api {



using system;

using system.runtime.interopservices;



先是所有的結構和枚舉聲明

class kernel32 {….}

class user32 {….}

class gdi32 {….}

class advapi32 {….}

class shell32 {….}

class spoolss {….}

class winmm {….}

}



對應的生成下面的c#文件:

structs.net.cs

kernel32.net.cs

user32.net.cs

gdi32.net.cs

otherfnc.net.cs



然后編譯它們,這樣就可以使用它們了,我沒有計算5個文件包括的所有的準確個數,不過應該有百個結構和枚舉,上千個函數聲明吧。完成這些之后,現在最常用的messagebox我可以這樣使用了:



using system ;

using win32api;



public class testwin32api

{

public static void main()

{



int iret ;

iret = user32.messagebox( 0, "hello c# win32 api" , "my pinvoke", 0 ) ;

}

}



就在測試這個例子時發生了一件有趣的事,因為剛開始我的cs文件都沒有加net的標識這樣很自然的就有了kernel32.cs、 user32.cs等等,messagebox是user32.dll中的,而我編譯的user32.cs默認生成的也叫user32.dll,當我執行這個測試程序時終于發生錯誤,我一直以為自己的聲明有問題,然后我用frameworksdk中的例子也還是出錯,直到我在其它的目錄中運行正常時,我才發現原來自己的dll名和系統的dll名完全一樣。然后就改成上面的那樣,不過很奇怪csc /t:exe /r:user32.dll testwin32api.cs 的編譯指令居然沒有錯誤提示,真是可惡。提醒你不要也象我一樣。

惡夢也許還在后面,我還不知道真正的cs聲明中又有多少個錯誤,反正用到的時候再調試吧。因為太多了所以不可能全都測試,也不敢一個個的測試,只希望自己這些整理能起到拋磚引玉的作用,如果以后你有新的版本,不要忘了mail一份給我。



附帶的zip包中有所有cs的源碼,我在framework sdk beta2 下都編譯通過。

windows 2000 adv server sp2 en

visual c# compiler version 7.00.9254

clr version v1.0.2914

你可以根據你的情況進行編譯(要先編譯structs.net.cs,因為其它的都要/r:structs.net.dll)或者使用二進制的dll。dotnet的編譯技術很好,5個dll加起來才100多k。



下面是一下源碼的節選:



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


// write by ccboy

// date: 2001.09.07

// csc /t:library /r:system.dll structs.net.cs

// csc /t:library /r:structs.net.dll kernel32.net.cs

// emeditor 3.14



namespace win32api {



using system;

using system.runtime.interopservices;



[structlayout (layoutkind.sequential)]

public class abc {

public int abca;

public int abcb;

public int abcc;

}



[structlayout (layoutkind.sequential)]

public class abcfloat {

public float abcfa;

public float abcfb;

public float abcfc;

}



public class kerne


中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
88国产精品欧美一区二区三区| 久久亚洲精品小早川怜子66| 国产亚洲欧美一区| 久久综合久久美利坚合众国| 欧美香蕉大胸在线视频观看| 久久久国产精品免费| 国产精品极品在线| 国产精品网红直播| 精品av在线播放| 欧美精品18videosex性欧美| 国产精品久久久久久一区二区| 欧美日韩国产精品一区二区不卡中文| 成人午夜激情免费视频| 国产成人亚洲综合91精品| 精品久久久久久亚洲国产300| 欧美精品在线第一页| 精品国偷自产在线| 欧美日韩综合视频| 17婷婷久久www| 九九热精品视频国产| 亚洲香蕉成视频在线观看| 亚洲视频综合网| 久久精品国产亚洲7777| 欧美大奶子在线| 亚洲欧洲一区二区三区久久| 精品福利在线看| 亚洲国产欧美日韩精品| 亚洲大胆人体视频| 亚洲a中文字幕| 91在线高清免费观看| 一区二区三区天堂av| 疯狂蹂躏欧美一区二区精品| 久久99热这里只有精品国产| 欧美夫妻性视频| 国产亚洲欧美日韩精品| 欧美影院在线播放| 国产网站欧美日韩免费精品在线观看| 色婷婷成人综合| 在线精品国产欧美| 欧美精品福利在线| 久久久视频在线| 亚洲精品一区二区三区不| 欧美成人午夜激情| 日韩在线观看免费网站| 福利视频第一区| 欧美激情亚洲国产| 久热精品在线视频| 综合激情国产一区| 午夜美女久久久久爽久久| 欧美性xxxxxx| 久久久久久久久久国产精品| 91影院在线免费观看视频| 久久大大胆人体| 精品国产区一区二区三区在线观看| 96sao精品视频在线观看| 中文字幕日本欧美| 亚洲欧美日韩综合| 8090成年在线看片午夜| 精品国产91久久久久久| 中文国产成人精品| 日韩中文有码在线视频| 亚州精品天堂中文字幕| 欧美国产日韩在线| 欧美黑人极品猛少妇色xxxxx| 国产精品第一页在线| 在线电影中文日韩| 日韩中文字幕免费看| 中文字幕亚洲欧美日韩2019| 亚洲美女av网站| 91日韩在线播放| 国产一区二区三区毛片| 欧美肥婆姓交大片| 欧美日韩亚洲精品一区二区三区| 久久精品国产成人精品| 色香阁99久久精品久久久| 性色av香蕉一区二区| 自拍偷拍亚洲区| 亚洲精品久久久久久久久久久久| 久久久www成人免费精品张筱雨| 成人av资源在线播放| 2019av中文字幕| 91高清在线免费观看| 美乳少妇欧美精品| 91爱视频在线| 中文字幕av日韩| 日韩精品视频在线观看免费| 555www成人网| 欧美性xxxx极品hd满灌| 欧洲成人免费视频| 国产精品999999| 日韩av男人的天堂| 国产精品视频1区| 亚洲一区二区三区在线免费观看| 最近2019中文免费高清视频观看www99| 色av中文字幕一区| 亚洲精品在线视频| 国产91在线高潮白浆在线观看| 国产精品久久综合av爱欲tv| 91九色国产视频| 国产成人精品久久久| 欧美刺激性大交免费视频| 亚洲国产天堂久久国产91| 伊人伊成久久人综合网小说| 久久久久久久久91| 亚洲黄页视频免费观看| 一级做a爰片久久毛片美女图片| 美女撒尿一区二区三区| 九九久久精品一区| 精品精品国产国产自在线| 国产精品永久免费视频| 国产97在线视频| 亚洲xxx大片| 日本三级韩国三级久久| 伊人伊成久久人综合网站| 亚洲欧洲第一视频| 亚洲欧美日本精品| 国产主播欧美精品| 日韩电视剧免费观看网站| 亚洲人av在线影院| 精品国产一区久久久| 日本精品视频在线| 亚洲成人国产精品| 国产精品一区二区3区| 日韩欧美在线视频免费观看| 亚洲最新av在线| 亚洲精品中文字幕有码专区| 精品高清一区二区三区| 欧洲日本亚洲国产区| 日韩一二三在线视频播| 91九色国产视频| 亚洲欧洲视频在线| 国产亚洲欧美一区| 97在线精品国自产拍中文| 欧美午夜片在线免费观看| 97成人在线视频| 欧美成人免费一级人片100| 亚洲va欧美va国产综合久久| 欧美性猛交xxxxx水多| 国产成人a亚洲精品| 亚洲天堂网在线观看| www.亚洲成人| 欧美成人精品在线观看| 亚洲国模精品私拍| 亚洲第五色综合网| 欧美整片在线观看| 欧美电影在线观看| 亚洲黄色在线观看| 久久久亚洲福利精品午夜| 精品美女国产在线| 国产精品免费一区二区三区都可以| 国产精品久久久久久久久久免费| 中文字幕欧美日韩va免费视频| 高清欧美性猛交| 亚洲综合日韩中文字幕v在线| 国产日韩视频在线观看| 久久国产精品首页| 亚洲网站在线观看| 91美女福利视频高清| 欧美国产日韩在线| 高清亚洲成在人网站天堂| 色婷婷综合久久久久| 91影院在线免费观看视频| 久久精品青青大伊人av| 成人在线一区二区|