2017年05月 / 04月≪ 12345678910111213141516171819202122232425262728293031≫06月

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2009.09.22 (Tue)

古い Visual C++ ソースを読みながらのメモ

Visual C++ 6.0 くらいの時代のC++ソースを読んでます。
意味不明な記述、疑問があったら、ここにメモっていきます。
C#についてもついでにメモします。
基本的に、COMだとかATLだとかがよくわからん。
てか、今のVisualStudio2008とかだと、ほとんどVC++6.0のプロジェクトはビルドできない。
マジで面倒。



VC++

・「#define __T(x) L ## x」
   解決済み。既に別の記事に記載。

・「__stdcall」とは?
   windowsAPI関連の規約。
   VBとかVC++とかの整合性を保つための、.Net以前の産物。
   多分。

・コメント部分。「//@」や「//!」、「//! \name」など。
   おそらく、VisualStudio6.0時代のコメント。
   現在ではとかとかに相当すると思う。

・ATLTRACEの意味が不明
   ATLTRACEのコメントを外した時、デバッガに情報を渡す役目を持つぽい。


・Visual C++ の関数の各引数のコメントに、[In] とか [Out] などの記述が。
   引数の役割の説明らしい。
   こんな感じ ⇒ /*! \param area - 面積 [Out]
   [In]:入力用引数、[Out]:出力用引数、[In/Out]:入出力用引数

・C++ 属性リファレンス [retval], [out], etc...
   C++の属性リファレンス。
   DLLを作成した後も、処理を変更するためのものらしい。
   おそらく、上のもそれ関連。

・4種類のキャスト
  C++には static_cast, reinterpret_cast, const_cast, dynamic_cast の4種類のキャストがあるらしい。
  これは完全に初耳。
  詳しくは こちら   

・FormatMessage() 関数とは?
   メッセージ文字列を書式化します(書式を割り当てます)。
   MSDN参照
  
・GrobalFree() 関数とは?
   指定されたグローバルメモリオブジェクトを解放し、そのハンドルを無効にします。
   MSDN参照

・デフォルト引数
   そういえば、こんなのもあったね。
   C#にはデフォルト引数無かったけど、C#4.0になって「オプション引数」という名前で機能が追加されるらしい。

・例外指定
   初耳。
   関数の投げ得る例外を、関数宣言時に記述する。

・__declspec(novtable)
   余分なコンストラクタの初期化を省く。
   一種の最適化。
   参照

・CComPtr
   COMインタフェースのポインタを扱うためのクラス。

・CoCreateInstanceメソッド
   指定されたCLSIDに関連付けられたクラスの1つの未初期化オブジェクトを作成します。ローカルシステム上で1オブジェクトを作成したい場合に呼び出します。
   ソース



C#

・C#には unsigned char がない。char があるから uchar もあると思ってたら無かった。
   unsigned char → byte
   unsigned short → ushort
   unsigned int → uint
   unsigned long → ulong

・C# で Operator を使うとき、const や ref は使えないのか?
   ムリポぃ。

・C#の sealed は、これ以上派生させたくないクラスにつける修飾子。
 C++にもあったような・・・。完全に忘れてた。

・System.Diagonastic.Trace でデバック用の処理ができる

・「 .ToString() 」 にはいろいろな使い方がある。
 C の printf 便利だったのになぁ~、なんて思ってたけど、多少は融通が利きそうだ。
  DOBON.NET

・C#でのvoidポインタ「void **」について
   ポインタがどこを指しているかを考えなければ、IntPtrを代わりに使えば良いらしい。
   DOBON.NET掲示板


テーマ : プログラミング ジャンル : コンピュータ

15:23  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

*Comment

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/369-aa87c8cf

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 

 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。