C++的反射和序列化

Gamasutra上有篇文章講得挺細的: Sponsored Feature: Behind the Mirror - Adding Reflection to C++RTTI在Class聲明後加入RTTI宏的做法幾乎快成各種引擎的標配了, 誰叫C++的rtti太弱來著.之前只是認為自己實現RTTI的原因是dynamic_cast的效率不高和對象工廠的需要, 原來關掉這個編譯選項還可以減少佔用的記憶體Field(Property)實現反射必須有一些屬性成員的描述類,

AE+C#實現縮放座標比例尺長度面積量測輸出圖片等功能

 代碼如下:#region "工具條按鈕"        //拉框放大        private void toolStripButton_Zoomin_Click(object sender, EventArgs e)        {            currentoperation = "拉框放大";            axMapControl1.MousePointer = esriControlsMousePointer.esriPointerZoomIn;       

C#與C++/CLI的互動的一個細節

C#裡面的out修飾,對應C++/CLI的[OutAttribute] T %初始代碼(C++/CLI):void XXX(IntPtr % handle);(C#):IntPtr handle;XXX(out handle);一開始,因為沒有[OutAttribute],導致C#調用C++/CLI的函數的時候,總是提示錯誤 CS1502: 與“XXX(ref IntPtr)”最匹配的重載方法具有一些無效參數錯誤 CS1620: 參數 2

C/C++中枚舉類型(enum)

如果一個變數你需要幾種可能存在的值,那麼就可以被定義成為枚舉類型。之所以叫枚舉就是說將變數或者叫對象可能存在的情況也可以說是可能的值一一例舉出來。 舉個例子來說明一吧,為了讓大家更明白一點,比如一個鉛筆合中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就可以定義一個枚舉類型來表示它! enum

C++0x:如何擷取lambda運算式的傳回型別

最近看了老趙的博文,意識到lambda不僅僅提供了一個仿函數的文法糖,而在於能封裝環境變數,從而更輕鬆的實現非同步函數調用.之前利用模板實現過非同步函數調用,因為VS2008以前的C++不支援variadic templates和lambda,所以,其實現是用宏實現的0至N個參數的仿函數.因此,本次修改主要是保留以前的代碼的基礎上,增加lambda的支援.但在擷取lambda的傳回值的地方費了會兒時間,遂Google之,然後找到這個連結:http://blog.csdn.net/zwvista/

C++ 中的反射

 http://msdn.microsoft.com/zh-cn/library/y0114hz2.aspx 更新:2007 年 11

DirectX in C++/CLI

昨天熟悉了一下怎麼使用CLR, 今天就在裡面寫個3D程式試試注意, 這個DirectX是Native DirectX, 不是Managed DirectX, 更不是什麼XNA-_- 其實很簡單嘛....沒遇到什麼困難就弄出來了那些控制項基本上你想用什麼事件/屬性找找MSDN就能找出來, 汗~~~真是人性化啊 至於遇到什麼問題了的話, 冒似在CLR類嵌入NativeC++的類的時候要用指標不過這是我的編程習慣.........因為建立Device時需要一個HWND,

把C++/CLI委託傳入本地代碼

參考: http://resnikb.wordpress.com/2009/05/18/passing-ccli-delegate-to-native-code/ C++/CLI可以直接執行C++, 這個沒有問題, 那麼反過來呢?比如底層C++進行一項任務, 完成了需要通知上層的C++/CLI, 總不能在上面不停地查詢吧?通常這是通過回調來實現的, 說漂亮點就是觀察者模式, 說成.net的就是委託.而委託, 本質是就是函數指標.

C#指令碼實踐(一)

個人對指令碼語言認識不深, 尤其是動態語言...但是問了好多人為什麼邏輯用指令碼寫, 答案都是不用編譯這也只能怪DT的C++當初沒設計好由於WOW的成功, 讓lua幾乎成了遊戲指令碼的標準原來的python/ruby/tcl啥的一下子就沒落了, 都怪暴雪啊~雖然lua做為一個指令碼語言來說, 非常的完美但是我對它不是很感冒, 可能習慣了C系語言的文法了對於C/C++/C#/Java/JS/AS類的我才看著比較順眼而且, 從學校開始, 好像自己就中了C#的毒一般, 雖然一直沒機會大量應用,

C++與Flash的互動

研究Flash嵌入遊戲中的可行性.......渲染問題已解決事件響應已解決下面是C++與Flash AS的互動, 以MFC為例:1. 建立一個MFC Dialog程式2. 添加一個Flash控制項 3. 把Flash控制項添加一個變數 4. 在OnInitDialog()中添載入.swf檔案// CCppFlashDlg 訊息處理常式 BOOL CCppFlashDlg::OnInitDialog(){ CDialog::OnInitDialog(); //

隨機函數rand()[c++]

