Visual C++ 8.0物件版面配置的奧秘:虛函數、多繼承、虛擬繼承

從MS Visual C++ Team的Andy Rich那裡又偷學到一招:VC8的隱含編譯項/d1reportSingleClassLayout和/d1reportAllClassLayout 。看個複雜的例子吧(如下),現在假設我們想知道Derived類的物件版面配置,怎麼辦? 在Project Properties->C++->Command Line->Additional

Microsoft Visual C++浮點最佳化

摘要:瞭解如何使用 Microsoft Visual C++ 2005(以前稱為 Visual C++“Whidbey”)的浮點語義管理方法來最佳化浮點代碼。建立快速程式,同時確保僅對浮點代碼執行安全最佳化。C++ 中的浮點代碼最佳化C++ 最佳化編譯器不僅能夠將原始碼轉換為機器碼,而且能夠對機器指令進行適當的排列以便改善性 能和/或減小大小。遺憾的是,許多常用的最佳化在應用於浮點計算時未必安全。在下面的求和演算法 [1] 中,可以看到這方面的一個恰當的樣本:float

Visual C++最佳化概述

摘要:示範了Visual C++ 2003 編譯器提供的眾多代碼最佳化功能中的幾項功能。Microsoft Visual C++ Toolkit 2003 包含最佳化 C++ 編譯器。大多數開關相當簡明,並且已經在 Visual C++ 產品的多個版本中存在,但仍然有兩個開關比較新,並且無須重寫代碼就能夠顯著提高速度。它們是 /GL (Whole Program Optimization) 和 /G7(它能產生為 Pentium 4 或 AMD Athlon 最佳化的代碼)。還有一個選項

用Visual C++最佳化代碼

摘要:本文介紹了Visual C++ .NET 2003產品中提供的代碼最佳化功能。此外,對於那些還不熟悉 Visual C++ .NET 2002 中進行的改進的讀者,本文還用一個較短的部分介紹了在這一改進中引入的新的“全程式最佳化”功能。最後,本文討論了一些與最佳化有關的“最佳策略”,以及對 Visual C++

在C++中建立並使用Web服務

Web服務的確是.net中讓人激動的部分——但它們本身比.net要大。其中的道理很簡單。幾乎所有你能叫出名字的服務都有一些執行伺服器端代碼的機制:你在瀏覽器的地址欄中輸入一個URL;接收到你的請求,伺服器上就開始運行什麼東西,然後以html頁面返回你要的結果。它可能是ASP,ASP.NET,Servlets,甚至是五年前通過CGI觸發的Perl本。因此想象一下,如果運行代碼返回的是XML格式而非HTML格式的結果,並且服務要求並非是在瀏覽器地址欄中輸入的url,而是某些代

WinUnit:簡化的本機C++應用程式單元測試

本文討論:單元測試原理設定 WinUnit構建測試裝置實施和自訂本文使用了以下技術:C++和Visual Studio目錄立即開始測試WinUnit 入門裝置:設定和清除運行 WinUnit實現詳細資料深入學習...目前,要想讓機器碼開發人員一點也感覺不到壓力可能是非常困難的- 好像使用 Microsoft® .NET

使用C++進行Windows開發:使用虛擬變數和格式說明符進行X64調試

目錄處理器體繫結構虛擬變數格式說明符可視化呼叫慣例錯誤碼調試安全環境多年來,Visual C++ 一直包含一組用於調試的虛擬變數和格式說明符。虛擬變數是指這樣的內容:可以輸入到偵錯工具監看式視窗中,使其顯示某種不必與任何 C++

VC10中的C++0x特性 part 3:聲明之類型

本文為 Part 3。今天我要講 decltype,它讓完美轉寄函數能夠返回任意類型的東西。對編寫高度泛型的人來說這是很有趣的的特性。傳回型別問題C++98/03 有一個有意思的盲點:給定一個像 x * y 的運算式, x 和 y 是任意類型,你卻沒法知道 x * y 的類型。假如 x 是 Watts 類型的, y 是 Seconds 類型的,那 x * y 的類型可能會是 Joules 類型的。 給定聲明 print(const T& t),調用 print( x * y )

VC10中的C++0x特性 Part 2 (3):右值引用

本文為 Part 2 的第三頁轉寄問題在程式員不用寫高度泛化的代碼的時候,C++98/03 的 lvalue,rvalue,引用,還有模板看起來是很完美的。假設你要寫一個完全泛化的函數 outer(),這個函數的目的是將任意數目個任意類型的參數傳遞(也就是“轉寄”)給函數 inner()。已有很多不錯的解決方案,比如 factory 函數 make_shared<T>(args) 是把 args 傳給 T 的建構函式,然後返回 shared_ptr<T&

VC10中的C++0x特性 part 2(2):右值引用

本文為 Part 2 第二頁。move 語意:從 lvalue 移動現在,如果你喜歡用拷貝賦值函數來實現你的拷貝建構函式該怎樣做呢,那你也可能試圖用 move 拷貝賦值函數來實現 move 建構函式。這樣作是可以的,但是你得小心。下面就是一個錯誤的實現:C:\Temp>type unified_wrong.cpp#include <stddef.h>#include <iostream>#include <ostream>using namespace

