C++/CLI

marshal_as<>

久しぶりに #using の文字列操作を修正して思ったのですが、VS2008 で追加された marshal_as って別に文字列を変換するための機能に止まらないですよね。 どちらかというと、ネイティブとマネージドの互換ルールの記述スタイルをこのような形で用意しましょ…

Silverlight 2 アプリケーションは作成できるのか?

できました(w はっきり言って自分でも馬鹿だと思いますが、C++/CLI で Silverlight 2 のアプリケーションを作成することが可能のようです。ちょっと VC のランタイムやらへの依存が残っていそうな雰囲気があるのですが、やってできないことはない、ようで…

Nullable 型

C# で null 許容型が導入されています。 これは .net fx への Nullable 型の導入です。つまり、C++/CLI でも使えるはずです。(ぉ というわけで書いてみました。 typedef Nullable intNA; void check( intNA% nuin ) { if ( nuin.HasValue ) { Console::Writ…

VS 2008 での文字列変換

VisualStudio 2008 では marshal_as がようやく入ります。 それによって文字列変換がどうなるかというと、 std::string strHello = "Hello, Orcas"; String^ mstr = marshal_as(strHello); std::wstring wstrHello = L"へろぅ、おるかす"; String^ mstr = ma…

app.config を使うときの設定。

http://www.codeproject.com/managedcpp/WorkingWithConfigFiles.asp

STL/CLR 解説

CGI移行の段階で消えてしまったコンテンツを復活させました。 トップからは繋げていないアングラ倉庫です(wSTL/CLR 解説資料 http://vene.wankuma.com/prog/STLCLR_Specs.htm わからないところに関しては、原文を参照にしてください。

VC9 Beta2 (Visual Studio 2008 Beta2)

ちょっと試してみました。 #include <iostream> ref class Test { private: int _value; public: Test() : _value(0) {} property int Value { private: void set(int val) { this->_value = val; } int get() { return this->_value; } } }; int main(array<String^>^ args) { </string^></iostream>…

言語仕様書 HTMLHelp ベータ版

あまり必要そうにないのですが、ECMA-372 を HTMLHelp 化しました。 まだ、リンクの整理やキーワードの追加をしていないベータ版ですが、変な訳だけど手元に置いておきたいという方、どうぞ。http://vene.wankuma.com/prog/ecma-372.chm これでいつ消えても…

仕様書サイト

しまった。WebMatrix Japan がサービスを終了していたOTZ 今、ASP.NET 2.0 が使える新しい鯖を探しています。 無料サーバーを適当にゲットしてきますので、C++/CLI 仕様書についてはしばらくお待ちください。 がーん・・・。 とりあえず、慌てて借りた建設予…

共有メモリ・クラス 修正版

ということで、SafeHandle を使った共有メモリ・クラスです。 よく考えると、C++/CLI では普通にクラスにマップするなり、CMemFile 使うなりで、あまり需要はなかったりするんですよね(w

共有メモリ・クラス

とりあえず、ざっと作ってみました。 かなり手抜きですが、自分用のライブラリを作るときの参考にでもどうぞ。

CodeDomProvider

いろいろといじっているのですが、驚愕の事実に_| ̄|○ ガックシ・・・でした。 CppCodeProvider って、何その、「単にまだ実装されていない」って! それなら、CodeDomProvider::IsDefinedLanguage で true を返すなよ。実装してから定義済みとして認識しや…

注意書き

ECMA の方から注意書きを追加して欲しいとのことなので、「訳者より」に注意書きの原文と訳文を追加。 http://signe.japan.webmatrixhosting.net/ecma372/StartingState.aspx でも、日本語訳だけ見て ECMA に問い合わせる勇者が、世の中には・・・いるんだろ…

オッケー! 公開許可が出ました!

ありがとう。Mr. Jan van den Beld! 迷わず、前進するですよ! 他にもいろいろと問い合わせしてくれた方がおられるようです。 ありがとう、皆さん。これで、公認です。 C++/CLI の仕様書翻訳が消える心配はありません。

とりあえず、ECMA にも問い合わせ

MS からは結局返答無しだったので、しないよりはましかと思い、ECMA にも問い合わせ。 どうなるのかな。

コメンタ Ver.0.1

つーことで、インストーラすらないコメンタ・アドインです。 http://www.stdblue.net/prog/tools/commenta/StdXmlDocAddin-0.1.LZH うーん、ないよりはましって感じなのかな。 .h に対して、使えます。特に C++/CLI 専用というわけではありません。

コメンタ

まだ、テスト中なのでスルーしてねAddIn ファイル 上のアーカイブに追加 アドイン 壊れてたので公開停止 設定の仕方 1,LZH書庫を My Documents\Visual Studio 2005\Addins で展開する。 2,StdXMLDocAddin.AddIn ファイルを開き、 タグ中にdllへのパスを…

なんとなく

上の報告書を書きながら Linq みたいなことを C++/CLI でやるにはどうするんだろうとか、考えてました。 構文に関しては、 for each を前提に考えてみます。なぜかというと、C++/CLI では 唯一、制御文でありながら IEnumerable の実装を前提としたループを…

STL.NET についての雑感

これはあくまで個人的な雑感なのですが、STL.NET って要るんですか? C# や VB.NET 用に汎化された STL.NET ならわかるんですけど、混合型の開発予定がある C++/CLI でCLI 用にしか利用できない STL ライブラリは結局テンポラリ・ソリューションでしかなくて…

ファイナライザのご利用は計画的に

うぇね的には実は現在のファイナライザの仕様にすっごく不満です。 特にECMA-372でこんな文章を見つけて、むっちゃ腹を立てています。「デストラクタはファイナライザを呼び出すべきです」 じゃ、そういう仕様にしようよ! 確かに、この文章が出てくる理由は…

ECMA-372 C++/CLI 言語仕様書

あまり大きな声では言えませんが、作業を開始しました。 WebMatrix で ASP.NET 2.0 の練習をしながら、作ってます。 http://signe.japan.webmatrixhosting.net/ecma372/Introduction.aspx あまり鯖をいじめないでください(w

プロパティのアクセス指定子

なんとなく誤解されている方がいるので C++/CLI ではプロパティは setter, getter ごとにアクセスのレベルを指定できます。 ref class Clazz1 { private: int _value; public: Clazz1() : _value(0) {} property int Value { int get() { return this->_valu…

ドキュメント化コメント

C++/CLI の2005年1月版仕様書草案では、ドキュメントにするコメントの仕様もついているんですね。今まで Doxygen や NDoc とかのツールを使ってきましたけど、この仕様が標準化されたらドキュメント化コメントの仕様としては始めて標準化されることにな…

Beta1 から Beta2 への移行

ある実用プログラムを Beta1 から Beta2 に作り直したのですが、こんなところでいろいろと修正したことを記述しておきます。・配列から Conrtains などのインスタンス・メソッドが消えた。 主にそれらの機能は static なクラス・メソッドに移行しました。 い…

Jan, 2005 への更新を開始しました

MS から 2005年1月版ドラフト1.9 が公開されているので、翻訳作業のベースを順次そちらに移行します。ちょこちょこと整理されているので、読み直しながら手を入れていくつもりです。

統合アーカイバ・ラッパ

かなり手を抜いた作りですが、C++/CLI から Win32 API を呼びまくりで統合アーカイバのラッパ・クラスを作ってみました。http://www.stdblue.net/vene/programing/archives.html できることは、アーカイブ・ファイルを与えて、ファイル名を取得するだけです…

VisualStudio 2005 Express Beta2

VirtualPC の XP 上に入れてざっとテストしてみました。 今回のリリースではマイルストーン4.2をほぼクリアして来た模様です。ざっと、Beta1との違いを羅列してみます。・stdcli::language 宣言が不要に Beta1 では array や safe_cast, pin_ptr などを使う…

仕様書、デリゲートと列挙終わり

デリゲートと列挙型の翻訳が終わりました。これでだいたい全体の半分ぐらいでしょうか。 さすがに量があるなぁ。 マネージド・オブジェクトとがですけど、委託オブジェクトと訳した方がわかりやすいかな。生存期間の管理をGCに委託していると言う意味で。 マ…

テンプレートとジェネリクス

今頃になってようやく違いが分かる男になれました。 アセンブリ境界の問題ですね。 テンプレートはコンパイル時に型が確定するので、例えば、アセンブリを作った場合、そのアセンブリ中で使用されたテンプレート型以外が利用できないわけです。 例えば、アセ…

統合アーカイブの使い方

今週中ぐらいに、統合アーカイブを利用した C++/CLI のサンプルを上げようと思っています。なんか、C++/CLI から Win32 がシームレスに呼び出せないと誤解されている方がいるようなので、GetProcAddress や WideCharToMultiByte、GetDesktopWindow などを利…