Time of Update: 2018-12-07
這篇文章將探討一下C#和COM之間的相互通性,本文分兩個部分:第一部分講述了什麼是COM,第二部分講述在.NET Framework中怎樣應用COM。 第一部分:Component Object Model(COM) Component Component不是其他的什麼,而是可以嵌入到其他程式構成的並可重用的二進位軟體。它是通過提供的通用介面而和其他程式進行互動操作的,這樣就允許任何語言寫的兩個不同的應用程式進行通訊。 Component的重要性
Time of Update: 2018-12-07
寫正題之前,先給出幾個關鍵字的中英文對照,重載(overload),覆蓋(override),隱藏(hide)。在早期的C++書籍中,可能翻譯的人不熟悉專業用語(也不能怪他們,他們不是搞電腦編程的,他們是英語專業的),常常把重載(overload)和覆蓋(override)搞錯! 我們先來看一些代碼及其編譯結果。 執行個體一: #include "stdafx.h" #include class CB {
Time of Update: 2018-12-07
Time of Update: 2018-12-07
很多人都是從C++轉到C#,而我卻正好相反,從C#去學C++。第一次看那個東西我就直接用VS建一個C++項目,但一進去就悶了,不知道怎麼回事,更本看不懂裡面的檔案和檔案之間到底有什麼關係。今天終於弄明白了一點,h檔案和cpp檔案也就是說,在h檔案中聲明Declare,而在cpp檔案中定義Define。要弄明白這個就只要把聲明和定義搞懂就好了,但是還是不習慣通常用斷行符號敲得做法,C++中的智能提示跟C#中的簡直就是...
Time of Update: 2018-12-07
其實這是個相當簡單而且常見的東東,如果沒有特別的注意有時候是不那麼容易的。好久沒有寫部落格了,都不知道如何描述,總之最近下決心學習Directx開發,我下載安裝的是June 2010版本的SDK,應該是最新版本吧。也就是涉及到Directx 11開發,所以教程基本沒有地方找,何況我是個初學者,對於那些Directx
Time of Update: 2018-12-07
由於剛進公司沒多久和同事們共同開發一個項目,回到家裡也沒沒怎麼學習,也不知道要寫點什嗎?安裝了VISTA,在有些功能上還不懂的用,今天無聊中想起了一些操作符,但是真的忘記了它是怎麼算的了。看了一下感覺感覺,本文大部分內容和例子來自於MSDN,只是為了你後好找把它弄過啦,由於我還沒有裝MSDN上線上的很慢鬱悶。 加減乘除不用講了,中國人都會;&&,!=,<,>,等也差不多經常用到,今天來看看主要的幾個二進位計算的操作符: ~
Time of Update: 2018-12-07
在前面我們講過了如何初始化D3D11Device裝置初始化等等,這裡所講的繪製圖形將在上一篇文章的項目裡進行擴充,在螢幕中繪製圖形。在3D的呈現中最小的單位為三角形,無論我們看到的是多麼大或多麼小的,都是有一個或很多個三角形通過各種方向,角度構成的,當然這會涉及到很多數學中的幾何學問題,最悲劇的就是我在大學裡卻沒學好代數以及幾何學,有學也忘記了。不過Directx
Time of Update: 2018-12-07
前面我們學習了Directx 11如何在螢幕上繪製一個圖形(三角形),其中涉及到著色器,我們只是使用了其中的方法,而沒有講解著色器是如何工作的,到底什麼是著色器等等,今天將來瞭解一下著色器到底是什麼!!!由於在Directx
Time of Update: 2018-12-07
上網baidu一下或google一下這個東東就有很多人在問這個問題,最近我也用到了這個,所以就留下來以備往後需要是可以尋找。我想通過這個來作為C#調用windows APIs的出發點,在以後的隨筆當中介紹一下我現階段用到的一些APIs或非託管類庫。在調用非託管DLL的APIs前,我們應該好好掌握一下DllImportAttribute,MSDN給出的定義為:可將該屬性應用於方法。DllImportAttribute 屬性提供對從非託管 DLL
Time of Update: 2018-12-07
union主要是共用記憶體,分配記憶體以其最大的結構或對象為大小,即sizeof最大的。在C/C++程式的編寫中,當多個基礎資料型別 (Elementary Data Type)或複合資料結構要佔用同一片記憶體時,我們要使用聯合體;當多種類型,多個對象,多個事物只取其一時(我們姑且通俗地稱其為“n選1”),我們也可以使用聯合體來發揮其長處。一下轉載自網站:在C/C++程式的編寫中,當多個基礎資料型別 (Elementary Data
Time of Update: 2018-12-07
在前一篇文章中我們知道了頂點著色器和像素著色器的用途,在例子中也知道了如何在3D的座標系中畫一個2D的映像,即畫一個三角形,這次我們需要知道如何在3D座標系中呈現一個3D的映像,並且瞭解一下在3D空間中幾個座標系的認識。這些在遊戲編程中都會使用到,因為每個3D物件都有自己的座標系,至於如何轉換這些座標系我想可能我們需要在下一節中進行另一番討論。學習是無止境的,貴在堅持,希望我也能夠堅持我童年時的夢想,在不久的將來實現我的遊戲夢。 3D空間認識:在前面章節中,在螢幕上繪製的2D映像三角形是以螢幕對
Time of Update: 2018-12-07
我們知道,用C++開發的時候,用來做基類的類的解構函式一般都是虛函數。可是,為什麼要這樣做呢?下面用一個小例子來說明:
Time of Update: 2018-12-07
C++箴言:絕不重定義繼承的非虛擬函數2005-11-16 08:58作者:fatalerror99出處:BLOG責任編輯:方舟 假設我告訴你 class(類)D 從 class(類)B publicly derived(公有繼承),而且在 class(類)B 中定義了一個 public member function(公有成員函數)mf。mf 的參數和傳回值類型是無關緊要的,所以我們就假設它們都是 void。換句話說,我的意思是: class B { public: void mf();
Time of Update: 2018-12-07
C++繼承中的重載、覆蓋和隱藏 寫正題之前,先給出幾個關鍵字的中英文對照,重載(overload),覆蓋(override),隱藏(hide)。在早期的C++書籍中,可能翻譯的 人不熟悉專業用語(也不能怪他們,他們不是搞電腦編程的,他們是英語專業的),常常把重載(overload)和覆蓋(override)搞錯! 我們先來看一些代碼及其編譯結果。 執行個體一: #include "stdafx.h" #include class
Time of Update: 2018-12-07
一些成員函數改變對象,一些成員函數不改變對象。例如: int Point::GetY(){ return yVal;} 這個函數被調用時,不改變Point對象,而下面的函數改變Point對象: void Point:: SetPt (int x, int y){ xVal=x; yVal=y;} 為了使成員函數的意義更加清楚,我們可在不改變對象的成員函數的函數原型中加上const說明: class Point { public: int GetX() const; int
Time of Update: 2018-12-07
通訊Server: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#pragma comment(lib, "ws2_32.lib") #include <Winsock2.h> #include <stdio.h> void main() { //版本協商
Time of Update: 2018-12-07
下面的是學C++時要注意的。絕對經典。!! 1.把C++當成一門新的語言學習(和C沒啥關係!真的。); 2.看《Thinking In C++》,不要看《C++變成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者所以就不看; 4.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是整合式開發環境,而我們要學的是一門語言;
Time of Update: 2018-12-07
1、C++中的繼承方式有: public、private、protected三種(它們直接影響到衍生類別的成員、及其對象對基類成員訪問的規則)。 (1)public(公有繼承):繼承時保持基類中各成員屬性不變,並且基類中private成員被隱藏。衍生類別的成員只能訪問基類中的public/protected成員,而不能訪問private成員;衍生類別的對象只能訪問基類中的public成員。 (2)private(私人繼承):繼承時基類中各成員屬性均變為private,並且基類中priv
Time of Update: 2018-12-07
class Test { public: int get_value() { return value; } private: int value; }; 要求不用友元,不在這個類裡添加任何代碼,把成員變數k的值改為100,結果自然是通過公用成員函數get_value來驗證。 “不在類裡添加任何代碼”,除了#define private public
Time of Update: 2018-12-07
1. 隱式和顯式初始化1.1 C++隱式初始化int ival(1024);string hello("Hello world.")1.2 C++顯式初始化int ival = 1024;string hello = "Hello world." *PS: 注意這裡"=" 文法是拷貝建構函式而不是賦值運算! 因為一個新對象被定義一定要有一個建構函式而不不是一個賦值操作 string hello;hello = "Hello world"; <- 這裡hello