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

首頁 > 編程 > .NET > 正文

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

2024-07-21 02:20:10
字體:
來源:轉載
供稿:網友
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 kernel32 {
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品videosex牲欧美| 黄色精品一区二区| 欧美激情中文网| 午夜精品久久久久久99热软件| 日韩电影免费观看在线| 日本高清不卡的在线| 亚洲乱码一区av黑人高潮| zzjj国产精品一区二区| 影音先锋欧美在线资源| 法国裸体一区二区| 亚洲最大av网| 亚洲free性xxxx护士hd| 欧美另类交人妖| 亚洲欧美日韩综合| 亚洲精品欧美一区二区三区| 国产精品偷伦一区二区| 一区二区三区日韩在线| 日韩风俗一区 二区| 国产欧美一区二区三区在线看| 国产成人精品日本亚洲| 国产欧美精品日韩精品| 国产精品激情av电影在线观看| 欧美有码在线观看视频| 久久伊人精品天天| 欧美大片免费观看在线观看网站推荐| 永久免费毛片在线播放不卡| 久久中文久久字幕| 亚洲第一精品久久忘忧草社区| www.日韩不卡电影av| 亚洲2020天天堂在线观看| 久久综合免费视频影院| 国产精品一区二区电影| 中文字幕9999| 日韩在线观看网站| 久久这里有精品| 欧美亚洲另类制服自拍| 久久男人资源视频| 欧洲成人在线视频| 久久久这里只有精品视频| 成人网欧美在线视频| 欧美理论在线观看| 亚洲一区二区福利| 日韩中文字幕网站| 国产日韩视频在线观看| 韩日欧美一区二区| 岛国av在线不卡| 全色精品综合影院| 亚洲国产精品久久久久| 国产精品尤物福利片在线观看| 国产精品久久不能| 久久久中文字幕| 国产精品激情自拍| 欧美成人一区二区三区电影| 亚洲性69xxxbbb| 69av视频在线播放| 日韩精品中文字幕有码专区| 精品成人久久av| 午夜精品一区二区三区在线视| 日韩成人性视频| 国产精品久久电影观看| 欧美久久久精品| 欧美情侣性视频| 成人免费网站在线观看| 欧美精品电影在线| 日韩hd视频在线观看| 97在线视频观看| 亚洲精品美女免费| 久久久久亚洲精品成人网小说| 亚洲国产欧美在线成人app| 欧洲精品毛片网站| 久久精品成人欧美大片古装| 亚洲成人网在线| 91成人在线观看国产| 亚洲国产精品女人久久久| 亚洲第一福利在线观看| 国产精品啪视频| 日韩在线视频二区| 国产精品色婷婷视频| 国内精品久久久久影院优| 久久视频在线观看免费| 成人国产精品免费视频| 欧美在线视频免费| 欧美国产精品日韩| 久久久久久久一区二区三区| 成人久久久久久久| 国产欧美一区二区三区在线看| 亚洲国产精品va在线观看黑人| 亚洲欧美综合区自拍另类| 欧美中文字幕第一页| 成人黄色av网| 国产啪精品视频网站| 国产91精品久久久久久久| 亚洲最大成人免费视频| 精品成人69xx.xyz| 欧美激情乱人伦| 成人在线国产精品| 97人人爽人人喊人人模波多| 欧美日韩精品中文字幕| 久久国产精品影片| 日本a级片电影一区二区| 两个人的视频www国产精品| 欧美激情伊人电影| 97欧美精品一区二区三区| 国产精品电影网| 精品日本高清在线播放| 91成人在线视频| 久久精彩免费视频| 日韩精品中文字| 日韩中文字幕在线免费观看| 色一情一乱一区二区| 韩国欧美亚洲国产| 亚洲国产精品高清久久久| 亚洲tv在线观看| 91国产美女在线观看| 亚洲香蕉在线观看| 九九热最新视频//这里只有精品| 91国内在线视频| 亚洲成av人影院在线观看| 国产综合久久久久久| 亚洲白虎美女被爆操| 久久99国产精品久久久久久久久| 色哟哟网站入口亚洲精品| 亚洲精品91美女久久久久久久| 国产精品高潮呻吟久久av无限| 亚洲精品久久在线| 日韩国产欧美精品一区二区三区| 午夜精品蜜臀一区二区三区免费| 国产欧美日韩精品专区| 亚洲第一福利在线观看| 亚洲女人天堂色在线7777| 精品动漫一区二区三区| 日韩av色综合| 亚洲国产精品推荐| 精品美女永久免费视频| 欧美成人全部免费| 亚洲国产天堂久久综合| 久久成人精品一区二区三区| 最近中文字幕mv在线一区二区三区四区| 国产成人亚洲综合91精品| 91精品国产一区| 亚洲欧美日韩在线高清直播| 久久久久久久91| 国产成人拍精品视频午夜网站| 在线观看日韩www视频免费| 日韩精品视频在线观看网址| 91亚洲va在线va天堂va国| 国产在线视频2019最新视频| 国产精品久久久久久久久久新婚| 亚洲男人7777| 成人午夜在线视频一区| 亚洲精品久久久久久久久| 中文.日本.精品| 精品视频在线导航| 在线播放国产一区中文字幕剧情欧美| 精品福利在线看| 日本欧美一二三区| 在线国产精品播放| 欧美另类第一页| 成人欧美一区二区三区在线湿哒哒| 欧美精品久久一区二区| 中文字幕国产亚洲2019| 成人国产亚洲精品a区天堂华泰| 性欧美暴力猛交69hd| 国产精品精品一区二区三区午夜版|