windows核心編程–函數返回錯誤

 1 windows程式錯誤的處理機制    windows API的傳回型別資料類型 表示失敗的值 V O I D 該函數的運行不可能失敗。Wi n d o w s 函數的傳回值類型很少是V O I D B O O L如果函數運行失敗,那麼傳回值是0 ,否則返回的是非0 值。最好對傳回值進行測試,以確定它是0 還是非0 。不要測試傳回值是否為T R U E H A N D L E如果函數運行失敗,則傳回值通常是N U L L ,否則傳回值為H A N D L E

windows核心編程–字元集

 字元unicode與windows 1 軟體的本地化要解決的真正問題,實際上就是如何來處理不同的字元集。以前我們習慣與用單一位元組字元集來編程.2 單字元集:將文本串作為一系列單位元組字元來進行編碼,並在結尾處放上一個零。(每個字元用一個位元組來表示)3 雙位元組字元集(D B C S ):在雙位元組字元集中,字串中的每個字元可以包含一個位元組或包含兩個位元組。4 unicode字元集:U n i c o d e 提供了一種簡單而又一致的表示字串的方法。U n i c o d e

windows核心編程–核心對象

簡單地說: 核心對象是系統的一種資源。系統對象一旦產生,任何應用程式都可以開啟並且使用該對象。系統給核心對象一個計數值作為管理只用,核心對象包括: event,mutex,semaphore,file,file-mapping,preocess,thread.這些核心對象每次產生都會返回一個handle,作為標示,每使用一次,對應的計數值加1,調用CloseHandle可以結束核心對象的使用。具體:1.  核心對象:    1).符號對象    2).事件對象    3).檔案對象    4).

windows核心編程–windows程式的執行

Windows 應用程式的執行  Windows 支援兩種類型的應用程式。一種是基於圖形化使用者介面( GUI )的應用程式,另一種是基於控制台使用者介面( CUI )的應用程式。 ( 兩者間可以相互轉化 , 沒有明確的界限 , 就是說可以讓 CUI 程式中可以有 Dialog 介面等 , 而 GUI 介面中也可以有 console 來輸出資訊 )  對於一個應用程式: 一 作業系統實際上先調用的是C / C + +運行期啟動函數。該函數負責對C / C +

windows核心編程–線程

進程是由兩個部分構成的,一個是進程核心對象,另一個是地址空間。同樣,線程也是由兩個部分組成的:• 一個是線程的核心對象,作業系統用它來對線程實施管理。核心對象也是系統用來存放線程統計資訊的地方。 •

windows核心編程–線程的同步

線程的同步由於同一進程的所有線程共用進程的虛擬位址空間,並且線程的中斷是組合語言級的,所以可能會發生兩個線程同時訪問同一個對象(包括全域變數、共用資源、API函數和MFC對象等)的情況,這有可能導致程式錯誤。屬於不同進程的線程在同時訪問同一記憶體地區或共用資源時,也會存在同樣的問題。因此,在多線程應用程式中,常常需要採取一些措施來同步線程的執行。需要同步的情況包括以下幾種:在多個線程同時訪問同一對象時,可能產生錯誤。例如,如果當一個線程正在讀取一個至關重要的共用緩衝區時,另一個線程向該緩衝區寫入

Windows多線程間同步事件的控制方法

摘要:在Windows中所有的應用程式實際上都以是線程的方式啟動並執行。在設計多線程應用程式中有時必須線上程之間保持一定的同步關係,才能使使用者能夠對獨立啟動並執行線程進行有效控制。為此本文在簡要介紹Windows中線程的概念及其建立方法後,提出了一種在多線程之間利用 event對象實現事件同步的控制方法。最後還介紹了在不同應用程式之間進行同步事件控制的方法,這種方法使得不同應用程式進行相互間的同步事件控制變得很簡單。    一. 引言  Windows

Windows下NDK開發環境的搭建

Windows下NDK開發環境的搭建 一:什麼是NDK?NDK 提供了一系列的工具,協助開發人員快速開發C(或C++)的動態庫,並能自動將so和java 應用一起打包成apk。這些工具對開發人員的協助是巨大的。NDK 整合了交叉編譯器,並提供了相應的mk 檔案隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk 檔案(指出“哪些檔案需要編譯”、“編譯特性要求”等),就可以建立出so。NDK可以自動地將so

windows核心編程–纖程

比線程更小的單位,好像用的不多的哦纖程的操作 首先要注意的一個問題是,實現線程的是Wi n d o w s核心。作業系統清楚地知道線程的情況,並且根據M i c r o s o f t定義的演算法對線程進行調度。纖程是以使用者方式代碼來實現的,核心並不知道纖程,並且它們是根據使用者定義的演算法來調度的。由於你定義了纖程的調度演算法,因此,就核心而言,纖程採用非搶佔式調度方式。

windows核心編程--記憶體結構

進程的虛擬位址空間 每個進程都被賦予它自己的虛擬位址空間。對於3 2位進程來說,這個地址空間是4 G B,因為3 2位指標可以擁有從0 x 0 0 0 0 0 0 0 0至0 x F F F F F F F F之間的任何一個值。這使得一個指標能夠擁有4 294 967 296個值中的一個值,它覆蓋了一個進程的4 G B虛擬空間的範圍。

