C++ ⇒ VBA 書いて覚えるための初心者自己中記事

C++ ⇒ VBA 勉強の履歴を付けるというかノート代わりに使ってます

2017-10-01から1ヶ月間の記事一覧

C++ 初期化子 書いて覚えるための初心者自己中記事

面白いC++のテキストを見ています。 double d1 = 2.3; double d2(2.3); double d3{ 2.3 };//これでも出来る std::vector<int> v = { 1,2,3, }; std::vector<int> v2{ 1,2,3, };//これでも出来る int i1 = 7.2;//警告(切り捨てられる) int i2 = { 7.2 };//エラー int </int></int>…

C++ Windows プログラミング⑥ 書いて覚えるための初心者自己中記事

Windowsのグラフィックス アーキテクチャの概要 アーキテクチャってなんだ? 構造とか構成のことか。 Windowsでは数種類のC++/COM APIがある。 ・グラフィックスデバイスインターフェイス(GDI) Windowsにもともと実装されていたグラフィックスインターフェイ…

C++ Windows プログラミング⑤ 書いて覚えるための初心者自己中記事

COM オブジェクトの有効期間を管理する。 全てのCOMインターフェイスは、インターフェイスIUnknownを直接・間接的問わず継承する必要がある。 なぜならこのインターフェイスIUnknownはCOMオブジェクトがサポートしなければならない基本機能を提供しているか…

C++ Windows プログラミング④ 書いて覚えるための初心者自己中記事

COMオブジェクトの作成 COMオブジェクトを作成する方法は2つある。 オブジェクトを実装するモジュールによって、そのオブジェクトのインスタンスを作成するために設計された関数を提供する。 COM によって CoCreateInstance という汎用作成関数を提供する。…

C++ Windows プログラミング③ 書いて覚えるための初心者自己中記事

前回Windowsデベロッパーセンターの初心者用ページについていけなくなった件。 とりあえず、ぼんやりと理解できたから先に進む。 あ、前回わからなかったのを貼ってから進む。 #ifndef UNICODE #define UNICODE #endif #include <windows.h> template <class DERIVED_TYPE>//ウィンドウに関</class></windows.h>…

C++ Windows プログラミング② 書いて覚えるための初心者自己中記事

ウィンドウを作成する ウィンドウクラスを作成する。 C++のクラスとは違う。 ウィンドウクラスには複数のウィンドウが共通して実行する一連の動作が定義される。 共通しない部分(各ウィンドウ固有のデータ)はインスタンスデータと呼ばれる。 ウィンドウク…

C++ Windows プログラミング 書いて覚えるための初心者自己中記事

Windowsデベロッパーセンターで初心者向けの1からの説明ページがあったから、そこで勉強する。 まず開発環境を準備する。 Windows SDKを入れましょう、ダウンロードはここから、みたいなのあるけど、よくわからない。リンク先はwindows7 とか書いてあるし、…

C++ STL algorithm 書いて覚えるための初心者自己中記事

標準ヘッダファイルのことについて全然知らないので、勉強していく。 テキストの終わりに標準テンプレートライブラリ(STL)の一覧があったから上から見ていく。 algorithm 各種アルゴリズム どう使うのかさっぱり。 algorithm はあれか、要素に対して何かし…

C++ ゲーム作りの為の勉強2 書いて覚えるための初心者自己中記事

表示された何かをキーボードで動かしたい。 全然わからないけど、GetKeyState関数を使ったらキーボードに反応した。 if (GetKeyState('D') < 0) ~~~~~~~~ 翌日 ~~~~~~~~ とりあえず、ビーム出して標的を破壊してみたかったから作ってみた。 …

C++ ゲーム作りのための勉強1 書いて覚えるための初心者自己中記事

ゲーム作りたいので最初はコンソールゲームというものから勉強していきます。 HANDLE hCons = GetStdHandle(STD_OUTPUT_HANDLE); コンソールでゲームするのに表示とかどうなっているのかさっぱりわからなくて調べたら、windowsで作る場合はwindowsのウィンド…

C++ terminate 書いて覚えるための初心者自己中記事

例外が最後までキャッチされないときに呼ばれる関数terminate terminate関数が呼ばれるとプログラムは異常終了する。 正確にはterminate関数はabort関数を呼び出して異常終了する。 exit関数は呼ばれないのでデストラクタも呼ばれない、正常な終了処理が行わ…

