C++/CLI

vs2017 community edition をインストールしてみたよ

やあ子供たちご無沙汰したな。今回おじさんはVS2017のCommunityEditionを個人的に導入してみたのでそのメモだよ。●まずはインストールフォルダの構成がちょっと変わったのではという話。 C:\Program Files (x86) の下にある、歴代VSのインストールフォルダは…

マネージドとアンマネージドの混合環境でのデバッグ

やあみんな。VisualStudio2013環境で、最近おじさんはまたよからぬことを考えて、C#,C++/CLI,C++を混合したソリューションの開発をしているわけだが、 アンマネージドコード内のデバッグを有効にするために、以下のことをやったら実現できたのでメモしておく…

WindowsFormアプリでのマウスホイールコールバックについて

C++/CLI でWindowsFormアプリ開発な場合、マウスホイールのコールバックは、デフォルトではFormのコールバックの中にない、というか見当たらない。だからわざわざ、Form作成時に呼ばれるLoadコールバックの中で、 this->MouseWheel += gcnew System::Windows…

OpenGL Simple Frame

OpenGLアプリをさくさくたくさん作りたいと常日頃から考えているのだが、OpenGLアプリを作成するたびに、フレームワークの中であちこちに散在する決められたコールバック関数の中に、毎回同じようににOpenGLの定番コードを、思い出しながらあるいは本やサイ…

OpenGLスターターコード

OpenGLSimpleAdapterを使って、OpenGLを使った描画が簡単にできるようになったのはいいが、OpenGLを使った本格シーン描画コードがとりあえずいきなり欲しい、カメラとかライトとかマテリアルとかテクスチャとかきまりきった初期化コードを1から毎回書くのは…

拡張性よりも可読性の仕事術

数ヶ月ごしに夜な夜な自宅趣味ソフト開発で作ってきたアプリがある。汎用性を持たせて、なるべく拡張性高いようにとあれこれ悩みながら作ってきた。一通り動くようになって、幾何カーネルの方のインプリメンテーションを行っていたのだが、これがひと段落し…

マネージドヒープのメモリアロケーションは高速だった

.NETフレームワークのCLRな環境の提供する、マネージドヒープというやつにおけるメモリアロケーションは非常に高速なのであった。これまでは、「GCなんて機構があるのだから、Nativeヒープを使ってのメモリ確保には、速度面、効率面では到底及ぶまい」と決め…

ペンタブレットアプリ製作におけるAPIについて

WindowsXP上で、C++あるいはC++/CLIを使ってペンタブレット対応のアプリを作るにあたり、ペンタブレットからの情報(位置のみでなく、筆圧も!)を取得するための、APIが必要になる。候補としては、 Microsoft Windows XP Tablet PC Edition Software Develo…

C++/CLI のイベントを使う

C++/CLIイベントについて調べたのでメモ。イベントっていうかデリゲートの使い方についてのメモだな。イベント特有のアクセッサメソッド(add_xx, remove_xx, raise_xx.. )は以下では使ってないから。(コード中のeventキーワードはなくてもいい話)以下、「…

hello Regex by C++/CLI

C++/CLI で、Regex正規表現を用いたSystem::Stringの文字列解析について勉強したのでメモ。というか、コンソールベースの、CLRプロジェクトを作成してみたので、メモ。Stringを、char*に変換するというか、作成し直す方法もあるようだが、それでは何だか進化…

OpenGL Simple Adapter

(2016年10月11日(火曜日)PFDを外部から取り出せるようにマイナーチェンジ) Win32やMFCであれ、.NETであれ、WindowsでOpenGL画面を出すのはちょっと厄介だ。初期化のためのコードや、また描画時のコード、ダブルバッファのスワップなど、最初のブラックス…

初めてのDirectXシーン構築

本日の、Form1におけるPaintコールバックはこんな感じだ。Teapotが、オレンジ色の背景の中で、静かにしっかりと回転する。背景のオレンジ色は、64FPSでもって、赤と黄色で交互に背景をクリアしているので、しかもティアリングがないため、オレンジ色に見える…

Formのリサイズ

Formの中に作成したpanelをOpenGLの画面にした状態で、フォームのサイズをマウスで変更すると、サイズを拡大した場合には再描画がされるのに、縮小すると更新されない…。SizeChanged コールバックの中では、Invalidateを呼ぶようにするともちろん描画更新さ…

Direct3D::Font他

using namespace Microsoft::DirectX::Direct3D;の下で、Fontとしてみても、System::Drawing::Font とバッティングしてしまうので、結局、わざわざMicrosoft::DirectX::Direct3D::Font としなくてはならないのであった。あるいは、Microsoft::DirectX まで見…

.NETコンポーネントへの参照設定

プロジェクトの「共通プロパティ」>「参照設定」の中に、Microsoft::DirectX::Direct3D があるから安心しただけではだめで、 Microsoft::DirectX や、Microsoft::DirectX::Direct3DXも、追加しておいた方がいいようだ。using namespace Microsoft::DirectX …

WindowsForm でOpenGL

vc2005/vc2008ならば、OpenGLアプリも、Win32ではなく.NETで作りたいところ。そんな時はOpenGLSimpleAdapterを利用するのが一番速くて簡単だと思うが、本日記はそのからくり(というほどでもないが)の説明にあたるのでよければ参考にして欲しい。 WindowsFo…

C++/CLI で、Graphics::DrawString

C#のサンプルはたくさん見かけたが、C++/CLIでのサンプルは、結局わかりやすい記述がどこにも見つけられなかったからメモ。C++/CLI でやってるヤツなんていなかったりして。 private: System::Void panel1_MouseMove(System::Object^ sender, System::Window…

C++/CLI 、わずか8行で Man-DirectXへ移行せよ!

2009年3月某日現在に知ったのだが、Managed-DirectXはサポートが終了したそうなので、もはや以下の内容は何ら価値のないものになったと言える。DirectXはUnmanagedな環境でやるのが安全ぽい。。。なんだよそれ。無駄に勉強させやがって。ていうかPC上で3Dツ…

本日のありがたいページはこちら。.NET環境でのDirectX開発はC#を用いてなされているものがほとんどだが、C++/CLIならびに VB.NETにおける同等のコードも示されている…というところが何だかMSDNのサイトみたいで非常にありがたい。 開発環境についてだが、し…

.NET時代のC++な生き方とは

VisualC++2005のWindowsFormを使ったアプリケーション作成の学習がなかなか進まない。その答えの一つかも知れないことと解決策の提案がえぴすてーめーさんの記事になっている。 なるほどやはりForm.hに実装がどんどん記述されていくことに違和感を覚えられて…