windows核心編程--虛擬記憶體

 Wi n d o w s提供了3種進行記憶體管理的方法,它們是: • 虛擬記憶體,最適合用來管理大型物件或結構數組。 • 記憶體對應檔,最適合用來管理大型資料流(通常來自檔案)以及在單個電腦上啟動並執行多個進程之間共用資料。 • 記憶體堆棧,最適合用來管理大量的小對象。虛擬記憶體的狀態 Wi n d o w s函數G l o b a l M e m o r y S t a t u s可用於檢索關於當前記憶體狀態的動態資訊: VOID

windows核心編程–精華

學習《 windows 核心編程》    u       字元集,一切軟體的基礎,單字集(用 1 個位元組表示一個字元),雙位元組字元集( DBCS, 並不是用 2 個位元組表示一個字元哦,而是用 1 個, 2 個,或多個位元組的混合來表示字元),寬位元組字元集( unicode 用 2 個位元組來表示一個字元)。對 windows 作業系統來說, windows 98 核心用 ANSI , windows ME 用 unicode , windows 2000 以後的版本也用 unicode

windows燒錄編程

 一,使用 Windows XP 內建的燒錄功能參考    http://msdn.microsoft.com/msdnmag/issues/04/04/CQA/1,簡單檔案燒錄    使用 Shell 的 ICDBurn 介面,其中方法:        HasRecordableDrive 掃描系統,如果發現可寫的CD磁碟機則返回TRUE。        GetRecorderDriveLetter 返回可寫磁碟機。        Burn 執行燒錄動作,從集結區(staging

windows核心編程--記憶體對應檔

與虛擬記憶體一樣,記憶體對應檔可以用來保留一個地址空間的地區,並將實體儲存體器提交給該地區。它們之間的差別是,實體儲存體器來自一個已經位於磁碟上的檔案,而不是系統的頁檔案。一旦該檔案被映射,就可以訪問它,就像整個檔案已經載入記憶體一樣。 記憶體對應檔可以用於3個不同的目的: • 系統使用記憶體對應檔,以便載入和執行. e x e和D L L檔案。這可以大大節省頁檔案空間和應用程式啟動運行所需的時間。 • 可以使用記憶體對應檔來訪問磁碟上的資料檔案。這使你可以不必對檔案執行I /

windows核心編程--記憶體堆棧

對記憶體進行操作的第三個機制是使用堆棧。堆棧可以用來分配許多較小的資料區塊。例如,若要對連結資料表和連結樹進行管理,最好的方法是使用堆棧,堆棧的優點是,可以不考慮分配粒度和頁面邊界之類的問題,集中精力處理手頭的任務。堆棧的缺點是,分配和釋放記憶體塊的速度比其他機制要慢,並且無法直接控制實體儲存體器的提交和回收。

windows核心編程--DLL進階

DLL的進入點函數 一個D L L可以擁有單個進入點函數。系統在不同的時間調用這個進入點函數,這個問題將在下面加以介紹。這些調用可以用來提供一些資訊,通常用於供D L L進行每個進程或線程的初始化和清除操作。如果你的D L L不需要這些通知資訊,就不必在D L L原始碼中實現這個函數。例如,如果你建立一個只包含資源的D L L,就不必實現該函數。如果確實需要在D L L中接受通知資訊,可以實作類別似下面的進入點函數:  BOOL WINAPI DllMain(HINSTANCE

drwtsn32 調試windows程式

一直忙著調試代碼,寫伺服器的代碼,有時候真叫人鬱悶,鬱悶的是要高效能的保持程式繼續運行n多天還沒有事情,本來這也是程式員該做的事情,但是有時候一些長期積累下來的問題會造成程式指明性的打擊~~~在寫這個程式的時候,本機調試代碼的時候都沒有遇到任何記憶體流失的問題,調試的時候都很清晰,但是到客戶那裡運行一天到兩天就沒名的掛掉,真讓人鬱悶而且沒有任何報錯~~無奈,開啟了drwtsn32來檢測程式的運行報錯情況drwtsn32是windows調試的利器,調試不常見錯誤的程式的時候,累積錯誤的時候,都可以

Windows 7 64位機上OpenCV2.4.3的編譯、安裝與配置

1.      從http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/下載OpenCV2.4.3;2.      將OpenCV-2.4.3.exe放到D:\soft\OpenCV2.4.3檔案夾下,解壓到當前檔案夾下,產生一個opencv檔案夾;3.      下載並安裝CMake:http://www.cmake.org/cmake/resources/software.html4.      從http:

Windows7 64位機上Emgu CV2.4.2安裝與配置

1.      從http://sourceforge.net/projects/emgucv/?source=directory下載最新的Emgu CV2.4.2;2.      將libemgucv-windows-x86-gpu-2.4.2.1777拷貝到D:\soft\Emgu2.4.2檔案夾下,運行此.exe檔案,將其安裝到D:\soft\Emgu2.4.2\emgucv-windows-x86-gpu2.4.2.1777檔案夾下,安裝完後會自動重啟;3.      將D:\soft\

Windows7 32位機上,OpenCV中配置GPU操作步驟

1、  查看本機配置,查看顯卡類型是否支援NVIDIA GPU;2、  從http://www.nvidia.cn/Download/index.aspx?lang=cn下載最新驅動並安裝;3、  從https://developer.nvidia.com/cuda-toolkit根據本機類型下載相應最新版的CUDA Toolkit5.0,安裝,並通過樣本程式驗證其安裝正確;4、  將C:\ProgramFiles\NVIDIA GPU Computing

總頁數: 1345 1 .... 387 388 389 390 391 .... 1345 Go to: 前往

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。