C++ volatile 書いて覚えるための初心者自己中記事

メモリ上にある値を使って計算を行うにはメモリからCPUへデータが読み込まれる。 CPUにもメモリとは別にデータを置いておく場所があり、この作業領域をレジスタという。レジスタは非常に高速なアクセス。CPUとレジスタの話? メモリからレジスタはそれなり。…

C++  extern"C" 書いて覚えるための初心者自己中記事

C言語で作られたライブラリをC++で使う場合には注意が必要。 CとC++では関数名の内部表現が違う。 内部表現はコンパイラ後の名前みたいなものか。 これがCとC++で違うってことはコンパイル後にお互いがわからなくなるのか。 これを解決するのがextern "言語…

C++ 多次元配列へのポインタ 書いて覚えるための初心者自己中記事

通常の配列へのポインタはそのまま行ける。 二次元配列からは普通じゃいけない。 int array[3][5]; int* p = array; これはエラーになる。 int array[3]; int* p = array; ふつうの配列でこうやるけど、配列名はそのまま先頭要素のアドレスなので、 int arra…

C++ 文字列化演算子 書いて覚えるための初心者自己中記事

マクロ引数に # をつけると文字列リテラルとして展開される。 #define TEST(n) cout << n << endl; int main() { TEST(i == 0); system("pause"); } これだとエラーになる。 #define TEST(n) cout << #n << endl; int main() { TEST(i == 0); system("pause"…

C++ トークン連結演算子 書いて覚えるための初心者自己中記事

トークンはコード内で分割できない最小単位だったはず。 それを連結する・・? なんだろう。 まず、 TYPEDEF_CONTAINERS(int, int); こう書くと typedef vector<int> VectorInt; typedef list<int> ListInt; typedef set<int> SetInt; こう展開されるマクロを作りたいとする</int></int></int>…

C++ コンマ演算子 書いて覚えるための初心者自己中記事

第三引数?でいいのかな。を , で区切って行えるのはなぜ? for (int i = 0; i < size; ++i, ++j) { という話らしい。 これはfor文の機能ではない。 コンマ演算子というものの働き。 式1,式2 と書けば式1から順に処理される。 これ全体で1つの式だという…

C++ 可変長配列メンバ 書いて覚えるための初心者自己中記事

構造体の話。 ん、わかりにくいな。 構造体でファイルのサイズとパス名を保存しておく場合に、 struct Fileinfo { int sizeFile;//ファイルサイズ char path[MAX_PATH];//パス名 }; こうすればいいけど、パス名を常に最大まで使うわけじゃない。 ほとんどが…

C++ ビットフィールド 書いて覚えるための初心者自己中記事

通常の型は最小単位でも1バイト 構造体や共有体の宣言時、メンバ変数名の後ろに : をつけて数値を書くと そのメンバ変数はビット単位になる。 struct Date { unsigned short year : 7;//7bit unsigned short month : 4;//4bit unsigned short day : 5;//5bi…

C++ 無名構造体 書いて覚えるための初心者自己中記事

名前のない クラス 構造体 列挙体 共用体 を作ることが出来る。 struct Student { char name[MAX_NAME + 1]; int scoreJapanese; int scoreMath; int scoreEnglish; }student; 構造体の宣言と構造体変数の宣言。 下に書くと変数の宣言が出来るのか。 無名に…

C++ 共用体 書いて覚えるための初心者自己中記事

メンバ変数が複数あるクラスで、状況によって使い分けるので常に1メンバ変数しか使用しない。という場合に、メモリ領域が無駄にならないようにする方法。 共用体という機能を使うと、複数のメンバ変数に対してメモリ領域は共有になる。 使い方は構造体の宣…

C++ ハッシュ 書いて覚えるための初心者自己中記事

検索しやすいデータ構造の1つ データを保管する際ハッシュ関数を通す。 ハッシュ関数は様々なデータに対して、良い感じにグループ的な値を出してくれる関数。 ハッシュ関数を通ったデータはハッシュ関数が導き出したグループに所属する。 何かデータを検索…

C++ バイナリツリー 書いて覚えるための初心者自己中記事

前回やったデータ構造 ツリーの性能制限版 バイナリツリー 子ノードを最大で2つに制限したツリー これを利用したデータ構造で代表的なのが バイナリサーチツリー(二分探索木) 子ノードを追加して値を入れるときにそのノードより小さい場合は左へ、大きい…