- 1 名前:デフォルトの名無しさん [2010/03/20(土) 02:15:38 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ふらっとC#,C♯,C#(初心者用) Part56 pc12.2ch.net/test/read.cgi/tech/1267348401/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/1 VB.NET質問スレ(Part33) pc12.2ch.net/test/read.cgi/tech/1263738929/1 C++/CLI part3 pc12.2ch.net/test/read.cgi/tech/1206447234/1
- 654 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:01:25 ]
- >>650
MFCを使ってる人がまだいたことに驚いた
- 655 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:05:19 ]
- listといえばリンクリストを指すのは悪い慣習だな
.NETではインデックスでアクセスできるものをlistと呼ぶ LinkedListもListと付いてるけどIListを実装してない
- 656 名前:デフォルトの名無しさん [2010/03/29(月) 12:24:01 ]
- WPFのC#のコードビハインドでのウィンドウサイズの指定方法を教えてください。
xamlでは、 <Window Height="400" Width="400"> と指定します。 FormのC#では、 this.ClientSize = new System.Drawing.Size(1173, 861); のようにできます。 WPFのC#の場合がわかりません。 Windowssize = new System.Drawing.Size(1173, 861); としてみたところ、System.Windows.Window.Windowsizeはアクセスできない保護レベルになっています、 と表示されています。 どこで保護レベルを変更すればよいでしょう? よろしくお願いします。
- 657 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:25:00 ]
- 保護レベル変更は無理
- 658 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:26:55 ]
- this.Width = 1173;
this.Height = 861; これだけ それとWPFでSystem.Drawingは使うな
- 659 名前:デフォルトの名無しさん [2010/03/29(月) 12:27:07 ]
- >>657
やりたいことはウィンドウサイズの変更なので、 ウィンドウサイズを変更できればよいです。
- 660 名前:デフォルトの名無しさん [2010/03/29(月) 12:29:59 ]
- >>658
ありがとうございました。できました。感謝です。
- 661 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:27:28 ]
- >>660
また俺が回答してやるよ どーんとこい!
- 662 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:34:08 ]
- いや俺が回答した
- 663 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:40:04 ]
- いやいや俺が
- 664 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 19:08:57 ]
- あ、じゃあ
俺がやったよ
- 665 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:47:38 ]
- 質問
現在、C言語で書かれたDLLが提供する関数を C#から呼び出そうとしています。 悩んでるが、「引数に構造体の配列を持つ関数」の処理です。 下記URLにソースコードを張りました codepad.org/SnH7gdwI 上でいう所のC側の「//<- ここで落ちる」というコメントのある所で不正アクセスで落ちてしまいます。 (stSample[0]に値が入ってるのは確認できました) C#側の構造体の渡し方がおかしいとかなと思ってるのですが、 どこがおかしいのか分からず・・・。 ご存知の方いましたら、教えて下さい。
- 666 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:52:16 ]
- public struct ST_SAMPLEDLL {
public byte cCount; public fixed byte strBuff[256]; } こうじゃね
- 667 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:18:54 ]
- 文字列にしてそれを渡してパースしてぶっこめば楽だな
- 668 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:35:23 ]
- 教えてください。
マルチスレッドを利用したプログラムがあります。 このスレッドのうち1本で、ローカルファイルにデータを出力する処理があり、そのファイル名を ファイル選択ダイアログ(System.Widows.Forms.SaveFileDialog)を利用して求めることにしたいと思います。 実際にプログラムを組んで実行すると、ShowDialog() を実行する箇所でエラー終了します。 メッセージボックスに表示されるエラーの内容は以下の通りです。 >OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。 main 関数には STAThread の設定もしてあります。(元からついているようですが) 同じプログラムで、main 関数を実行したスレッド(以下、メインスレッドと記述します)でダイアログを表示すると正常に使用できます。 また、メインスレッドで開けばいいのかと、メインスレッドで表示しているフォームに Invoke を掛けて ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため この状態でダイアログを表示しようとしても画面には出てきません。 メインスレッド以外からファイル選択ダイアログを正常に開く方法はないでしょうか。
- 669 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:44:03 ]
- UIスレッド以外から操作すんなよ。
- 670 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:45:43 ]
- ダイアログに見せかけたFormじゃだめなの?
- 671 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:49:18 ]
- メインスレッド側でAPIで呼べばいいんじゃね?
- 672 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:50:38 ]
- あー、Thread.SetApartmentStateってのがあってだね
- 673 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:50:49 ]
- 一応、Thread.TrySetApartmentState メソッド ってのはあるけどな・・・。
- 674 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:52:26 ]
- >>669-671
この3人にtaskkillしてあげてください
- 675 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:53:44 ]
- ひどい赤っ恥だ
- 676 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:56:37 ]
- メインのUIスレッド以外からUIいじるのはお勧めできないけどな。
- 677 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:58:40 ]
- >>674
何でtaskkillなんだよ >ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため >この状態でダイアログを表示しようとしても画面には出てきません。 ダイアログで出ないとかいうからダイアログに見せかけたForm表示しろっていっただけ オーナーとの関係で表示がされないだけだろ
- 678 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:59:11 ]
- そのスレッドは自分で作ったスレッド?
それともスレッドプールのスレッド? 自分で作ったスレッドなら、差し支えなければ自分でSTAに設定すればいい(Start前しかできないよ) もしスレッドプールとかなら、これはMTAから変更することはできない。 汚いけど、必要な部分で自分でスレッド作って、STAに設定してメッセージボックス表示、 元のスレッドでは新しいスレッドを勝ち合わせとかするしかないと思う。 最初からUIスレッドにIncvokeする方が無駄はないけど。
- 679 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:01:42 ]
- そもそもSTAとかMTAって何なの
- 680 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:02:56 ]
- ようやくシンプルだけどまともに動くものが作れるようになってきたけど
未だにマルチスレッドとかよくわからないな >>679も何のことやら
- 681 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:05:41 ]
- Inside OLE2 嫁。
- 682 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:09:36 ]
- >>681
それ絶版じゃなかったっけ。
- 683 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:10:41 ]
- うん。
- 684 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:11:22 ]
- >STAとかMTA
VC++でATL使ってIEコンポーネント触ったときにちょっとかじった程度だな ナビゲーション関連がこの辺を理解してないとメッセージが来ないとかなんとか
- 685 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:24:31 ]
- うん。
- 686 名前:668 mailto:sage [2010/03/29(月) 22:26:02 ]
- みなさん、ありがとうございます。
てか、はやっ。w >>670 無知ですみません。 ダイアログに見せかけたフォームというのは、Form を継承したファイル選択ダイアログの ようなフォームクラスを自分で作る、と言うことでしょうか。 だとすると、今回は遠慮できたらいいかな、と。すみません。 >>671 いまの状況からは少し難しく。すみません。 >>678 System.Threading.Thread を利用して自分で作ったスレッドです。 やっとエラーメッセージの意味がわかりました。 あれは必ずしも main 関数でやれってことではなくて、ダイアログを操作するスレッドに STA を設定しろってことなんですね。 >>672 や >>673 さんの仰ってる方法で出来ると理解しました。明日、確認します。 >>669,676 自分も UI スレッド(この言葉を忘れていました)以外で UI の操作を行うのには抵抗があったのですが。 ‥‥気をつけておきます。
- 687 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:27:30 ]
- >>686
わかればよろしい 今後も精進しなさい
- 688 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:28:10 ]
- 偉そうに
- 689 名前:665 mailto:sage [2010/03/29(月) 22:32:50 ]
- >>666
レスサンクス。 バッファの取り方がまずいという事ですか。 今手元に環境がないので試せないですが、 明日試してみます。 良いサイトか何かあれば、いいんですが、 なかなか見つからず・・・orz ちなみに、環境は XP,VC# 2008Express (書き忘れました)
- 690 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:37:59 ]
- バッファの取り方でなくて、C#とCの型の違い。
- 691 名前:665 mailto:sage [2010/03/29(月) 22:42:37 ]
- >>690
サンクス それで、最初の構造体はアクセスできるけど(たまたま出来てるように見えてるだけ?)、 次の構造体にアクセスしようとしたら落ちると・・・。
- 692 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:46:49 ]
- 型の制約があるものより汎用的なテキストでやり取りする方が無難かもねえ
相談かこっちか忘れたけど以前同じようなdllを呼び出すアプリの相談で httpでやり取りする形にしてみたら?ってのがあったな
- 693 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:52:56 ]
- >>691
よく見たらST_SAMPLE**だったのか C#側の引数の型をIntPtr[]にしてそれぞれポインタの参照先に ST_SAMPLEDLL一つ分のメモリを割り当てておかないと
- 694 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:53:47 ]
- バイト配列が一番わかりやすいよ。
- 695 名前:665 mailto:sage [2010/03/29(月) 22:58:22 ]
- >>692
時間がたっぷりあって、許されるなら、DLLをC++か何かで 書き換えたいところですが、そうもいかず・・・。 このインターフェースは我慢するしかないですね。 >>693 です。ダブルポインタです。 そこなのですが codepad.org/SnH7gdwI このサイトに張ったソースの37行目でDLLに渡すメモリの実態自体は用意しているので、 大丈夫かと思ってたのですが、それとは別に確保するという事ですか? あと、宣言は、こっちの方がいいってことですね。 [System.Runtime.InteropServices.DllImport("MY_Dll.dll", EntryPoint = "test")] unsafe public static extern int test_call( IntPtr[] pstList);
- 696 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:00:44 ]
- IntPtrのみでいいはずだけどな。
Cでは、基本的に配列はメモリ上に整列するし。
- 697 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:04:37 ]
- ダブルポインタだからポインタの配列を渡さないといけない(だからIntPtr[])
しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
- 698 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:11:52 ]
- 配列はポインタで受けれるけど、ってやつか。
- 699 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:12:03 ]
- >>696
私もそう思ってて、そこではまってます。。 >>697 >しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと そこなのですが、 testPtr1 = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)) * (int)10); これで、領域を確保して、 次に test_call(testPtr1); 渡してるので、少なくとも構造体ST_SAMPLEDLLを10個分はメモリとして 確保してると思ってますが、この処理のほかに必要とうい事でしょうか? その後、取れたのをMarshal.PtrToStructure()で取り出す処理になってます。
- 700 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:15:27 ]
- = () => って表記、他に候補なかったのかよ!と書く度に思う。タマゴとコンニャクでオデン喰いたくなるw
- 701 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:21:09 ]
- C#でいう「参照型の配列」と同じだ。
並んでるのは実体じゃなくてポインタで,それぞれのポインタがどこか別の場所にある実体を参照してる。 IntPtr[] testPtr1 = new IntPtr[10]; for (int i = 0; i < 10; i++) { testPtr1[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL))); } test_call(testPtr1); こうする。 取り出すときはそれぞれの要素に対してMarshal.PtrToStructureを呼べばおk
- 702 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:27:48 ]
- DLLとC#の間にもう一個DLL挟めばいいんだよ
- 703 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:29:37 ]
- >>701
なんといいますか・・・。 頭が下がるばかりです。 なるほど、納得しました。
- 704 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:32:31 ]
- もともと
x⇒x*2; みたいな感じではなかったのあれ 1バイト文字に⇒がなかったから代用みたいな よくしらんけど
- 705 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:35:16 ]
- これで上手くいったと書こうと思ったら>>701に先越された。CallingConvention忘れないでね。
using System; using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack=4)] public struct ST_SAMPLEDLL { public byte cCount; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte[] strBuff; } class Hoge { [DllImport("u.dll", EntryPoint = "test", CallingConvention=CallingConvention.Cdecl)] unsafe public static extern int test_call([MarshalAs(UnmanagedType.LPArray), In, Out] IntPtr[] pstList); static void Main() { IntPtr[] stSample = new IntPtr[10]; for (int i = 0; i < stSample.Length; ++i) { stSample[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL))); } // DLL呼び出し test_call(stSample); ST_SAMPLEDLL[] st = new ST_SAMPLEDLL[10]; for (int i = 0; i < st.Length; ++i) { st[i] = (ST_SAMPLEDLL)Marshal.PtrToStructure(stSample[i], typeof(ST_SAMPLEDLL)); Marshal.FreeCoTaskMem(stSample[i]); } Console.WriteLine((int)st[0].cCount + " " + (int)st[0].strBuff[0]); Console.WriteLine((int)st[1].cCount + " " + (int)st[1].strBuff[0]); }}
- 706 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:06 ]
- なんでCdecl?
- 707 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:19 ]
- >>705
なんていうか・・・俺って頭の回転速いから自然と先越しちゃうんだよ。(笑) 肩を並べる奴は誰も現れないって感じだ。(笑)
- 708 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:41:32 ]
- >>707
おい 俺のフリをするな
- 709 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:42:58 ]
- >>706
codepad.org/SnH7gdwI で__stdcallが指定されていないから。 まさかコンパイルオプションでstdcallを指定しているなんてオチがあるわけないと思ってCDeclと仮定した。
- 710 名前:701■Agei32s4 mailto:sage [2010/03/29(月) 23:44:05 ]
- 騙りばっかだな。トリつけとくわ。
- 711 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:44:35 ]
- ですね
- 712 名前:665 mailto:sage [2010/03/29(月) 23:55:44 ]
- >>705
>>709 具体例、サンクス! 少し話しが出たので、質問なのですが、 DLL側で__stdcallが指定されていた場合、話しは違ってくるのでしょうか?
- 713 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:59:11 ]
- うん。
- 714 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:01:18 ]
- 文字列でやり取りするのが今時
- 715 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:02:31 ]
- そんなことない。
- 716 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:03:15 ]
- WinFormsのP/Invokeを全部標準入出力に替えたらとんでもないことになるな
- 717 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:06:56 ]
- >>715
ネットワーク越しにwebAPI呼び出してxmlなどのテキストで回答を許容できる時代なんだから スタンドアロンでやっても問題ないだろ そうすればGUIだけC#で書いて古いDLLは常駐してhttpをリスナーする小さいプログラム書けば いいのでVC++の無料でも余裕で開発できる
- 718 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:07:42 ]
- どんだけ遅いと思ってんだよ。バカジャネーノ
- 719 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:08:00 ]
- >>713
実は、会社の帰り際に「WINAPIは__stdcallで宣言するのが標準」という記事を見つけたので、 淡い期待を抱きながら、「明日試そう・・・」と思っていたところでした。 スタックの開放タイミングの違いとうい事ですか(う〜ん汗)
- 720 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:12:45 ]
- 直接は関係ない。関数から戻るときの問題だし。
- 721 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:16:05 ]
- やれやれ
- 722 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 07:25:47 ]
- テキストファイルでやりとりすべきだな
- 723 名前:665 mailto:sage [2010/03/30(火) 11:56:25 ]
- 回答を下さった方々、有難う御座いました。
無事、思うような動作が出来ました! (感謝感謝) 私の後ろの初めてを捧げたいぐらいの感動です。 ここの所、ず〜っとこれで悪戦苦闘してましたので・・・。 有難う御座いました。
- 724 名前:デフォルトの名無しさん [2010/03/30(火) 11:57:01 ]
- UserControl 作るとツールボックスに表示されますが、
表示させたくない場合はどうすればいいですか?
- 725 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:59:17 ]
- >>723
よしではいくぞ >>724 無理じゃね? クラスライブラリで分離しておくとかすれば可能かな・・・
- 726 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:34:16 ]
- >>723
2番目をくれ
- 727 名前:665 mailto:sage [2010/03/30(火) 12:55:41 ]
- >>725
>>726 夢を打ち砕いてすまないのだが、 一応、私は「男」です
- 728 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:57:39 ]
- >>727
あたりまえだろ。女なんて嫌だ
- 729 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:58:12 ]
- 知ってて言ったのにw
マジな返答くるとは思わなかった ばっちこーいのAAでも貼ってくるかと期待したのに
- 730 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:05:19 ]
- >>724
それらしい属性探して、無ければ諦めれ
- 731 名前:665 mailto:sage [2010/03/30(火) 13:25:07 ]
- っく・・・
変態ばっかりだったとは・・・。
- 732 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:30:28 ]
- 軽いキャッチボールだよw
- 733 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:58:43 ]
- おまえらToolboxItemAttributeもしらねえのかよ・・・
- 734 名前:デフォルトの名無しさん [2010/03/30(火) 19:27:29 ]
- さぁって、今日はどんな馬鹿が釣れるかな? 枠々
- 735 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:15:14 ]
- >>724
AutoToolboxPopulate というのがVSにはあるらしい でも単独配布のEEにはないんだよな
- 736 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:18:19 ]
- 何かうまく動かないなーと思ったらRectangleのBottomってTop+Heightなんだ
原点0で高さ64なら下の座標は63だとばかり思ってたよ…
- 737 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:26:56 ]
- >Bottom プロパティの値は、Rectangle に含まれない、Rectangle の下端にある最初の点の y 座標を表します。
確認を怠るのが悪い。
- 738 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:43:10 ]
- プログラミング自体初心者で、昨日初めてC#を始めて見ました。
visual C# 2008を使ってGUIでグラフを表示させたいんですが、どうすればいいんでしょうか? 参考になりそうなサイトなどあれば教えてください。
- 739 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:52:02 ]
- www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja
実用的なのはこれ プログラミングの勉強で関数のグラフを自分で描いたりするんだったら C# paint でググる
- 740 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:04:27 ]
- >>739
ありがとうございました。 自己解決しました。
- 741 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:32:24 ]
- C#は.net frameworkと同じ意味?
- 742 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:34:13 ]
- 違う
- 743 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:39:04 ]
- 同じ
- 744 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:40:03 ]
- .net frameworkは土台
その上で動くプログラムを書けるのがVC#とかVB.netなど
- 745 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:52:42 ]
- 言語仕様上はC#は.NET Frameworkとは無関係ということになってる
- 746 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:53:15 ]
- 違う
- 747 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:53:59 ]
- Monoはネイティブコード吐けるし…
- 748 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:56:24 ]
- それラインタイム一緒に事前コンパイルしてるだけで無駄が大きいけどね
- 749 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:00:46 ]
- 一応言語仕様の上ではCLIにも依存してない
言語仕様に最低限必要なライブラリが書いてあるのでそれを一通り実装しさえすれば C#と名乗れる
- 750 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:09:54 ]
- 名乗れるね
- 751 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:10:14 ]
- 違う
- 752 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:19:03 ]
- もう何がなんだかw
- 753 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 00:00:07 ]
- どこが「違う」か指摘できない馬鹿は放っておけ
- 754 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 00:12:05 ]
- ですね
|

|