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


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

C#, C♯, C#相談室 Part59



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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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