VC10中的C++0x特性 Part 2 (1):右值引用

本文為 Part 2 的第一頁今天我要講的是 rvalue references (右值引用),它能實現兩件不同的事情: move 語意和完美轉寄。剛開始會覺得它們難以理解,因為需要區分 lvalues 和 rvalues ,而只有極少數 C++98/03 程式員對此非常熟悉。這篇文章會很長,因為我打算極其詳盡地解釋 rvalue references 的運作機制。不用害怕,使用 ravlue references 是很容易的,比聽起來要容易得多。要在你的代碼中實現 move

VC10中的C++0x特性 Part 1:Lambdas,auto,以及 static_assert

簡介這一系列文章介紹Microsoft Visual Studio 2010 中支援的C++ 0x特性,目前有三部分。Part 1 :介紹了Lambdas, 賦予新意義的auto,以及 static_assert;Part 2( 一 , 二 , 三 ):介紹了右值引用(Rvalue References);Part 3:介紹了運算式類型(decltype)本文為 Part 1。Microsoft Visual Studio 2010 九月Community Technical Preview (

C++ Plus:使用Visual C++ 2008功能包加強Windows應用程式

本文討論:Microsoft 基礎類庫更新使用 C++ 對功能區進行編程使用 C++ 實現選項卡式 MDI多態函數和智能指標本文以 Visual C++ 功能包的預發布版為基礎。文中包含的所有資訊均有可能變更。本文使用了以下技術:Visual Studio 2008,MFC目錄Office 功能區使用者介面選項卡式多重文件介面標準 C++ 庫中的新功能多態函數對象智能指標作為一名 Visual C++ 開發人員 ,您在最近幾年可能有點被冷落的感覺,因為與 Visual C#®

使用Visual C++防禦功能保護您的代碼

目錄基於堆棧的緩衝區溢位檢測 (/GS)安全異常處理 (/SafeSEH)DEP 相容性 (/NXCompat)映像隨機化 (/DynamicBase)更安全的函數調用C++ Operator::new如果失敗會怎樣?許 多代碼都是使用 C 和 C++ 編寫的,但遺憾的是,其中很多此類代碼都有一些甚至連開發人員都不知道的安全性漏洞。以任何語言編寫的程式都存在可能會使其使用者受到攻擊的漏洞,但 C 和 C++ 語言在 Internet

C++的模板技巧:編譯器探測類成員

C++0x提供了豐富的type trait用於generic編程。但是,其中並沒有探測類成員的type trait.不藉助編譯器的協助,要實現這個type trait是很困難的。這裡我們對需求進行適當的修改:探測類中是否存在指定名稱和類型的成員。在C++中,函數重載是最常見的實現type

Windows下如何使用BOOST C++庫

我採用的是VC8.0和boost_1_35_0。自己重新編譯boost當然可以,但是我使用了http://www.boostpro.com/products/free提供的安裝工具 BoostPro 1.35.0 Installer (192K .exe) 。我強烈建議使用這個工具來在Windows下安裝BOOST庫和源檔案。1)使用boost_1_35_0_setup.exe這個工具下載boost庫,選擇你要的包(類型總是Mutilthread和Mutithread

COM組件開發實踐(六)---From C++ to COM :Part 3

在上一篇文章《COM組件開發實踐(五)---From C++ to COM :Part 2 》中,我們進展到使用COM庫載入C++對象了,這一篇中我們將真正將C++對象變成 COM對象,而在下一篇中我們將為它添加多介面支援。C++對象變成COM對象要將一個C++對象變成一個真正的COM對象,只需要如下操作:1)實現介面的引用計數。因此每個COM對象都需要有兩個函數用於管理引用計數:ULONG AddRef();  ULONG

COM組件開發實踐(五)---From C++ to COM :Part 2

一,使用抽象基類重用C++對象在上一篇文章《COM組件開發實踐(四)---From C++ to COM :Part

COM組件開發實踐(四)---From C++ to COM :Part 1

一,C++客戶重用C++對象假設已經有一個可以重用的類,我們就可以在自己的程式中去重用它,只需要將其定義和實現檔案加入到我們自己的工程中,並且在使用它的檔案中包含此類的定義檔案就可以了,這也是我們最常用的C++標準重用方法。就拿我自己來說,在CodeProject上遇到比較好的控制項代碼,都是這樣直接用到自己的項目中來的。下面就給出我這個系列的第一個程式碼範例,在接下來的幾篇文章中,將基於此代碼不斷進行改進,一步步從C++走向COM.簡單介紹下我們要重用的C++對象,它是一個簡單的類似資料庫的對

深入探討下一代Visual C++

本文以 Visual Studio 的預發布版(代號為“Orcas”)為基礎。文中包含的所有資訊均有變更可能。本文討論:使應用程式以 Windows Vista 為目標MFC 的增強功能準備適用於 UAC 的應用程式封送處理本機和 CLR 類型本文使用了以下技術:Visual C++, Visual Studio目錄準備適用於 Windows Vista 的應用程式添加對新的公用控制項的支援其他 MFC 增強功能為使用者帳戶控制做準備與Managed

總頁數: 4314 1 .... 2928 2929 2930 2931 2932 .... 4314 Go to: 前往

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.