vs8

VisualStudio2005のemacsキーバインド

キーバインドは使えるようになったんだけど、インデント(デフォルトで言うTABとSHIFT+TAB)が使えないのと、コピペのクセがどうにも慣れない。emacsキーバインド時はTAB押すと1行だけ自動インデント(ALT+F8)したような挙動。コピペは他のテキストエディタ…

私がC++/CLIを嫌う理由

以前ちょろっと触れたC++/CLIは避けて通りたいという話ですが、そう思うようになった経験談を書いてみます。 はじめてだらけの.NET開発がはじまる 描画ルーチンとゲームリソースコンバータはUnmanaged C++からDirectXを使って実装し、C#から操作するためのラ…

複数の既存の.libから.dllを作る。

既存の静的ライブラリプロジェクトの数多くなりすぎてリンク時間が長くなってきたので、グループ化&動的ライブラリ化でリンク時間を短くしたい。ここ数日ずっとやり方を調べてたんですが、わかってみたらすごく簡単でした。やり方は、 ライブラリビルド時に…

C4251警告をまじめに対応してはまった

昨日の続き。C4251警告について。 [MSDN]'identifier' : class 'type' は __export キーワードを使って class 'type2' にエクスポートしてください。 class Context { public: static std::auto_ptr<Context> GetInstance(){ return s_singleton; } Context(); ~Conte</context>…

C++クラスライブラリ(.lib)をdllへエクスポートするときの注意

なんとなくそんな気がする程度しか確認していないメモ書きです。 C4251警告は無視するSTLなどtemplate/inlineで定義されているメソッドを確実なものにするためにexportしろって警告です。これにまじめに付き合うとえらい面倒なことになるので、定義されてい…

fopen

//新規作成書き込み fopen("hoge.dat","wb"); //追記書き込み fopen("hoge.dat","ab"); この2つ、"hoge.dat"が存在しなければまったく同じ挙動をすると思っていたんですが、違いました。ゲームのバイナリデータはアラインメントをそろえないといけないので…

STLのデバッグメモリアロケータ

//独自アロケータ template<typename T> class myallocator { ... }; //独自アロケータを使ったvector typedef std::vector< int, myallocator<int> > myvector; これで独自アロケータでメモリ確保するvectorが作れます。が、しかし、std::strstreamなどの奥底で使われている</int></typename>…