久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2731|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

開發(fā)項目的準(zhǔn)備工作 - 一個字,累

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-13 16:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      前面說了,因為工作的需求,幾乎有一個多月了,每天都在看這些與USB,Windows 系統(tǒng)相關(guān)的資料。說起來微軟的東西的最大好處就是資料齊全,你可以不用出門,就在MSDN上獲得很多詳細(xì)的技術(shù)資料說明。不過因為資料是E文的,而且每個都很長,鏈接巨多,不知道會有多少人能夠耐心看下去。不管怎么說,就是看過了,也怕很快就會遺忘。因此上趁自己還有點印象,就把看到的內(nèi)容記下來。要是以后再要用了,也好能夠明白的快一點,不需要吃二次苦,受二次罪了。
先把MS的鏈接放在這里,要是有不確定的地方了,可以隨時訪問MS的東西。嘿嘿。
http://msdn.microsoft.com/en-us/library/ms791126.aspx
這是MSDN中有關(guān)設(shè)備的類的說明。
0. 我的學(xué)習(xí)目標(biāo)
其實我的學(xué)習(xí)目標(biāo)不是如何編寫Windows系統(tǒng)下的設(shè)備驅(qū)動程序,因為我沒有開發(fā)新的設(shè)備。我只是為了搞清楚在我的系統(tǒng)中,都有哪些設(shè)備;他們之間都是什么關(guān)系;設(shè)備的狀態(tài)怎樣;如何單獨控制其中的一個或幾個設(shè)備的啟動/停止/卸載,或者單獨控制使用某一個設(shè)備的特殊功能。能夠達(dá)到這樣的目的,這就夠了。
學(xué)習(xí)的前提:在大學(xué)時讀的專業(yè)不是計算機專業(yè),計算機只是業(yè)余愛好,因此上,雖然從1991年工作以來就開始使用計算機,但編程水平一直限制在使用簡單的BASIC語言的水平。1992年的時候,看到別人使用Turbo C 2.0,覺得很羨慕。那時就開始接觸12張5'盤的Borland C++ 3.0,但是開始使用的是 Borland C++3.1。這是開始接觸C/C++語言的開始。可惜的很,當(dāng)時對于MS的C6/C7很反感,沒有看到其MFC有什么特別的優(yōu)勢。但是到了1995年前后,開始接觸到VC2.0,4.0,也是因為Borland C++4.0/4.5把我們給拋棄了?上уe過了最佳的學(xué)習(xí)機會,當(dāng)時的工作方向也有所轉(zhuǎn)移,因此上對VC就沒有深入了解下去,直到現(xiàn)在都是一知半解。
還好的是,Windows的底層設(shè)備驅(qū)動,大都不涉及到 VC++及MFC類庫的事情,就憑借當(dāng)時BC++3.1的那些基礎(chǔ),這個工作還是能夠做下去的。只是一開始要完成一個簡單的程序編譯,都不是那么容易。這個另外找話題再說了。
1. 平臺選擇
為了便于最終應(yīng)用的界面開發(fā),我選擇的目標(biāo)程序語言是Visual BASIC 6.0這個開發(fā)平臺。而為了便于理解Windows系統(tǒng)內(nèi)部的操作過程,必須安裝 VC++6.0/VS2005/VS2008這樣的底層操作跟蹤平臺。因此我采用的是 Windows XP SP3中文版,VB6中文SP6 + VS2008SP1的平臺,另外
安裝的是Windows DDK 2600 + WDK R6001的DDK開發(fā)工具。這樣,最終的系統(tǒng)中,只是采用部分Windows API就可以在VB6上實現(xiàn)想要的對于Windows 底層驅(qū)動的操作,而用戶界面上,使用VB編寫最為簡單方便。
2. 技術(shù)瓶頸
不像Windows 系統(tǒng)的用戶層API,對于操作Windows系統(tǒng)設(shè)備的API,在VB6中并沒有給出可以參考的 API Viewer 或?qū)牍ぞ摺;蛟SMS認(rèn)為既然要操作底層驅(qū)動,沒有人會用VB這樣的入門級語言去做的。因此上對于如何正確的使用 Windows API,如何自定義其中用到的數(shù)據(jù)結(jié)構(gòu)及常數(shù),是這個項目的第一個難點。
目前的 Windows 系統(tǒng)大部分都在內(nèi)部采用了 Unicode 編碼,而在系統(tǒng)的語言定義中,依然有多字節(jié)MDBS格式,在大部分API中,都會存在Unicode 和MDBS格式兩種格式的API。必須選擇正確的API才能取得正確的結(jié)果。這個問題在用VS2008重新編譯用VC6編寫的程序時尤為突出,明明看到輸入了正確的參數(shù),偏偏得到的結(jié)果是錯的,就是看不到任何問題。通過對反匯編代碼的跟蹤發(fā)現(xiàn),直接傳遞給API的Unicode必須經(jīng)過轉(zhuǎn)換后才能取得想要的結(jié)果。而對于VB6來說,問題剛好相反。VB6自身采用的是Unicode 格式,但是API返回的數(shù)據(jù)大部分是ASCIIZ的格式,不是VB想要的String類型,又必須經(jīng)過另外的轉(zhuǎn)換,才能夠正確獲得。對于字符串是這樣還好,而對于很多數(shù)組類型的數(shù)據(jù),則操作要格外小心了。
這個工作的開始1-2周,幾乎全部是忙著這些基本的東西。沒有其它辦法,只能多看別人的編程資料,一個函數(shù)一個函數(shù)的調(diào)試,摸索Windows API在VB中如何使用的方法。只有一個字 - 累。
搞清楚了基本工具的關(guān)系,這個問題并沒有順利。因為從現(xiàn)有的資料來看,對于設(shè)備的操作方面的實踐特別少,個別的例子都不夠深入,只是示例以下的一種用法,但是其中的每個參數(shù)的
取值都是什么,能夠得到什么樣的結(jié)果,都是不得而知。在這幾天的實踐中,不知道試了多少中不同的組合,除了多少次錯誤。最終沒有辦法,還是回到基礎(chǔ)上來 - 慢慢的看MS的設(shè)備開發(fā)資料。自己最怕的部分還是無法躲過去,沒有捷徑可以走。原來想著能夠從別人的例子中找出自己想要的東西,湊到一起就算完事的想法,根本就行不通。這就成了這個工作越做越累得原因 - 本來想偷懶,沒有想到要付出的更多。這也好了,不得不回頭認(rèn)真學(xué)習(xí)MS的資料了。其實在前1-2周的實踐中,將有關(guān)USB的資料,也只有細(xì)細(xì)的拜讀了。
從畢業(yè)參加工作到現(xiàn)在,已經(jīng)很少這么樣的投入看資料了。其它還好,只是晚上睡覺也后,滿腦子還是怎么調(diào)用,怎么安排流程的問題。晚上睡不踏實,白天有時也難免不能精力集中了。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲色在线视频 | 精品一区二区三区91 | 日韩精品一区二区三区视频播放 | 国产成人99久久亚洲综合精品 | 欧美日韩在线一区二区 | 久久亚洲经典 | 99re热精品视频 | 天天插天天射天天干 | 一区二区三区免费 | 色婷婷综合网 | 久久久久国产精品 | 伊人狠狠干 | 毛片毛片毛片毛片毛片 | 不卡视频一区二区三区 | 亚洲精品一区二区网址 | 亚洲人人舔人人 | 成人高清在线 | 人人干免费 | 99re热精品视频国产免费 | 亚洲国产精品一区 | 7777在线| 99热播精品 | 亚洲激情在线观看 | 久久国产成人 | 久久亚洲国产精品日日av夜夜 | 国产精品二区三区在线观看 | 国产日韩久久 | 欧美日韩一区在线观看 | 久久男人 | 日韩视频在线观看一区二区 | 欧美视频精品 | 亚洲另类视频 | 日日干夜夜操 | 成在线人视频免费视频 | 一区二区精品视频 | 日本一本在线 | 亚洲日韩视频 | 看av电影 | 成人一区av | 91原创视频 | 一区二区三区视频在线观看 |