[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 17:12 / Filesize : 240 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.NET】 C++/CLI について語ろうぜ 【最適】



1 名前:デフォルトの名無しさん [2005/09/11(日) 23:54:01 ]
おそらく、.NET開発でデファクトスタンダードに最も近い
であろうC++/CLIについて語ろうぜ!

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();






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<240KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef