1 名前:デフォルトの名無しさん [2010/05/16(日) 23:13:52 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part58 pc12.2ch.net/test/read.cgi/tech/1269261310/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>1-5 くらい
641 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 13:53:30 ] ちょっとした疑問 class A { object lockobj = new object; string _a; public a { get { lock(lockobj){ return _a; } } set { lock(lockobj){ _a = value; } } } これって、ちゃんとロック掛かるんだろうか?
642 名前:デフォルトの名無しさん [2010/06/18(金) 13:54:34 ] て
643 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 13:56:56 ] >>641 はい
644 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 15:16:12 ] >>641 いいえ、コンパイルすらできません
645 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 15:25:20 ] >>635 ってどうなの? なんで頭いい人たちみんなスルーなの
646 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 15:31:28 ] OoOについてggrks
647 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 16:28:23 ] >>644 型がないからってか? 質問の意図はそうじゃないだろ・・・
648 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 17:16:46 ] >>641 質問のポイントはLockのスコープからのreturnだろ? ロックはreturnステートメントの実行直後にはずれるから普通に使える。
649 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 18:46:23 ] >>635 >>553 の件少し判った気がする。 環境依存があるようだからここにいる人たちも確認してもらえると助かる。 Releaseモードでも確認できるように修正。コンソールに出力させるようにする。 >Debug.Assert(s_xa == 1 || s_ya == 1); if (!(s_xa == 1 || s_ya == 1)) Console.WriteLine("* {0}, {1}", s_xa, s_ya); こちらの環境で確認できたこと。 マルチCPU、マルチコア、ハイパースレッディングでも起きる。 シングルCPU環境では起きない。 Relaseビルド、Debugビルドはどちらでも良い。 Debug実行時に起きる。Debugなしで実行では起きない。 結論 予想が当たってればOoOとか高尚な問題でなく、IDEのデバッガのバグの可能性がある。
650 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 19:06:46 ] >>646 すっこんでろ
651 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:41:20 ] >>649 俺の環境では、デバッグなし実行でも起こってる。
652 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:43:41 ] >>641 ちゃんとロックかかるってのはどういう意味で言ってる? ロック自体はもちろん期待通り普通にかかるが、 objA.A = objA.A + "hoge"; なんてのをアトミックに実行することは当然ながらできない。
653 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:44:30 ] 改行入った… objA.A = objA.A + "hoge"; な。
654 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:15:29 ] >>618 なんか違わないか? その例だと、スレッドBでdata1,data2が「正しく」読める保証は何もないのでは? でなきゃ、そもそもvolatileって何だって話になる。
655 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:26:12 ] >>654 >でなきゃ、そもそもvolatileって何だって話になる。 どういう意味?? 何言ってるのかわからない。 そりゃまあ>>618 には実際にはいろいろ前提があるのは確かだが、 文脈で言いたい事柄の意図は通じると思うが。
656 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:29:24 ] >>654 の指摘が何を言おうとしてるのかわからないので、そうだな、 >その例だと、スレッドBでdata1,data2が「正しく」読める保証は何もないのでは? なぜ保証がないのかを具体的に書けばそちらの意図はわかるかもしれん。
657 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:33:09 ] 無意味な実装検証してもしょうがないような
658 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:35:39 ] >>656 そもそもその保証がない(コンパイラの最適化によって変数そのものには アクセスしない可能性がある)から、そういう可能性を排除するためのvolatileの はずなんだけど.... どうもこのスレ、分かってるのか分かってないのかよく分からん人が多いよな
659 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:38:32 ] volatileの使い方?を勘違いしてる
660 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:42:04 ] ひょっとして>>590 の後半に書いてるような、よくある誤解をしてるクチかな?
661 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:43:49 ] よくある誤解、ねえ....
662 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:44:48 ] >>658 それがよくある誤解。そんなことは起こらない。 何度も何度も何度も出してるけど ttp://www.microsoft.com/japan/msdn/msdnmag/issues/05/10/MemoryModels/default.aspx でも読んでみ。 ※今はC#のvolatileの話だぜ
663 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:49:59 ] volatileの意味を誤読してるとか
664 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:51:18 ] >>658 メモリモデルの意味を全く理解してないな。 だったら、例えばもしlockで排他制御してた場合に、 他スレッドで更新した変数をlock内できちんと読めるのはなぜか考えてみな。 最適化で削除されるならそれすら保証されなくなる。 lock内では削除したらダメってコンパイラにはわかってるだろとか考えなしなこと言うなよ。 lock内から呼び出される普通のメソッドだってあるんだからな。 コンパイル時にそこがlock内かどうかなんて判断は無意味なこと。
665 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:53:01 ] >>662 だからvolatileの話じゃないし。 その参照先のどこにも「C#ではキャッシュを読む最適化は行われない」 とは書いてないように思うが。
666 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:58:40 ] メモリモデルのルールをよく読め。 ------ 読み取りが、同一スレッドから同一ロケーションに対する別の読み取りに隣接している場合、その読み取りは削除のみ可能。 書き込みが、同一スレッドから同一ロケーションに対する別の書き込みに隣接している場合、その書き込みは削除のみ可能。 規則 5 により、複数の読み取りまたは書き込みを隣接させてから、本規則を適用することが可能です。 ------
667 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:01:01 ] >その参照先のどこにも「C#ではキャッシュを読む最適化は行われない」 >とは書いてないように思うが。 あのな、volatile読み取りより後の読み取りは必ずvolatile読み取りより後で実行されるってのは、 CPUのキャッシュ制御を含んだ話だよ。 >>618 ではvolatile読み取りの後に変数にアクセスしてるだろうが。 だから必ずキャッシュではなく(別スレッドで更新された)最新の値が読み取られる。 っていうかそのためのvolatileだって話。
668 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:02:41 ] どれとも >その参照先のどこにも「C#ではキャッシュを読む最適化は行われない」 >とは書いてないように思うが。 これはCPUキャッシュじゃなくて、レジスタにキャッシュするとか、そういう意味で書いてるのか? それなら、それこそ>>666 の話だ。 隣接する同一ロケーションからの読み取り以外で、読み取りが最適化によって削除されることはない。
669 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:10:40 ] >>666 「ケースAの場合、readのみが削除可能」という文章は、 「readが削除されるのはケースAの場合のみである」という意味ではない。 大丈夫? >>667 どう読んでも君が思ってるような意味には解釈できないと思うが... 「処理Aと処理Bはシーケンシャルに実行されます」の意味は、 処理Aに続いて行われる処理Bに対して最適化が行われない、などということを意味しない。
670 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 23:40:03 ] ふえ?
671 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:00:00 ] >「ケースAの場合、readのみが削除可能」という文章は、 >「readが削除されるのはケースAの場合のみである」という意味ではない。 >大丈夫? あほくさいこと言う前にそのページ全体をよく読んでみろよ。 メモリモデルをどのように定義してるか書いてあるから。 「メモリ モデルは、順次一貫性モデル (最も制限的かつ厳密なモデル) をベースとし、」ってとこらへんな。 だいたいそんなこと言ったら書いてないことだらけなんだから、そういう読み方じゃおかしいことくらいわかろうに。 >「処理Aと処理Bはシーケンシャルに実行されます」の意味は、 >処理Aに続いて行われる処理Bに対して最適化が行われない、などということを意味しない。 どこの記述のことを言ってるのかわからんがな、処理Bの最適かって具体的に何のことを言ってる? 読み取りの最適化なら、前に読んだ値をキャッシュしておくくらいしかないだろ。 メモリモデルでは、そういうのを読み取りを前に移動するという風に定義してるんだよ、上のページにちゃんと書いてある。 そして読み取りはvolatile読み取りより前に移動できない、 つまり、volatile読み取りより前に読み取りをキャッシュしておくという最適化は許されない。 全部書いてある。
672 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:04:49 ] もういちいち説明するのめんどくさい、勝手に自分流解釈しとけ。 メモリモデルのこととかある程度わかってる人間ならすぐに理解できる話だ。 volatile絡みのルールの話も、マルチスレッドでのメモリモデルの一般的な話を理解してるなら はっきり言って常識レベルの話(ごくごく一般的なルール、javaのメモリモデルも同じようなルール)。 一回マルチスレッドのメモリモデルや順序について詳しく調べてみ。
673 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:17:33 ] >>658 お前が分かってないことははっきりしてる。
674 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:27:55 ] >>658 >そもそもその保証がない(コンパイラの最適化によって変数そのものには >アクセスしない可能性がある)から、そういう可能性を排除するためのvolatileの >はずなんだけど.... ttp://msdn.microsoft.com/ja-jp/library/aa691105.aspx Cとかの感覚で言ってるのかもしれないが、今どきのマルチスレッドを前提とした havaやC#のような言語では、そう簡単にアクセスそのものが消されることはないよ。 マルチスレッドで正常な動作を保証するために(保証するようなコーディングができるようにするために)、 メモリモデルというものを定義して、そのルール内で最適化を行うようになってる。 だからlockやvolatileなどをルールに従って使用して、正常に動作することが保証できるコーディングを行える。
675 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:36:38 ] Wordドキュメントになってるc#言語仕様の、10.5.3 Volatile フィールドの説明でも、 >>618 のような動作を正常に行えるようにvolatileを使う例が書いてあるな。 まあ日本語がおかしくて意味不明な感じに読めてしまうけどな。 言ってることはまさに>>618 と同じ。
676 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:38:40 ] using System; using System.Threading; class Test { public static int result; public static volatile bool finished; static void Thread2() { result = 143; finished = true; } static void Main() { finished = false; // Run Thread2() in a new thread new Thread(new ThreadStart(Thread2)).Start(); // Wait for Thread2 to signal that it has a result by setting // finished to true. for (;;) { if (finished) { Console.WriteLine("result = {0}", result); return; } } } } この例では、次のように出力されます。 result = 143 この例では、Main メソッドが Thread2 メソッドを実行する新しいスレッドを開始します。このメソッドは、値を result という非 volatile フィールドに格納し、 次に volatile フィールド finished に true を格納します。メイン スレッドは、フィールド finished が true に設定された時点で、フィールド result を読み込みます。 finished は volatile として宣言されているため、メイン スレッドはフィールド result から値 143 を読み込む必要があります。 フィールド finished が volatile として宣言されていない場合は、finished への格納後に result への格納がメイン スレッドから参照可能になります。 その結果、メイン スレッドがフィールド result から読み込む値は 0 になります。finished を volatile フィールドとして宣言すると、このような矛盾を回避できます。
677 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:46:04 ] あっそ
678 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 13:25:41 ] >>658 かたくなにそう信じてるやつがいるんだな… 元々意味のない参照ならそうなる場合はあるが、 普通ほとんどの場合は違うのに。
679 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 13:38:21 ] >>669 キリッ ついていけないならくだらんケチつけなきゃいいのに
680 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 16:08:49 ] また同じヤツが暴れてるのかw お前はもうマルチスレッドとか無理だからあきらめろw
681 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:18:54 ] クラスアセンブリ(dll)を許可するプロジェクトだけに読み込ませるにはどうすればいいのん?
682 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:31:32 ] >>681 コールしているアセンブリの署名を調べる。
683 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:41:02 ] >>682 kwsk! ちなみにクラスアセンブリは自前のソース月の物でありまする><
684 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:09:18 ] 署名は改ざん検知出来るだけ DLLのアクセス制限云々の機能ではない
685 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:29:04 ] やっぱりそうなんですね がっくし・・・・ ProjectA ---{OK}--- A.dll 第三者のProject ---{NG}--- A.dll みたいな事をやりたい時はみんなどうしてるのん?
686 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:32:12 ] そんなことをやりたいと思ったことがない。
687 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:35:14 ] えー社内ライブラリとかどう管理してるのー? 不正リンクされて盗まれても「でへへっ!」とか言うだけ? うそーん><
688 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:38:50 ] >>685 DLLのファイルかフォルダにNTFSのアクセス権つければよくね?
689 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:47:26 ] 制限出来れば リフレクション使ってクラス調査→不正リンク→(゚∀゚ )アヒャヒャ という.net固有の糞みたいな問題が解決するけど 未だに対策は難読化しかない。
690 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:53:51 ] 別になぁ。そもそもアセンブリじゃないDLLなら呼び放題だし。 売り物ならライセンス処理つけるだろうし。 お買い上げありがとうございました。だろ?
691 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:55:50 ] オープンソース時代だから別にいいじゃんw 盗まれたら裁判すればいいし(キリッ
692 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 19:58:48 ] >>691 盗んだほうはC++で書きましたってオチだ
693 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:08:44 ] .NETでなくても、製品の実行ファイルや図版を勝手に使われたらどうするんだよ。 そういうときは法務部門や顧問弁護士の出番。
694 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:18:14 ] まっ、やり放題な業種だからどうしようもないってこった 裁判なんざ普通は起こせないしそもそも把握すること事態が不可能
695 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:47:43 ] ヤリ放題な業種だと自分に言い聞かせてるのか?こっちまで巻き込むなよ。
696 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:50:51 ] 巻き込むも何も対策方法が何もない現状 自作パッカー作ったところで焼け石に水 理想は寝て言え
697 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 20:50:51 ] >>683 どのアセンブリからコールされているかはわかるだろ。 そして、そのアセンブリがどのような署名されているかを調べる。 逆コンパイル防止はそれ以前の問題。
698 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:05:35 ] 毎回、毎回、クラス毎に調べるのか? 手間かかりすぎだろ
699 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:07:48 ] いたるところで StrongNameIdentityPermission でDemandでもしとけ。 まあ改ざんされたらもうだめだけどな。
700 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:45:18 ] 単純に public class MyLicence : License { public override void Dispose() {} public override string LicenseKey { get { return ""; } } } public class MyLicenceProvider : LicenseProvider { public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions) { if (allowExceptions) { string exename = Path.GetFileName(Assembly.GetEntryAssembly().Location); if (! exename.Equals("MyLicenceTest.exe")) { throw new LicenseException(type, instance, "do't licenced"); } } return new MyLicence(); } } [LicenseProvider(typeof(MyLicenceProvider))] public class TestClass { License license; public TestClass() { license = LicenseManager.Validate(typeof(TestClass), this); } } とかでもいいんじゃね?呼び出し元exe名縛り。
701 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:54:35 ] こんな抽象クラスあったのか。 中々面白いアプローチだと思う。
702 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:59:05 ] ほぉ、これはなかなか…
703 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:05:48 ] >>701-702 そりゃどうも。えっへん!
704 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:06:08 ] Licenseは破棄が必要だぜ…
705 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:07:59 ] と思ったけど必要なければ別に実害はないのか…
706 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:10:53 ] リソース持ってないし、いいかな?と省略したけど、実装する際は通常通り Dispose()しといたほうがいいだろね。
707 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:14:16 ] リソースというか取得したライセンスを開放する処理を好きに定義するだけでしょ 同時利用数をデクリメントするとか 空でも全く問題ない
708 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:20:59 ] ってことみたいね。
709 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:48:04 ] というか、キモはexeのファイル名を確認するところなんだから、実装の仕方は人それぞれでしょう。
710 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:10:48 ] ってことみたいね。
711 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:30:09 ] >>700 をoverrideとか使わずにもっと分かり易く書いてくれ
712 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:33:20 ] webアプリで FileSecurity filesecurity = File.GetAccessControl(path); (pathはstring型でファイルの絶対パスが代入されています) としました。 このファイルを他のアカウントで作成して、 アクセス権限も拒否にしたら、デバッグ環境でですが、 '/'アプリケーションサーバーエラーが発生しました。 と出て、実行できませんでした。 とりあえず、try catchを使い、アクセス禁止として 処理すれば、実行エラーは回避できました。 DACLとかいまいちわかっていないのですが、 なにか他の回避方法はあるでしょうか? よろしくお願いします。
713 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:33:38 ] そんなレベルだったら余計なこと気にするな どうせその他の部分で穴だらけ
714 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:00:25 ] >>711 public class Hoge { private Hoge() {} public static Hoge() { string exename = Path.GetFileName(Assembly.GetEntryAssembly().Location); if (exename != "hoge.exe") throw new Exception(); return new Hoge(); } } でも、リフレクションやLCGを使われたらどうなるの?
715 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:27:30 ] LicenseProviderって使ったことなかったからそのサンプルコードとしては 参考になったけど、正直実用的な意味があるとは思えんなあ… アセンブリがロードされた時に何らかのスタティックメソッドの実行を強制できれば いろいろ面白いことが出来そうな気がするんだけど
716 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 00:43:56 ] そうそう、今回の話とは別に、それ前からほしかったんだよね。
717 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:26:14 ] 実用的には例えばSIDとかMACとかUSBメディアのPNPDeviceIDとか ※ SID : GetComputerName、LookupAccountName API参照 ※ MAC : NetworkInterface.GetPhysicalAddress 参照 ※ PNPDeviceID : WMI で Win32_DiskDrive, Win32_DiskDriveToDiskPartition, Win32_LogicalDiskToPartition, Win32_LogicalDisk 参照 そういった利用者を一意に特定出来る情報をプロダクトキーと一緒に公開鍵で 暗号化してライセンス認証サーバに送って、サーバで認証後に秘密鍵で 特定情報を暗号化して送り返してもらったものを記録。 その情報を公開鍵で復号して動作環境での取得値と一致していなかったら ライセンス違反と判断・・・とかメンドクサい実装は必要に応じて。
718 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:53:37 ] うんまあ改ざんされたら意味ないんだけどね。
719 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 02:49:16 ] それを言ったらどんなアプリ、ExcelだろうとWindowsOSだろうと、リエンジニアリング されてライセンス処理部を改ざんされたら無理。 それを言うことに意味はあるのかな?
720 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 03:02:30 ] 簡単さが違うって話。
721 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 05:35:33 ] 確かにDllMain的なのは欲しいよな。
722 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 11:42:56 ] static イニシャライザでチェックしちゃいかんの?
723 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 11:47:55 ] staticコンストラクタはいつ呼ばれるかわからない
724 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:00:08 ] アセンブリに属性をつけておいて その属性にstaticコンストラクタを仕込んでおけば dllを読みこんだタイミングで実行されたりしないかなあ
725 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:00:32 ] ふーん
726 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:08:28 ] >>724 されない カスタム属性っていうのはあくまでメターデータのラッパークラスなので インスタンスが作られるのはその属性を参照しようとしたとき
727 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:26:53 ] お前ら釣り耐性低すぎだろ
728 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 12:32:24 ] >>726 (゚∀゚)
729 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 18:55:14 ] >>700 みて何じゃこりゃとおもったけど>>714 見たら恐ろしく単純w
730 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 19:30:28 ] 何十個もクラスをライセンス管理しないなら >>714 で充分だね。
731 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 19:53:32 ] >>729 遅い
732 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 21:27:20 ] >>700 でも充分簡単じゃねぇか。 あんなのすら分からなかったらそもそもコードかけねぇだろ。
733 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 21:46:45 ] >>732 インデントの差だろ
734 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 22:42:20 ] まあ確実に言えることは、>>700 程度のコードが複雑に見えるんじゃライセンス保護 なんて当分は無縁だということ。
735 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 22:50:21 ] >>733 専ブラで>>700 をポップアップさせて見ればいい
736 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 00:53:37 ] うほ
737 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 10:19:51 ] 先生! thread.spinwaitとthread.sleepってどう違うんですかっ? MSDN読んでも引数の違いぐらいしかわからないです! 高度な技術を持ってる人、おすえて!
738 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 10:31:49 ] 解説読めよ。
739 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 11:41:25 ] >>738 わかりません!
740 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:04:49 ] Windowsフォームアプリを作るとメインウィンドウのクラスがめっちゃ大きくなっちゃうんですが、仕方ないんでしょうか? それともpartialで分割するべきですか?(あまり意味ないと思いますが)
741 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:11:42 ] partialの分割は意味ない。 ユーザーコントロールにするとか、ビジネスロジックを別クラスにするとか、 そんな感じ。
742 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:49:35 ] ApplicationContext使って、MainFormにはインタフェースレベルのプログラムしか書かないとかかな。
743 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:37:11 ] それでもコントロールの量が多いとイベントメソッドだけでもめっちゃ多くなっちゃうんですよね。 そこそこ普通のフリーツールくらいの規模でもメインウィンドウのクラスだけで何千行にもなっちゃう。
744 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:40:43 ] だから、そーゆーのはユーザーコントロールにまとめるんだってば。
745 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:43:21 ] で、デザイナがバグって正常に表示されない、とw あれたぶん2010でも放置なんだろうな
746 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:11:27 ] >>743 >>745 へったくそだなぁ
747 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:12:31 ] ユーザーコントロールが正常に動かないのは作り方が悪い
748 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 21:29:20 ] >>746 具体的に教えてよ
749 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:12:54 ] なんでそんなでかくなるんだろ。 イベントが盛りだくさんなの?
750 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:17:36 ] ボタンが百個あるので、イベントハンドラが百個なんでしょ。
751 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 22:28:16 ] ボタン1個にいくつのイベントがあると思ってんだ
752 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:05:11 ] はなし が かみあって ない
753 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:35:24 ] やっぱへったくそだな
754 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:50:20 ] >>746-747 素人臭い意見だな。 そんなわけないでしょw 実際ある程度やってみれば俺の言ってる意味がわかるよ。
755 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 23:54:22 ] 自称玄人△
756 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:07:04 ] >>754 ユーザーコントロール使ったこともない自称玄人乙
757 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:12:58 ] IDEに表示されないという理由だけでユーザコントロールを避けるってどうなの? #define BEGIN { と同じくらいひどいと思うんだけど、素人だからですかね
758 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:15:09 ] それは言いすぎ。 IDEのコード生成は信用できないので禁止、くらいだろ。
759 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:24:31 ] ・・・IDEに出ない?ツールボックスに出てきているコレはなんだろう?
760 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:29:02 ] >>757 「だから」避けろとか使うべきでない、などとは一言も言ってない。
761 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:31:03 ] 揚げ足取り玄人ですね。かっこいいです!
762 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:34:15 ] >>760 デザイナがバグって正常に表示されないというのは素人がよくハマる部分だから 気をつけろって言う意味?
763 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:36:18 ] ガキ臭い揚げ足取りしてるのはどっちだよ。 ネトウヨみたいなよくわからん被害妄想だなおい。 こっちは単にVSのデザイナはユーザーコントロールを使うとバグって 正常に表示されなくなる場合がある、という事実を言ってるだけ。 っていうか、この程度の経験もない奴が偉そうに「ユーザーコントロール使え」 とか人に講釈垂れてるっていい根性してるよな。
764 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:40:46 ] >>762 VS自体のバグだから使う側が玄人か素人か関係ないし、 気をつけようもないんだけどさだから。
765 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:53:37 ] 該当バグのURL晒したらすぐ済むことなのに
766 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:11:16 ] VS2008でデザイナがしょっちゅう腐ることがあるやつを VS2010に持ってきたが、いまのとこ一度も腐ってない
767 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 02:36:55 ] 2002や2003に比べたら2008の安定ぷりったらないんだけど、2010はさらに調子良いのか これは楽しみ
768 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 03:24:29 ] コントロール多くてもほとんどユーザーコントロールだから、フォーム側に実装する事ほとんど無いなぁ。 そんなにフォーム固有の処理って多いもん?
769 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 03:50:48 ] >>768 ユーザコントロール作ったらバグるって言われるよ
770 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:23:34 ] ボタンにクリックイベント一個付けるだけでもわざわざ一個のユーザーコントロール作るの?
771 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:25:56 ] そうすべきだと思ったらそうするな
772 名前:デフォルトの名無しさん [2010/06/22(火) 04:29:59 ] >>770 ボタンコントロールにだけ関連する処理ならユーザーコントロールか 継承したクラス作ってそこへ入れてしまえばいいんじゃね? Formにだらだら書くよりすっきりするよ
773 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:35:29 ] 継承したらそりゃコードは分割出来るけど デザイナの意味を成さなくなってくるな
774 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:40:23 ] Visual Studioの登場で、内部はどんどん複雑に、表面は簡単になったおかげで 基本や構造を理解せずに何となくソフトを作るプログラマーが増えた マシンパワーが有り余ってるから、いいかげんな作りのソフトでもそれなりに動いてしまうのも善し悪し
775 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:00:27 ] >>773 もう少し詳しく。 適当に予想してレスすると怒られる流れっぽいので。
776 名前:デフォルトの名無しさん [2010/06/22(火) 05:11:51 ] >>773 成すよ まあこのあたりみてくれ cs2ch.blog123.fc2.com/blog-entry-8.html
777 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:33:54 ] >>775 イベント追加する時に+=を書かなくちゃいけなくなるとか
778 名前:デフォルトの名無しさん [2010/06/22(火) 05:35:24 ] >>777 hoge.Click += とか書いてTAB2回押せば勝手につくってくれるじゃん
779 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 05:47:02 ] >>778 プロパティのイベントを選べないじゃん
780 名前:デフォルトの名無しさん [2010/06/22(火) 05:54:13 ] >>779 だからその辺は>>776 読めって 一旦デバックすれば継承したクラスも同じように操作できるから それができないとFormを継承したForm1の設定はどうやって実現するんだよ 普段コードをごりごり書いてるのはFormを継承したクラスだぞ
781 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 06:01:54 ] >>780 MainFormのデザイナから継承させたコントロールのイベントを プロパティウィンドウからメソッド生成させると 結局MainFormのクラス内にメソッドが追加されないか? これじゃ分割出来てないんだが
782 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:25:36 ] ボタン100個あって、100個クリックイベントを書くのは愚の骨頂だろ。 インタフェースの仕事としては、どのボタンがクリックされたかを伝えるだけで良いんだからさ。 それ以上に、動かす用途によって書き方は変わると思うんだが。
783 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:17:47 ] 100個あるボタンそれぞれが全く別の処理を行うというのは考えづらい ツールボタン的なものや、データ行それぞれに対するコマンドあたりだろうけど そういうのは共通の入り口から振り分けられる
784 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 12:30:02 ] だね
785 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 13:01:54 ] private void button1_clickClick(object sender, EventArgs e) { MessageBox.Show("1"); } private void button2_clickClick(object sender, EventArgs e) { MessageBox.Show("2"); } ... private void button100_clickClick(object sender, EventArgs e) { MessageBox.Show("100"); } なんてコードがあったら継承して、一つに纏めろと言いたくなるわな。
786 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 13:34:52 ] さすがにそれは・・・w 使う方も大変だな、ボタン100個
787 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:01:28 ] ソフトウェア和文タイプキーボードとか
788 名前:デフォルトの名無しさん [2010/06/22(火) 14:03:54 ] >>787 TagでもNameでもいいので識別に使う情報も足せておけば イベントハンドラで余裕で処理できるよ
789 名前:デフォルトの名無しさん [2010/06/22(火) 14:10:08 ] >TagでもNameでもいいので識別に使う情報も足せておけば >イベントハンドラで余裕で処理できるよ TagでもNameでもいいので識別に使う情報持たせておけば 一つのイベントハンドラで余裕で処理できるよ
790 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:40:49 ] >>785 継承も何も、一つだけ作って後は全部同じの指定しろって感じ?w IDEからもできるしな!
791 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:46:51 ] >>777 部品化したにもかかわらず、何処かのフォームの勝手な理由で部品を変更しようとするの? >>790 MessageTextみたいなプロパティをつくり、IDEからも操作できるようにしておき、 クリックされた時にMessageBox.Show(MessageText)を行うようなボタンを作成すれば IDEで配置→MessageTextを設定 という作業になるよ
792 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 14:49:52 ] わざわざつくるのめんどくさくてこうしてしそう。 private void Form1_Load(object sender, eventargs e) { Foreach (Control c in Panel1.Controls) { if(typeof(c)==typeof(Button)) ((Button)c).Click += new EventHandler(softkeys_button_click); } } private void softkeys_button_click(object sender, eventargs e) { Textbox1.Text = String.concat(Textbox1.Text, ((Button)sender).Text); }
793 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:05:21 ] デザイナで出来ない云々
794 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:05:57 ] >>785 この例だと継承なんていらないでしょ。 button_clickに全てまとめて自分自身を判別すればいいんじゃまいか。
795 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:09:31 ] >>794 自分自身を判断する際に適当なプロパティがあるかどうかってところだな。
796 名前:デフォルトの名無しさん [2010/06/22(火) 18:15:47 ] >>795 Tagになんでも設定できるので識別情報を入れるか Nameにbuttonxxxと言った感じでxxxの部分に識別情報を入れておけばOK
797 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:24:57 ] >>795 Tagってそういうのに使っちゃダメなの?
798 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:28:35 ] ボタン10個あってそれぞれに10個のイベントがあったら100イベント。 その他のコントロールもあったら数百個のイベントがあってもおかしくない。 そしてそれらが共通しない機能なのも普通にあり得る。 そういう状況の時にユーザコントロールを使えって話じゃないの? でもそれだとイベントを関連付けるときにプロパティウィンドウは使えませんよーって話。
799 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:37:59 ] >>798 >イベントを関連付けるときにプロパティウィンドウは使えませんよ ・・・お前は何を言ってるんだ・・・? 継承したのもカスタムのも、普通にプロパティ窓からイベント付けられるぞ?
800 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:46:41 ] 流れ仏多義理でちょい質問 Firefoxみたいにタブに閉じるしいたけ付けたいんだけど オーナードローするしかない?
801 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:47:35 ] >>798 ユーザーコントロールにするのなら、 メソッドやプロパティ同様に、イベントもコントロール内で定義したらプロパティウィンドウで使えるっしょ。
802 名前:デフォルトの名無しさん [2010/06/22(火) 18:49:40 ] >>800 タブ部分に閉じるボタンってこと? labelなんかだと配下にbuttonとか置けるんだけど タブコントロールのタブ部分にできたっけかな?
803 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:59:31 ] >>800 うん、オーナードロー。
804 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:11:17 ] >>799 >>801 あれ? プロパティウィンドウからイベントを自動生成+関連付けしたら、結局メインクラスに生成されない? メインクラスに生成されたらわざわざユーザコントロール作った意味がない気が…。
805 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:16:44 ] ああごめん。何いってんだ。 ユーザコントロールの方のプロパティウィンドウ使えばいいんだよね。
806 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:20:21 ] >>802 どうもタブそのものを取得するのが難しいみたい だから結局>>803 って結論しかないか WPFなら簡単なのかねー?
807 名前:デフォルトの名無しさん [2010/06/22(火) 19:21:55 ] >>806 あとはタブぽい動きをするユーザーコントロールを自分で作るかだねえ
808 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:22:12 ] 質問です。 RichTextBoxで行間をピクセル単位で指定する方法はありますか?
809 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:34:11 ] コントロールを継承した時のデザイナってなんで表示されないんだっけ?
810 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:38:29 ] >>806 WPFなら簡単だね、タブに何でも入れられる。TabControl in タブなんて意味不明なUIさえ可能だ。 >>808 WinFormのRichTextBoxだと、EM_SETPARAFORMATで設定できないこともない
811 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:10:05 ] WPFなんて使ってるアホまだいるのか
812 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:18:58 ] WPFはこれから
813 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:30:19 ] >>811 VS2010をdisってるの?
814 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:20:06 ] WPFとかXNAとかしょっぱいもん使って作るくらいなら DirectXをちゃんと使えるようにしろと
815 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:21:31 ] 軽さが本分のIDEを、良いグラボ必須にした戦犯と聞き及んでおりますが、反論は?
816 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:24:19 ] IDEの本分が軽さであった時などない。はいろんぱー
817 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:34:17 ] つまりは作るアプリ皆高性能グラボ高性能CPU必須にする素晴らしい技術ですな。 いやはや、NVIDIAにAMD、インテルから感謝状が期待できますのう。
818 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:39:17 ] じゃあいつまでもWin9x基準で作ってろよ Win7がちゃんと動く環境ならWPFは普通に動く
819 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:42:48 ] 糞ボロいPCで開発、糞ボロいPCで使用っていうなら.netの使用自体を考え直した方がいいんじゃ 煽りじゃなく C#(.net)が出た当時なんてもっとボロカスに叩かれて「誰が使うんだよw」とか言われてたが ハードの進化で今は軽い方だと思うけどなー
820 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:43:47 ] WindowマネージャがGPU使ってる時代に中身のツールキットだけレガシーに拘ってもねぇ
821 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:47:15 ] Windows7ったら、未だにVista以下のシェアだぜwwwww ちなみに、XP 62.55%、Vista 15.25%、7 12.68% (NetApplications May, 2010)。 いつになったらメジャーになるんだろうかな?
822 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:48:39 ] 新しいハードの性能を活かさないともったいないから見た目をちょっと豪華にしようっていうだけだろ 見た目がどうでもいいんだったらWindows95時代の格好悪いUIで作ってればいい 今のWinFormsの見た目だって数年後には古臭くて格好悪いと認識されるようになってるよ
823 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:51:13 ] 64bitつかうで無い限りやっぱりXPだよな。 ワクチンソフトの対応さえあればXP64bit使いたいんだが。
824 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:51:25 ] まだサポート期間残ってるし、しばらくはXPが優勢でしょ。 まーでも、ここ1〜2年で大分変わると思うけど。
825 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:52:49 ] あの7のGUIの出来は拷問だよマジで。
826 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:52:50 ] でも、自分も 12.68% の一員なんだけど・・・やっぱ使いづらいわコレ。 一年近く使っててもイライラする。
827 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:53:32 ] >>823 よくわからんが64bit7でワクチンソフト?ウィルス対策ソフト?なら使ってるよ
828 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:55:39 ] >>821 歴史に学べ どのOSもメジャーになるのに数年かかってる SPが2になる頃にはシェア一位になってる
829 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:08 ] >>828 では、Vistaもそろそろメジャーに!
830 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:42 ] 長年XPを使っていたので7で慣れが必要なのは確かに煩わしい が、ある程度のスペックならばXPより快適だぞ XP厨だったのに素直に降参した
831 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:45 ] どの辺が使いづらいの? 普通に便利に使ってるけどなぁ。
832 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:57:58 ] 初心者ならともかくプログラマでしょ? 一般人から見たらPCウィザードでしょ?w カスタマイズしたりショートカットキー使ったり補助ツール使ったりしてたら使い勝手なんか全然変わらないよ
833 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:58:16 ] >>827 7の64bit版はワクチンソフトの対応有るけど、XPの64bit版の対応が無いんだよ。 で、泣く泣く7の64bit版使ってる。
834 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 22:59:46 ] ここはドザ板かw
835 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:01:49 ] いくらでもあるだろよ・・・。
836 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:02:05 ] これが情弱ってやつか・・・。
837 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:20:47 ] ツールバーにスタートメニュー作ってるが元々のスタートが邪魔。 ライブラリが幅きかせすぎ。 おまけにクリックすると「アクセスが拒否されました」なフォルダ大杉。 エクスプローラでフォルダ開くとフォルダのツリーで現在のフォルダがなぜか一番下にスクロール。投げ飛ばしたくなる。 時々、デスクトップにdesktop.iniが居座って削除出来ない。 ホームグループアイコン、レジストリ弄ってデスクトップから消しても消してもいつのまにか復活。 USBメディア抜き差ししてるとUSBアイコンが消える。まだもう一本刺さってるだろがぁ! これは相性の問題かもしれないが休止から戻るとNICがだんまりする確率高し。 セキュリティの問題なのか知らないが、旧型のTeraStationと繋ぐときにはグループポリシーでNTLM応答のみ送信にしないとならない。 はぁはぁ・・・他にも色々ありすぎて・・・思い返すと段々腹が立ってきた。
838 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:25:25 ] お前は死ぬまでXP使っとけよw
839 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:26:28 ] ふあ…ふ
840 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:32:40 ] 7上のものならいいけど、XPEとかEmbedded用XPの開発も結構あるのよね。 まだ5年以上MSのサポートもあるわけだし。 ここら辺はうまく使い分けないとな。
841 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:38:03 ] VPCって微妙にめんどくさいから結局は隣に古いPCを置いてXP入れてテスト専用にしてるわ
842 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:39:03 ] VPCって微妙にめんどくさいから結局は隣に古いPCを置いてXP入れてテスト専用にしてるわ!!!!!
843 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:39:31 ] >>832 エクスプローラのAlt>F>WがAlt>F>Xに変更されてたりしててだな。 すぐ慣れるんだけどさ。
844 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:40:53 ] >>837 まあ、UIの操作性は確かに難が多い。 単なる慣れの問題と言い切れない改悪点がいろいろあるとは俺も思う。 最悪なのがファイル検索の改悪。 だが、 >おまけにクリックすると「アクセスが拒否されました」なフォルダ大杉。 こんな文句垂れる人はシステムフォルダを隠さない設定にしちゃダメだろw
845 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:42:57 ] 7はXPよりも安定してるからいれてるな ファイラー使うから7特有のUIとか関係なし OSは安定さえしてればいいよ
846 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:44:05 ] なら2000でいいじゃん。
847 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:47:02 ] ファイラーなんて死語だと思ってたw っていうか、使えるファイラある? Avestaとか使いにくいし、UltraExplorerは期待してたが結局放置状態のようだし
848 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:47:58 ] >>846 マルチCPUに対応してない サポート切れてセキュリティ死んでる .Net4が入らない スリープが終わってる パフォーマンス悪い 安定云々以前に論外です >>847 UltraExplorer風のものをdelphiで作ったからそれ使ってる
849 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:50:17 ] ここドザ板かと思ったw >>847 x-finder使ってる。極稀に落ちるけど気にならないレベル。Win7pro64bit
850 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 23:53:20 ] >>849 ありがと後で試してみる。
851 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:25:55 ] >>844 例えば SendTo。 実際は SendTo は C:\Users\{ユーザ}\AppData\Roaming\Microsoft\Windows\SendTo なんだけど、何故か C:\Users\{ユーザ}\SendTo が意味もなく存在してアクセス不能。 こんな変なものがあっても、隠れていたら良いとか言えるのか?
852 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:40:29 ] >>851 >何故か C:\Users\{ユーザ}\SendTo が意味もなく存在してアクセス不能。 うちのセブンちゃんにはありません
853 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 00:48:22 ] >>851 実際は(管理者権限なら)アクセス権をちゃんと設定すればアクセスできるんだけどさ。 まあ、アクセスを制限されるのに「管理者」って名ばかりなのは何なの、 って突っ込みたい気持ちは俺も分かるけどw
854 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 01:17:31 ] 信用できる管理者に対する制限は少ないんだよ。w
855 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:14:51 ] 7で嬉しかったのは存在しないネットワークのパスのファイルにアクセスしようとして固まってもプロセスは殺せるようになった。 Vistaまではタイムアウトするまでプロセスを殺すことすらできなかった。 VistaからAPI追加されて対応したと思ってたのにVistaでも追加したAPIを使ってないのか殺せなかったなぁ…
856 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:34:23 ] 数百個のファイルやフォルダを選択しただけでエクスプローラが落ちる仕様はvista以降解消されたの? この仕様のせいで数百個のファイルの入ってるフォルダを別フォルダに移動する時に手動で50個くらいずつ移動しなくちゃいけなくて不便。
857 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:01:31 ] >>856 落ちるとなるとむしろ変なシェル拡張とかが入ってる環境じゃないかと疑いたくなるなぁ。 XPでも数百くらいのファイル数というかただファイルが多いという状況で落ちたことなんて全然ない。 それでもVista以降のエクスプローラの安定感はXPとは比べものにならないと思うよ。 でも、Vistaのエクスプローラは7を触ったあとでは操作性がいろいろクソすぎてもう触る気が起きないので7がお勧めだなぁ。
858 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:36:59 ] Vista以降で解消されたのか?ってことは、Vistaよりも前のOSでおちるってことだよね。 Meは知らんが、2000、XPでは当たり前のように1000ファイルぐらい選択していたよ。 ファイルの種類にもよるんだろか。
859 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:57:21 ] XPだとファイルを1000個コピーしようとしてプチフリして「残り 192839分」とかしょっちゅう見るけどなあ
860 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:06:59 ] それは > ファイルやフォルダを選択しただけでエクスプローラが落ちる と何か関係が?
861 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:22:50 ] 結局ユーザーコントロールに文句言ってる奴は使い方知らないだけなんじゃねぇか、と疑いたくなるなー。 普通にFormを継承したMyFormとかTextBoxを継承したMyTextBoxみたいなの使うよな? デザイナ上で普通に動くし・・・
862 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 04:52:33 ] まあなw