1 名前:デフォルトの名無しさん [2005/09/11(日) 23:54:01 ] おそらく、.NET開発でデファクトスタンダードに最も近い であろうC++/CLIについて語ろうぜ!
811 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 18:18:02 ] >808 だから、自分の使っている関数の方とかをチェックしてこいといってるだろうに 受け取り側を unsigned long long にしても、変換関数が対応していなけりゃ駄目だろ おまいさんは文字列を 64 ビット長の整数値に変換したいんだから、それに対応した 変換関数を探してこい >809 がいいヒントをくれているじゃないか .net framework で 64ビット長符号なし整数値の型を探してそのメソッドを調べろよ
812 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:01:42 ] >>811 どうもありがとう >>806 です ttp://msdn2.microsoft.com/ja-jp/library/system.convert.touint64.aspx Convert.ToUInt64 (Int32) これでいいのかな?
813 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 19:09:18 ] ・・・おまいさん、文字列を UInt64 に変換したいんだろう? だったら使うべき変換関数は Convert.ToUInt64(String^) じゃないのかい これなら、いちいち配列変換しなくてもいいわけだし UInt64::Parse(String^) だってあるだろうに もちろん、UInt64.ToString() とすれば、文字列への変換もできるぞ C++/CLI は (3.14).ToString() ってやって文字列を取得することだってできるんだから
814 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 20:42:17 ] std::wcstoul を愛しているんだろうから、そっとしておいてやれよ
815 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:01:33 ] (´ε`;)ウーン… unsigned long long hoge; にすると _ultow_s (hoge,foo,16,16); ここで、 : warning C4244: '引数' : 'unsigned __int64' から 'unsigned long' への変換です。データが失われる可能性があります。 String ^tmp = Convert::ToUInt64(*foo); とすると : error C2440: '初期化中' : 'unsigned __int64' から 'System::String ^' に変換できません。 使用可能なユーザー定義された変換演算子がない、または 演算型のボックス化された形式からターゲット型への標準変換は存在しません なんですよね、全くなにやってんだか・・・・
816 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:11:47 ] >>815 Convert::ToUInt64は文字列をUInt64(unsigned long long)に変換するほうだ。
817 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:14:03 ] がー! だから、型と関数を考えて、ちゃんとメソッドを構成する英語を嫁と UInt64 hoge = 0LL; if ( UInt64::TryParse(textBox->Text) ) hoge = UInt64::Parse(textBox1->Text); String^ tmp = hoge.ToString(); でいいんだって なんでわざわざ wchar_t の配列に変換するのかな ちゃんと、キーワードでぐぐるかMSDN見てる?
818 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:25:28 ] 文字列を数値にするのには次のものがある。 Cのato〜とstrto〜。そしてそれぞれワイド文字版の_wto〜(非標準)とwcsto〜がある。sscanf/swscanf類もある。 C++のistringstream類。 .Net FrameworkのConvert::To〜と〜::Parce。 数値を文字列にするのには次のものがある。 Cの_〜toa、_〜tow(非標準)。sprintf/swprintf。この行のは全てVC8の_s版(全て非標準)もある。 C++のostringstream類。 .Net FrameworkのConvert::ToStringとObject::ToString。 ちなみにそれぞれ対称性がある。 C++のstream以外は全て数値の型により関数名などが異なっている。 だからunsigned longを使うかunsigned long longを使うかで違いが出てくる。
819 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:28:41 ] というか、unsigned long long int って型はまだ標準じゃないよな
820 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:31:17 ] >>819 C++にはまだないが、C++/CLIには存在する。 signe.japan.webmatrixhosting.net/ecma372/12_type.aspx
821 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:44:23 ] >820 それは知ってるが、標準関数が対応してないってこと ってそこ直リンすんなよ
822 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:46:10 ] >>821 だからC/C++のunsigned long longが関係するところは全て非標準だな。
823 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 21:49:23 ] そだな。非標準の型は全部 CLI 型表記にした方がわかりやすいと思うんだが 変に今までと一緒なもんだから、間違えやすいんじゃないかな
824 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:01:51 ] それよりも混乱する原因はC、C++、.Net Frameworkのクラス・関数が入り乱れているからのほうが大きいと思う。 答えているほうだって、あれ使え、いやこれ使えって具合だし。 そもそも一旦十六進法の文字列へ変換するまではともかく、その後文字列へ変換する必要性がわからない。 そのままtextBox2->Text = textBox1->Text;でいいと思うのだが。 大文字小文字を揃えたいだけならtextBox1->Text->ToUpper()で十分だし。
825 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:01:55 ] >>817 さん どうもです >>なんでわざわざ wchar_t の配列に変換するのかな >>814 さんの書いたとおり std::wcstoulと_ultow_sの呪縛に囚われていました こうやって見ましたが private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { UInt64 hoge = 0LL; if ( UInt64::TryParse(textBox1->Text)) hoge = UInt64::Parse(textBox2->Text); String^ tmp = hoge.ToString(); } if ( UInt64::TryParse(textBox1->Text))ここで : error C2661: 'System::UInt64::TryParse' : 1 個の引数を伴うオーバーロードされた関数はありません。 こうなるのですが・・・
826 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:04:35 ] >>825 MSDN見ろ。 TryParseは2つ目に結果を格納する引数がある。
827 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:26:47 ] >>826 さんどうもです private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { UInt64 hoge = 0LL; if ( UInt64::Parse(textBox1->Text)) hoge = UInt64::Parse(textBox2->Text); else String^ tmp = hoge.ToString(); } こうしたら、できましたが、実行すると アプリケーションのコンポーネントで、ハンドルされていない例外が発生しまし。 中略 入力文字列の形式が正しくありません。 ust-In-Time (JIT) デバッグを呼び出すための詳細については、 ダイアログ ボックスではなく、このメッセージの最後を参照してください。 中略 ************** JIT デバッグ ************** Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、 またはコンピュータ (machine.config) の構成ファイルの jitDebugging 値を system.windows.forms セクションで設定しなければなりません。 アプリケーションはまた、デバッグを有効にしてコンパイルされなければ なりません。
828 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:28:57 ] >825 勘違いしたんじゃ、ないぞ。MSDNを見るようわざと間違えたんだからな 決して、名前だけで bool 値を返すんだろとか考えて適当に書いた訳じゃ、ないんだからな
829 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:30:52 ] >>827 MSDN見ろ。1つめの引数の文字列の書式が書いてある。UInt64::Parseは十進法しか受け付けない。 Convert::ToUInt64なら基数が指定できるけど、Try版がないから例外を受けるしかないと思う。
830 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:30:54 ] スマソ Try外していました しかし、TryParseの問題を解決しても 例外エラーは出そうな感じがするんだが
831 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:39:02 ] >827 だから、MSDN で UInt64 のメソッドぐらいチェックしろと そろそろ何をしたいのかがわからんのだが。自分が書いているコードの意味がわかってる? textBox2 に textBox1 の内容をコピーしたいのなら >824 が言ってるとおり textBox2->Text = textBox1->Text; だけでいいはずだし、いったん、数字にしてなんかの検証をしたいのなら なぜ、いきなり textBox2->Text から数値を取ってるんだ? マジに書くと if ( !String::IsNullOrEmpty() ) { try { UInt64 hoge = UInt64::Parse(textBox1->Text); textBox2->Text = hoge.ToString(); } catch( ... ) { } } まぁ、例外処理は除いたが、いったん数値にして、別のテキスト・ボックッスに文字列として 代入するならこんな感じだろ
832 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 22:40:02 ] あ、 if ( !String::IsNullOrEmpty() ) →if ( !String::IsNullOrEmpty(textBox1->Text) ) だったorz
833 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 23:06:15 ] そもそも、目的はbutton1を押すとtextBox1に入力した 16進数の入力判定を行い、(条件として、空でないこと、16進数16桁であること) button2を押したら、openFileDialogを呼び出しファイルを選択してOKを押したら textBox2に選択したファイルを読み込ませ(ここは既に実装できています) 最後にbutton3を押したらtextBox1とtextBox2を結合し、saveFileDialogで 名前を付けて保存するという、単純なものなのですが16進数変換と入力判定の所で どつぼにはまってしまいました。 文字入力 ↓ 16進数変換&入力チェック ↓ 外部ファイル読み込み ↓ 16進数+外部ファイル結合 ↓ 名前を付けて保存
834 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 23:24:16 ] とりあえず判定は829のように例外が投げられるかどうか調べるしかないと思う。
835 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 00:26:19 ] ちょっと理解できてきたみたいです //16進数を受け付ける UInt64 hoge =Convert::ToUInt64(textBox1->Text,16); //10進数を受け付ける UInt64 hoge = UInt64::Parse(textBox1->Text); textBox2->Text = hoge.ToString(); やっと16進数の入力を考えれるようになりましたが UInt64 hoge =Convert::ToUInt64(textBox1->Text,16); textBox2->Text = hoge.ToString(); で出力すると、ご丁寧にも16進数から10進数に変換されています ヮ(゚д゚)ォ!
836 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 00:28:58 ] 16進で出力すればいいじゃん。 何言ってんだ?
837 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 01:07:29 ] やっとできました、どうも皆さん アリガタマキン ( ´∀`)ノ⌒ω)Д`)ブニュ UInt64 hoge =Convert::ToUInt64(textBox1->Text,16); wchar_t foo[16]; memset(foo, 0, 16*sizeof(wchar_t)); _i64tow_s (hoge,foo,16,16); String ^tmp = gcnew String(foo); textBox2->Text = tmp; しかし、例外処理が超難関だな(;´д`)トホホ… try {}catch( )の構文前からスマートでかっこいいと思っていたので 覚えたいと思っていたんだがな、ムズそうだな・・・・ 今更泥臭くMessageBoxで条件判定するのも、なんだかなぁー
838 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 01:19:03 ] 学生さん?
839 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 04:30:32 ] >>837 textBox2->Text = Convert::ToUInt64(textBox1->Text, 16).ToString("x"); ちゅうかうざい。
840 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 07:57:43 ] ToString が書式指定できることを知らんと言うのもありがちで、MSDNを見れば・・・ だが、Express の配布で C++/CLI を使う初心者がこんな感じに騒いだらこの先恐ろしいな
841 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 08:43:29 ] L"..."を template引数で使うとconst wchar_t*にならない? (generic,overloadだとStringになった) void call_overload(String^ s){Console::WriteLine("String");} void call_overload(const wchar_t* w){Console::WriteLine(L"const wchar_t*");} template <typename T> void call_template(T t){Console::WriteLine( (T::typeid)->Name );} generic <typename T> void call_generic(T t){Console::WriteLine( (T::typeid)->Name );} call_overload(L"123");//String call_template(L"123");//Char* call_generic(L"123"); //String
842 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 11:11:27 ] 仕様にそう書いてあった template では const char* や const wchar_t* が渡されたら、char や wchar_t の配列として 扱い、ジェネリック関数は型引数で const char* や const wchar_t* が渡された場合には String として型推論するというルールだって call_template(gcnew String("123")); とやると、String としてちゃんと帰ってきた
843 名前:デフォルトの名無しさん [2006/03/06(月) 13:16:33 ] MFCはどうなるんでつか? STL.CLIみたく、MFC.CLIが出るんでつか?
844 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 13:20:15 ] つ CWinFormsControl
845 名前:デフォルトの名無しさん [2006/03/06(月) 13:27:29 ] Microsoft .NET Framework の Windows フォームを使用したペインティング テクニック www.gotdotnet.com/japan/team/windowsforms/windowsformspainting.aspx これを参考に、C++/CLI からのグラフィックスの基礎を勉強しています。 最後の TextClipping というアプリケーションの例で、 protected override void OnPaintBackground(PaintEventArgs e) という C# における記述が出てくるのですが、 同様の記述を C++/CLI でやってみたところ、 override 仕様にも基本クラスで OnPaintBackground は virtual じゃないよ、って言われます。 .NET Framework 2.0 で何か変更になったのでしょうか?
846 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 14:19:42 ] 自分のメソッドの宣言で virtual は書いたけど override 指定していない方に つI
847 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 14:49:30 ] 汚い文法だなぁ
848 名前:デフォルトの名無しさん [2006/03/06(月) 15:17:51 ] >>864 OnPaintBackground つーのは、規定クラス System::Windows::Forms で virtual で宣言 されている「はず」だったんですが・・・ んじゃ、OnPaint とかを乗っ取る事はできないのかなぁ。
849 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 15:28:57 ] fつべvうぇ45wvw34
850 名前:デフォルトの名無しさん mailto:sage [2006/03/06(月) 15:57:19 ] >848 まぁ、漏れあてなんだろうけど、C++/CLI では暗黙のオーバーライドは禁止されている ちゃんと virtual void OnPaintBackGround(...) override ←これ { ... } と記述してる? これ書いても上書きできていないの?
851 名前:デフォルトの名無しさん [2006/03/06(月) 17:32:02 ] >>850 忘れてました orz
852 名前:デフォルトの名無しさん [2006/03/06(月) 21:01:39 ] >>100 本買ってまで勉強する必要はないんじゃない?
853 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 18:46:38 ] private: void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ){ hoge = ""; 〜 } private: 内で定義した変数って、よそのプロシージャーでは当然使えませんよね グローバル変数で定義すれば、いいのだろうけど NETで ※どんなアルゴリズムでも、グローバル変数なしで 記述できることが証明されています。 グローバル変数は後述するように、非常に強力な反面、 大きな危険性を秘めています。 とはいえ、絶対に知っておくべき事柄です。 らしい、button1で発生した変数を、button2のイベントが起きたときに 継承させる方法を 、グローバル変数無しで実現できるの?
854 名前:デフォルトの名無しさん [2006/03/07(火) 19:41:37 ] >>853 まずもってプロシージャってのが C++ にあるか ってのは置いといて、そのフォームのメンバ変数は button1_Click() からでも button2_Click() からでも アクセスできるじゃん。
855 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 20:40:47 ] そんなことはないやろ、 private: void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ){ hoge = ""; 〜 } private: void button2_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ){ textBox2->Text=hoge; 〜 } : error C2065: 'temp' : 定義されていない識別子です。
856 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 20:57:37 ] >>855 それ別の位置でコンパイルエラー出てるだけじゃないか? そのコードの中にtempなんて識別子は出てないのだが
857 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 21:14:41 ] >856 この人が言ってるの、auto 変数のことじゃない? メソッド内部で宣言したローカル変数にアクセスしたがってるんだよ
858 名前:デフォルトの名無しさん [2006/03/07(火) 21:20:23 ] >>857 そんなもん、VB でもできんわ・・・ プロシージャとかいってるからたぶん VB使いかな?とか思った。
859 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 21:53:50 ] やっぱり、無理やな
860 名前:デフォルトの名無しさん [2006/03/07(火) 21:55:54 ] >>853 の頭の中には、ローカル変数とグローバル変数しか内のだろうか。
861 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 21:56:09 ] プロシージャが WinProc のことなら、Form 間でのアクセスのことかも 何にしても、そんな状態でC++/CLIに手を出すのはやめた方がいいと思う
862 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 22:24:46 ] そもそもC++/CLIでなくてもC#でもなんでもやめたほうがいいな。
863 名前:デフォルトの名無しさん mailto:sage [2006/03/07(火) 22:51:56 ] >>862 も人生をやめたほうがいいな。
864 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 02:13:35 ] C++/CLI がこんなにも複雑なのがいけないと思います!
865 名前:デフォルトの名無しさん [2006/03/08(水) 02:40:33 ] まぁ何でもあり(?)なのが C++/CLI だしなぁ。 複雑さを避けたいなら、C#だよな。 あ、VB.NET って手もあるか。
866 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 02:58:40 ] >>865 > まぁ何でもあり(?)なのが C++/CLI だしなぁ。 まさにC++から派生した、って感じだな
867 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 07:35:51 ] 言語仕様を拡張せずに .NET 対応は出来なったのかなぁ。 managed_ptr<Object> obj = managed_new<Object>(); みたいな。
868 名前:デフォルトの名無しさん [2006/03/08(水) 07:39:15 ] >>867 managed C++ であんまりうまくいかなかったから、 結局言語使用の拡張に踏み切ったんだろ。
869 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 08:18:59 ] >867 逆に、どこまでが既存の C++ でどこからが CLI 拡張かわかりやすくていいと思うよ mc++ の混乱ぷりから考えるに、MSが出した仕様にしてはさっぱりしすぎて不思議 時代が変わっても、フレームワークをさくっと切り替えるだけで対応できるし、VES も 簡単に交換可能なところが夢があると思われ また、C++ 自体の拡張の邪魔にならないところとかもいい Sun も JNI の仕様をこれにしないかな。そしたら、JVM も使う気になるのに
870 名前:デフォルトの名無しさん [2006/03/08(水) 08:24:21 ] Java をネイティブ拡張したものがが仮にあったとして、 C++/CLI とどっちを使う??
871 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 08:38:56 ] その仮とやらの質による。存在しないものと比較しても仕方がない
872 名前:デフォルトの名無しさん [2006/03/08(水) 09:48:43 ] おい!!!! だれだよ、俺のプロジェクトで勝手に /clr:pure にした奴は! おかげで全部 __clrcall になっててリンクできずに 一晩悩んだじゃないか! さて、そろそろ帰るか。
873 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 19:50:08 ] >>870 Javaをネイティブ拡張したもの≒C#
874 名前:デフォルトの名無しさん [2006/03/08(水) 20:04:29 ] Java = C++-- C# = Java++ = C++--++
875 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:20:07 ] >>873 ネイティブじゃナインじゃん
876 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:26:46 ] String^ arg_1 = abc; String^ arg_2 = def; textBox1->Text = arg_1 + arg_2; としたら abcdef と出力出来ますが textBox1->Text = arg_1 + endl + arg_2; : error C2679: 二項演算子 '+' : 型 'overloaded-function' の右オペランドを扱う演算子が見つかりません (または変換できません)。 となり、期待していた abc def が出来ません 誰かrg_1とarg_2の間に改行を入れて abc def となる様にしてください。 オナガイシマス
877 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:33:42 ] System::Environment::NewLine
878 名前:デフォルトの名無しさん [2006/03/08(水) 21:34:09 ] textBox1->Text = arg_1 + endl + arg_2; じゃなくて textBox1->Text = arg_1 + "\n" + arg_2; でいいじゃん。 std::endl はマニピュレータで、、 マネージド型である String に対して + 演算子がオーバーロードされているなんてことはまずない。
879 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:36:40 ] "\r\n"にしないとだめではないか?
880 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:45:08 ] 変だな? textBox1->Text = arg_1 + "\n" + arg_2; としたら コンパイルも通ったんだけど textBox1に表れた文字が abc・def 全角文字の・に似た記号が出ます(多分全角の・とは違う気がするが、定かではない) 秀丸に貼り付けると abc def と改行されてるんだが、なぜ?
881 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:47:30 ] >>880 サンクスできましたが、解説もオナガイシマス なんで "\n"では駄目で"\r\n"なの?
882 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:54:42 ] Windowsの改行コードは"\r\n"だから。 UNIXとかのコンソールプログラムでは\nで Macは"\r"
883 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:56:39 ] そしてC/C++は\nを使い、テキストモードでの入出力時には環境固有の改行コードと\nとで変換をしている。
884 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:57:50 ] ウィンドウズはそういうもん。 Unix : 円 n Windows : 円 r 円 n 旧 mac : 円 r コンソールアプリは透過的に 円 n ⇔ 円 r 円 n やってくれるが テキストボックスとかはやってくれない。 秀丸じゃなくってノートパッドならやっぱりナカテンが出ると思う。
885 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 21:58:49 ] みんなでケコーン OS X は ¥n になったよ ... 関係ないですが。
886 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:01:40 ] >>882->>885 >>881 です ご丁寧にありがとうございました、よく理解できました しかし皆さん本当に良く知ってますね
887 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:01:47 ] >>884 どっちかと言うと円記号よりもバックスラッシュ。
888 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:16:41 ] 完璧な回答を出しているのにスルーされてる>>877 がカナシス
889 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 22:31:06 ] >>887 さん ありがとう スマソ、やっぱりC++/CLIならこうですよね (゚д゚)(。_。)(゚д゚)(。_。) ウンウン msdnでよく調べます
890 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 18:13:54 ] String型の変数arg_1を書き込みたいのですが、 下記のコードでコンパイルも通りるのですがアプリケーションのコンポーネントで、 ハンドルされていない例外が発生しました〜後略 別のプロセスで使用されているため、プロセスはファイル'C*\hoge.txt'に アクセスできません。 となってしまいます、どこがおかしいのでしょうか? protected: void button3_Click(Object^ /*sender*/, System::EventArgs^ /*e*/){ using ::System::Windows::Forms::DialogResult; Stream^ myStream ; SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog(); saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ; saveFileDialog1->FilterIndex = 2 ; saveFileDialog1->RestoreDirectory = true ; if(saveFileDialog1->ShowDialog() == DialogResult::OK) { if((myStream = saveFileDialog1->OpenFile()) != nullptr) { // Code to write the stream goes here. System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter(saveFileDialog1->FileName); sw->Write(arg_1); sw->Close(); myStream->Close(); } } }
891 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 18:29:48 ] なんでSaveFileDialog->OpenFileで開いてるのにさらにStreamWriterで開き直す? すでに開いているストリームに対してStreamWriterを使うのならStream^を渡す。
892 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 18:50:37 ] 最近よう、気のせいか初心者歓迎スレに変わってきてないか? なんか、聞けばいいと思っている輩が増えてきた気がするんだが
893 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 18:53:25 ] >>891 SaveFileDialog->OpenFileに書き込むには どうしたらいいですか?
894 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 19:15:18 ] System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter(myStream); 初心者はC#かVBからはじめるのがいいよ。MSDNの見方くらい覚えような。
895 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 20:52:02 ] >>894 ありがd
896 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 01:26:35 ] C++/CLI みたいなマニアな言語を使おうとする奴が なぜこんなところで教えてくんしてるのか判らん。 (マニア、というのは、それでないと書けないほどのアプリを 書かないといけないはめになっていないと使わないだろう、 ぐらいの意味。) MSDN 読めるぐらいでないと C++/CLI 手を出さないと思うんだが、 どうなってんだろう?
897 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 03:18:05 ] しらんがな。
898 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 08:44:22 ] >>896 少しはC++をやっていて、新しい言語に手を付けずに.Netが使えるぞと思っているんだよ、きっと。 実際はC++とC++/CLIとは別物だということを知らず。
899 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:08:02 ] つーか、自然な流れだと思うぞ。 一般的にC++が普及してた。 ライブラリはMFCやらWin32APIやらATLを使ってたであろう。 そして、MSの次期スタンダードなライブラリが、.NETになった。 じゃあ、C++から.NETを使おうか。 こんな感じでしょ。 間違いだとも思わない。
900 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:11:06 ] ええっと、言語間の違いよりも、 ライブラリ間の違いのほうが余程大きいと思うんですが...
901 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:18:01 ] 一般的に旧VBが普及してた。 PC以外で死滅気味だった言語が台頭。サーバーサイドJavaや組み込みC++。 サーバーサイドや組み込みに足を踏み入れるドトネトとC丼を強制。 ブビ厨氏滅&ドトネト氏産。 オネガイC++からドトネト使ってトンでも言語mc++ → C++/STL.CLI
902 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:22:57 ] >>901 日本語でおk
903 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:44:39 ] 899=線能されてる C++の文法複雑+マネージドの理解+旧COMの理解を要するなんてサイアクじゃん。 で、C++のBoostなんかは使えないという利点が無いオマケ月。
904 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:51:19 ] >>903 ネイティブな領域では普通に Boost 使えてるけど? たとえば Boost.Serialization で既存のデータを読み込んで、 Windows Forms で表示したり ADO.NET で DB に投入したりできる。
905 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:54:30 ] >>904 書いてて自分の文章の複雑さに気付かない?
906 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 09:56:50 ] pc8.2ch.net/test/read.cgi/tech/1139313234/115 こういうこともあるみたいだけど。
907 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:01:59 ] >>904 ネイティブな領域では普通に Boost 使えてるけど? なんだ、丸々大ウソか。 さすが線能されてるだけある。 M$もCOMでC++を汚しきったが、mc++で文法破壊、CLIでライブラリ破壊だね。
908 名前:904≠899 mailto:sage [2006/03/10(金) 10:16:42 ] >>906 それ書いたの俺。で、そのオチが >>872
909 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:20:06 ] >>908 >だれだよ、俺のプロジェクトで勝手に /clr:pure にした奴は! PUREでない混合だと激遅になるドトネトに何の意味があるのかと小一時間。
910 名前:904≠899 mailto:sage [2006/03/10(金) 10:24:15 ] >>909 pure でやるなら、既存のライブラリの多くを あきらめるってことなので、俺なら C# を選択する。
911 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:28:38 ] >あきらめるってことなので、俺なら C# を選択する。 ソースコードの価値ってのは既存コードだったり、 環境変わってもコンパイルしたりすると動くことだったりするのに、 馬の骨C丼に何の価値があるのかと。
912 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:29:34 ] ttp://pc8.2ch.net/test/read.cgi/tech/1141828033/1 ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『.NET framework 2.0を入れたと思ったら i|:!ヾ、_ノ/ u {:}//ヘ 何故かノータッチデプロイメントがぶっ壊れた』 |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも 何をされたのか わからなかった… ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ 移植や修正が必要だとか / // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ ノ ' / ノ:::::`ー-、___/:::::// ヽ } _/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしいものの 片鱗を味わったぜ…
913 名前:904≠899 mailto:sage [2006/03/10(金) 10:31:16 ] >>911 だから今俺は C++/CLI 使ってるんだってば。
914 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:37:16 ] >>913 で、C++/CLI複雑じゃない?それだけ価値あるということ?
915 名前:904≠899 mailto:sage [2006/03/10(金) 10:38:48 ] >>914 使わざるを得ない場面があるということ。 あと、マゾにはたまらないって言うこと。
916 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:13:29 ] 自分で判断できないような人はC#やっといた方がいい。 C++/CLIは必要があって使うもの。
917 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:29:40 ] 既存のライブラリの多くを諦める事になるからC♯って意味分からん。 C♯だったら、多くを諦めるどころか、全部諦めにゃならんだろw ヤケクソやってんのか?w
918 名前:904≠899 mailto:sage [2006/03/10(金) 11:45:23 ] >917 そんなこといってないじゃん。 既存のライブラリを使いたいから /clr:pure あきらめて C++/CLI つかってます、って書いてんのに。
919 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:56:18 ] ヒント;M$ジレンマ
920 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 13:48:25 ] >>918 君は正しい。ただあんまり一生懸命レスすること無い。疲れるだけだから。
921 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 19:38:26 ] 昔:VB-VC-Windwos 今:.NET Framework-C++/CLI-Windows
922 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:36:09 ] 伸びてると思ったら不毛な議論が続いてたようだな。 アンチが何したいのかわからんがこんなところで騒いでも無駄ですよ
923 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 09:58:42 ] 皆さんはやっぱり、C++/CLIでもファイルの入出力とか自作のライブラリー等 作成されてるのですか?Stream オブジェクトとか、MSDN見る限り、素人目には 既に完成されていると思うのですが、個人的にパラメータを渡して読み込み、書き込み モードで開いたりとかテキストモードで開いたり、バイナリモードで開いたりとか、やったほうがもっと楽でミスも少なくて、いいのかなぁーと思ったりするのですが、 いかがなものでしょう?
924 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:07:31 ] 逆に聞くが>>923 は今まで入出力に自作のライブラリを使っていたのか?
925 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:10:33 ] >>923 C++/CLI でも、っていうか、マネージドの領域では .NET Framework べったりのプログラミングしてます。 C++/CLI 使うメリットはネイティブとの橋渡しができる ことだと思ってるんで、ネイティブの領域では 従来通りの自作のライブラリーを多用しています。
926 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:36:50 ] >>923 何言っているんだかわからん。 Streamのどこが気に入らなくて、どういうことをやっているわけ?
927 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 10:47:06 ] >>926 抽象化されていないもっとファイルシステムべったりの いじり方をしたいのでは、と推測するけど、まぁそういうことが したけりゃ Windows API 叩くのも C の標準ライブラリ 叩くのも低レベルファイルアクセス関数群叩くのも C++ の標準 I/O ストリーム使うのも自由、としか言いようがないな。
928 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 20:59:39 ] テキストボックスに 0 1 2 3 4 5 6 7 8 9 と表示したいけど for( int i = 0 ; i < 10 ; i++ ){ String^arg = Convert::ToString(i); textBox1->Text = arg + "\r\n"; } これだと 9 しか表示できないんですよね(;´∀`) うーんわからん
929 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:03:49 ] これはひどい
930 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:04:01 ] > textBox1->Text = arg + "\r\n";
931 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:05:39 ] >>928 そりゃ、Text に最後に設定されるのが "9\r\n" だからだろ。 arg = じゃなくて arg += とかじゃないの? と、試しもせずにカキコ
932 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:09:22 ] >>931 で、そのargはどこに行くんだ
933 名前:928 mailto:sage [2006/03/11(土) 21:17:24 ] >>930 さん >>931 さん 残念ですが巧くいきません、同じ結果です
934 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:27:42 ] textBox1->Add(arg);
935 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 21:31:10 ] StringBuilder^ builder = gcnew StringBuilder(); for(int i = 0;i < 10; i ++) { builder->AppendFormat("{1}{0}",System::Environment::NewLine,i.ToString()); } this->textBox1->Text = builder->ToString();
936 名前:928 mailto:sage [2006/03/11(土) 21:58:21 ] >>935 さん ありがと、巧くいきました StringBuilderクラス初めて知りました builder->AppendFormat("{1}{0}",System::Environment::NewLine,i.ToString()); の"{1}{0}"は何を意味するものですか?
937 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 22:15:05 ] >>936 引数の2番目({1})と1番目({0}) .NETでは基礎的なこと。
938 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 22:21:51 ] うんざりするほどの教えてクンだな
939 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 22:28:44 ] 理解していない {1}{0} を教えてもらった通り 使っただけで「うまくいきました」と言える神経が理解出来ない
940 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 23:07:57 ] 正直、C# に移って .net framework の使い方から勉強してきてほしいものだ .net framework 総合ってあったよな
941 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 23:23:19 ] enum classのインスタンスを switchの条件式に使うとunsafeにならない? Reflectorでみたらunsafeになってたんだけど...orz
942 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 00:01:20 ] しかし、海外ではC#なんて朽ち果ててるのに、ここは鎖国な人ばかりですか?
943 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 00:03:12 ] >>942 じゃ、その海外では何を使ってるの? あちこちでその書き込み見るんで、 マジで教えて欲しいんだが。 それにここ C++/CLI のスレッドだし。
944 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 01:06:44 ] 北米でのサンデープログラマはJavaよりもC#が多いってニュースみたことあるけど
945 名前:943 mailto:sage [2006/03/12(日) 01:14:43 ] ちなみに、クライアントサイドでのJavaの案件なんて ほとんど見たこと無い。
946 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 01:19:23 ] ref class のデータメンバにどうしてもネイティブクラスの インスタンスを持たせたいんだけど、混合はできないから ポインタで持たせるしかない? ref class ManagedClass { 中略 NativeClass* nativeClass; 中略 }; みたいに。せめて std::auto_ptr つかって ref class ManagedClass { 中略 std::auto_ptr<NativeClass> nativeClass; 中略 }; って書きたいけど、結局は混合になるからだめなんだよな。
947 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 01:36:31 ] gcroot auto_gcroot
948 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 02:08:28 ] >>943 VB。つーか、こんな簡単な事もわからないヤツがいるのか。 日本人同士で馴れ合ってるから、バカになるんだよ。
949 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 02:38:05 ] >>948 明らかにどっちもやったことない苦し紛れ臭漂うコメントだな。
950 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 03:25:39 ] >>949 いや、ぜんぜん。 つーか、やったことがある・ないって話はしてない。ばかだね。あんた。
951 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 03:38:45 ] >>950 ないのならいかに自分が馬鹿な話をしてるかわからんのも仕方ない。
952 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 03:45:21 ] >>951 もうチョイ日本語、勉強しましょうねー。
953 名前:952 mailto:sage [2006/03/12(日) 04:05:27 ] アンカミス ×>>951 ○>>952
954 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:05:29 ] >946 そのためのファイナライザと割り切るしかないんでない 心配なら、管理クラスを別途作って、そこからポインタを受け取ってもいいんだし
955 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:09:20 ] 初歩的な質問ですみませんが、お願いします hoge_0.txt hoge_1.txt 略 hoge_9.txt という10個のファイルを作ろうと思い for(int i = 0;i < 10; i ++){ Stream^ myStream ; String^x=Convert::ToString(i); StreamWriter^ sw = gcnew StreamWriter ("c:\\hoge_"+x+ ".txt"); sw->Close(); myStream->Close(); } (書き込む部分は省略させて貰います) コンパイルは通りますが、 「オブジェクト参照がオブジェクト インスタンスに設定されていません。」 と表示されてしまいます、 hoge_0.txt一つだけc:\直下に作成されています どうしてでしょうか?
956 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:13:58 ] コード見直せ 明らかにおかしいだろ
957 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:15:06 ] StreamWriterをCloseするときにStreamも一緒にCloseしてるからじゃね。
958 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:16:39 ] C(++) もやったことないのに C++/CLI に手を出すのは無謀
959 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:17:16 ] コンパイラさんが myStream が初期化されてないよって警告出さんのか
960 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:24:17 ] 指摘されて今気づきました Stream^ myStream ; myStream->Close(); を、おまじないみたいに勘違いしてたようです
961 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 04:30:55 ] おまじないとな
962 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 05:24:46 ] 次スレのテンプレにあれだ、初心者お断りとでも書いとけ。 ___________________ | |★ 初心者に扱える言語ではありません ★ | | ・初心者はまず C/C++ か C# をしましょう。 | ・両方とも中級者以上になったら来てください。 | Λ Λ / (,,゚Д゚)⊃ チュウイ! 〜/U / U U  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
963 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 05:42:05 ] C#はやらんでもええ。
964 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 06:05:50 ] >>963 いや、このスレにずっといて必要だと思ったから書いたのだけど? CLRの基本的なことも分かってないようなやつは危ない。 C#では仕様的に避けられてたり、ふらっとスレでも聞かないような レベルの質問ばかりじゃん。 んで一番速く理解できるのはC#だし、C++と文法似てるし。
965 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 08:36:56 ] というか、移行組にとって辛いのは、.net framework の使い方がわからないというところじゃね? だから、C++ はわかるけど、それを CLI の流儀でどう書けばいいのかわからなくて、初心者スレ で聞くような質問をここでしてしまう、と 最近紹介されて知名度が上がってきた分、飛びついてくる奴らがなんかくらくらするような 質問をしてしまうわけで、.net スレへ誘導というのも、言語の垣根を越えた C++/CLI の可能性を 示すという点でいいのかも
966 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 08:45:29 ] C++/CLI は C++ しか知らない人がマネージドなプログラムを 書くための言語ではなくて、C++ で仕事してきて、かつ、 C# などで .NET Framework 上で動くプログラムも作ってきて、 両方の資産とノウハウを抱えている人がそれらの分断に悩んで たどり着くソリューションだと思う。
967 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 08:52:04 ] >966 それは漏れもそう思うんだけど、実際にはあの顔文字使う教えてクンみたいなやしが あれだけ言われても MSDN もチェックせずに気軽に尋ねにきていやがるこのスレの現状を 考えると、あるべき論ではなぁ スレのふいんきをもっと殺伐させて、気軽に質問できないようにした方がいいかもな 後は、答えるときは罵倒しながら、丁寧に答えるとか >980 スレ立てよろ てんぷれ作る?
968 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 09:51:53 ] とりあえず教えて君はレベルに関係なくスルーすればいいんじゃないのかな? 排除を全面に出しすぎるのも大人げないというか。 managed C++ → C++/CLI www.microsoft.com/japan/msdn/vs05/visualc/TransGuide.asp#transguide_topic [特集] Visual C++ 2005 いままたC++が熱い!「C++/CLI」として大進化したVisual C++ 2005 www.atmarkit.co.jp/fdotnet/special/cppcli/cppcli_01.html Calling Native Functions from Managed Code msdn2.microsoft.com/library/ms235282 (en-US,VS.80).aspx C++/Cli Essentials www.amazon.com/exec/obidos/tg/detail/-/0321174054/ Shared Source Cli Essentials www.amazon.co.jp/exec/obidos/ASIN/059600351X C++/CLI設計者のblog blogs.msdn.com/hsutter/ blogs.msdn.com/slippman/ STL.NET www.microsoft.com/japan/msdn/vs05/visualc/stl-netprimer.asp www.dinkumware.com/ C++の今後 216.55.183.63/pdc2005/slides/TLN309_Sutter.ppt
969 名前:デフォルトの名無しさん [2006/03/12(日) 10:03:33 ] >>1 に >>964-966 あたりのことをさらっとかいておくとよいのでは? ---------------- C++/CLI は単なる C++ の拡張ではなく、既存の C++ のコード資産と .NET Framework をはじめとしたマネージドなコード資産の橋渡しを するものです。.NET Framework でのプログラミングになれていない人は Visual Basic .NET や C# である程度基礎的な概念を学習してから 取り組む方がよいでしょう。 ---------------- とか。
970 名前:デフォルトの名無しさん [2006/03/12(日) 10:04:11 ] >>968 排除は本望じゃないけど、誘導は必要だ、ということで。
971 名前:デフォルトの名無しさん [2006/03/12(日) 11:01:01 ] C# と同じような間隔で XML ドキュメントを書き込んでたら、 C++/CLI では XML ドキュメントってサポートされてないんだね。 そのへんは C++ と同じなんだから当たり前か。 ところで、マウスポインタを識別子の上に持って行ったときに 現れるチップでもコメントを表示して欲しい名x。亜
972 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 11:21:35 ] 工作員がスゲー。再度言う。C#はやる必要なし。
973 名前:デフォルトの名無しさん [2006/03/12(日) 11:30:48 ] >>972 やってもいいじゃん。
974 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 11:34:39 ] はじめからC++/CLIで.NETをはじめたいというのがいても悪くは無いが、 そういう需要があれば、ふらっとC++/CLIとかぐすたれC++/CLIとか別のスレ立てたいね。
975 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 11:46:42 ] >>974 。゚+.(・∀・)゚+.゚イイ!! 行き場が無くて、彷徨っています。 スレ立てオナガイシマス
976 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 12:06:17 ] >>972 何で工作員?C/C++、C#両方使える上で最適だと思える判断をして書いて いるんだけど? C++を分かっていて、C#分かってれば実際問題仕様書読めばかけるから。 どう考えても最短距離だし、C++/CLIはC++のスタンス上危険なコードも 許容するからそれが危険であるとも分からないし、特殊な仕様が結構ある。 しかも、はっきりいって質問のレベルがふらっとC#スレにも劣ってるから。 他言語ならまだ入門書を読め、といえばすむがC++/CLIにそんなものあるの? C#初心者よりレベルが低い状態で、情報も少ないのに、C#より考えることが 大量にあって複雑なC++/CLIが何とかなるとお思いで?
977 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 12:51:20 ] C++/CLIをやるには.NETの知識が必用だが、 その知識を得るための情報はC#を対象に書かれていることが多い。 つまり必然的にC#の知識が必用になる。
978 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 13:02:42 ] C++/CLIは合の子だから、 C++とCLIのそれぞれの特徴を知る必要がある。 C#はCLIへの近道だと思う。まあC#使う必要はないが。
979 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 13:17:30 ] けどC++ができるのであればC#は大したことは無いと思う。
980 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 14:13:45 ] いや、だから言語仕様が大したことかとかいってるんじゃなくて、 CLI の流儀、.net framework の流儀をつかむために いちど純 .net のをやっておいたほうがいいんではということでしょ。
981 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 14:22:30 ] やっぱり、単に日本だけで馴れ合ってるだけじゃん。 C++/CLIの資料が少ないから、C#で代用しろ? 現実的だが、人に勧めるような話じゃないことに気がつけよ。 C#なぞという無用な知識を入れる必要は無し。 C++/CLIの資料はあるだろ? managedの時代なら C# が参考になるが…、C++/CLIになっても必要なのか?
982 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 14:38:16 ] >>981 もうチョイ日本語、勉強しましょうねー。
983 名前:デフォルトの名無しさん [2006/03/12(日) 14:52:35 ] 一度もアセンブラを使ったことがない人に ポインタの具体的なイメージを持ってもらうのは困難。 同じように一度も C# や VB.NET のような .NET Framework を想定した元を使ったことの無い人に マネージドなプログラミングについてのイメージを持ってもらうのは困難。
984 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 15:02:29 ] C#をというより、クラスライブラリの使い方レベルの質問は受け付けたくないというの話さ。 次スレと、それとは別に初心者用スレを立ててくるよ。それでいいだろう?
985 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 15:25:25 ] くだらねー。そんなことで C# を薦めるな。
986 名前:デフォルトの名無しさん [2006/03/12(日) 15:27:48 ] とりあえず初心者スレを立ててきた。 くだすれC++/CLI(初心者用) pc8.2ch.net/test/read.cgi/tech/1142144110/l50 連続でスレ立てができなようだから、次スレはもう少し待って。
987 名前:デフォルトの名無しさん [2006/03/12(日) 15:28:21 ] >>985 じゃ、おまいさんは何をすすめるお? J# ? プギャー(AA略
988 名前:986 mailto:sage [2006/03/12(日) 15:50:33 ] 連続規制でスレが建てられないのでだれか次の内容で頼みます。 2 に >>968 の内容もアップしてあげてください。 --- C++/CLI について語ろうぜ Part2 おそらく、.NET開発でデファクトスタンダードに最も近い であろうC++/CLIについて語ろうぜ! このスレはC++および.NET Frameworkについて一定以上の知識を持っている人が対象となります。 .NETのクラスライブラリの使い方といった質問は姉妹スレ「くだすれC++/CLI(初心者用)」に お願いします。 前スレッドはこちら pc8.2ch.net/test/read.cgi/tech/1126450441/l50 姉妹スレ くだすれC++/CLI(初心者用) pc8.2ch.net/test/read.cgi/tech/1142144110/l50 managed C++ やろうぜ!! 002 pc8.2ch.net/test/read.cgi/tech/1139043535/l50
989 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:06:36 ] >>988 Thanks ☆☆** v( ̄ー ̄)v**☆☆ Thanks d(゚Д゚ )☆スペシャルサンクス☆( ゚Д゚)b ♪♪♪ d(`Д´)b♪♪♪サンキュ
990 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:08:02 ] >>988 立ててみるわ。
991 名前:990 mailto:sage [2006/03/12(日) 16:09:29 ] 立てた。 pc8.2ch.net/test/read.cgi/tech/1142147319/
992 名前:990 mailto:sage [2006/03/12(日) 16:10:53 ] >>968 もコピペしといた。 不足分はよろしく。
993 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 16:43:41 ] >>987 そうやって、脳内で勝手に盛り上がって楽しいか? なんか変な薬でも飲んでるのか? 飲んでるなら止めなさい。 飲んでないなら医者に行って飲みなさい。
994 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 17:53:31 ] >>987 J# 使う奴は氏ね
995 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 17:54:41 ] J#使ったことない俺にだって、J#の中傷ぐらい非難されずに可能なのだ
996 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:21:29 ] ヒント:擁護する人がいない
997 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:32:44 ] 誰も使っていない言語を意地で維持する必用は無いと思うんだがな。 金と時間の無駄。
998 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:37:23 ] j#は 1.1.x 互換じゃ使いようもないし、System系の名前空間のクラスを使うともうJavaには見えないね。 他に敵を作って内紛のタゲそらしをするのは常套手段だな。まるで中共政府のようだ
999 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:38:42 ] 1000get
1000 名前:デフォルトの名無しさん mailto:sage [2006/03/12(日) 18:39:03 ] ぬるぽ
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。