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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2872|回復: 0
收起左側

開發項目的準備工作 - 一個字,累

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

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久网站 | 精品国产91乱码一区二区三区 | 91视频在线 | 亚洲成人精品一区二区 | 日本精品久久久久 | 免费观看黄色片视频 | 一区二区三区四区av | 免费的黄色片子 | 黄视频免费观看 | 91超碰在线观看 | 日韩一区二区三区视频在线播放 | 色狠狠一区| 色综合久久久久 | 美日韩视频| 国产一区高清 | 日本中文字幕日韩精品免费 | 中文字幕11页 | 中文字幕亚洲欧美 | h在线免费观看 | 拍真实国产伦偷精品 | 日本淫视频 | 精品无码三级在线观看视频 | 男人天堂色| 亚洲欧美日韩精品久久亚洲区 | 日韩精品一区二区三区免费观看 | 99久久影院 | 欧美一级免费 | 国产女人精品视频 | 欧美成人手机在线 | 日本一本在线 | 国产精品国产自产拍高清 | 中文字幕日韩欧美一区二区三区 | 超碰在线97国产 | 日韩成人影院 | 国产一区二区在线播放视频 | 天天拍天天操 | 国产精品1 | 成人亚洲性情网站www在线观看 | 欧美aⅴ片 | 成人在线免费网站 | 成人免费观看视频 |