轉載於:http://blog.csdn.net/woxueliuyun/archive/2008/02/29/2132543.aspx 一、C++中不能使用random()函數     random函數不是ANSI C標準,不能在gcc,vc等編譯器下編譯通過。但在C語言中int random(num)可以這樣使用,它返回的是0至num-1的一個隨機數。 可改用C++下的rand函數來實現。    

在 C# 中定義常量的方法

在 C# 中,不能使用#define 前置處理器指令定義常量,而這是 C 和 C++ 中通常採用的方式。這要求對常量的所有引用都使用該類名作為首碼,如下面的樣本所示。static class Constants{    public const double Pi = 3.14159;    public const int SpeedOfLight = 300000; // km per sec. }class Program{    static void Main()    {      

From C to C++: A quick reference for aging programmers

文章目錄 RelatedShare  一篇比較精鍊的從C到C++語言文法過度的博文,儘管不完美,但值得借鑒。轉自:http://triptico.com/docs/c2cpp.htmlSo you were a great system programmer, back in the old days; your low level programs were celebrated by clever people, you loved

C++中的範圍運算子和函數參數預設值知識

 物件導向的思想:封裝,繼承,多態性.1.範圍運算子"::"範圍:變數在程式中的起作用範圍簡單分為:全域範圍,局部範圍,語句範圍範圍優先順序:範圍越小優先順序越高範圍運算子:"::"如果希望在局部變數的範圍內使用同名的全域變數,可以在該變數前加上"::","::"稱為範圍運算子.//範圍#include <iostream>usingnamespace std;int avar=10;//全域變數avarint main(){int

C# 使用者自訂UserControl控制項使用

 UserControl控制項。   添加UserControl後,按照說法應該出現在ToolBox中,如果找不到,需要設定:   工具-》選項-》Windows表單設計器-》常規-》工具箱-》AutoToolBoxPopulate 改為TRUE。   這種方法不會針對這個UserControl產生dll。     還有一種方法是,建立一個UserControl工程,這個工程會產生一個控制項的dll,在引用工程的ToolBox中,右鍵->Choose

C# +AE載入shp、柵格、地圖文檔資料

步驟:1) 建立工作空間工廠2) 開啟shapefile工作空間3) 開啟要素類4) 建立要素圖層5) 關聯圖層和要素類6) 添加到地圖空間具體代碼(後面數字為對應的步驟):              IWorkspaceFactory pWorkspaceFactory=new ShapefileWorkspaceFactory (); // 1            openFileDialog1.Filter="shaperfile(*.shp)|*.shp";           

模取冪運算 (a^b mod c)

其思想是利用數學公式: (a * b ) mod c = (( a mod c) * b) mod c;首先把 b 轉化成二進位如: b0 b1 b2 b3..... b31 即 b = b0*231 + b1*230+......+ b31;也就是把 ab = a ^ (b0*231 + b1*230+......+ b31) = [a(b0*2^31)] * [a(b1*2^30)] *..... * [ab31*2^0];所以如果b的化成二進位的某位為0時,可以直接用這樣算

A^B%C

提起 a^b%c 我們自然想起了模重複平方發,一個可以在 log(n)的時間複雜度內求出他的解。但是有些情況是不能這樣簡單的計算的:情況1:c 很大(c > =2^32)雖可在__int64 的表示範圍內,但是如果兩個這樣的數平方必定會超過__int64的表示範圍,就不能簡單的乘了,這樣可以有兩種方法             方法一:如果可以分解為若干個互素的數(利用素數分解),且每個數小於 2^32,可以分別對每個數求出a^b %

Java調用C/C++

    JAVA通過JNI調用本地方法,而本地方法是以庫檔案的形式存放的(在WINDOWS平台上是DLL檔案形式,在UNIX機器上是SO檔案形式)。通過調用本地的庫檔案的內部方法,使JAVA可以實現和本地機器的緊密聯絡,調用系統級的各介面方法。下面簡單介紹步驟:1。首先來看一個Java類,稍後再具體來解釋package wen.hui;public class TestDll {/* * 首先需要在類中聲明所調用的庫名稱 *

在表單中操作EXCEL(C#)

之前的程式大多是在單獨的EXCEL進程中操作EXCEL,而不能直接在表單上對其進行操作。使用微軟提供的AxSpreadSheet雖然能將EXCEL的內容複寫到表單上,但也有明顯的缺點:不能複製條件公式。後來下載了一個叫做Office Viewer OCX的控制項,似乎很好用,可以將EXCEL模板直接匯入到表單上,操作儲存都很容易,也不會有EXCEL進程殘留。但程式運行過程中問題出現了,當介面上顯示Excel表格的時候,電腦上的其他EXCEL打不開了。後來不得不從新使用AxSpreadSheet,

總頁數: 4314 1 .... 1145 1146 1147 1148 1149 .... 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.