1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part44 pc11.2ch.net/test/read.cgi/tech/1194956418/ その他テンプレ>>2-5 くらい
654 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:24:48 ] javaの文法知らなくても流れくらい分かるだろ
655 名前:デフォルトの名無しさん [2008/03/15(土) 22:51:50 ] C#2005のメニューから プロジェクト->Windowsフォームの追加で 「MID親」 を選んで、MainでRunしています。 起動時に子フォームを勝手に起動しますがいったい どこでやっているのでしょうか? InitializeComponet()で勝手にShowNewFormを やっているのだとは思いますがどのあたりなのか さっぱり分かりません。 新しく追加で子フォームを作成したら自動でずらす処理も 邪魔なのでどこでやっているのか知りたいです。 ご存じの方、どうか教えてください。 新しく普通にフォームから作ったほうが早いというのは無しで。
656 名前:デフォルトの名無しさん [2008/03/15(土) 22:55:48 ] すいません、起動時に勝手に子フォームが起動するのは、 こちらのミスでした。 勝手にずらす処理をやめさせる方法だけ教えてもらえない でしょうか?
657 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:57:04 ] >>650 わからなければjava上がりとはいえない
658 名前:デフォルトの名無しさん [2008/03/15(土) 23:50:35 ] このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている 糞だけど、政治的な理由で無理やり使わされているんですよね もういい加減、我慢するのはやめませんか? ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
659 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 23:53:18 ] コピペ君って馬鹿だな、まで読んだ。
660 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 23:54:53 ] >>659 死ね
661 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:12:24 ] オーバーフローチェックコンテキスト(checked/unchecked)の状態で 処理を分岐させる方法を知ってる人いたら教えて 検証するタイミングはコンパイル時、実行時のどちらでもおk
662 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:49:01 ] 例外を捕捉すればいいんじゃないの
663 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:59:05 ] それだと、例外が発生しない場合、checkedでオーバーフローがおきてないのか、 単にuncheckedなのか判断できなくね
664 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:03:54 ] bool IsChecked { get { try { Convert.ToByte(0xffff); return false; } catch { return true; } } } 馬鹿プロパティw
665 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:06:32 ] わざとオーバーフローさせるぐらいしか思いつかんな。
666 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:44:45 ] 自分でchecked{}で括ってしまえばいい
667 名前:661 mailto:sage [2008/03/16(日) 17:17:46 ] >>662-665 thx! やはりオーバーフローさせてみるしかないのか >>666 ILの生成をコンパイラ任せにするならそれでいいが 動的に生成しようとするとOPコード自体が違うので
668 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:19:42 ] なんか適切じゃない場所で質問しちゃった気がするのでこっちでも PerlとかRubyでゆーWWW::MechanizeみたいなスクレイパってC#に存在する? それとDB使ったツールを作って配布したいんだけど、PerlとかRubyだと一般ユーザに使ってもらえないので… Rubyで一旦全部書いたんだけどexerbとかrubyscript2exeとか使ってもうまく纏められないのでC#(or その他普通にネイティブコンパイルする言語)で書き直したいんだけど…
669 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:20:41 ] 泥臭いのに変わりはないが、適当な関数のIL覗けばいいんじゃね?
670 名前:661 mailto:sage [2008/03/16(日) 18:22:19 ] IL見てみたが、コンパイラがコンパイル時に数値式のOPコードを切り替えてるだけで checked/uncheckedブロック、演算子内に直接書いた式にのみ適用されるみたい だから、>>664 みたいなプロパティを作るとコンパイルされた時点で出力が確定してしまう 結論としては、checked/uncheckedはコンパイラに指示するためだけのもので プログラムで利用しようなどと考えてはいけないということか
671 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:36:31 ] そもそもchecked/uncheckedはコンパイル時に静的に決まるものだろ
672 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:41:50 ] #if CHECKED なんとか #else ができればいいんだろ
673 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:22:05 ] コード中で分岐することに意味があるのはコンパイラのオプションで指定した場合のみってことか checkedのときはプリプロセッサシンボル定義するだけでよくね?
674 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:30:23 ] プリプロセッサとchecked/uncheckedの処理段階が違うのは気持ちが悪いけどな
675 名前:デフォルトの名無しさん [2008/03/16(日) 19:38:38 ] 印刷を監視して、何かのプログラムで印刷実行されたらジョブをプリンタに投げる前に 自分で作った処理を行って、それが終了してから 印刷ジョブを投げるプログラム作成したいんですけど 印刷監視とジョブ投げるのにwaitかけるのってどうすればいいんですか?
676 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:50:03 ] 仮想プリンタを作って間に挟むのが まっとうじゃないかな。
677 名前:デフォルトの名無しさん [2008/03/16(日) 21:07:31 ] iPhoneのタイマーみたいな慣性で回るドラムを2個まわして 数値を出力させるにはどう考えたらいい? WM6pro用で教えてください。
678 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:14:32 ] そういう風に作る WM6proがどう関係あるんだろう
679 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:05 ] WebBrowserコントロールの設定は、現在のIEと同じ設定になるっぽいけど、 独立して管理することは可能っすか?
680 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:42:17 ] 俺なら可能
681 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:53:49 ] オマイラってそんなにIL覗いて挙動確認したりしてんの? 俺全然やってないんだが
682 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:00:00 ] ILの日本語の資料ってネットで見れるの?
683 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:03:01 ] 別に日本語である必要性はないと思うのだが
684 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:04:53 ] 必要性はなくても、日本語の方が望ましい
685 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:08:58 ] 共通言語基盤の規格はJISにもなってるからネットで読めるんじゃね? 調べたことないけど
686 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:48:03 ] IL見るのになぜ日本語が必要になるのやら
687 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:51:31 ] 日本語を主として使っている民族とっては、ILの説明が日本語でされていた方が他の言語でされているよりも理解しやすいから。
688 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:07:51 ] ILは流れを読むのだから英語でいいでしょう
689 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:10:03 ] 個々のILのニーモニックの説明は英語より日本語の方が日本人には理解しやすいだろう。
690 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:11:58 ] ニーモニック(記憶しやすい)を記憶しやすいのは その命名元となった英語という気もする。
691 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:13:57 ] 記憶する以前に理解するには、日本人にとっては英語よりも日本語の方が理解しやすい。
692 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:21:11 ] 何この流れ・・・
693 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 07:03:19 ] ニーモニックの説明で日本語お望みなら System.Reflection.Emit.OpCodes あたりでもどうぞ。JIS の CLI は有料でしょ確か
694 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 09:16:46 ] JIS規格はjiscのサイトでみれる
695 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 09:55:46 ] そいや、ILはVSで対応してないのはいいにしてもMSBuildのタスクも ないのはどうよと思ったなあ前
696 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:34:40 ] >>683 英語読めないから、日本語のが必要なんです。
697 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:26:25 ] ふらっとでレスが付かなかったので、教えてください。 SQLServerからsmallint型のレコードを取得してC#でint型の変数に入れたいのですが キャストで失敗します。smallint型はshortと同じじゃないのでしょうか?
698 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:32:14 ] >>697 失敗って?
699 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:33:41 ] 実際shortなんだったら一旦shortにキャストしてからintにキャスト
700 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:42:39 ] 会社にしか環境が無いので、エラーの詳細記録してなかったのですが、 型変換できませんでした。的なエラーでした。 もちろん(short)してから(int)でいけますが、アップキャストでなぜ失敗するのか・・・が知りたいと思いました
701 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:46:30 ] 正確な方は SqlInt16、 short へのキャスト演算子の定義はあるけど、int へのキャストは定義されてない とかではなかろうか。
702 名前:697 mailto:sage [2008/03/18(火) 00:02:58 ] >>701 MSDN参照してもよく分からないのですが、おそらくそのように思えますので、 そういうものだと、納得しておきますf^^
703 名前:デフォルトの名無しさん [2008/03/18(火) 00:03:27 ] PrintDocumentクラスのPrintメソッドで 印刷処理を作っています。 しかし、印刷を実行するとVB6やDelphiで作成した 印刷処理よりも異常に遅いのが気になりました。 描画を一切行わず、白紙を1ページ印刷した場合 VB6では一瞬で印刷を開始しますが、C#では5秒以上待たされます。 100ページ以上の印刷を行いたいので、この速度では ちょっと使い物にならないので困っております。 速度改善の情報ありましたら教えていただけませんでしょうか。。
704 名前:デフォルトの名無しさん [2008/03/18(火) 00:19:22 ] www.rossgals.com/fuckfacials/barbie2-489/3.mpg
705 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:21:39 ] 突然怪しいURLを貼るなwww
706 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:23:13 ] なんじゃこりゃww量すごすぎww
707 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:38:25 ] >>703 軽く調べたけど、解決策は見つからなかった。そもそも再現性が(ry とりあえずプロファイルして何が遅いか見極めてくれ。
708 名前:703 mailto:sage [2008/03/18(火) 00:46:13 ] >>707 ありがとうございます。 プロファイルのやり方がわからないのですが 調べてやってみようと思います。 今、調べられる範囲でわかったことは プリンタの解像度を下げることである程度 体感速度が速くなる、逆に解像度を上げるとさらに遅くなることです。
709 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:10:00 ] ちょっとすみません。mlang.idl を midl しようとしたんですが、途中で midl\oleaut32.dll : error MIDL2020 : error generating type library : SaveAllChanges Failed : .\mlang.tlb (0x80070005) と出て終了します。原因わかるかたいらっしゃいますか?
710 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:19:45 ] しまった UAC だー! 自己解決すみませぬ。
711 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:17:43 ] すみません。続けてもうひとつ。マーシャリングの質問なのですが、 void DetectInputCodepage( uint dwFlag, uint dwPrefWinCodePage, ref sbyte pSrcStr, // ここと ref int pcSrcSize, ref tagDetectEncodingInfo lpEncoding, // ここに ref int pnScores ); どうやって short[] と tagDetectEncodingInfo[] を突っ込んだらいいのか、だれか教えてください。
712 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:47:07 ] >>711 dobon.net/vb/dotnet/string/detectcode.html
713 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:50:00 ] >>712 それそのままコピペしてるんだけどね、 ref sbyts[0] ここで引っかかる。
714 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:55:05 ] ん? 通った。なぜだ。
715 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:14:07 ] 配列そのまま仮引数に定義するのお勧め
716 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:08:03 ] ListやStackの中身をusingでdisposeさせるにはどうすればいいの?
717 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:14:20 ] 継承してIDisposeableを実装すればいいんじゃねえの
718 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:14:45 ] ListとIDisposableを継承して、Disposeで要素を全部Disposeするクラスを作る。
719 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:23:08 ] using使いたいだけならIEnumerable<T> (where T : IDisposable) をラップするクラスを作って using (DisposableCollection<Bitmap> a = new DisposableCollection<Bitmap>(list))とか
720 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:53:15 ] static void Using<T>(T collection, Action<T> action) where T : IEnumerable { try { action(collection); } finally { foreach (var item in collection) { IDisposable disposable = item as IDisposable; if (disposable != null) { disposable.Dispose(); } } } } usingの代わりにこんなの使えばいいんじゃね
721 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:01:24 ] どうもやってみます。
722 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:03:46 ] .net 3.5(たぶん下位でも発生?) コンソールアプリで sysem.drawing.bitmap をストリームにシリアライズするときに GDI+の一般エラー(General error?)が発生する 同様の現象にブチあたった経験者はおらぬか?
723 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:20:30 ] Bitmapはネイティブなオブジェクトがあるからシリアライズ不可能じゃないかな
724 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:31:09 ] いや,これまでは出来たんだ きっとこれからも出来ると信じたい そしてなんとなく原因発見 BinaryFormatter bf = new BinaryFormatter(); FileStream fs = new FileStream(@"C:\WINDOWS\迴育栖繧ォ繝繝.bmp", FileMode.Open); MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream(); Image img = Image.FromStream(fs); bf.Serialize(ms1, img); // 成功(例外なし) fs.Close(); bf.Serialize(ms2, img); // 失敗(ExternalError: GDI+ で汎用エラーが発生しました。) どうもImageの元のリソースが,シリアライズするときに利用できなくなっていると失敗するみたい? なんか非常にモヤっとするなぁ 引き続き情報求む
725 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:53:52 ] よくみる where T ってのはLINQってやつかい?
726 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:55:52 ] ただのジェネリック引数の制約だよ。
727 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:10:38 ] where T つかうと他クラスの継承できなくなる?方法ない?
728 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:13:52 ] なにゆってんの?
729 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:14:30 ] よく意味が分からんけど where T はTに対して特定の型に依存した操作を可能にするために使うんだよ
730 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:20:58 ] where Tを使ったクラスを継承したいなら その制約を継承先のクラスにも付ける class Base<T> where T : string{} class Derived<T> : Base<T> where T : string{}
731 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:42:02 ] まったくどうでもいいがstringで制約したらもはやジェネリックの意味なくね?
732 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:45:08 ] >>724 Bitmapはそのままだとアンマネージドリソースを含むのでシリアライズできない だがStreamから作ったBitmapならそれを使ってシリアライズすることで目的を達成できる しかしそのStreamが閉じてればもうシリアライズできない
733 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:27:28 ] >>724 var stream = new FileStream("foo.jpg", FileMode.Open); var image = Image.FromStream(stream); image.Save("bar1.png"); stream.Close(); image.Save("bar2.png"); // die
734 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:55:28 ] >>732 すごく,わかりました. >>733 試したためした,そしてその通り ひとまずbyte[]にシリアル化したものを記憶しておくことにした
735 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:09:24 ] クラスのメンバ関数のようなスコープがはっきりしないものをusingで解放するにはどうすればいいの?
736 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:21:54 ] メンバ関数じゃなくてインスタンス変数だと仮定して 自分のクラスにIDisposableを実装する usingはそのクラスを外から使う人が使うもの
737 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:29:23 ] DictionaryBaseのGeneric版って何?
738 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:42:14 ] 例外は受け取ったらいけないの?
739 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:05:44 ] 処理できる例外は捕まえて処理する そうでなければスルー
740 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:11:34 ] 受け取ってメッセージボックス出して終わるくらいなら 標準の例外ダイアログがましだけどねw
741 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:25:01 ] 製品にするならそうもいってられないけどな
742 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:08:44 ] >>737 無い KeyedDictionary<TKey, TValue>が使えそうなら使う 使えないなら自分で作る
743 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:35 ] KeyedCollection<TKey, TItem>の間違い
744 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:25:07 ] ListViewの詳細表示で、棒グラフを表示したくて 直接セルに描画していたんですけど、汎用性を持たせたくて Panelに描画してそのPanelを表示したいと思ったんですが ListViewにPanelを挿入する方法が分かりません SubItems.Addで追加できるのは文字列だけですし どのようにすればPanelなどのコントロールをListViewに 挿入することができるでしょうか?
745 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:33:28 ] どのようにしてもできまへん。 っていうか、Panelに描画する(そしてそれをListViewに突っ込む)のが 汎用的って発想がよくわからない。 汎用的にしたいのならListViewの項目を描画する機能をクラス化するか、 またはListView自体を継承して拡張するとか、そっちの方向じゃないの?
746 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:37:34 ] CodeProjectにそういうのある。 一からListView作ってた。
747 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:44:33 ] C#のListViewの使えなさはガチ Swingにも劣るヘボさだからなぁ 項目ごとの文字色を変える程度のことさえ面倒 いったいどういう用途を想定してこんなクソ仕様にしたのか
748 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:15:08 ] コモンコントロールそのものだもの
749 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:35:18 ] WPFのListViewは何でもありのアホみたいに柔軟なコントロールになってるよ
750 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:58:42 ] >>745 やっぱり駄目ですか でもよく見かけるプログレスバーが表示されたListViewは どうやって実装してるんでしょう 何か出来る方法がありそうな気もしますが >>746 一から作るのはちょっと厳しいですね・・・
751 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:41:09 ] >>742 ありがとう。 自作するよ。
752 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:26:31 ] >>747 >項目ごとの文字色を変える程度のことさえ面倒 簡単だと思うけど… どうやってやってるの?
753 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 06:57:31 ] >>750 ListViewだとしたらOwnerDrawなんじゃない。 超汎用的なリストコントロール作った。 めんどくさかった(´・ω・`) でもこれで10万行ぐらいあっても、どんな描画だとしても表示できるようになったお。
754 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:23:43 ] 俺も752と同意見だったけど、MFC知らないからMFCだともっと楽なのかなあと思って何も言わなかった ListViewItem.UseItemStyleForSubItems ListViewItem.ForeColor ListViewItem.SubItems[index].ForeColor UseItemStyleForSubItems をtrueにすると、 全てのSubItems.ForeColorを設定する必要があったような気がするから それが面倒といえば面倒だったけど。