- 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
- 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 ]
- ですね
- 755 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 02:39:38 ]
- >>739配布するときにも相手にはそれをインスコさせなきゃ駄目?
それとも、自動的に組み込んでくれる?
- 756 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:26:39 ]
- 90
- 757 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 04:59:13 ]
- >>755
.netその物と同じで相手側にも入ってないとだめかもね
- 758 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 06:15:46 ]
- だめかもね
- 759 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 07:36:45 ]
- >>755
ライブラリの dll ファイルは 標準のアセンブリフォルダーの下か、 exe と同じフォルダーにあれば OK なんで exe と同梱で配布すれば OK。
- 760 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 10:55:33 ]
- include <stdio.h>
using System int Main(void){ System::Console::WriteLine("にちゃんねらー死ね"); }
- 761 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:23:17 ]
- >>760
ここはニュー速のプログラミングスレじゃないですよ
- 762 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:28:37 ]
- なんでC++/CLIなんだよイライラするなあ死ね
- 763 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:37:00 ]
- C++/CLIならmainだろ
include <stdio.h> using System;も必要ない
- 764 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:39:16 ]
- やたら丼を書いている奴だろ
- 765 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:45:58 ]
- 同じマシン、同じソフトで印刷プレビューするときにプリンタ2台で
1枚でも40秒と3分の差があるんですけど、印刷の実行速度は プリンタドライバも関係してくるんですか? 3分かかるのは9年前発売のプリンタで、40秒かかるのは 最近発売のプリンタですけど。
- 766 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:50:17 ]
- そりゃまあレンダリングするのはドライバだしな
- 767 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:59:46 ]
- >>766
なるほど。 ありがとうございます。
- 768 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 13:51:04 ]
- >印刷プレビューするとき
これはプリンタのほうでプレビューってことだよな? 自分でプレビュー画面作るってわけでもなく だとしたら>>766の通りだけどC#関係なくね?
- 769 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:16:03 ]
- プレビューの速さの話が途中から印刷の実行速度の話になってるからな
- 770 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:28:59 ]
- フォームプロジェクトに追加したユーザーコントロールをデザイナで配置したいのですが、ツールボックスに表示されません。
調べてみると Windowsフォームコントロールライブラリ という別プロジェクトでDLLを作成し、 それを介する方法しか発見できませんでした。 DLLを介する以外に方法があれば教えてください。
- 771 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:51:56 ]
- メニューのツールのオプションのWindowsフォームデザイナの全般で
ツールボックスのAutoToolboxPopulateをTrueにしてもダメかな?
- 772 名前:770 mailto:sage [2010/03/31(水) 14:59:20 ]
- >>771
できました。ありがとうございました。
- 773 名前:765 ◆JdKMFRogo6 mailto:sage [2010/03/31(水) 15:25:55 ]
- >>768 >>769
C#で作ったプログラムで印刷プレビュー出すときのことです。 出るまでにそれだけ時間がかかるんですよ・・・ ここらへんでプリンタも買い替えないと・・・
- 774 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 15:28:41 ]
- 勝手にしろよwww
- 775 名前:765 ◆JdKMFRogo6 mailto:sage [2010/03/31(水) 15:35:37 ]
- >>774
たしかにwww
- 776 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:12:56 ]
- codepad.org/YiT7oXst
上記のコードがあるとします 14行目でリストの0番目のアイテムにGetTypeしてアイテムの型を取得していますが BindingList<T>のインスタンスが生成された段階でアイテムの型は決まってるので 0番目のアイテムにアクセスしなくても取れるはずです これの取り方を教えて頂きたいのです あくまでもテスト用のコードなので「Tから取ればいいだろ」みたいな突っ込みはご容赦下さい
- 777 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:13:43 ]
- 今から仕事なので日付変わった頃にお返事します
- 778 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 20:50:18 ]
- >>776
listType.GetGenericArguments()[0]
- 779 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:00:29 ]
- 関数のパラメータについて、教えてください。
デバッグ用にその関数のパラメータの一覧をログなどに出力したいと考えます。 たとえばなのですが、 System.Diagnostics.StackFrame.GetMethod().GetParameters() を利用すると、特定の関数のパラメータの一覧を得ることが出来ます。 ただ GetParameters() ではパラメータの型や変数名などの情報を取得することは出来ても パラメータの値そのものは取得できないようです。当然と言えば当然なのですが。 これと同じような方法で、パラメータの値を取得する方法はないでしょうか。 なにをしたいのかというと、デバッグ用に特定の関数のパラメータの各値をログなどに 出力したいのですが、関数個別に "param1 = {0}", param1 などと書いていくのが手間なので、 関数のパラメータのすべての変数名とその値とを文字列にしてくれる関数を作れないものかと。
- 780 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:16:40 ]
- >>778
お答え頂きありがとうございます 質問したかった事とコードが違ってる事に出勤してから気付きました IBindingListの引数にclass BindingList : BindingList<string>{}のインスタンスを渡して 継承元の型パラメータを取得したいのでした 悩んでる最中は思い至らなかったのですが、単にType.BaseType.GetGenericArguments()すればいいだけでした 下らない質問してすみません
- 781 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:19:01 ]
- >>779
無理
- 782 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:40:12 ]
- >>779
型名でいいなら public void Trace(params object[] o) { foreach(object obj in o) { 〜(o.GetType().Name); 〜(o.ToString); } } でいけるとおもうよ〜は出力命令ね
- 783 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:40:35 ]
- フォームアプリケーションを作成している時、フォームのコードが長くなったので、
「コードファイル」を新規に作成し、コードの一部を作成したソースに移しました。 その後、フォームへコントロールを配置すると、移したはずの コントロール名_イベント名() が 元のソースに関数の中身が空の状態で生成されてしまうようになりました。 コントロールのプロパティ内でイベントの欄をダブルクリックした時以外は コードが自動生成されないように設定する方法を教えてください。
- 784 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:45:55 ]
- そんな設定ないよ。
- 785 名前:783 mailto:sage [2010/03/31(水) 23:55:44 ]
- >>784
設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか? それとも「コードファイル」を作成する以外の方法で別のソースを作成すべきなのでしょうか?
- 786 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:58:30 ]
- >>785
> 設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか? うん。
- 787 名前:783 mailto:sage [2010/03/31(水) 23:59:21 ]
- >>786
ありがとうございました。
- 788 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:14:00 ]
- >>787
うん。
- 789 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:14:02 ]
- http;//○○○/〜〜〜
となっているURLの○○○を抽出するにはどうすればいいでしょうか? 正規表現を使ってみたのですが、うまく抽出されません。 例になるコードとかありませんか?
- 790 名前:779 mailto:sage [2010/04/01(木) 00:18:59 ]
- >>781
>>782 ありがとうございます。 残念ながら型名などではなくて中の値そのものが欲しいので、今回は諦めます。
- 791 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:19:40 ]
- >>789
URIクラスとかじゃねーの?
- 792 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:22:58 ]
- "/"のSplitで[2]とか?
- 793 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:26:07 ]
- >>792
'/'のSplitで[2]でしょ
- 794 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:29:17 ]
- URIクラスのHostでもAuthorityでもDnsSafeHostでも
- 795 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:39:09 ]
- http://〜〜/△△&pass=○○
のようなURLの場合に○○を取得したい場合はどうすればいいでしょうか? さすがにこれはURIクラスでは処理しきれないと思うんですが
- 796 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:43:17 ]
- EndOf
- 797 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:47:17 ]
- >>795
System.Web.HttpUtility.ParseQueryString(string query, System.Text.Encoding encoding)
- 798 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:51:19 ]
- >>795
'='のSplitで[1]
- 799 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:55:35 ]
- みなさんありがとうございます。
今までは正規表現でどうにかしようとしてましたがいろいろやり方があることが分かりました。 もうちょっと頑張ってみます。
- 800 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:00:14 ]
- >>799
みなさん?全部俺の回答なんだけどw
- 801 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:01:48 ]
- 4/1とはいえ他人の善意を潰す嘘は許さん
- 802 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:02:52 ]
- 自己主張したいならコテでもつけてろよ
- 803 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:03:41 ]
- おまえがつけろクソ野郎
- 804 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:05:51 ]
- 4/1とはいえコテ付けない奴は許さん(キリッ
- 805 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:07:38 ]
- ここまで全て俺の自演
- 806 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:08:43 ]
- エイプリルフールはどんな嘘でもいいってわけじゃないんだよね。
人を怒らせるような行為はいただけないな。
- 807 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:09:05 ]
- だな
- 808 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:47:08 ]
- >>799
正規表現でも別にそう難しくはない気もしますが、まあ、 一番楽で素直で間違いのなさそうな方法を選ぶのが良いね。
- 809 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 02:07:49 ]
- (new List<int>()).GetType().GetGenericTypeDefinition().Equals((new List<bool>()).GetType().GetGenericTypeDefinition())
上の評価はtrueになるんだけどさぁ それを踏まえてMSDNを見ると msdn.microsoft.com/ja-jp/library/system.type.getgenerictypedefinition%28VS.80%29.aspx >2 つの構築型が同じジェネリック型定義から同じ型引数を使って作成された場合 >GetGenericTypeDefinition メソッドは両方の型に対して同じ Type オブジェクトを返します。 なんかこの説明おかしくね この場合「違う型引数を指定して作成された場合でも」になるべきじゃね 同じのは同じなんだから当ったり前だろうそんなの GetGenericTypeDefinition呼ぶまでもない と思ったけど英語版もsame type argumentsなんだよなあ なんでだ
- 810 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 06:33:16 ]
- なんでだろうね
- 811 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:58:00 ]
- 未完成の汎用的なクラスを作れたのでいろんなプロジェクトで利用しているんだけど
既存の項目で追加とすると、その汎用クラスの変更がそのプロジェクトでしか行われない 汎用クラスの変更がすべての利用しているプロジェクトで反映される方法などありますか? もしくは他に方法はありますでしょうか?
- 812 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 16:26:28 ]
- >>811
既存の項目として追加するときに出てくるダイアログで、追加ボタンの隣にある三角ボタンを押してリンクとして追加すればいいじゃない。
- 813 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 18:07:35 ]
- おほ〜〜いけた
ありがとう
- 814 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:34:31 ]
- webclientのイベントハンドラをbuttonのイベントハンドラと同じように一覧から選んで記述ということはできないのでしょうか?
- 815 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:37:40 ]
- わかんね
- 816 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:13:14 ]
- foreach(var item in listview.items)
これだとlistviewitemと認識しないぞM$
- 817 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:18:03 ]
- という独り言
- 818 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 21:54:16 ]
- XMLにシリアル化の挙動がさっぱりわからん
なんなのこれは? まったく使い物にならん シネ
- 819 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:12:44 ]
- 無能は車輪の何とかでもやってなさいってこったw
- 820 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:20:21 ]
- >>814
デザイナーからは設定できないぞ >>816 varって糞VBじゃねーんだからちゃんと型つけろがボケ ideone.com/jwBy2dbY .netはいたるところで型が何か分かるようになってるぞボケ >>818 publicじゃない要素があるとうまく動かん c# XmlSerializerでぐぐってサンプルみてこい public classだし中身もpublic付き
- 821 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:25:14 ]
- >>820
>.netはいたるところで型が何か分かる それは>>816の問題に関しては間違ってる。 foreach (ListViewItem item in listView1.Items)は foreach (object _item in listView1.Items) { ListViewItem item = (ListViewItem)_item; と等価。 だからitemの型がListViewItemでなくてもコンパイルエラーにはならない。実行時エラーが出る。 ジェネリックが無かったころの名残の糖衣構文だ。
- 822 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:37:29 ]
- >>821
糖衣構文だとか昔は〜とか言われてもよくわからんけど 現在はこう表示されるんだからそれでええんとちゃうの? uproda.2ch-library.com/231844RNf/lib231844.png
- 823 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:46:18 ]
- >>822
それ今も昔もListViewItemCollectionに普通にインデクサが定義されてるだけ。 ListViewItemCollection.GetEnumeratorがIEnumerator(非ジェネリック)を返すので foreachを使うと要素がobject型扱いになる。だから>>816はvarの自然な挙動。
- 824 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:48:34 ]
- >>822
この場合インデクサは関係ないだろ 関係あんのはEnumeratorの方
- 825 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:29:26 ]
- JavaScriptでしばしばこういうコード書いているけど、これをC++(QT)で書くとどういう感じになる?
function getValue(Form,Target){ var value = document.getElementById(Form).value; // 変数Form名のIDのフォームの値をvalueに代入 value = window.prompt("文字を入力",value); // 入力フォームを表示。valueを入力プロンプトに渡す。(上の行と1本かできるの事は気にしないで) document.getElementById(Target).value = value; // 変数TargetのIDのフォームにvalueを代入 } これをQtで書くとどういう感じになるのかな? FormとTargetの値(参照元のフォーム名と代入先のフォーム名)が変化するんだけど。 あと、 document.getElementById(Form+'_name').value みたいな表現ってできない? C言語は、関数型とかあってわかりにくい・・・。
- 826 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:39:48 ]
- スレチ
- 827 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 08:00:37 ]
- あ!?
- 828 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 09:22:02 ]
- どうした?
バグか?
- 829 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:33:00 ]
- richtextboxで指定した行に文字列を追加したいんだけどどうすればいいのでしょう
delphi見たいにrichtextbox.line[i].text=・・・なんてもんはないんですかね
- 830 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:29:30 ]
- あんまRichiTextBox使った事ないけどレスしてみる
改行コードでsplitした配列取得して、指定行の文字列を編集 で、それをStringJoinに改行コード指定してやっちゃうとか
- 831 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:31:04 ]
- その手って内部は行単位のstring管理じゃなかったっけ?
ちと確認してみる
- 832 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:32:10 ]
- richTextBox1.Lines.Length
Lengthってことは配列?
- 833 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:32:20 ]
- Linesプロパティはあるだろ。
- 834 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:44:31 ]
- あれ・・・行指定して書き換えてもかわらねえな・・・
ideone.com/ojQnOhFF
- 835 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:48:50 ]
- 読み取り専用だから。
- 836 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:49:49 ]
- >>835
それは挙動で想像付くが、読み取り専用って書いてる段階か 実行時にエラーになるよな? これはそれすらないぞw
- 837 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:53:35 ]
- ヘルプ嫁よ
- 838 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:54:22 ]
- コピーして返してるからだろ
- 839 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:19:36 ]
- デザイナでLabelとか貼り付けたら
デフォルトのフォントの大きさが9なんだけど、ちょっと小さいから デフォルトのフォントを大きさを変えたいんだけどどうやったらいい? あとタイマーが一番最初にEnableがfalseになってるのとか変えたい
- 840 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:21:34 ]
- 無理
- 841 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:24:02 ]
- Labelとかのフォントサイズは、フォームのやつを引き継ぐから、
フォームのフォントサイズを変更しておけばOK。
- 842 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:56:03 ]
- >>839
諦めろ つうか、タイマなんぞ切り替えるのは普通Pgからやんないか? LoadとかShownでTrueにして ClosingとかでStop→タイマの内部処理終了待ちして
- 843 名前:829 mailto:sage [2010/04/02(金) 12:59:41 ]
- うーんなんていうか、
----- あいう あいうえお あい ----- ていうrichtextboxがあるとする。 これの2行目の文章(あいうえお)を変数に代入するにはどうすればいいのかわからないんです。 delphiならa:=Memo1.Line[1];(たしかこんな感じ)て感じで取得できたのですが・・・
- 844 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:05:20 ]
- あきらめろよ。
- 845 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:08:00 ]
- ベタにテキストボックスとかでも使うやり方
別に異常なほど文字が多いわけじゃない時こんな感じでやってた private void button1_Click(object sender, EventArgs e) { richTextBox1.Text = GetInsertedText(richTextBox1.Text, 1, "\r\n" + DateTime.Now.ToString()); } private string GetInsertedText(string baseText, int index, string inserttext) { string[] temp = baseText.Split("\r\n".ToCharArray()); temp[index] += inserttext; return string.Join("\r\n", temp); }
- 846 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:09:25 ]
- >>843
>>834見て無いのかよ
- 847 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:09:37 ]
- つーか、Linesプロパティって出てんじゃん。
- 848 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:11:32 ]
- 読み取りだけじゃなく行単位で書き換えもありそうなんでできるかどうかを試してたのに
読み取りすら理解してないのかよ・・・
- 849 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:14:37 ]
- 総攻撃ワロスw
- 850 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:17:11 ]
- >>846
すいません見落としてました これです!ありがとうございます
- 851 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:29:39 ]
- しかしこれ内部管理が配列なのが勿体無いな
List<>でもやってくれりゃあ部分編集もしやすかったのに
- 852 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:42:56 ]
- 中の文書フォーマットがどうなってるか知らんけど
部分的に書き換えられると整合性で困るとかそんな話の予感 TextBoxならできるんだしね…
- 853 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 14:44:48 ]
- 管理も何も、Linesのgetterは持ってるTextをCRLF/LF/CRで分割してるだけだぞ
setterなんかCRLF挟んで連結したものをTextに設定しているだけだし それにしても、プロパティの型が配列だったり、プロパティでコピーを返したり、 プロパティの中に必要以上の処理を入れていたりと無茶苦茶だなw
- 854 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:20:07 ]
- コントロールは例外だ
デザイナやバインディングなどの都合
- 855 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:39:53 ]
- var x=0.0としたとき、xの型はfloatですか?doubleですか?
組み込み型には使うなと教えられたんですがこれだけは気になったのでお願いします。
- 856 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:43:58 ]
- やってみればいいじゃん。
- 857 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:44:33 ]
- >>855
ttp://tsushima.2ch.at/s/news2ch56039.png ちなみに気になる型とか返り値の型とか知りたければ 標準の物なら大体こうやって確認できるよ
- 858 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:45:27 ]
- しもうた
カーソル消えてるけど x.ToString(); のxの上でカーソル止めてるから
- 859 名前:855 mailto:sage [2010/04/03(土) 14:48:37 ]
- >>856-858
なるほど、勉強になりました。 どうもありがとうございました。
- 860 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:51:32 ]
- >>859
というかc#で小数点をそのまま書くとdouble, 0.0Fという感じでFをつけるとfloat
- 861 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:53:24 ]
- >>855
860の助言を参考にして、ついでにリテラルとその型の概念も把握しておこう。
- 862 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:55:24 ]
- 便乗で悪いんだけど、質問させてくれ
floatの方がdoubleよりも速度が遅くなると聞いたんだけど理由がさっぱりわからん doubleの方が扱う桁数が大きいんだから遅くなるんじゃないのか?
- 863 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:57:43 ]
- >>862
ならない。最近のCPUじゃ割り算以外の処理はどちらも1クロックで終わってしまい、 速度上の差は見られない事の方が多い。
- 864 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:59:56 ]
- >>862
それはCPUによるよ
- 865 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 16:58:41 ]
- Microsoft Parallel Extensions to .NET Framework 3.5ってもうDLできませんか?
もし直リンなどあれば教えてください
- 866 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 17:04:52 ]
- >>865
それは『Parallel Extensions to .NET Framework June 2008 CTP』のことだろう? Parallel Extensionsが.NET 4.0の機能になったことはMSの公式決定なんだから今更どうにもならんだろう。 ここには「Reactive Extensions を見よ」なんて書いてあるが。 blogs.msdn.com/pfxteam/archive/2008/06/02/8567802.aspx 仮にそんなコンパチライブラリがあったとしても、余計な混乱を招く結果にしかならないだろうよ。
- 867 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:13:26 ]
- ある程度作ってたプロジェクトの中から部分的に切り離してクラスライブラリを作る場合って
スマートにやる方法ないかな?
- 868 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:16:15 ]
- >>867
名前空間の単位で整理して、 名前空間の単位でクラスモジュール化する。
- 869 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:23:17 ]
- そういうのじゃなくて、クラスライブラリ用プロジェクト作った際のソースの移動とかね・・
- 870 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:28:49 ]
- >>869
基本的に自己完結するようにクラスライブラリを書いていれば、 単にプロジェクトを分けて本体側で参照設定するだけで そのまま動くようになってるんだから、 スマートにやる方法もないだろ。 上手くいかないなら設計が悪いだけ。
- 871 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:31:28 ]
- 変数のインスタンスから、その変数の変数名を取得する方法はある?
int a; string b = a.(メソッド); みたいにやると、b に "a" って入るみたいな。 無理だと思うけど、C# だとちょっと期待してしまう。w
- 872 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:41:00 ]
- >>871
変数の名前というのはプログラミングの都合上便宜的に与えるものに過ぎず、 実行時にはなくなってしまうものだ。 一方、デバッガで止めると表示してくれるが、あれはpdbファイルにその情報が記述されている。
- 873 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:42:43 ]
- intとかは無理じゃね?
クラスになるとNameがあるけどあれもつけなくても内部管理的には問題ないから おそらくハンドルみたいなので管理されてるんだと思うしなあ intだとそのハンドルに相当するものくらいしかないんじゃね?
- 874 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:52:45 ]
- いや・・・もっとそのプログラム的な話じゃなくて・・・・
プロジェクト作ってフォルダ作って元のソースを移動して 既存の項目としてプロジェクトに入れて・・・という やり方しかないのかなあって話 あとクラスライブラリとして分離した場合デバック用とリリース用 を別途分けてリンクさせるような設定はないんだろうか? C++だと普通にあったんだがC#の場合それっぽい項目が見当たらない
- 875 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 19:57:02 ]
- >>874
>プロジェクト作ってフォルダ作って それのどこに問題が? むしろ異なるアセンブリのソースコードはフォルダ分けしておかないと不便だぞ。 >あとクラスライブラリ 同じソリューションでクラスライブラリとメインプログラムを管理しておけば、 ビルドモードの切替で勝手にクラスライブラリの切り替えもやってくれる。
- 876 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:00:45 ]
- >>874
それ以上のどんなバカチョン機能があれば満足するんだろう。 まあ、ファイルの移動はプロジェクトエクスプローラで ドラッグ&ドロップしてもできるよ。 あと、ソリューション内のプロジェクトの構成(Release/Debug)の連動は 構成マネージャで設定する。
- 877 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:04:24 ]
- >>875
ああ、すまんEEで開発してたのでソリューションの下で複数プロジェクト作れるとは思ってなかった
- 878 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:06:10 ]
- >>876
>>877でも書いたけど俺が想像してたのは ソリューションA プロジェクトA とあって プロジェクトAの一部を ソリューションB クラスライブラリB として切り出すしかないと思ってたんだ すまんすまん
- 879 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:11:25 ]
- 複数プロジェクト入れられないソリューションがこの先生きのこるには
- 880 名前:871 mailto:sage [2010/04/03(土) 20:40:35 ]
- thx
やっぱり無理なんだね。
- 881 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 22:00:04 ]
- >>863
処理が一律1クロックなのは一部の大型機の話 パソコン用のCPUはそこまで単純じゃないし速くもない キャッシュがヒットしたという前提で intの足し算、引き算は0.33クロック、掛け算は0.5クロック、割り算は23クロックかかる IEEE754形式の浮動小数点だと単精度でも倍精度でも時間は変わらなくて 加減算で1クロック、掛け算が2クロック、割り算が32クロック
- 882 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 23:55:24 ]
- >>880
blogs.msdn.com/jmstall/pages/sample-pdb2xml.aspx pdb2xmlのソースコードから学べるものがあると思うけど。 デバッガ作るわけでもなければそんな必要ない気がする。
- 883 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 23:55:44 ]
- 【FPU】 浮動小数点 【SSE】
pc12.2ch.net/test/read.cgi/tech/1199424344/ float 使うヤツはドシロートかおぢさん pc12.2ch.net/test/read.cgi/tech/1222048909/
- 884 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 06:01:22 ]
- >>881
結局のところ大容量キャッシュと高クロック化でごまかしてるだけで x86の本質はそれほど変わってないのか
- 885 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 06:56:58 ]
- floatはベクトル演算器を使う場合にはそっちの方が早い。
- 886 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:11:33 ]
- ちと質問させてください。
VS2003.NETのC#を使用してプログラムしています。 参照の追加でdllを読み込み、プロパティでローカルコピーをTrueにして、コンパイル。 この時に、EXEと同じフォルダにdllがコピーされるのですが、 コピーされる場所を変更できるのでしょうか? EXEと同じフォルダ内に、DLLというフォルダを作成し、 コンパイル時にDLLフォルダにdllがコピーされてほしいのです。 よろしくお願いします。
- 887 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:16:49 ]
- ビルドイベントで移動するとか
- 888 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:21:08 ]
- >>886
アプリケーション設定ファイルでアセンブリの読み込みフォルダを指定することができる。 ただし実行プログラムのサブフォルダのみ。 これはユーザーに配布するときの話で、 開発中はそういったことをやると却って話が面倒になるので exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。
- 889 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:25:36 ]
- >考え内容がいいと思うよ。
考えないほうがいいと思うよ。 失礼。
- 890 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:30:53 ]
- >>884
クロックを上げるのは、主にコスト面の問題で限界に来てしまったので 今はパイプラインの段数とコア数の増加とバス幅の拡張でごまかす方向になってきてる。 だから1命令が1/2クロックとか1/3クロックなんていう中途半端な時間で処理できてしまう。 あとは実行環境の64bit化でlong/ulongの計算が一気に速くなったぐらい。
- 891 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:33:14 ]
- パイプライン段数はここ数年逆に減少したとか言ってたような
- 892 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:33:46 ]
- いい加減スレ違い。
- 893 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:36:56 ]
- クラスライブラリで公開するクラスってpublicじゃないとだめなんだっけ?
- 894 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:39:17 ]
- ,,,_ _ァュ,,..__
ィチュ::ミミ:.:三彡:.:: :.:.:ヽ /::彡'':.: :.::/:.:{{.::r‐‐ ::_:.: :.:..、 ,ィ /:.: /:..: ::{{:..川||::! ヾ::;;:、 ,ィ:.: ::.: /:. :: 川:.:ヾ:.:.!{:: ヽ::! ///:.: :.:.:||ll: :.: .::.:.:ヾ::.::.i ':! !:|:.:::ミ:: :.;;;川:.: :.:巛、ヾ::! 、 l ゙::ミミ h::. :;:.::||l|:.:: :.}}::!l {{ ヾ _,,...ィ r'' 、 ゙::ミミ:.: ::.;:.:ミミヾ:.: :.:| ヾ、 '´ , マ ヾ:: .:.:ミミ三 :.:州リリ _,,..rテ' ヽ ヾ::;ィ'´ ̄`''ヾ州! ,. ヽ ゙レ '⌒r ィ ,;;. .. .:' ,rィ ’ ヽ し :.: .. 、 ヽ ,,ハ`ー- ..ィ _,.. ィ ィ:::! \ ヽ. ィ{:::... /:::::! \ ` - ..__ 丿::::::ヽ /:::::::ヘ \ ` ーァ-一'::::.:::.:::.::.!ヽ /:::::.:..:::::::::ヽ \ リ::. :::.:.:.:.:::.:.:.:.::::!:::.::! 轌山相太郎 [そりやまそうだろう] (群馬.明治一九年〜昭和一七年)
- 895 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:50:18 ]
- >>894
さんきゅー
- 896 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:37:36 ]
- ifで済むようなところでも例外を使ったほうがいいんでしょうか?
- 897 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:38:44 ]
- ifで済むならifで済まして下さい
- 898 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:39:47 ]
- 状況にもよるんじゃね?
継続可能なところのエラー程度ならifで判断してもいいだろうけど 継続しても仕方ないようなところは例外でいくとか
- 899 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:58:19 ]
- >>896
コールスタックの呼び出し階層から一気に抜け出したい場合は面倒だから エラーを返さず例外処理で実装してしまう場合もあるよ。 他に、既に例外処理を書いていて、普通にエラーを返すより エラー自体を例外処理にしてしまった方が楽に実装できる場合か。 そういったことでないなら、通常のエラーを返す実装にしておいた方がいい。
- 900 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:03:03 ]
- 例外やエラーに関してもパターンが必要だと思う今日この頃。
俺はpublicメソッドでもなけりゃ自分で投げることは少ないなあ。 引数なんかは渡す前に確認するし。
- 901 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:05:51 ]
- ただprivateメソッドの中でエラーチェックしてないってことはないよ。
Assert入れてるから。
- 902 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:19:34 ]
- そうですかよかったね
- 903 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 11:58:36 ]
- しかしこの例外ネタは1スレに2回ぐらいは出るな
- 904 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:01:05 ]
- 明確な回答を返しづらいからじゃねーの
ほとんどマイルールだもの
- 905 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:03:31 ]
- 確かにお決まりパターンてないよな
ソフトの作りで例外でさくっと処理しちゃう場合もあるし エラーコードとる場合もあるし みなさんどうしてますかっていうよりこういうコードなんですがって 晒せる範囲でコードを見せてくれるといいんだけどな 質問の仕方の問題もあるな
- 906 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:33:12 ]
- ライブラリとして自分以外に提供するのか
自分で使い切るのかでも変わってくるし
- 907 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:57:19 ]
- こういう時に自称プロが出てきて語ってくれればいいのに。
要らん事にばっか口出すからなー。
- 908 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:04:44 ]
- 仕事で3日だけC#のアプリを初めて作った自称プロの俺に言わせれば、
そのときの気分、テキトー
- 909 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:06:10 ]
- そういえば2chのほかに専門系の質問できるような場所ってあります?
なんか人減ってるしすぐ規制するしでw
- 910 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:09:17 ]
- ttp://stackoverflow.com/
- 911 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:09:42 ]
- 今回のもかなり大規模っぽいねぇ
相談室の方も3日くらい放置状態だわ
- 912 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:10:33 ]
- ブラクラかと思うような名前だ>stackoverflow.com
- 913 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:33:21 ]
- >>909
日本語でもいくらかある 自分でぐぐってると、そんな質問はありえないと思うんだけど
- 914 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:33:25 ]
- まっとうなサイトだし有用な情報もごろごろしてるけど、
如何せん名前のイメージが良くない…というか悪いんだよな
- 915 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:03:50 ]
- >>910
ありがとう >>913 いやあるにはあるんだが、なんていうかオンラインゲームの古参がいっぱい居るギルドに 入るようなちょっとやりにくさがあるんだよな・・・ その点2chは気軽っていうか
- 916 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:04:51 ]
- NumericUpDown を継承したユーザコントロールを作成しています。
Enterイベント・OnEnter・OnGotFocus 内でそれぞれ、 Select(0,Text.Length)・(Controls[1] as TextBox).SelectAll()・OnDoubleClick を 全ての組み合わせで試してみましたが、 フォーカスを得た時にテキストを全選択させることができません。 その他にしていることはTextAlignをRightにすることと、 配置先(元?)で、小数点5桁・変更幅0.001と設定しているのみです。 前述の機能を実装する方法を教えてください。
- 917 名前:デフォルトの名無しさん [2010/04/05(月) 15:05:37 ]
- 列挙型(大正、昭和、平成、)を後で追加出来るように
テキストファイルの"大正、昭和、平成、"を読み込んで宣言するにはどうすればいいですか?
- 918 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:07:36 ]
- おっと質問忘れるところだった
fileIo関連でwindowsの改行 0x0d0x0aを0x0aにするにはどこいじってましたっけ?
- 919 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:21:29 ]
- >>918
TextWriter.NewLine
- 920 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:24:02 ]
- >>919
TextWriter.NewLine = "\n"; こんな感じでしたよね? ありがとうございます。
- 921 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:59:43 ]
- >>887-889
早速の回答ありがとうございました。 結構な手順を踏む必要があり、大変そうですね。 > exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。 なるほど、分かりました。 一通りの開発が完了し、配布する際に読み込み先を指定する事にします。 ありがとうございました。
- 922 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:09:42 ]
- DataGridView で、教えてください。
スクロールバーの表示設定を行う ScrollBars だったかがあったと思うのですが、 これで垂直スクロールバーを消すとマウスのスクロールボタン?による スクロールを行えなくなります。 垂直スクロールバーを消していてもスクロールボタンによるスクロールを行えるようにすることは出来ませんか?
- 923 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:11:45 ]
- ホイール?
- 924 名前:922 mailto:sage [2010/04/05(月) 21:20:12 ]
- あ、そう。それです。
- 925 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:43:34 ]
- 便乗質問。
DataGridViewでセルをコピーペーストでデータを移せるようにするにはどうしたらいいの? できれば縦方向に複数のセルを同時に選択した状態で コピペできるようになるといいんだけど。
- 926 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:57:42 ]
- クリップボードへはDataGridView.ClipboardCopyModeをtるえにすればいい
クリップボードからはシコシコ実装するしかありません
- 927 名前:デフォルトの名無しさん [2010/04/06(火) 11:10:24 ]
- 質問があります。
WPFで、使わないテキストボックスを、テキストがからのときには表示しないようにしようと考えました。 if (textBox.Text == null || textBox.Text == "") textBox.Hide(); としたら、textBoxにはHideはないらしいんですけど、 こういう場合どうしたらよいでしょう?
- 928 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 11:13:15 ]
- Visibility
- 929 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 11:16:19 ]
- WPFは専門じゃないけどさくっと見た限りでは>>928(先を越された
textBox1.Visibility = Visibility.Hidden; textBox1.Visibility = Visibility.Collapsed; 上二つの違いは要素を表示しない上にレイアウト予約がどうのってあったな マウスカーソルのせるとざっくりとした説明でたよ textBox1.Visibility = Visibility.Visible;
- 930 名前:デフォルトの名無しさん [2010/04/06(火) 12:34:44 ]
- >>928-929
さすがふらっとC#。 できました。マウスで出ますね。 ありがとうございました。
|

|