2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C♯, C#相談室 Part37

1 :デフォルトの名無しさん:2007/01/18(木) 17:55:45
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part36
http://pc10.2ch.net/test/read.cgi/tech/1165656839/

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。

2 :デフォルトの名無しさん:2007/01/18(木) 17:56:46
Part35 http://pc8.2ch.net/test/read.cgi/tech/1162490865/
Part34 http://pc8.2ch.net/test/read.cgi/tech/1157549657/
Part33 http://pc8.2ch.net/test/read.cgi/tech/1153537081/
Part32 http://pc8.2ch.net/test/read.cgi/tech/1149934230/
Part31 http://pc8.2ch.net/test/read.cgi/tech/1145075577/
Part30 http://pc8.2ch.net/test/read.cgi/tech/1141448072/
Part29 http://pc8.2ch.net/test/read.cgi/tech/1138925245/
Part28 http://pc8.2ch.net/test/read.cgi/tech/1134514022/
Part27 http://pc8.2ch.net/test/read.cgi/tech/1131544541/
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/

3 :デフォルトの名無しさん:2007/01/18(木) 17:57:17
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html

4 :デフォルトの名無しさん:2007/01/18(木) 17:58:12
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html

5 :デフォルトの名無しさん:2007/01/18(木) 17:58:43
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

MSDNライブラリ
http://msdn.microsoft.com/library/ja/

MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx

相互運用マーシャラによるメモリ管理
http://msdn2.microsoft.com/ja-jp/library/f1cf4kkz.aspx

Buffers のサンプル
http://msdn2.microsoft.com/ja-JP/library/x3txb6xc.aspx

文字列のマーシャリング
http://msdn2.microsoft.com/ja-JP/library/e8w969hb.aspx

pinvoke.net: the interop wiki!
http://pinvoke.net/

テンプレ終了

6 :デフォルトの名無しさん:2007/01/18(木) 18:08:23
>>1

7 :デフォルトの名無しさん:2007/01/18(木) 18:26:03
>>1

8 :デフォルトの名無しさん:2007/01/18(木) 18:48:58
(#゚ー゚) ←これって「C」と「しぃ」を掛けて「しぃ#」だったのか…
気付かなかった…

9 :デフォルトの名無しさん:2007/01/18(木) 19:09:14
姉妹スレ。
必要に応じて移動も良し。

ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/

10 :デフォルトの名無しさん:2007/01/18(木) 19:09:19
低脳・池沼はここへ

ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/

11 :デフォルトの名無しさん:2007/01/18(木) 19:19:37
質問するときに
〜したいのですが、上手くいきません。
〜したときにエラーが出ます。

という書き方はイクナイ。
何も書いてないのと同じ☆

〜したいのですが、〜で〜が失敗します。
〜したときに〜エラーが出ます。

隠さずくわしくかきましょううううう




12 :デフォルトの名無しさん:2007/01/18(木) 19:49:56
>>11
ここ初心者スレじゃないから
そんなのは放置

13 :デフォルトの名無しさん:2007/01/18(木) 20:13:41
IDとパスワードを登録してドメインに投げるプログラムについて。
参考になるソースご存知の方はご教授下さい。

14 :デフォルトの名無しさん:2007/01/18(木) 21:49:33
ドメインって何のドメイン?

15 :デフォルトの名無しさん:2007/01/18(木) 21:59:59
一般的なyahooとかgooとかに自動ログインするプログラムを作りたいんです。
ヘッダを見る限り、アカウントとパスをサーバに投げればログインしたことになってCookieとか返ってきますよね?

16 :デフォルトの名無しさん:2007/01/18(木) 22:05:35
Hint: HttpWebRequest CookieContainer

17 :デフォルトの名無しさん:2007/01/18(木) 22:25:36
HttpWebRequest CookieContainerは、Cookieを使ってログインするのではないでしょうか?
IDとPASSを登録して自動ログイン・・・というのも利用したらいけるんでしょうか?

18 :デフォルトの名無しさん:2007/01/18(木) 23:26:00
俺用語禁止
ドメイン
サーバにログイン

19 :デフォルトの名無しさん:2007/01/18(木) 23:30:09
HTTPの基礎からやり直せ

20 :デフォルトの名無しさん:2007/01/19(金) 11:51:43
スミマセン、ちょっと質問なのですが。

あるTextBox内がマウスでクリックされた場合に、クリックされた行全体を選択状態にしたいと考えています。
次のようなものはすぐに思いついたんですが、この他にやるとしたら、文字列検索とかになるのでしょうか?

private void textBox1_MouseClick(object sender,MouseEventArgs e)
{
textBox1.SelectionStart = textBox1.GetFirstCharIndexOfCurrentLine();
textBox1.SelectionLength = textBox1.GetFirstCharIndexFromLine(textBox1.GetLineFromCharIndex(textBox1.GetFirstCharIndexOfCurrentLine())+1)
- textBox1.GetFirstCharIndexFromLine(textBox1.GetLineFromCharIndex(textBox1.GetFirstCharIndexOfCurrentLine())) - 1;

21 :デフォルトの名無しさん:2007/01/19(金) 15:57:09
質問ですまない。
色々なサイトで「ShellExecuteでverbをpropertiesにして呼び出すとそのファイルのプロパティダイアログが出てくる」と書いてあったので以下のようなコードを書いて実行してみたんだけど、
ComponentModel.Win32Exceptionが発生(この操作に対して指定されたファイルには、アプリケーションが関連付けられていません。)して使えない。

ここはWin32APIをそのまま使うしかないのですか?

Process p = new Process();
p.StartInfo.FileName = "(ファイルのパス)";
p.StartInfo.Verb = "properties";
p.Start();

22 :デフォルトの名無しさん:2007/01/19(金) 17:31:20
>>20
それのどこに不満がある?それ以上の方法はないと思うけど

まあ、そのままだと最終行で例外落ちしそうだが。

23 :デフォルトの名無しさん:2007/01/19(金) 18:13:43
>>20
Homeを押した後、シフト+Endを押すというコード書けば短くなりそうだ

24 :デフォルトの名無しさん:2007/01/19(金) 18:18:27
>>22
文字列が無い場合の例外は、一旦"int length"に格納して分岐させて解決させました。
基本的には希望通りなのですが、何とも長ったらしいのでもっといい方法は無いかと思いまして。
あと、やや問題なのはダブルクリックをした際に対応されなくなる(選択範囲が一文字だけになる)事でしょうか。

25 :デフォルトの名無しさん:2007/01/19(金) 18:22:38
>>20の質問の解決法ならそれで十分。
最終的になにがしたいのかわからないから
こっちにはその他の問題なんて想像もつかん。


26 :デフォルトの名無しさん:2007/01/19(金) 18:57:49
>>21
そっちのVerbはレジストリにあるやつだけ
Verbsプロパティみれば分かる

27 :デフォルトの名無しさん:2007/01/19(金) 19:08:00
>>26
thx.

WinAPIあさるか・・・

28 :デフォルトの名無しさん:2007/01/19(金) 20:28:27
>>27
ずばりShellExecuteEx

29 :デフォルトの名無しさん:2007/01/20(土) 11:02:13
画像ファイルを使った時計を作ったんだけどメモリ使用量が凄い
タイトルバーに収まるくらい小さいのに15MBくらい消費してる
メモリクリーナーを使うと1.5MBになる

表示する用の画像をメンバ変数に持っておいて
その画像の一部を毎秒フォームに描画してる
タイマーで生成してるのは
フォームのGraphics(解放してる)だけ

なんでこんなにメモリを消費してるの?

30 :デフォルトの名無しさん:2007/01/20(土) 11:12:13
またメモリの話か。
とりあえずVSで初期状態のWindowsフォームアプリ作って見ろ。
なんにもしなくても16MB確保してるから

31 :デフォルトの名無しさん:2007/01/20(土) 11:19:49
>>29
作りが悪いから。
いまさらメモリとかいってる段階で学習能力無いからどーせまともな書き方してないんでしょ

32 :デフォルトの名無しさん:2007/01/20(土) 11:20:00
d

33 :デフォルトの名無しさん:2007/01/20(土) 11:22:22
一番大きいのは、.NET の DLL を使ってるから。
DLL は複数プロセスで同じメモリが共有されるが、
タスクマネージャではそれをプロセスごとに計上する。

あとメモリクリーナの類は使う意味がないぞ。
仮想メモリに追い出すだけだから。

34 :デフォルトの名無しさん:2007/01/20(土) 11:36:50
>>29
この辺とか
.NETアプリで使用メモリがどんどん増えていく
http://www.atmarkit.co.jp/fdotnet/vblab/appqa_01/appqa_01_01.html

35 :デフォルトの名無しさん:2007/01/20(土) 13:21:09
ワーキングセットの内訳を調べるツールはないものか。
プロセスビューワでコミットチャージの内訳ならわかるのだが。

36 :デフォルトの名無しさん:2007/01/20(土) 22:23:54
いつの間にIE7正式リリースしてたんだ?

37 :デフォルトの名無しさん:2007/01/20(土) 22:25:33
何故このスレで聞く

38 :デフォルトの名無しさん:2007/01/20(土) 22:34:33
古典的なランダムアクセスファイルをパフォーマンスを犠牲にせずに
実現する方法ってないかな?

つまり、プリミティブな値型(int とかfloatとか)のみをフィールドにもつ構造体sがあるとして、
このsが一次元配列状に数珠繋ぎに記録されるようなファイルの読み書き、
具体的には任意位置からsまたはsの配列として読み書きをしたいんですが。

BitConverter使って構造体とバイト配列を相互変換すればとりあえずの実現はできそうだけど、
これだといかにも効率が悪そうだし。。

この辺とか読むと、.NETでもsの配列のようなものは単純に連続した領域にフィールドの
バイナリイメージが書かれるようにできるようだから、なにか効率的な方法が
あってもよいように思うんだけど。
http://msdn2.microsoft.com/ja-jp/library/75dwhxf7(VS.80).aspx

39 :デフォルトの名無しさん:2007/01/20(土) 22:51:29
byte[]で読み書き
あとunsafeとポインタ

40 :デフォルトの名無しさん:2007/01/20(土) 23:51:49
普通にポインタつかえばいいじゃない?

41 :38:2007/01/21(日) 01:24:59
VB厨なんで誤解してるかもしれないけど、unsafe使っても結局できるのは、
「構造体配列のバイナリイメージをbyte[]にコピーすること」であって、
「構造体配列そのものを(マネージドな)byte[]として扱うこと」ではないですよね?
(BinaryReader,BinaryWriter使って読み書きするためには、マネージドなbyte[]として
扱えないと意味がない。)

それならBitConverterで変換するのとあまり変わらない気がするんですが。。

42 :デフォルトの名無しさん:2007/01/21(日) 01:30:16
>BitConverter使って構造体とバイト配列を相互変換すればとりあえずの実現はできそうだけど、
>これだといかにも効率が悪そうだし。。


43 :デフォルトの名無しさん:2007/01/21(日) 01:44:11
何でコピーするの?
sの配列をポインタ使って順番にファイルに出していけばいいんじゃないか?

44 :デフォルトの名無しさん:2007/01/21(日) 01:48:19
>>41
unsafeにしといていまさらBinaryWriterなんかつかうことはないだろ

45 :デフォルトの名無しさん:2007/01/21(日) 01:56:05
>>43
目的は「効率的に」読み書きすることだから、1バイトずつちびちび処理するんじゃ
恐らくあまり意味がないわけで。。

>>44
Win32使えって事?
そりゃあまあそうなんですが。

46 :デフォルトの名無しさん:2007/01/21(日) 02:27:40
ここ見てると次期はC#なんかねぇ・・・と思う
元C、元C++、元VBがわんさか集まってる感がある
個人的に好きな言語だからいいんだがM$がね・・・

47 :デフォルトの名無しさん:2007/01/21(日) 02:43:42
>> 45
結局こういう事で良いのか?

struct Hoge {
    public int A;
    public int B;
}

using (FileStream fs = new FileStream(path, FileMode.Open)) {
    byte[] data = new byte[16];
    fs.Read(data, 0, data.Length);
    fixed (byte* pdata = data) {
        Hoge* hoges = (Hoge*)pdata;
        for (int i = 0; i < 2; i++) {
            hoges[i].A *= 2;
            hoges[i].B += 2;
        }
    }
    fs.Write(data, 0, data.Length);
}

48 :デフォルトの名無しさん:2007/01/21(日) 02:48:39
>>45
.NETは基本的にマシンパワーで押し切るようにできてる環境なんだ

おとなしくC++/CLIでも使っとけ

49 :38,45:2007/01/21(日) 03:08:56
>>47
目的は構造体のランダムアクセスファイルを効率的に実現することなので
たぶん微妙に違うと思う。

つまり、必要なのは「構造体配列とファイル上の位置を引数にとってファイルに書き込むメソッド」と
「ファイル上の位置と必要なデータ数を引数にとって構造体配列を返すメソッド」です。

50 :デフォルトの名無しさん:2007/01/21(日) 03:29:58
つうかほとんどIOの性能だけで決まって
その他の影響なんて誤差じゃねーの、大抵。
1バイトずつちまちまって何を1バイトずつちまちまするっていってんのよ?


51 :デフォルトの名無しさん:2007/01/21(日) 03:37:19
どうせどっか低級なところでバッファリングされるんだから、
一旦配列にコピーするくらいたいしたことないだろ。

52 :デフォルトの名無しさん:2007/01/21(日) 03:52:21
FileStreamでバッファリングされるし
さらにOS自体でバッファリングされるし


53 :デフォルトの名無しさん:2007/01/21(日) 14:00:52
ポインタを使うよりMarshal.Copyのほうが速いよ

54 :38:2007/01/21(日) 15:04:11
>>53
ああ、なるほど。いいこと聞いたよありがとう。
unsafeで構造体配列の先頭のポインタを取得して、それをIntPtrにキャストしてやれば
Marshal.Copyを使って効率よくbyte[]と相互変換できそうな感じだ。

それ以前に、値型だけをメンバーに持つ構造体の配列っていうのは、
連続したメモリ領域に隙間なく配置される、と思っていいんだろうか本当に?
もちろん構造体はStructLayoutでアラインメントをきちんと指定するという前提で。

このあたりMSDNライブラリ読んでも俺の頭じゃどうもよく理解できない。

55 :デフォルトの名無しさん:2007/01/21(日) 15:08:24
fixed してれば問題ない

56 :デフォルトの名無しさん:2007/01/21(日) 17:48:13
そもそも何がしたいのかと。
手段自体が間違ってるってことないのか?

57 :デフォルトの名無しさん:2007/01/21(日) 17:51:57
コンソールで作ったプログラムを、ボタンをクリックすると動くようにするのはどうしたら良いのでしょう?
クラスをボタンクリックの方のプロジェクトに持っていって読み込むって感じですか?

58 :デフォルトの名無しさん:2007/01/21(日) 17:53:39
初心者スレいってきな

59 :デフォルトの名無しさん:2007/01/21(日) 22:07:17
>>38 = >>49
なのか?

後だし乙!

60 :デフォルトの名無しさん:2007/01/22(月) 14:28:06
おまいらある処理がどのぐらい時間かかってるのか計りたいんですがいい方法ないですか?
パフォーマンスツールだとある処理もしくはそこから呼ばれる処理だけを分析するようなことが出来ないような木がするんですがどうなんでしょう(´・ω・`)
そうしないと遅くて使い物に並んです・・・

61 :デフォルトの名無しさん:2007/01/22(月) 14:34:24
DevPartner

62 :デフォルトの名無しさん:2007/01/22(月) 14:36:06
>>61 ・・・・(´・ω・`)

・・・・えーと有料ですよね・・・

63 :デフォルトの名無しさん:2007/01/22(月) 14:47:17
このスレ的にはないものは自分で作れ

64 :デフォルトの名無しさん:2007/01/22(月) 14:55:39
VSに統合されてなくてよければMS製のCLRプロファイラがあったろ

65 :デフォルトの名無しさん:2007/01/22(月) 14:57:40
>>62
CEは無料でダウンロードできね?
2003しか対応してないけど

66 :デフォルトの名無しさん:2007/01/22(月) 14:58:30
お舞らリリースのデバッグ情報出力ってデフォルトでNoneになってます?
自分のはPDB出力ですた(´・ω・`)
きったら分析するまでも泣く馬鹿っぱやになったよ・・・

67 :デフォルトの名無しさん:2007/01/22(月) 15:03:48
いちいち(´・ω・`)つけなくていいよ^^

68 :デフォルトの名無しさん:2007/01/22(月) 15:04:06
>>65 2003までですね・・・

69 :デフォルトの名無しさん:2007/01/22(月) 16:51:08
使い物にならんほど遅いなら大体原因は限られてるでしょ

70 :デフォルトの名無しさん:2007/01/22(月) 17:13:05
http://pasokon-yugi.cool.ne.jp/AutoLogOn/
こういうものをC#で作るにはどうしたら良いのでしょうか?
どれでも良いですけど・・・とりあえずmixiでお願いします。

71 :デフォルトの名無しさん:2007/01/22(月) 17:19:31
意味不明

72 :デフォルトの名無しさん:2007/01/22(月) 17:20:38
この間も同じような質問あったなあ

73 :デフォルトの名無しさん:2007/01/22(月) 17:23:19
別にC#だから特別ってことは何もないから調べろとしか

74 :デフォルトの名無しさん:2007/01/22(月) 17:25:13
>>70
http://pc10.2ch.net/test/read.cgi/tech/1168271508/410

75 :デフォルトの名無しさん:2007/01/22(月) 17:31:54
Stopwatchでもつかったら?
プロファイラ使いこなせるならそれがいいんだろうけど
現実にはそんなもの知らない人間が調査することも多いし。
俺は簡単に時間計測できるユーティリティクラス作ってる。
気になるところにはとりあえず入れとく、あるいは勝手に入るようにしてる。
構成ファイルで無効に出来るようにしとけば消す必要もない。


76 :デフォルトの名無しさん:2007/01/22(月) 17:33:42
>>70
Visual C#(Visual Studio)を起動する。
メニューのファイル→新規作成→ファイルをクリックし、ダイアログボックスの「HTMLページ」を選択して開くを押す。
最初に表示されてるHTMLは必要ないので全て消す。
上のサイトから「mixiに一発でログインできるHTML文書」のHTMLをコピー&ペースト。
ファイル→名前を付けて保存で、適当な名前を付けて保存。

ほら、C#でできたよ!!

77 :デフォルトの名無しさん:2007/01/22(月) 17:47:51
Windowsサーバのサービスを管理(開始・停止・再起動)が行えるアプリケーションを作成してるのだけどもドメイン・アカウント・パスワードを入力して作業する方法ってありませんか?
Process.Startでexeを指定すればできるんだけどももう少しスマートに一つのexeで実行したいのですが

78 :デフォルトの名無しさん:2007/01/22(月) 17:49:23
WMI
でできるのかどうかは知らんけど

79 :デフォルトの名無しさん:2007/01/22(月) 18:08:41
JavaのPipedReader, PipedWriterみたいなクラスってC#にはない?
パイプライン処理を実装したいんだけど・・・

80 :デフォルトの名無しさん:2007/01/22(月) 18:46:29
Javaつかったことないからよく分からんが
StreamReader, StreamWriterあたりじゃね

81 :79:2007/01/22(月) 20:26:16
うーん

PipedWriter(PipedReader)
引数にパイプ入力データであるPipedReaderオブジェクトを指定します。

Javaのはこういうコンストラクタがあってさ
これ使うとReaderのデータを自動的にWriterに渡せるんだよね
やっぱりないか・・・

82 :デフォルトの名無しさん:2007/01/22(月) 20:44:20
http://www.google.com/search?num=50&hl=ja&q=C%23%20%E3%83%91%E3%82%A4%E3%83%97


83 :デフォルトの名無しさん:2007/01/22(月) 22:13:28
>>79
http://msdn2.microsoft.com/ja-jp/library/336wast5(VS.80).aspx
多分無い。



84 :デフォルトの名無しさん:2007/01/22(月) 22:35:08
自分で作るとしてもそんな難しそうなものじゃないな

85 :デフォルトの名無しさん:2007/01/23(火) 01:09:52
C#のwindows form開発でsql server 2005のストアドプロシージャから
取得したデータをdatagridviewのソースに設定しています。

その際verbinary(max)列に画像を入れているものがあるのですが、
値がnullのものが勝手に「×」マークがついた画像としてdatagridviewに表示されてしまいます。

値がnullの場合はdatagridviewに何も表示しないようにするにはどうしたらいいのでしょうか?

86 :デフォルトの名無しさん:2007/01/23(火) 07:59:34
DataGridViewImageColumn の解説嫁

87 :デフォルトの名無しさん:2007/01/23(火) 10:20:44
>>69 なんか知らんがPDBがあるとPointF型のプロパティにsetするところで15ミリせくかかることがある。
それもリストでぐるぐる回すループの中。
PDBなくしたら快適そのもの。PDBがどうデバッガで絡んでるのか知らん。

88 :デフォルトの名無しさん:2007/01/23(火) 17:59:13
画像1から画像2を検索し、見つかった場合
その左上頂点座標を取得しようと考えています。

今は、
画像2の左上ピクセルを画像1内の全てのピクセルと照らし合わせ、
もし、一致した場合、さらに画像2の次のピクセルと、画像1の次のピクセルを照らし合わすという
作業を続けることによって判定しているのですが、
もっとスマートな実装、もしくは関数があるのでは?と思い質問させていただきました。
他の方法はあるのでしょうか?


89 :デフォルトの名無しさん:2007/01/23(火) 18:00:55
そんなけったいなものねえよ

90 :デフォルトの名無しさん:2007/01/23(火) 18:11:16
せめてポインタ使おうね
Get/SetPixelでやったら死ぬよ

91 :デフォルトの名無しさん:2007/01/23(火) 18:39:34
なんだよポインタってw

92 :デフォルトの名無しさん:2007/01/23(火) 18:41:41
ポインタはポインタじゃねえの?

93 :デフォルトの名無しさん:2007/01/23(火) 18:43:15
ウルトラ警備隊の車

94 :デフォルトの名無しさん:2007/01/23(火) 18:57:16
ハンティングにつれてくワンコのことじゃないの?

95 :デフォルトの名無しさん:2007/01/23(火) 19:05:39
一番簡単なのはGetPixel。その代わり遅い。
たぶんこれでやってると思うけど。

で、効率上げようとピクセルで判断するんじゃなくて
バイトデータで判断しろと言いたいのがたぶん >>90
でも色数等の比較環境(バイトデータの保存形式)を揃えないと意味が無い。





96 :デフォルトの名無しさん:2007/01/23(火) 19:12:40
対角線だけGetPixelでチェックして、あとはXORでbitbltして真っ黒になるかどうか見るとか。
まあDCが「真っ黒」かどうかどうやって判定するのか俺は知らないけどw

97 :デフォルトの名無しさん:2007/01/23(火) 19:17:39
>>88
ヒントだけですまん。

・画像1内の全てのピクセルと比較する必要はない
→せめて画像1の幅-画像2の幅でおk(高さも同様)

・画像の場合、隣のピクセルは同じ色の頻度が高いので無駄が多い
→数ピクセル飛ばしにチェックとか(0,8,16,32, 1,9,17,33, 2・・・)

もういらない?


98 :デフォルトの名無しさん:2007/01/23(火) 19:20:14
>>97
そんなトーシロー臭い「ヒント」いらんやろw

99 :デフォルトの名無しさん:2007/01/23(火) 19:26:34
質問みたらトーシローっぽいからいいんじゃね?

100 :デフォルトの名無しさん:2007/01/23(火) 19:35:36
>>97
前者はともかく後者はいたずらに精度を下げてるだけじゃない

101 :デフォルトの名無しさん:2007/01/23(火) 19:37:16
>>100
下げてないだろw

0→8→16→32→1→9・・・


102 :デフォルトの名無しさん:2007/01/23(火) 19:38:02
しかし、何のためにそんな判定が必要になるんだ
根本的なところから考え直したほうがいい気が駿河

103 :デフォルトの名無しさん:2007/01/23(火) 19:38:10
他人のレスに文句しか言わないヤツばっかりでワロタ

104 :デフォルトの名無しさん:2007/01/23(火) 19:40:05
>>102
「画像に含まれた画像を探す」じゃねーの?
例えばどういうこと?

105 :デフォルトの名無しさん:2007/01/23(火) 19:41:03
>>102

>>88はそれを聞いてるんだろーがw

106 :デフォルトの名無しさん:2007/01/23(火) 19:44:27
速度もとめるなら各行をBM法を使って探索すると良いよ!
列部分はほとんどかわらないけど、行部分が理論上高速になる。

と、書いてて思ったけど2次元に拡張したBM法ってない?
そういうのがあったら、列部分も高速化できると思うんだけど。

107 :デフォルトの名無しさん:2007/01/23(火) 21:00:23
>>88
要は、UWSCのCHKIMG関数のよう事をやりたいわけよね?
で、最終的に何がしたいんだい?

108 :デフォルトの名無しさん:2007/01/23(火) 21:13:32
>>107
いいから >>88 の最初の2行に答えてやろうよ

109 :デフォルトの名無しさん:2007/01/23(火) 21:27:46
だからbitbltでxorとれば判定できるでしょ

110 :デフォルトの名無しさん:2007/01/23(火) 23:49:08
1ピクセル目のいろで探して見つかったらXor?

111 :デフォルトの名無しさん:2007/01/23(火) 23:51:02
それの方が遅い気が・・・


112 :デフォルトの名無しさん:2007/01/23(火) 23:53:04
画像に含まれた画像を探すって
文字列含んだ画像からアルファベット探すようなものかな?

113 :デフォルトの名無しさん:2007/01/23(火) 23:55:13
実際にベンチとってみないことにはなんともいえんな。

114 :デフォルトの名無しさん:2007/01/24(水) 00:05:56
多分ポインタの単純なコードが速いと思うよ。

115 :デフォルトの名無しさん:2007/01/24(水) 01:00:52
だから具体的に教えろよ
それじゃ >>90 に戻るだけだろ

116 :デフォルトの名無しさん:2007/01/24(水) 01:09:02
xorするにしたってwidth*height*depth回の比較は必要になるじゃない
LockBitsでとったデータをポインタで手繰っていけばいい

117 :デフォルトの名無しさん:2007/01/24(水) 01:09:51
>>116
depthって釣り?


118 :デフォルトの名無しさん:2007/01/24(水) 01:11:32
>>116
結局 >>95 と同じレベルかよ

119 :デフォルトの名無しさん:2007/01/24(水) 01:15:10
C++/CLIでmemcmpでもしときゃいいじゃない

120 :デフォルトの名無しさん:2007/01/24(水) 01:28:40
高速画像マッチングアルゴリズムのコーディングなんだよな、本当は
素直にアクティブ探索法とかコーディングすればおk

121 :デフォルトの名無しさん:2007/01/24(水) 02:13:02
もう言語は関係なくアルゴリズムの話になるってわけだな

122 :デフォルトの名無しさん:2007/01/24(水) 07:15:31
C++かアセンブラでゴリゴリ書けば速くなるって結論でいいんじゃないかw

123 :デフォルトの名無しさん:2007/01/24(水) 07:33:01
Scan0などを使うとかの話じゃないの?

124 :デフォルトの名無しさん:2007/01/24(水) 09:39:50
ウォーリーを探せ

125 :デフォルトの名無しさん:2007/01/24(水) 09:42:09
カラー画像ならグレイスケールに変換してマッチングかければ速くなるお

126 :デフォルトの名無しさん:2007/01/24(水) 12:33:53
>>125
数学できなかった奴だねチミは。
写像って知ってるか?w

127 :デフォルトの名無しさん:2007/01/24(水) 13:03:09
(゚д゚)ハァ?

128 :デフォルトの名無しさん:2007/01/24(水) 13:56:44
写像となんの関係が?

129 :デフォルトの名無しさん:2007/01/24(水) 15:27:39
よくわからんが異なるカラー画像が同一のモノクロ画像に
なることがある、というのを1対多の写像、みたいにいいたいのでは
ないかと。



130 :デフォルトの名無しさん:2007/01/24(水) 15:31:43
違いが出た時点で違うことがわかるのが早いほうがいいなら
早い手段での比較を通して、最後に元画像でチェックする、とか?

131 :デフォルトの名無しさん:2007/01/24(水) 15:33:35
違うと分かるまで走査しなきゃいけないんじゃね?

132 :デフォルトの名無しさん:2007/01/24(水) 15:42:32
WebBrowserコントロールのUrlプロパティにローカルフォルダのパスを指定すると
エクスプローラと同じようにファイル操作ができますが、
このとき表示されているフォルダに関する情報(ファイル一覧など)を取得することは可能でしょうか?

133 :デフォルトの名無しさん:2007/01/24(水) 16:24:04
>>132
パスが分かってるのなら
普通にDirectoryInfoでファイル一覧とか取得できるけど?
選択されてるオブジェクトとか知りたいなら↓

リフレクション使う。
Shell32.dllとSHDocVw.dllを参照に追加して、

FieldInfo fi = typeof( System.Windows.Forms.WebBrowser ).GetField( "axIWebBrowser2", BindingFlags.NonPublic | BindingFlags.Instance );
SHDocVw.IWebBrowser2 wb = (SHDocVw.IWebBrowser2)fi.GetValue( this.webBrowser1 );
Shell32.IShellFolderViewDual2 folderView = wb.Document as Shell32.IShellFolderViewDual2;

MessageBox.Show( folderView.Folder.Items().Item(0).Path );

あとはこのShell32.IShellFolderViewDual2 を
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/objects.asp
を参考にしてごにょごにょ。


134 :デフォルトの名無しさん:2007/01/24(水) 16:54:24
>>126はちょっと早計だなw
グレイスケールにしてはいけない場合だって当然あるけど
そういう例外は除いて一般的に速くなるってことだろ

テンプレートの特徴量(例えばヒストグラム)を事前に作成しておいて
特徴量で比較する手法でも単純なテンプレートマッチングより速いぞ

135 :デフォルトの名無しさん:2007/01/24(水) 19:37:44
PenとかBrushっていうのは描画が終わり次第Disposeすべきなんだろうか?
Formとかと同じ寿命にするのはまずい?

ググると掲示板なんかで「すべき」と言ってる人が何人か見つかるけど、
根拠付きでそう書いてある文章は見つからない。

Bitmapあたりが「すべき」なのは直観的にも明らかなんだけど、
PenやBrushなんてせいぜい数100Byte程度のメモリしか消費しないように思えるんだけど。
生のWin32ではどうか知らないけど、.NETじゃ単なる「オブジェクト」だよね?

136 :デフォルトの名無しさん:2007/01/24(水) 19:50:55
ちゃう

137 :デフォルトの名無しさん:2007/01/24(水) 19:53:31
アンマネージリソースを持ってるクラスは基本的にIDisposable

138 :デフォルトの名無しさん:2007/01/24(水) 20:00:01
>>137 そういうことを聞いてるんじゃないだろうw

ブラシとかのオブジェクトはGDIリソースを消費して、
その数にはシステム単位で上限があるから
アプリケーションが解放しないで保持してると不足する可能性がある。


139 :デフォルトの名無しさん:2007/01/24(水) 20:11:22
>>138
つまり、PenやBrushは、「Graphicsの描画メソッドで使われる時だけ生のOSの
リソースを取得する」ような実装にはなってないってこと?

本当にそんな間抜けな実装をするだろうか?

140 :デフォルトの名無しさん:2007/01/24(水) 20:17:21
>「Graphicsの描画メソッドで使われる時だけ生のOSのリソースを取得する」

そんな間抜けな実装(゚听)イラネ


141 :デフォルトの名無しさん:2007/01/24(水) 20:18:08
なってないよ
そんなこと勝手にされたらかえって混乱する
だから必要に応じてDisposeが使えるようにしてある

142 :デフォルトの名無しさん:2007/01/24(水) 20:33:52
>>141
そうか回答ありがとう。

結構複雑な描画をするコントロールを自作してるんだけど、
その際ペンとかをフィールドで持ってコントロールと同じ寿命にすると楽だと思ったんだけどね。

線の色や太さやスタイルなんかは、Penのそれをそのまま公開するようにすれば済むから。
これがまずいとなると面倒だな。

143 :デフォルトの名無しさん:2007/01/24(水) 20:38:27
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-1418.htm
ここによるとそういう実装になってるらしい。
ただ正確な情報じゃないので実際どうなってるのかは知らないが。

まあ、仮にそうなってたとしてもそれは「実装の詳細」なわけで、
MSDNにそうしろと書いてある以上使ったらすぐ解放しなければならないのには変わりない。

144 :デフォルトの名無しさん:2007/01/24(水) 22:34:49
いや,かなり素直なGDI+のラッパーだよ
コンストラクタでペン作ってDisposeで破棄してるだけ

145 :デフォルトの名無しさん:2007/01/24(水) 22:45:16
Disposeパターンめんどい人は
using文をつかえ

146 :デフォルトの名無しさん:2007/01/24(水) 22:55:03
ところで、Pensから得られたペンはDisposeしなくていいんかいな?

147 :デフォルトの名無しさん:2007/01/24(水) 22:58:56
>>146
Pensで取得したものはDisposeしようとすると例外が発生すると思うけど。

148 :デフォルトの名無しさん:2007/01/24(水) 23:23:10
俺はデフォルト値にPens.Blackを使って嵌った
MSDNに一言も書いてないのは不親切だよな

149 :デフォルトの名無しさん:2007/01/25(木) 01:13:35
パスワード入力用に入力文字が'*'で表示されるテキストボックスを
作りたいんですけど、プロジェクトはクラスライブラリと
ユーザコントロールのどちらにすれば良いですか?

150 :デフォルトの名無しさん:2007/01/25(木) 01:17:29
TextBox.PasswordCharでは駄目なんか?

151 :デフォルトの名無しさん:2007/01/25(木) 01:17:45
TextBox.PasswordCharじゃいかんのか?

152 :デフォルトの名無しさん:2007/01/25(木) 01:19:43
どうしても自前で実装したければ、TextBoxを継承するのが普通だろうな
UserControlを使う必要はない

153 :デフォルトの名無しさん:2007/01/25(木) 02:39:25
>>152
あり得ない

154 :デフォルトの名無しさん:2007/01/25(木) 08:06:03
>>152
その通りなんだけど、>>153みたいに誤解してる人間が多いね何故か。

155 :デフォルトの名無しさん:2007/01/25(木) 09:14:19
>>133
ありがとうございます
参考にしてみます。

156 :デフォルトの名無しさん:2007/01/25(木) 14:44:44
C#でレイヤードウィンドウ使いたいときはAPIでUpdateLayerdWindowを呼ばないと駄目(´・ω・`)?

157 :デフォルトの名無しさん:2007/01/25(木) 16:15:05
GetGUIThreadInfoのAPI使ったサンプルってありませんか?

158 :デフォルトの名無しさん:2007/01/25(木) 17:06:48
>>156
yes

>>157
pinvoke.netでも見てみれば?

159 :デフォルトの名無しさん:2007/01/25(木) 21:03:14
グラフ理論を確かめたいので、
グラフ表示用のライブラリが欲しいのですが、
有りますでしょうか?

160 :デフォルトの名無しさん:2007/01/25(木) 23:41:47
ドトネット用のソフトあったけど忘れたw
馬鹿な答えで申し訳ないがどこかにあるよ。
ただしサイトは英文だった。

161 :デフォルトの名無しさん:2007/01/25(木) 23:47:25
C用のをDllImportするほうが現実的かも

162 :デフォルトの名無しさん:2007/01/26(金) 00:20:56
graphlayout でぐぐる。java だけど。

163 :デフォルトの名無しさん:2007/01/26(金) 05:56:35
つ【Graphviz】

164 :デフォルトの名無しさん:2007/01/26(金) 09:59:23
ぬこでもわかるC#出たけど読んだ人います?

165 :デフォルトの名無しさん:2007/01/26(金) 10:59:23
ゾウリムシでも分かる言語なので読んでない

166 :デフォルトの名無しさん:2007/01/26(金) 15:04:32
COMでLPIDISPATCHを受け取る関数があって
.NETのラッパーだとobject型で受け取るんです。
で実際に入ってるのはSystem._ComObjectなんですけど
このSystem._ComObjectを元のインターフェイス(のラッパー型)に変換するにはどうすればいいんでしょうか?

167 :デフォルトの名無しさん:2007/01/26(金) 15:56:40
インポータ使うか手動で必要なインターフェイス定義してキャスト。
あるいはリフレクションでも出来たかもしれない。

168 :デフォルトの名無しさん:2007/01/26(金) 18:47:23
>>164
本出たのか
猫のサイトを覗いてみたけど,CやC++を知ってる人向きな感じがした

169 :デフォルトの名無しさん:2007/01/29(月) 09:29:05
質問です。
timerなどのようなコントロールを作成することは出来るのでしょうか?
又、そういったソースなどはMSDNなどのサイトに置いてあるんでしょうか?
もしあるのでしたら、urlやググるキーワードなど教えていただけたら有り難いです。

170 :デフォルトの名無しさん:2007/01/29(月) 11:55:45
>>169
できる。というかSystem.Windows.Forms.Timerとか揃ってる。
サンプルソースくらいどこかにころがってるでしょ
とりあえずVC#Expressインストールして付属のMSDN読むのがお勧め


171 :デフォルトの名無しさん:2007/01/29(月) 12:04:55
http://www.koders.com/csharp/fidC6DDFAA5D78849154F79C51CAA282B0D60D61DD3.aspx

172 :デフォルトの名無しさん:2007/01/29(月) 18:36:43
ビジュアルを持たないコンポーネントを作りたいのか?

173 :デフォルトの名無しさん:2007/01/29(月) 19:01:49
ぬこならわかるC#

174 :デフォルトの名無しさん:2007/01/29(月) 19:11:42
いろいろ調べてみたのですが、わからないので教えてください。

現在作りたいもの
 Windows Media Encoder SDKを使ってAVIをWMVにエンコードするC#コンソールプログラム

やろうとしていること
 エンコード処理の終了イベントを取得してプログラムを終了させる。

困っていること
 Visual C# Express Edition上でデバッグ実行をすると正常にイベント処理されるが、
 CTRL+F5で実行すると、終了処理イベントを取得できない。このとき、開始イベントは
 取得できている。もちろん、コマンドラインからExe叩いても同じ。

行っていること
 このサイトにあるサンプルを単純にコピペして使ってます。
 ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmencode/htm/capturingeventscsh.asp
 唯一違うのは、エンコードしているファイルに音声がないので、SrcAudの処理部分はコメントアウトしています。

デバッグ実行ではイベントの割り込みがデバッガによって頻繁に行われると理解していて、そのため、イベントキュー内の
イベントが正常に処理されるのでは?と思ったのですが…。

何かヒントでもわかればと思っています。お願いします。




175 :デフォルトの名無しさん:2007/01/29(月) 19:34:38
2つ同時にエンコードとかしてないか?
あと途中でオブジェクトの寿命終わったりしてないか?

176 :デフォルトの名無しさん:2007/01/29(月) 20:00:55
別IDですが、174です。

>>175

えっと、二つ同時にとかはしていません。
ただ、途中でオブジェクトの寿命が終わってるのは可能性ありそうです。
が、オブジェクトの寿命ってどうやって延命するんでしょうか。。。?

調べてみます。


177 :デフォルトの名無しさん:2007/01/29(月) 20:01:34
ビルドは確実にできてる?

178 :デフォルトの名無しさん:2007/01/29(月) 20:08:27
>>177

はい。ビルドはできてます。
Exeも更新されています。


179 :デフォルトの名無しさん:2007/01/29(月) 20:12:44
「終了処理イベントを取得できない」てどういう意味?
いつまでも終了しないの?

180 :デフォルトの名無しさん:2007/01/29(月) 20:14:59
>>179

はい。そうです。
イベントごとに何かメッセージを出力させるようにして確かめたのですが、
Debug時には最後まで表示されるのですが、通常実行時には、いつまでたっても、
Whileループの中を回っていました。。。


181 :デフォルトの名無しさん:2007/01/29(月) 20:22:32
  _   ∩
( ゚∀゚)彡 おっぱい!Volatile!
 ⊂彡



182 :デフォルトの名無しさん:2007/01/29(月) 20:38:16
VistaにVSインストールしたら報告してね!

183 :169:2007/01/29(月) 20:54:42
>>170,172
スミマセン、timerのようなという表現は適切じゃなかったですね。
>>172さんの仰る通り、ビジュアルを持たないコントロールを作りたい、ということです。
例えば、サーバから定期的なメッセージをクライアントに送るようなアプリケーションがあったとして、
そのメッセージをイベントとして受け取れるようなアプリケーションが作れないか、と考えています。
こちらはまだC♯を触り始めたばかりで、これはあくまで習作なのですが。

184 :デフォルトの名無しさん:2007/01/29(月) 21:23:54
>>182
起動するたびに Run as Administrator してねって言われるよ

185 :デフォルトの名無しさん:2007/01/29(月) 21:24:19
ほんとかよ。

186 :デフォルトの名無しさん:2007/01/29(月) 21:25:55
たしか、for Vistaっていうバイナリ出てなかったっけか?

187 :デフォルトの名無しさん:2007/01/29(月) 22:09:55
列挙型
enum A : int
{
 a
}
でint b = (int)aと
aにキャストがいるのは何でなの
intだっつってるのに

188 :デフォルトの名無しさん:2007/01/29(月) 22:10:41
あ、int b = (int)A.a
ですね

189 :デフォルトの名無しさん:2007/01/29(月) 22:14:39
A.a は A 型であって int とは相互変換できるってだけだから

190 :デフォルトの名無しさん:2007/01/29(月) 22:27:04
なるほどダウンキャストがいるってことですね
トンクスです

191 :デフォルトの名無しさん:2007/01/29(月) 22:27:44
>>183
System.Window.Forms.Timer じゃないTimerがあるよ。
でも、その用途にTimerはオススメしないけど。


192 :デフォルトの名無しさん:2007/01/29(月) 22:31:45
だからTimerじゃないと(ry

193 :デフォルトの名無しさん:2007/01/29(月) 22:32:43
>>190
クラスツリーとしてはAはEnumの子で、EnumとInt32は兄弟だから、ダウンキャストとは言わんな

194 :192:2007/01/29(月) 22:33:28
なんだよ…orz

195 :デフォルトの名無しさん:2007/01/29(月) 23:51:21
>>181

ありがとうございます。
意味を理解しました。
で、解決しました。

ん〜、確かに…言われてみれば納得です。

マルチスレッドなプログラムや組み込み系のプログラムはあまりやったことが
なかったもので(←言い訳です)、今回は非常に勉強になりました。



196 :デフォルトの名無しさん:2007/01/30(火) 16:41:48
「コンテキストメニューをあるタイミングで表示→項目をユーザが選択」
という事はどうすればよいのでしょうか。

通常、ユーザが右クリックしてコンテキストメニューを開きますが
ここはプログラム側でコンテキストメニューを表示し、ユーザに選択を
促そうと思っています。

this.ContextMenuStrip.Show();
とやると、一瞬コンテキストメニューが表示されますが、次の処理へ
進んでしまい、ユーザが選択をする事が出来ません。

197 :デフォルトの名無しさん:2007/01/30(火) 17:16:38
次の処理へ進む?もしかしてアクティブ状態じゃないんじゃない?

198 :デフォルトの名無しさん:2007/01/30(火) 17:18:34
そうでもないな、ユーザーがマウスで何かしてる、とか?

199 :デフォルトの名無しさん:2007/01/30(火) 17:29:07
ContextMenuStripはWindowだから
Showしたあとにどこかのコントロールに
フォーカス合わせちゃってるんじゃないのか

200 :デフォルトの名無しさん:2007/01/30(火) 17:30:03
ContextMenuStrip -> ContextMenu

201 :デフォルトの名無しさん:2007/01/30(火) 18:13:54
>>190
enum A : intは継承とは違うぞ
形式が似てるだけ

202 :デフォルトの名無しさん:2007/01/30(火) 19:18:03
>>197>>198>>199
そんな高度な話ではなく、this.ContextMenuStrip.Show();
の次の行に制御がいってしまいました、という話だと思う。
イベントドリブンが解ってないという話。

>>196
コンテキストメニューを Show() したら、選択なりキャンセルなりされて
イベントが来るまで何もしないようにプログラムを作ればOK。

203 :デフォルトの名無しさん:2007/01/30(火) 19:26:46
ContextMenu は自分でトラッキングするけどContextMenuStripはしないという話か・・・

204 :デフォルトの名無しさん:2007/01/30(火) 21:43:21
>>196
普通はコンテキストメニューのShow()で右クリックのイベントはおしまい。
で、コンテキストメニューアイテムのクリックイベントに処理を書く。
その間、他の処理は何も出来ないようにするのはどうかと思う。
メニューアイテムに「キャンセル」作るなんで考えない方がいいよ。

Explorerでファイルやフォルダを右クリックして試してみ。


205 :デフォルトの名無しさん:2007/01/31(水) 09:38:32
ContextMenuStripはいろいろ困るんだよなぁ。AppBarでうまく表示できないとか。

206 :デフォルトの名無しさん:2007/01/31(水) 15:52:04
FormからFormをつくってTopmostで表示したらそっちにフォーカスが逝っちゃうんですが逝かないようにするにはどしたらいいでしょう?(´・ω・`)

207 :デフォルトの名無しさん:2007/01/31(水) 16:40:03
2.0ならやっとというかShowWithoutActivationプロパティが付いたので
これをオーバーライド。
じゃないならSetVisibleCoreのbase呼ぶ前あたりにShowWindowで
アクティブにせずに表示。

208 :206:2007/01/31(水) 16:47:03
ShowWithoutActivationは実装し呼ばれることも確認したんですが、trueかえしてもフォーカスロスとしてるっぽいです...
ShowWindowあたり見てみます。

209 :206:2007/01/31(水) 16:54:55
フォームを表示して、新しく表示されるフォームがactivateされず、元のフォームがフォーカスをロストすることはありえる?

210 :デフォルトの名無しさん:2007/01/31(水) 16:59:58
実際にそうなってるんならありえるんだろが

211 :デフォルトの名無しさん:2007/01/31(水) 17:11:53
>>209
現象を確認した。TopMostを指定するとShowWithoutActivation無視される。
一応MSにフィードバックしといてや。by Designか直さんやろうけど。

基本的なやりかたは以下のように。

[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_SHOWNOACTIVATE = 4;
protected override void SetVisibleCore(bool value) {
 if(this.ShowWithoutActivation && this.TopMost && !this.Visible && value) {
  ShowWindow(this.Handle, SW_SHOWNOACTIVATE);
 }
 base.SetVisibleCore(value);
}

書き捨てなのでもうちょいほかのプロパティとの整合性あわせて。

212 :デフォルトの名無しさん:2007/01/31(水) 17:16:50
>>204
だがエクスプローラの右ドラッグには「キャンセル」がありまする。
これきっと、メニューの外側を適当にクリックしてメニューを消すと
ファイルの選択が解除されるからだな。

213 :211:2007/01/31(水) 17:16:53
と思ったらなおらねぇ。
…あれだ、ひょっとしたらTopMost指定するとアクティブになる仕様かも…

214 :デフォルトの名無しさん:2007/01/31(水) 17:37:33
TopMostはSetWindowPosをSWP_NOACTIVATEなしで使ってた希ガス
だからTopMostもSetWindowPosでやるしかないんじゃないかね

215 :デフォルトの名無しさん:2007/01/31(水) 17:41:26
>>212
ドラッグ後に出るメニューはドラッグというアクションへの操作だろ。
右クリックはまだアクションを指定していないからキャンセルはおかしい。

216 :デフォルトの名無しさん:2007/01/31(水) 17:47:18
>>214
ごにょごにょして眺めてみた。っぽいなぁ。

217 :デフォルトの名無しさん:2007/01/31(水) 18:50:13
TopMostのままでShowWindow(SW_SHOWNOACTIVE)でよりあえずフォーカス動かなくなったようです(´・ω・`)
なんか汚いコードになってますがとりあえずはしのげそうです。

ただ今度はFormオブジェクトを作ってから初めてhandleから見そうなメソッド呼び出しでWM_CREATEがとんできてそのときにLocationがいじられるという現象が出てるがなぁ・・・orz

218 :デフォルトの名無しさん:2007/01/31(水) 20:00:31
VB的な解法であれだけど、コンストラクタでActiveForm取得しといて
OnShownでそいつにFocusしてやれば、実際の動作はともかく見た目的には
目的を達成できるよ。

219 :デフォルトの名無しさん:2007/02/01(木) 12:12:35
>>218
そうすると元もフォームのフォーカスが一度外れることになるので問題出ることがある。

220 :デフォルトの名無しさん:2007/02/01(木) 12:43:10
やれやれ読解力がない人って困るな。。

221 :デフォルトの名無しさん:2007/02/01(木) 22:13:53
こんばんわ。初書き込みです。
C#を最近、始めたばかりでド素人なのですが、
質問に答えてもらえるのでしょうか??


222 :デフォルトの名無しさん:2007/02/01(木) 22:15:00
前置きはいいので質問をどうぞ

223 :デフォルトの名無しさん:2007/02/01(木) 22:16:08
>>221
質問はこちらへどうぞ
http://pc10.2ch.net/test/read.cgi/tech/1168271508/l50


224 :デフォルトの名無しさん:2007/02/01(木) 22:19:33
ここも質問スレだろ
でも始めたばかりなら>>223

225 :デフォルトの名無しさん:2007/02/01(木) 22:23:38
C# 3.0って、VisualC#2005で使えるの?

226 :デフォルトの名無しさん:2007/02/01(木) 22:24:50
なぜググらないんですか?

227 :デフォルトの名無しさん:2007/02/01(木) 22:26:05
>>225
Visual Studio 2007(仮称)までお待ちください

228 :デフォルトの名無しさん:2007/02/01(木) 22:37:20
>>227
現状はコマンドラインのコンパイラも無いの?

229 :デフォルトの名無しさん:2007/02/01(木) 22:51:47
なぜ吊らないの?

230 :デフォルトの名無しさん:2007/02/01(木) 22:54:06
嘘つくんじゃねえよ

http://ja.wikipedia.org/wiki/Microsoft_Visual_Studio

>NET Framework 3.0に対応させるための Visual Studio 2005 extensions for .NET
>Framework 3.0 (WCF & WPF), November 2006 CTPとVisual Studio 2005 extensions
>for .NET Framework 3.0 (Windows Workflow Foundation)が現在、配布されている。

231 :デフォルトの名無しさん:2007/02/01(木) 23:03:25
クマー

232 :デフォルトの名無しさん:2007/02/01(木) 23:19:24
Visual Studio 2005 extensions for .NET Framework 3.0で、C#3.0使えるようになるの?

233 :デフォルトの名無しさん:2007/02/01(木) 23:30:28
C#と.NET Frameworkのバージョンは別物

234 :デフォルトの名無しさん:2007/02/01(木) 23:35:00
だから、C#3.0が、たまたまバージョン番号が同じ3.0であるだけの
Visual Studio 2005 extensions for .NET Framework 3.0
で使えるのかどうかを聞いている。

235 :デフォルトの名無しさん:2007/02/01(木) 23:42:29
ttp://msdn2.microsoft.com/en-us/netframework/aa904594.aspx

236 :デフォルトの名無しさん:2007/02/01(木) 23:48:38
ttp://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en

237 :デフォルトの名無しさん:2007/02/01(木) 23:56:36
で、結局Visual Studio 2005 extensions でC#3.0は使えるの?

238 :デフォルトの名無しさん:2007/02/01(木) 23:59:51
こたえはNOだグリフ

239 :デフォルトの名無しさん:2007/02/02(金) 00:00:01
むりだろw

240 :デフォルトの名無しさん:2007/02/02(金) 00:00:40
ラクダ式とかの奴じゃないの?

241 :デフォルトの名無しさん:2007/02/02(金) 00:03:04
今はまだ、C#3.0の処理系は存在しないってことでおk?

242 :デフォルトの名無しさん:2007/02/02(金) 00:05:21
C OMEGAとかLINQならあるよ。

243 :デフォルトの名無しさん:2007/02/02(金) 00:07:48
C OMEGAとかLINQって、C#3.0の処理系なの?

244 :デフォルトの名無しさん:2007/02/02(金) 00:15:28
プレビュー版のC#3.0コンパイラなら出回ってるな。
仕様どおりコンパイルできない場合があるみたいだけど

>>234
C#3.0やLINQは.NET Framework 3.5の機能

245 :デフォルトの名無しさん:2007/02/02(金) 00:18:41
ttp://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1103160&SiteID=1

246 :デフォルトの名無しさん:2007/02/02(金) 00:19:47
.NET Framework 3.5って、プログラミング言語(C#3.0)の処理系を含むの?

247 :デフォルトの名無しさん:2007/02/02(金) 00:23:01
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=1ff0b35d-0c4a-40b4-915a-5331e11c39e6&DisplayLang=en

248 :デフォルトの名無しさん:2007/02/02(金) 00:24:09
で、結局、今はまだ、C#3.0の処理系は存在しないってことでおk?

249 :デフォルトの名無しさん:2007/02/02(金) 00:25:27
何故読まない。

250 :デフォルトの名無しさん:2007/02/02(金) 00:26:28
自分で調べようともしないお前には存在してても使いこなせないから気にすんな

251 :デフォルトの名無しさん:2007/02/02(金) 00:26:54
結論

今はまだ、C#3.0の処理系は存在しない

252 :デフォルトの名無しさん:2007/02/02(金) 00:29:21
それでいいよ。
カエレ

253 :デフォルトの名無しさん:2007/02/02(金) 00:31:22
C#3.0の処理系って言ってる時点で初心者だけどな。

254 :デフォルトの名無しさん:2007/02/02(金) 00:32:22
>>246
コンパイラはフレームワークについてくるでしょ

255 :デフォルトの名無しさん:2007/02/02(金) 00:34:02
.NET Framework 3.5についてくるコンパイラはC#コンパイラだけ?

256 :デフォルトの名無しさん:2007/02/02(金) 00:34:47
糞初心者はかえれwww

257 :デフォルトの名無しさん:2007/02/02(金) 00:34:50
>>253
何て言えば初心者じゃないの?

258 :デフォルトの名無しさん:2007/02/02(金) 00:36:30
スルーしろよ。

259 :デフォルトの名無しさん:2007/02/02(金) 00:43:08
まとめ

・今はまだ、C#3.0の処理系は存在しない
・「C#3.0の処理系」という表現は適切である
・Visual Studio 2007(仮称)ではC#3.0が使えるようになる

260 :デフォルトの名無しさん:2007/02/02(金) 00:46:12
勝手に変な仮称つけないでOrcasって呼んでやれよ

261 :デフォルトの名無しさん:2007/02/02(金) 00:47:02
勝手に変なまとめするなよ。
>>247は無視か?

262 :デフォルトの名無しさん:2007/02/02(金) 00:48:32
まとめ ver.2

・今はまだ、C#3.0の処理系は存在しない
・「C#3.0の処理系」という表現は適切である
・Orcas(次期Visual Studio)ではC#3.0が使えるようになる

263 :デフォルトの名無しさん:2007/02/02(金) 00:55:20
ところで、ラムダ記法関連で出てくるジェネリクスクラスのFunc<>ってどうなってんの?

型パラメータを4個とか5個とか渡してるソースがあるんだけど、可変長型引数がサポートされてたりする?

264 :デフォルトの名無しさん:2007/02/02(金) 10:50:14
Vistaで少しは.NET Frameworkの動作速度は改善されるのでしょうか?
VB6よりもっさりしてるので凹みます。

265 :デフォルトの名無しさん:2007/02/02(金) 11:50:19
コンパネでWPFを使ってるらしいからランタイムの起動は体感的に速くはなったな

266 :デフォルトの名無しさん:2007/02/02(金) 12:38:15
>>262
まともに答えてやろうよ。

C# 3.0 のβ版ならすでに出てて、誰でもダウンロード可能
正式には .NET Framwork 3.5 (仮称)という形でリリース
予定では、3.5 は今年中(おそらくは Orcas と同時期かちょっと前)
3.5 には他に、VB 10 と Ajax ライブラリが付く
ちなみに、3.5 になっても CLR の部分は、2.0 のときのまま

>>264
ランタイム自体も改善されてるとは思うんだけど、
それ以上に、スーパーフェッチが効いてて速い臭い。

267 :デフォルトの名無しさん:2007/02/02(金) 12:51:04
VB6糞遅いじゃん

268 :デフォルトの名無しさん:2007/02/02(金) 12:57:43
>>264
速度が上がるわけない。

というか、いつの時代も新バージョンが出るたび「遅くて糞」とか言ってる人いるけど
当時のPCのスペック考えろ。いつの時代もハードよりソフトの方が進んでる。
VB6は1998年だけど、当時も「VisualStudio6.0重くて使えねー」なんてバカがいた。
ずーっと使うな。


当時の推奨システム
http://www.microsoft.com/japan/msdn/vs_previous/vstudio/vs6/pack/vbpack_p.htm



269 :264:2007/02/02(金) 13:38:02
>268
書き方悪くてごめんなさい。
VSじゃなくて、作成したアプリケーションのことです。

>265
そうですか!ちょっと期待しよっと。



270 :デフォルトの名無しさん:2007/02/02(金) 13:45:18
実行速度が遅いっていうやついったい何つくってんの?w

271 :デフォルトの名無しさん:2007/02/02(金) 13:45:42
作成したものがクソということは作ったやつが(ry

272 :デフォルトの名無しさん:2007/02/02(金) 13:49:57
今隣の席でグリッドに1万件表示が遅いって言ってるバカがいるw


273 :デフォルトの名無しさん:2007/02/02(金) 14:51:22
.NETを遅く感じるならとりあえずメモリをもっと積め。
Vistaでは腐るほどメモリがあるときのパフォーマンスが改善されているが、
はじめから少なめならVistaにしても効果なし。Vista自信もメモリ食いだから1GB〜程度は必要

274 :デフォルトの名無しさん:2007/02/02(金) 15:26:50
paint.netとかはSourceCode見た感じ大部分が
C#だがそんなに遅くないけども

275 :デフォルトの名無しさん:2007/02/02(金) 15:27:44
フォームベースのソフトなんだけど
デバッグ用にコンソール窓作ることは可能?

276 :デフォルトの名無しさん:2007/02/02(金) 15:43:08
>>275
テキストボックスじゃあかんの?

277 :デフォルトの名無しさん:2007/02/02(金) 15:45:20
COMのオートメーションでGUIはないんです。はい。

278 :デフォルトの名無しさん:2007/02/02(金) 15:49:54
APIで作るとか

279 :デフォルトの名無しさん:2007/02/02(金) 15:59:44
telnetにでも送ったらあかんの?

280 :デフォルトの名無しさん:2007/02/02(金) 16:25:56
それをやるならsyslogだべ

281 :デフォルトの名無しさん:2007/02/02(金) 16:27:40
Debug.Write()は効かないんだっけ?

282 :デフォルトの名無しさん:2007/02/02(金) 16:42:25
>>275
<OutputType>Exe</OutputType>

283 :デフォルトの名無しさん:2007/02/02(金) 16:53:49
↑こういう教え方するヤツ嫌い

284 :デフォルトの名無しさん:2007/02/02(金) 17:03:20
お前の好みなんぞ誰も聞いちゃおらん

285 :デフォルトの名無しさん:2007/02/02(金) 17:08:37
俺も嫌いだ。
知ってるけど教えないみたいだ

286 :デフォルトの名無しさん:2007/02/02(金) 18:16:08
.NET Frameworkの質問はここで良いでしょうか。

CheckedListBoxでいずれかのアイテムのチェック城外が変更されたときに、
既にチェックされたアイテムの一覧を取りたいのですが、ItemCheckイベントだと、
チェックされた/チェックが外れた瞬間のアイテムが取得できません。
適当に合成してやれば良いのかもしれませんが、他に何か良い方法はないでしょうか?

287 :デフォルトの名無しさん:2007/02/02(金) 18:22:51
CheckedIndices, CheckedItems?

288 :デフォルトの名無しさん:2007/02/02(金) 19:12:30
>>286
こっちのがいいよ

ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/

289 :デフォルトの名無しさん:2007/02/02(金) 19:31:57
Consolo console = new Console();

290 :デフォルトの名無しさん:2007/02/02(金) 19:42:34
型または名前空間名 'Consolo' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
静的クラス 'System.Console' のインスタンスを作成することはできません。

291 :デフォルトの名無しさん:2007/02/02(金) 19:56:58
>>263
> 型パラメータを4個とか5個とか渡してるソースがある
Func<A,R>しか見当たらないんだけど
ソースは?

292 :デフォルトの名無しさん:2007/02/02(金) 20:19:30
LINQ Preview (May 2006) から System.Query.dll

namespace System.Query
{
    public delegate T Func<T>();
    public delegate T Func<A0, T>(A0 arg0);
    public delegate T Func<A0, A1, T>(A0 arg0, A1 arg1);
    public delegate T Func<A0, A1, A2, T>(A0 arg0, A1 arg1, A2 arg2);
    public delegate T Func<A0, A1, A2, A3, T>(A0 arg0, A1 arg1, A2 arg2, A3 arg3);
}

と、いうことのようだ。

293 :デフォルトの名無しさん:2007/02/02(金) 21:30:35
>>288
どうも

294 :デフォルトの名無しさん:2007/02/02(金) 21:36:15
原始的すぎるなあw

295 :デフォルトの名無しさん:2007/02/02(金) 21:57:14
C#3.0ではCLRに手を加えないからなあ

296 :デフォルトの名無しさん:2007/02/03(土) 01:17:32
>>292
し・・・しょっぱい

297 :デフォルトの名無しさん:2007/02/03(土) 15:53:49
ジェネリックでは、型パラメータを参照型で展開できない。
あ、ここでの参照型ってのは、クラスとかじゃなくて
ref とかのメソッドパラメータとしての参照型のことね。

参照型とそうでないものの組み合わせを定義するのは
現実的じゃないよな〜

298 :デフォルトの名無しさん:2007/02/03(土) 16:03:32
refは型ではなく実/仮引数を修飾してるんだから当然だろ

299 :デフォルトの名無しさん:2007/02/03(土) 16:06:33
>>297
refは参照渡しと呼んでくれ。

300 :デフォルトの名無しさん:2007/02/03(土) 16:10:45
>>297
どういう場合にそんな珍妙なことがしたくなるの?

301 :デフォルトの名無しさん:2007/02/03(土) 16:24:27
>>298
知らないなら黙ってろ。


302 :デフォルトの名無しさん:2007/02/03(土) 16:27:26
通常の型名に&をつけたものが参照タイプ
汎用デリゲートで参照渡しのあるメソッドに対応したい場合

303 :デフォルトの名無しさん:2007/02/03(土) 16:30:41
CLRでは型を派生させてるが、C#では引数の修飾だから
流石にそんなことできると気持ち悪いな

304 :デフォルトの名無しさん:2007/02/03(土) 16:47:55
ポインタ型も型パラメータに使えないしな

305 :デフォルトの名無しさん:2007/02/03(土) 16:53:33
デリゲート定義するときに参照渡しがあると汎用的なので対応できないんだよね

306 :デフォルトの名無しさん:2007/02/04(日) 00:23:31
いつも思うんだけど、そんなこと言語開発者だってわかってると思うんだが…

俺はMSのような優秀な(中には癖のある)人間が沢山いる大企業が
いろんな意見を纏めて最終的に一つの製品としてリリースする以上、
俺が抱く疑問や不満は既に議論されていて、そうせざるを得なかった
理由があるんだと思う。



307 :デフォルトの名無しさん:2007/02/04(日) 00:32:58
ジェネリックの型にrefを認めたら
List<ref int>なんかも当然認めないといけない
そうなったら,ref int型をメンバに持てるようにしないといけない
破綻するな

308 :デフォルトの名無しさん:2007/02/04(日) 00:53:08
「できなかった」んじゃなくて「しなかった」って考えるのが普通だわな

309 :デフォルトの名無しさん:2007/02/04(日) 01:27:51
var d = new[] { 1, "one", 2, "two" }; がエラーになるのは痛すぎる。

何で object[] にしないんだよ。アホか。

310 :デフォルトの名無しさん:2007/02/04(日) 01:46:36
object型だということを忘れそうだからじゃないか?

311 :デフォルトの名無しさん:2007/02/04(日) 01:52:03
>>309
なにこれ?

312 :デフォルトの名無しさん:2007/02/04(日) 01:53:29
そもそも「暗黙の型付け」なんだから、忘れるも何もないだろ。

313 :デフォルトの名無しさん:2007/02/04(日) 02:20:04
プログラミング初心者です。

えっと、
2つのテキストファイルを読み込んで、
それぞれ配列に格納して、
出来た配列Aと配列Bのi番目の要素同士の和を求めたいのですが、
どうすればいいのでしょうか??

どなたかよろしくお願いします。

314 :デフォルトの名無しさん:2007/02/04(日) 02:20:06
型推論ってなんかやだな


315 :デフォルトの名無しさん:2007/02/04(日) 02:21:29
>>313
>どうすればいいのでしょうか??

って、どうしてほしいんだよ。
その文章の各ステップ全部分からないのか?


316 :デフォルトの名無しさん:2007/02/04(日) 02:29:44
ファイル読み込むまでは出来ます。

317 :デフォルトの名無しさん:2007/02/04(日) 02:47:49
>>316
テキストファイルの各行が配列に入ってるわけだな?
で、その配列の型は何よ。

ようは、「要素同士の和」というのは文字列を連結することを言っているのか
それともテキストファイルには数値しか入ってなくて、数値として和を求めたいのかどっち?

318 :デフォルトの名無しさん:2007/02/04(日) 03:06:58
宿題の悪寒

319 :デフォルトの名無しさん:2007/02/04(日) 03:12:13
>List<ref int>なんかも当然認めないといけない
>そうなったら,ref int型をメンバに持てるようにしないといけない
>破綻するな

参照渡しは型で言うとちゃんと参照タイプになってるていってんのに。
ポインタ型とかと同じ扱いだよ、どっちもジェネリックでは対応していないが。

もちろんいろいろ理由はあるだろうし、どこかで破綻してしまうのかもしれないが、
>そうなったら,ref int型をメンバに持てるようにしないといけない
こんなあほな理由ではないだろう。
参照型やポインタ型をメンバに出来る言語だってあるわな


320 :デフォルトの名無しさん:2007/02/04(日) 03:15:17
あと、しなかった理由があるんだろうことぐらい分かっとる。
できないのが残念だなってことだ。


321 :デフォルトの名無しさん:2007/02/04(日) 03:18:36
>>313
宿題スレじゃねーんだよ

322 :デフォルトの名無しさん:2007/02/04(日) 03:20:38
出来る言語があるから、は CLI に機能を盛り込む理由にはならんだろう
クロスランゲージを指向してるんだから公約数的な方向に向かうのは必然

323 :デフォルトの名無しさん:2007/02/04(日) 03:23:40
誰か>>313をLinqで解く強者はいないか?
できそうな気がした

324 :デフォルトの名無しさん:2007/02/04(日) 03:51:36
>>323
普通に for ループでいいだろ。

325 :デフォルトの名無しさん:2007/02/04(日) 05:00:15
テキストファイルには数値しか入っていません。
数値同士の和を求めたいんです。

326 :デフォルトの名無しさん:2007/02/04(日) 05:09:48
そうですか。頑張って下さい。

327 :デフォルトの名無しさん:2007/02/04(日) 05:28:28
頑張れ

328 :デフォルトの名無しさん:2007/02/04(日) 06:11:22
>>325
計算機使え

329 :デフォルトの名無しさん:2007/02/04(日) 10:21:59
>>322
CLIレベルではmanaged pointerが存在するが、
どうしてC#で使えないのかって話をしてたんじゃないのか?

330 :デフォルトの名無しさん:2007/02/04(日) 10:23:45
>>325
ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/


331 :デフォルトの名無しさん:2007/02/04(日) 12:05:16
初心者スレに誘導しても宿題には解答しないよ。

332 :デフォルトの名無しさん:2007/02/04(日) 14:04:03
C#って静的メンバを表すためのthisのようなキーワードってなかったっけ?
仮引数で隠蔽されるときにクラス名つけるのって今ひとつ美しくないんだけど。。

333 :デフォルトの名無しさん:2007/02/04(日) 14:10:12
C#のメニューは
MFCみたいに特定のIDにするとデフォルトの終了ハンドラが呼ばれるとかないですか?

334 :デフォルトの名無しさん:2007/02/04(日) 14:16:14
ないですね

335 :デフォルトの名無しさん:2007/02/04(日) 14:19:49
>>333
そこらへんは自由

336 :デフォルトの名無しさん:2007/02/04(日) 17:16:07
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
〜略〜
</PropertyGroup>
〜略〜
</Project>
みたいなXMLファイルがあるんです。

XmlDocument document = new XmlDocument();
document.Load("hoge.csproj");
てな具合で開くんです。

XmlNodeList nodes = document.GetElementsByTagName("PropertyGroup");
だとヒットするんです。

XmlNodeList nodes = document.SelectNodes("/Project/PropertyGroup");
とXPathで検索しても見つからないんです。
どうしてでしょうか?

337 :デフォルトの名無しさん:2007/02/04(日) 17:31:09
mlns="http://schemas.microsoft.com/developer/msbuild/2003"

338 :デフォルトの名無しさん:2007/02/04(日) 17:31:40
名前空間が付いてるだろ。
XmlNamespaceManagerつかうといい

339 :デフォルトの名無しさん:2007/02/04(日) 17:41:21
流れ的にはこんな感じ
XmlDocument document = new XmlDocument();
const string xmlns = "http://schemas.microsoft.com/XXXXXXXXXXX";
XmlNamespaceManager nsmgr = new XmlNamespaceManager(document.NameTable);
nsmgr.AddNamespace("AAA_AAA", xmlns);
document.Load("hoge.csproj");



XmlNodeList xnl = xmlElement.SelectNodes("AAA_AAA:tag_name", nsmgr);


340 :デフォルトの名無しさん:2007/02/04(日) 17:52:15
できました。どうも。

341 :デフォルトの名無しさん:2007/02/04(日) 23:03:33
変数の宣言とか基本的なことは大体理解したんでGUIが詳しく載ってる参考書探してるんだけどどれがいい?
ツールつくったりするだけなんで、Webとかデータベースとかはいらん。

342 :デフォルトの名無しさん:2007/02/04(日) 23:40:59
>>341
猫でもわかるプログラミング C#フォーム編INDEX
ttp://www.kumei.ne.jp/c_lang/index_form.html

343 :デフォルトの名無しさん:2007/02/05(月) 00:30:05
詳しくないぞそれw

2005のフォームのコントロールに詳しい本ってたぶんないんじゃないかな。
洋書は知らないけど

344 :デフォルトの名無しさん:2007/02/05(月) 11:00:59
自動テストのために、ランダムな日本語文字列を作りたいのですが、何か良い方法ないでしょうか?
引数に文字コードと文字列長を指定したら、適当なランダムな文字列が返ってくるような……。

英数だけだったら配列に入れてランダムに取り出したり、用意されているパスワードジェネレータを
使えば良いと思いますが、
ひらがなだけでなく、漢字なんかもあるので、日本語でその方法はちょっと……。



345 :デフォルトの名無しさん:2007/02/05(月) 12:57:50
IExplorerBrowser
http://msdn2.microsoft.com/en-us/library/ms645992.aspx
とか
IExplorerBrowserEvents
http://msdn2.microsoft.com/en-us/library/ms645980.aspx

を使ってみたいんだけど、
インターフェイスやイベントシンク自分でごにょごにょしたりしないと駄目?
なんかのdllを参照に追加して一発、ってわけにはいかないの?

346 :デフォルトの名無しさん:2007/02/05(月) 17:30:56
DataGridViewのボタンになんらかのアクションを設定するにはどーしたらいいんでしょう…


347 :・_・;<あぼーん:2007/02/05(月) 23:29:36

何かDataTable(DataSet)関連で上級者レベルの技はありますか?

他のヤツが知らない様な上級技を教えて下さい。

348 :デフォルトの名無しさん:2007/02/05(月) 23:40:40
>>344
お前このスレの 419 だろ。
VBスレに誤爆したうえに、答えてもらっといて無視かよ。

http://pc10.2ch.net/test/read.cgi/tech/1168585041/

349 :344:2007/02/05(月) 23:56:11
>>348
なんじゃそりゃ〜。VBスレなんて見たこともありません。
なんちゅう言いがかりですか。VBスレで回答したのはあなた様ですか?
老婆心ながら、もし、返事やお礼の言葉が欲しいなら、2chで回答するべきではないかと。

私の求めているのは、およそありうる文字が、等しい確率で出てくる方法です。
やっぱり、UTF8に限定して、バイト列で生成してUTF8でエンコードとかしか無いですかね。

>>345
確か、何かのCOMを参照追加でできますよ。
配布するときに、それも付けなくちゃいけなくて、8MBぐらいあって凹んだ記憶が。
IEコンポーネントでググれば出てくるはずです。


350 :デフォルトの名無しさん:2007/02/06(火) 00:05:22
>>349
>およそありうる文字が、等しい確率で出てくる方法
是非結果をここに書いておいてくれ



期待はしてないがな

351 :デフォルトの名無しさん:2007/02/06(火) 00:09:38
>>349
16ビットの乱数出してCharにキャスト。
それをJIS X 0208に含まれる文字が出るまで繰り返せばいい。

352 :デフォルトの名無しさん:2007/02/06(火) 00:19:16
>>349
そんなに必死になると余計…ま、いいやw

だいたい、自動テストくらいでそんな厳密にやる必要があるのかよ。
地名や氏名なんかはどっかの資料から引っ張ってきて、適当にくっつければいいじゃん。



353 :デフォルトの名無しさん:2007/02/06(火) 00:24:00
>>349
質問しといてその言い方はないわ

354 :デフォルトの名無しさん:2007/02/06(火) 00:30:27
まぁ>>348も見事な勘違いだろうけどな。
質問内容似てるけど、344の解答には全然なってねぇし。

355 :デフォルトの名無しさん:2007/02/06(火) 00:57:15
あっちよりもちょっと詳しく説明しただけに見えなくもないな。
ハッキリ言ってどうでもいいんだが、349の言い方は気に入らないw

356 :デフォルトの名無しさん:2007/02/06(火) 00:59:37
>老婆心ながら、もし、返事やお礼の言葉が欲しいなら、2chで回答するべきではないかと。

質問者のセリフかよ…

357 :デフォルトの名無しさん:2007/02/06(火) 01:28:13
お前等食いつきすぎ・・・
ゆとりの実力はこんなもんじゃないぞ

358 :デフォルトの名無しさん:2007/02/06(火) 09:34:11
Vista入れてみたけど、自作のC#アプリの動作がなにげに変だな。
APIも結構使ってるんで、.Net Framework自体の問題かどうかは
すぐにはわからんけど。修正めんどくさい...

359 :デフォルトの名無しさん:2007/02/06(火) 20:39:10
立ててみたよ
---
ふらっとC♯, C#(初心者用) Part13
http://pc10.2ch.net/test/read.cgi/tech/1170761729/

360 :デフォルトの名無しさん:2007/02/06(火) 23:32:19
>>359


361 :デフォルトの名無しさん:2007/02/07(水) 01:59:36
ちょいと皆様の知恵を拝借したい

struct aaa
{
public byte xxx;
public ushort[] yyy;
}

こんな感じのbyte型とushort配列を持った構造体を構造体配列で使用したんだが、
出来るだけ多くの要素を持たせたくて

dic[] aaa1 = new aaa[ulong.MaxValue];

ってしたら案の定オーバフローしたんだよね
この場合いくつの要素数まで宣言できるのか教えて欲しい
ちなみにyyyは256個の要素を持たせる予定

362 :デフォルトの名無しさん:2007/02/07(水) 02:00:52
ageてしまった
スマン

363 :デフォルトの名無しさん:2007/02/07(水) 02:23:07
そんな無茶なことしないで、事前に必要な要素数の見当を付けとくか、
見当つかなければList<aaa>でAddするとかしたほうがいいと思う。


364 :デフォルトの名無しさん:2007/02/07(水) 02:47:00
メモリによるとしか言いようがないな…


365 :デフォルトの名無しさん:2007/02/07(水) 09:44:50
Wordに指定したファイルパスを渡して起動したいのですが、うまくいきません。
こういう感じで渡してみました。
System.Diagnostics.Process.Start("WinWord.exe", FilePath);
どうやって渡してやればいいでしょうか?
よろしくお願い致します。


366 :デフォルトの名無しさん:2007/02/07(水) 10:26:26
>>365
「うまくいきません」じゃわかんねえよ
何でエラーメッセージとか書かねえのかね
FilePathに空白が含まれてるなら""で囲え

367 :365:2007/02/07(水) 10:28:54
解決しました。
psi.Argumentsに渡さないとだめなんですね。


368 :デフォルトの名無しさん:2007/02/07(水) 16:43:09
>>361
スタックは約1MBのはず

369 :デフォルトの名無しさん:2007/02/07(水) 17:39:02
配列は参照型だからヒープに確保されるでしょ

370 :デフォルトの名無しさん:2007/02/07(水) 18:09:08
どっちにしてもulong.MaxValueはありえない

371 :デフォルトの名無しさん:2007/02/07(水) 18:17:43
ペタの2個上ってなんだっけなってレベルだよな

372 :デフォルトの名無しさん:2007/02/07(水) 18:20:51
東洋の神秘にたよるか
・・・那由他、不可思議、無量大数

373 :デフォルトの名無しさん:2007/02/07(水) 19:05:46
30エクサバイトくらい?

374 :デフォルトの名無しさん:2007/02/07(水) 19:08:11
日付2桁とかみたいに後々破綻するから数値の上限とかは制限しないほうがいい

375 :デフォルトの名無しさん:2007/02/07(水) 19:24:18
HDのクォータ機能でサイズ制限にPB,EBがあって
この機能使ってるヤツがどれだけいるんだろと思った

376 :デフォルトの名無しさん:2007/02/07(水) 19:26:33
ネタはいいよ。

377 :デフォルトの名無しさん:2007/02/07(水) 19:59:25
あほ

378 :デフォルトの名無しさん:2007/02/07(水) 21:29:53
あほのさかた

379 :デフォルトの名無しさん:2007/02/08(木) 16:44:26
C#だと、ベースクラスが引数のないコンストラクタをもつ場合、派生クラスをnewするとそのベースクラスのコンストラクタが勝手に呼ばれちゃいますよね?
このときにベースクラスのコンストラクタが使うメンバをその前に初期化して動作を変えたいんですが可能でしょうか?
ちなみにベースクラスは自分で作ってるものでないのでいじれません(´・ω・`)

380 :デフォルトの名無しさん:2007/02/08(木) 17:00:47
むり。

381 :デフォルトの名無しさん:2007/02/08(木) 17:01:36
無理。第一お作法が悪い。

382 :デフォルトの名無しさん:2007/02/08(木) 17:15:04
無理なのは分かったがお作法が悪いというのには納得できん(`・ω・´)
C++で出来たことを何で削ったのか思想を誰か教えてくれ。

383 :デフォルトの名無しさん:2007/02/08(木) 17:16:09
作ったウィンドウがAlt+TABで表示されてしまうんですが出さないためにはどうしたらいいんでしょう。

384 :デフォルトの名無しさん:2007/02/08(木) 17:16:45
>C++で出来たことを何で削ったのか思想を誰か教えてくれ。

とても興味があります。
ぶしつけなお願いで申し訳ありませんが、
もしよろしかったら
どうやってやってたのか書いていただけませんか。

385 :デフォルトの名無しさん:2007/02/08(木) 17:20:17
何か大きな勘違いをしてるようだw

386 :デフォルトの名無しさん:2007/02/08(木) 17:23:51
>>383
FixedToolWindow or SizableToolWindow


387 :デフォルトの名無しさん:2007/02/08(木) 17:26:46
>>382
思想なんかMSFTの中の人しか答えられんだろ。
まあ、ILレベルで弄ればできるから頑張ってくれ

388 :デフォルトの名無しさん:2007/02/08(木) 18:28:55
public Hoge():_hogeValue("hoge"),HogeBase(){};
こんな感じにかけたっけ?

389 :デフォルトの名無しさん:2007/02/08(木) 18:32:21
今の時代protectedすら避けられているのにベースクラスのメンバなんか

390 :デフォルトの名無しさん:2007/02/08(木) 18:43:57
あほか。ベースクラスがメンバ使っててほかの手段を提供してなかったらいじるしかなかろうが。

391 :デフォルトの名無しさん:2007/02/08(木) 18:45:03
>>388
ソースコード上の順序に関わらず、コンストラクタ初期化子よりもベースクラスのコンストラクタが先に呼ばれるよ。

392 :デフォルトの名無しさん:2007/02/08(木) 18:46:03
リフレクションでタシーロが今の主流

393 :デフォルトの名無しさん:2007/02/08(木) 20:03:30
>>388>>391
先走らずに382の返事を待とうじゃないか。

394 :デフォルトの名無しさん:2007/02/08(木) 20:44:29
っていうか、初期化も糞もコンストラクタ呼ばれる前なんか
その肝心の初期化の対象がそもそも存在してないと思うんですが。。

395 :デフォルトの名無しさん:2007/02/08(木) 21:18:25
>>394
適当なこと言うなよ

396 :デフォルトの名無しさん:2007/02/08(木) 21:26:08
>>379
メンバってのがメンバフィールドのことを意味してると仮定して、
それが可能ってことは親クラスがフィールドの初期化を忘れてるってことにならないかなあ。

397 :デフォルトの名無しさん:2007/02/08(木) 21:30:24
ベースクラスのメンバの初期化が行われて、かつベースクラスのコンストラクタが
動く前に割り込んで独自の処理を行いたいということなんじゃないだろうか。

C++では出来るということだから、それと同様にやればいいと思うが。

398 :デフォルトの名無しさん:2007/02/08(木) 21:58:59
.class public Test.BaseClass {
  .field family int32 Member
  .method public specialname instance void .ctor() cil managed {
    ldstr "BaseClass::.ctor()"
    call void [mscorlib]System.Console::WriteLine(string)
    ldarg.0
    ldfld int32 Test.BaseClass::Member
    call void [mscorlib]System.Console::WriteLine(int32)
    ret
  }
}
.class public Test.DerivedClass extends Test.BaseClass {
  .method public specialname instance void .ctor() cil managed {
    ldstr "DerivedClass::.ctor()"
    call void [mscorlib]System.Console::WriteLine(string)
    ldarg.0
    ldc.i4 42
    stfld int32 Test.BaseClass::Member
    ldarg.0
    call instance void Test.BaseClass::.ctor()
    ret
  }
}

.method void Main() cil managed {
  .entrypoint
  newobj instance void Test.DerivedClass::.ctor()
  pop
  ret
}

399 :デフォルトの名無しさん:2007/02/08(木) 22:03:01
BaseClassがメンバを初期化してないな。

400 :デフォルトの名無しさん:2007/02/08(木) 22:16:53
スタティックメンバだと考えたらどうだろう。
それならば変更するタイミングが欲しいという、
まぁ妥当かもしれない質問になるような気がする。
んで>>398のようにアセンブラで書けばOK、と。

401 :デフォルトの名無しさん:2007/02/08(木) 22:29:28
それならコンストラクタをprivateにしてやって、
Createとか静的メソッドで用意すればいいだけでは。

402 :デフォルトの名無しさん:2007/02/08(木) 22:30:40
そんな面倒なことしなくても、C++でやっていたときと同様にすればできると思うな。

403 :デフォルトの名無しさん:2007/02/08(木) 22:41:39
そうだな
だぶん>>382なら余裕な筈

404 :デフォルトの名無しさん:2007/02/08(木) 23:37:20
UACが効いてる状態のVista上でProcess.MainWindowHandleに触ると.NET1.1だと例外が返ってくるんだけどパッチとかないよね?
1.1もサポートするって書いてあるから試してみたら落ちてくれて、
仕方なく2005でビルドしてデバッグしてみたら2.0なので落ちなくなってちょっと悩んだよ。

405 :デフォルトの名無しさん:2007/02/09(金) 01:42:43
なんでC++厨はアホみたいな事にこだわるの?

406 :デフォルトの名無しさん:2007/02/09(金) 01:48:38
アホみたいな事にこだわらないとC++の存在価値が無くなるから

407 :デフォルトの名無しさん:2007/02/09(金) 02:16:10
WebBrowserでYouTubeとか開いて、Flashで書かれたプレイヤのスライダとか
マウスでいじると、2回目はいじれない問題って既出?

focusの問題みたいなのだけど。

あとWebBrowserでcookie設定ってできないの?

408 :デフォルトの名無しさん:2007/02/09(金) 03:04:17
>>407
前者のは俺も悩んでる
後者のは API の SetCookie でOK

409 :デフォルトの名無しさん:2007/02/09(金) 03:24:55
>>408
> 前者のは俺も悩んでる

Timerでもまわして定期的にwebBrowser.Focus() 呼べば一応は解消するんだけど
これだといろいろ不都合があって…

> 後者のは API の SetCookie でOK

? 詳しく教えて。

WebBrowserの各インスタンスごとに固有のcookieを食わせたり吐かせたりしたいんだ。


410 :デフォルトの名無しさん:2007/02/09(金) 09:11:17
いいからFormがWindowをクリエイトする前に内部のプロパティを与えられた引数でいじくるすべを教えろボケ。


411 :デフォルトの名無しさん:2007/02/09(金) 09:56:36
>>410
C++でやればいいじゃないか

412 :デフォルトの名無しさん:2007/02/09(金) 13:22:37
>>410
親が初期化する前に弄ったって元に戻されると言ってるじゃないか

413 :デフォルトの名無しさん:2007/02/09(金) 14:08:47
メンバにもたせて、自分でタイミング見計らって更新とかは?

414 :デフォルトの名無しさん:2007/02/09(金) 16:39:12
>>410
コンストラクトだけして、
あとはAPIでShowWindow(...)

Formクラスの内部の状態がおかしくなってレイアウト崩れたりするけど。


415 :デフォルトの名無しさん:2007/02/09(金) 21:45:52
DevPartner 8.0 の評価版ダウンロードしたいけど
個人情報ださなあかんねんなー
会社名まで必要だしなー
なんだか憂鬱だ

416 :デフォルトの名無しさん:2007/02/10(土) 00:38:51
BandObject を使った IEツールバーで、
JavaScript や ActiveX の実行を切り替えるには
どうしたらよいでしょうか?

DISPID_AMBIENT_DLCONTROL を処理すれば
良いと思うのですが、ぐぐっても見つかるのは
IOleClientSite を実装する例ばかりで、
IEツールバーから操作する例は見つけられませんでした。




417 :デフォルトの名無しさん:2007/02/10(土) 01:11:33
>>416
IInternetSecurityManagerだっけか?
IInputObjectSite→IServiceProviderにキャストしてQueryServiceすれば取れるんじゃね
たしかCodeZineかCodeProjectかにそのままずばりのサンプルがあった気がするよ

418 :デフォルトの名無しさん:2007/02/10(土) 14:06:16
私には夢があるけど、C#にはないね

419 :デフォルトの名無しさん:2007/02/10(土) 17:13:08
たたくよ

420 :デフォルトの名無しさん:2007/02/10(土) 17:46:29
しばくぞ

421 :416:2007/02/10(土) 18:11:02
>>417
やってみます。ありがとうございました。


422 :デフォルトの名無しさん:2007/02/11(日) 00:03:14
耳から手入れて奥歯ガタガタいわしたろか

423 :デフォルトの名無しさん:2007/02/11(日) 01:11:46
Vistaのエクスプローラ、assemblyフォルダとか行くと
詳細ペインとか死ぬな。前のフォルダで選択したもののままになる。
まだバグバグってことか

424 :デフォルトの名無しさん:2007/02/11(日) 08:29:20
>>422
解剖学的には、あながち間違っていない。

425 :デフォルトの名無しさん:2007/02/11(日) 08:48:31
伝統芸能ですから

426 :デフォルトの名無しさん:2007/02/11(日) 09:03:53
吉本乙

427 :デフォルトの名無しさん:2007/02/11(日) 15:33:47
>>423
有料βです
SP1までお待ちください

428 :デフォルトの名無しさん:2007/02/11(日) 16:40:07
実装のめんどくささを除いたらすべてのメソッド定義をインターフェースベースでやったほうがよさそうだ・・・
クラスとインターフェースを混在させるとどこかで破綻する・・・(´・ω・`)

429 :デフォルトの名無しさん:2007/02/11(日) 16:45:42
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Project1
{

public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

}
}

class Program
{
public static void Main()
{
Application.Run(new Form1());
}
}
}

public partial class Form1 : Formとclass Program
の順番かえるとデザインができないVS2005C#nに感動した

430 :デフォルトの名無しさん:2007/02/11(日) 16:46:30
それでInitializeComponent(); とは何をしてるんですか?
消しても正常に動くし。

431 :デフォルトの名無しさん:2007/02/11(日) 16:55:57
お前はフラットスレにでも行ってろ

432 :デフォルトの名無しさん:2007/02/11(日) 17:29:12
むしろくだスレ

433 :デフォルトの名無しさん:2007/02/11(日) 18:56:24
>>428
だが、MSの推奨はAbstractクラスベースな罠

434 :デフォルトの名無しさん:2007/02/11(日) 19:08:58
>>429
フォームとかはソースの先頭で宣言したのもじゃないとデザインできない。

435 :デフォルトの名無しさん:2007/02/11(日) 21:10:17
なあ、C#のインタプリタ誰か作ってくれよ。
インタプリタがないと言語の習得できねえよ。

436 :デフォルトの名無しさん:2007/02/11(日) 21:13:39
C#はコンパイル激速だから別に必要ない

437 :デフォルトの名無しさん:2007/02/11(日) 21:24:40
どう考えてもインタプリタは必要ないだろ?
必要な理由を述べよ。

438 :デフォルトの名無しさん:2007/02/11(日) 21:27:56
そんなにインタプリタがいいならVB6でもつかってろハゲ

439 :デフォルトの名無しさん:2007/02/11(日) 21:29:46
インタプリタを使うと何ができるの?

440 :デフォルトの名無しさん:2007/02/11(日) 22:23:34
めじろ++

441 :デフォルトの名無しさん:2007/02/11(日) 23:40:25
既出な話だったら申し訳ないんですが、

今C++からC#に移行しようと.NETを勉強中なんですが
参照型(class)と値型(struct)が、仕様的におかしい気がして
仕方ないんです。

C++では、あるオブジェクトのインスタンスが参照型になるか
値型になるかは、使用時に自由に選ぶことが出来ます。
T t; // 値型
T* pt = new T(); // 参照型
対して,C#は定義時に問答無用で決められてしまいます。
別にGCが絡む問題があるとも思えないし、まったく意味のない改悪じゃないでしょうか?

また、C#で以下のコードだけ見た場合、
変数tが値型であるか参照型であるかどうやって知るんでしょうか。
T t = new T();
値型と参照型の混同、勘違いはバグの元であり
わざわざそうしやすくしているようにしか見えません。

C#プログラマの方はどう思って使っていますか?

442 :デフォルトの名無しさん:2007/02/11(日) 23:43:21
>値型と参照型の混同、勘違いはバグの元であり
>わざわざそうしやすくしているようにしか見えません。

どちらと言うとc++でその問題が起こったのでjavaで改善された。

443 :デフォルトの名無しさん:2007/02/11(日) 23:47:36
でもそれだと不便なので値型を付けた。

444 :デフォルトの名無しさん:2007/02/11(日) 23:47:50
言葉足らずだった。
ポインタの弊害を解消するため、ポインタっぽいものが見えないようにしたんじゃなかった?。

値方かどうかは、ポップアップされるので気しない。

445 :デフォルトの名無しさん:2007/02/11(日) 23:48:24
>>441
> また、C#で以下のコードだけ見た場合、
> 変数tが値型であるか参照型であるかどうやって知るんでしょうか。
> T t = new T();

C#としてはTがstructとして宣言されているか、またはValueTypeを継承しているならば値型。
内部的にはValueTypeを継承するクラスが値型で、その他のクラスは参照型。

446 :デフォルトの名無しさん:2007/02/11(日) 23:49:36
>>441
一年後には体感しているだろうが、絶対改悪ではない。

447 :デフォルトの名無しさん:2007/02/11(日) 23:54:40
C++のclassとstructの違いは、デフォがprivateかpublicの違いだけだしな。
C#のよくないところはValueTypeにstructという名前をつけて、誤解する人間を増やしたことだと思う。
C++/CLIみたくvalue classとかそのままvaluetypeでよかったと思うな。

448 :デフォルトの名無しさん:2007/02/11(日) 23:55:08
>>445
使用されてるところのコードだけ見て区別できないって言ってるんだろ
確かに,覚えとくかVSの機能に頼るしかないのは問題

449 :デフォルトの名無しさん:2007/02/11(日) 23:55:38
>>441
C#の文法で見てるうちは.NETを理解することはできないよ。
MSILかC++/CLIを使いこなせるようになれば目が開く。

450 :デフォルトの名無しさん:2007/02/11(日) 23:56:30
インタプリタで実行できます。


451 :デフォルトの名無しさん:2007/02/11(日) 23:56:46
>>447
でもCOMのマーシャリングするときもstruct→structだからそのままでよかったと思うよ。

452 :デフォルトの名無しさん:2007/02/11(日) 23:57:37
値型とか参照型とかを気にしなくていいのがC#

453 :デフォルトの名無しさん:2007/02/11(日) 23:58:27
>>452
気にしないとforeachとかではまるぞ!

454 :デフォルトの名無しさん:2007/02/11(日) 23:59:21
Point型のプロパティとかも

455 :デフォルトの名無しさん:2007/02/12(月) 00:01:17
プロパティの方はコンパイルで弾いてくれるからマシ
自分の状態を変えるメソッドは……

456 :デフォルトの名無しさん:2007/02/12(月) 00:01:42
C++/CLIは個人的にきもすぎるとおもいます。

457 :デフォルトの名無しさん:2007/02/12(月) 00:02:25
MethodBase(の派生クラス)が表してるメソッドの一意性は、
MethodHandleを調べないと分からないんだろうか?
とあるリフレクション情報(いろいろ処理した結果)をキャッシュしようとしてるんだが、
MethodHandleをキーにしないと一意にならないっぽい。
※同じメソッドを示すMethodInfoインスタンスが複数できる

単なるキャッシュなので、同じメソッドで異なるMethodBaseインスタンスになっても
それ自体は致命的ではないのだが、キャッシュとして保持する以上、
調べるたびに新しいMethodBaseインスタンスができていくと困ってしまう。
※キャッシュの意味なし&無駄にメモリ消費

やっぱりMethodHandleでキャッシュしないとだめなんかな…


458 :デフォルトの名無しさん:2007/02/12(月) 00:19:48
>>441
C++/CLIではC#で言っている参照型・値型の他に、アンマネージドポインタやハンドル、
マネージドポインタ型(トラッキング参照、通称「参照」)なんてのもあります。

気持ち悪い言語がお好きでしたら、C#よりもC++/CLIをオススメします。

459 :デフォルトの名無しさん:2007/02/12(月) 00:24:42
クラスを値型として使用できるようにするためには、
インスタンスのコピーなどを明確に定義しないといけない。
全クラスでこれが必要になって死ぬほどややこしくなったのがC++。
C#は柔軟性、効率などはある程度犠牲にして単純な方をとった。


460 :デフォルトの名無しさん:2007/02/12(月) 00:37:00
>>441
ref class MyRefType { }
value class MyValueType { }
...
MyRefType ^ r = gcnew MyRefType; //参照型
MyRefType ^% tr = r; // 参照型へのトラッキング参照
MyValueType ^ v; // 値型
MyValueType ^% tv = v; // 値型へのトラッキング参照

こういうことできるのが.NETの本来の姿
ここからポインタっぽいものを全部取り去って単純化したのがC#

461 :デフォルトの名無しさん:2007/02/12(月) 00:41:42
勉強になります

462 :デフォルトの名無しさん:2007/02/12(月) 00:47:50
>>460
値型は ^ いらんじゃろ

463 :デフォルトの名無しさん:2007/02/12(月) 01:16:36
>>460
使いたければポインタは使えると思うけど。

464 :デフォルトの名無しさん:2007/02/12(月) 03:26:31
>>462
V ^ はボックス化された値型。

C#だとボックス化されたヒープ上の値型を直接操作することはできなくて (まあ仮想関数は呼べるか)、
中身を弄るにはいったんコピーして再ボックス化という手順が必要だけど
C++/CLIだとヒープ上の値型を扱える。

ttp://msdn2.microsoft.com/en-us/library/hxad2z4x(VS.80).aspx

MyValueType ^ v; // ヒープ上の値型
MyValueType ^% tv = v; // ヒープ上の値型へのトラッキング参照

465 :デフォルトの名無しさん:2007/02/12(月) 03:39:46
仕事で使いたくないと思うが勉強になる

466 :464:2007/02/12(月) 03:47:00
>>464
>V ^ はボックス化された値型。

訂正。
V^ はボックス化された値型をボックス化解除したもの、と言った方が良さげ。

MyValueType v; // スタック上の値型
Object^ o = v; // ボックス化 = GCヒープ上のメモリ確保+コピー

MyValueType^ rv = safe_cast<MyValueType^>(o); // ボックス化解除 (1)
MyValueType v2 = rv; // ボックス化解除した値型のコピー (2)

C# だと(1)と(2)が基本的に不可分だから区別しないことが多いけど、
厳密な意味での「ボックス化解除」は(1)だけだよ、
「ボックス化解除」は「ボックス化」の反対じゃないよ、
ってJeffreyが言ってた。
(プログラミング .NET Framework 第2版 5.3章)

467 :464:2007/02/12(月) 03:50:56
>>466 にさらに訂正。* が抜けてた。
gdgdだな。すまん。

MyValueType v; // スタック上の値型
Object^ o = v; // ボックス化 = GCヒープ上のメモリ確保+コピー

MyValueType^ rv = safe_cast<MyValueType^>(o); // ボックス化解除 (1)
MyValueType v2 = *rv; // ボックス化解除した値型のコピー (2)

468 :464:2007/02/12(月) 04:06:31
Jeff本読み直してみたけどV ^ はボックス化された値型で良かったらしい。
超gdgdですまん。>>466>>467は忘れてくれ。

MyValueType v; // スタック上の値型
Object^ o = v; // ボックス化された値型

MyValueType^ rv = safe_cast<MyValueType^>(o); // ボックス化された値型
MyValueType v2 = *rv; // ボックス化解除+値型のコピー

寝る。

469 :デフォルトの名無しさん:2007/02/12(月) 05:43:23
Object^ o = v
なんでかな
にこやかに見える


470 :デフォルトの名無しさん:2007/02/12(月) 08:06:00
System.CodeDom
System.CodeDom.Compiler
この二つ凄いな。これがあるならインタプリタを素人でも作れそう。
というわけでおまいらC#インタプリタ作ってください。
Perl5とかPythonみたいな扱いやすいやつ一発頼みます。

471 :デフォルトの名無しさん:2007/02/12(月) 08:52:52
だからC#のぱーさーはついてないつーの

472 :デフォルトの名無しさん:2007/02/12(月) 09:50:30
まだインタプリタいってんのかよwwww

473 :デフォルトの名無しさん:2007/02/12(月) 13:01:51
コンパイラがあるににわざわざインタプリタが必要な理由って何なんだろう。

474 :デフォルトの名無しさん:2007/02/12(月) 13:16:09
Lispみたいに対話的に使えたら便利だと思うけど。
C#だとちょっとイメージわかないな・・・。


475 :デフォルトの名無しさん:2007/02/12(月) 13:19:53
ListViewのヘッダ行に、ソート方向を示す三角マーク(△とか▽)
を表示する方法は無いでしょうか?
今のところオーナー描画しか無い気がしてますが、、、

環境はVista + VS2005 C#です

476 :デフォルトの名無しさん:2007/02/12(月) 13:20:55
Vistaかいな。
ハイカラやなぁ〜。

477 :デフォルトの名無しさん:2007/02/12(月) 13:25:32
△をカラムのテキストに含めるんだ

478 :475:2007/02/12(月) 13:30:37
>>476
>>477

レスどもです。やってみましたが、カッコ悪かったです。
「名前△」みたいな。


479 :デフォルトの名無しさん:2007/02/12(月) 13:41:05
>>475
1. FindWindowExでSysHeader32のhWndをとってくる。
2. SysHeader32にHDM_GETITEMをSendMessageしてHDITEMを取得。
3. HDITEM.fmtにHDF_SORTUP/HDF_SORTDOWNを設定。
4. SysHeader32にHDM_SETITEMをSendMessageしてHDITEMを設定。

CommCtrl.hみたところ、Windows XPから使えそう。

480 :479:2007/02/12(月) 13:59:48
違う違う。
1. ListViewにLVM_GETHEADERをSendMessage

481 :475:2007/02/12(月) 14:15:57
>>479
>>480

レスどもです、三角マークでました!(Aeroスタイル、クラシックスタイル共)
参考までに以下にソースを示しておきます。
Pl/Invokeが面倒だったのでとりあえすC++/CLI版ですが。

HD_ITEM item;
HWND hWnd = ::FindWindowEx((HWND)listView->Handle.ToPointer(),
             NULL, L"SysHeader32", NULL);
if (hWnd != NULL) {
::SendMessage(hWnd, HDM_GETITEM, 0, (LPARAM)&item);
item.fmt = 0x400; // _WIN32_WINNTを0x501にすればHDF_SORTUP
::SendMessage(hWnd, HDM_SETITEM, 0, (LPARAM)&item);
}

因みに、上記コードではListViewの列テキストは消えてしまいますが
LVM_GETHEADERも後で試してみます。
有難うございました。

482 :デフォルトの名無しさん:2007/02/12(月) 14:24:49
>>481
fmtはビットフラグだから

item.fmt |= 0x400;

483 :475:2007/02/12(月) 14:31:22
>>482

本当だorz... うっかりしてました。
テキストが消えるのも直りました。もっかいソース載せておきます(マクロ版で)

Header_GetItem(hWnd, 0, &item);
item.fmt |= 0x400; // (HDF_SORTUP);
Header_SetItem(hWnd, 0, &item);



484 :デフォルトの名無しさん:2007/02/13(火) 08:11:02
グローバルスコープを持たない言語で対話型環境作っても意味ないだろ。
いちいちクラス定義をしないと評価できないじゃん。

485 :デフォルトの名無しさん:2007/02/13(火) 16:10:19
System.Diagnostics.Process を使って呼び出した外部プロセスが
異常終了(不正メモリアクセスなどの Win32 例外とか)したことを
検出したいのだけどどうすればいいだろう?管理者権限不要で

検出して復帰とか、どこで例外が起こったかとかはわからなくてよくて
ただ異常終了したか正常終了したかが知りたい

ExitCode に表れるかと思ったら、異常終了しても 0 なんだよね

486 :デフォルトの名無しさん:2007/02/13(火) 20:33:28
>異常終了しても 0 なんだよね

そのソフト組んだ人間による

487 :デフォルトの名無しさん:2007/02/13(火) 20:50:49
Win32Exceptionが飛んできた気がするんだけど…

488 :デフォルトの名無しさん:2007/02/13(火) 21:13:57
それはプロセスから何かを取ろうとしたときだけじゃないのか?

489 :デフォルトの名無しさん:2007/02/13(火) 21:38:18
エクスプローラーでファイルをコピーするときにドラッグドロップするとマウスの後ろにコピーするファイルが半透明で表示されますよね?
あれってどうやってるかわかりますか?
ドラッグドロップ中にポジションは取れたのでレイヤードウィンドウでウィンドウを描画しつつ移動させたんだけど案の定したのウィンドウにドラッグドロップイベントが届きません・・・orz

490 :デフォルトの名無しさん:2007/02/13(火) 21:46:54
あれはドロップされる側(draw overされる側)が描画する。

491 :デフォルトの名無しさん:2007/02/13(火) 21:51:24
ttp://www.google.com/search?hl=ja&q=listview+%E5%8D%8A%E9%80%8F%E6%98%8E+%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0&lr=lang_ja
これ?

492 :デフォルトの名無しさん:2007/02/13(火) 23:12:59
>>490 ドラッグされる側が描画するにしても画面の外にはみ出るようにしてるのでウィンドウ使ってると思うんです。
だとするとドラッグドロップイベントが下のウィンドウに言ってるのは何でなんでせう。
>>491 リンク先見てみます。

493 :デフォルトの名無しさん:2007/02/13(火) 23:28:35
>>492
DragEnter のときに ImageList_BeginDrag して、
マウス移動中は ImageList_DragMove して、
DragLeave 時には ImageList_EndDrag する。

ドラッグソースじゃなくてターゲット(ドラッグドロップのメッセージを受け取る側)が、ね。
カーソルを重ねる場合には ImageList_SetDragCursorImage 。

ttp://ant0x.udap.jp/tips/tips_DragGhostImage.htm

494 :デフォルトの名無しさん:2007/02/14(水) 00:31:29
>>493 まさにそれですね。ありがとです。
あとNCHITTESTでHTTRANSPARENTを返すやり方でもとりあえず望みの動作はできそうです。パフォーマンスなどで言われたやり方とどう差があるかはこれから調べですが。

495 :デフォルトの名無しさん:2007/02/14(水) 02:12:44
プロジェクトにユーザコントロールを追加し
通常のWINDOWSフォームと同様にデザイン出来ることは
わかったのですがそれを、ツールボックスからドラッグし
他のWINDOWSフォームにて(TextBox/ComboBox等と同様に)
使用する方法が分かりません。

ご存知の方がいらしましたらお教え下さい。


496 :デフォルトの名無しさん:2007/02/14(水) 02:28:27
Defferdってなーに?
なんて読むのらぁ。。

497 :デフォルトの名無しさん:2007/02/14(水) 02:31:52
んな単語ねえよハゲ

498 :デフォルトの名無しさん:2007/02/14(水) 02:33:30
読める?

499 :デフォルトの名無しさん:2007/02/14(水) 02:34:47
読める?

500 :デフォルトの名無しさん:2007/02/14(水) 02:42:56
外国語板でも逝ってこいよ・・・

501 :デフォルトの名無しさん:2007/02/14(水) 03:04:45
deferred?

502 :デフォルトの名無しさん:2007/02/14(水) 06:25:10
differed?

503 :デフォルトの名無しさん:2007/02/14(水) 18:27:04
DirectXで使うマクロの名前か?

504 :デフォルトの名無しさん:2007/02/14(水) 18:31:20
>>495
まずツールボックスに追加するんだ。
メニューを探そう。

505 :デフォルトの名無しさん:2007/02/14(水) 18:35:37
DragDropでほかのウィンドウ上に持ってきたときにGiveFeedbackをかえしてくるところとそうでないところがあるみたいなんだがどういう違いだか分かる人いますか?

506 :デフォルトの名無しさん:2007/02/14(水) 19:31:09
C#で色々作ったのですが、他の人に使ってもらおうと思ったら、他の人のマシンでは動きませんでした。

フレームなんとかというのが入ってないマシンから動かないのだと思うのですが、でも、普通の人は入れてませんよね。

なんか、うまい方法ってあるのでしょうか?

507 :デフォルトの名無しさん:2007/02/14(水) 19:31:30
Windows Update

508 :デフォルトの名無しさん:2007/02/14(水) 20:51:48
エクスプローラのフォルダリストにフォーカスをあてて
カーソルを下に移動させると、ファイル一覧が表示されますが
常にファイル一覧を表示するのではなく、カーソルが止まったところで
表示されるようになっています。

このようなものを実装するにはどういう方法が最適なのでしょうか。

今作っているのは、ListView1 の項目にフォーカスがあたると
その内容が ListView2 に表示されるものです。
カーソルを一気に移動させようとしても、ListView2 にいつも
描画しようとするので、処理が重くなってしまいます。

C# と直接関係のない話題かと思いますが、いい知恵があったら貸してください。
よろしくお願いいたします。

509 :デフォルトの名無しさん:2007/02/14(水) 21:02:00
>ファイル一覧が表示されますが
てのが何のことやら分からないが、

キーで選択が変わったらタイマーを回したらいいんじゃないの

510 :デフォルトの名無しさん:2007/02/14(水) 22:57:04
最近、メニューとか表示とかがハイパーテキスト(HTML?)になってるソフトがありますが、
あれはそういうAPIがあったりするんでしょうか。それとも自分で一からコーディング?

511 :デフォルトの名無しさん:2007/02/14(水) 23:03:57
>>508
フォーカス・・・じゃなくて選択だと思うが・・・が移動したときには、

→(a) PeekMessageで(WM_MOUSEMOVE以外の)マウスイベントかキーイベントがある場合には、
短いタイマーをスタートさせる。そうでなければListView2を更新してタイマーをキャンセル。

タイマーが発火したら
→ また(a)を行う。

そんな感じ。

512 :デフォルトの名無しさん:2007/02/14(水) 23:04:17
ハイパーテキスト(HTML?)てw

エスパーじゃない俺には何のことだかサッパリわからんが、
ひょっとしてLinkLabelのこと言ってるのか?

つーか、個人的にはこういう人はプログラマやっちゃいけないと思う。

513 :デフォルトの名無しさん:2007/02/14(水) 23:09:22
VisualStudioのスタートページみたいなののことを言ってるんじゃないか?
普通にIEコンポーネントで表示させてるだけだが

514 :デフォルトの名無しさん:2007/02/14(水) 23:09:24
>>512
あれだろ。
xpのプログラムの追加と削除とか、VSのC++ウィザードとかはHTMLで書いてある。

515 :デフォルトの名無しさん:2007/02/14(水) 23:17:30
WPFが使い物になればそんなことしなくてもいいんだがね…はぁ
Orcasマダー

516 :デフォルトの名無しさん:2007/02/14(水) 23:19:25
>>504
解決しました。ありがとうございます。

517 :510:2007/02/14(水) 23:24:25
LinkLabelではなくて、>>514の言うとおりXPの「プログラムの〜」とかiTunesとかです。
ああいうのを使いたいんですが。

518 :510:2007/02/14(水) 23:29:53
>>513
やっぱりIEコンポーネントなんですかね。
リンクにイベントハンドラを割り当てるのとかどうやってるんだろう。

519 :デフォルトの名無しさん:2007/02/14(水) 23:42:00
<a href="action:foobarbaz">リンク</a>
みたいにリンク貼っといてNavigateイベント捕まえればいいんじゃね?

520 :デフォルトの名無しさん:2007/02/14(水) 23:44:23
つーか、個人的にはこういう人はプログラマやっちゃいけないと思う。

521 :デフォルトの名無しさん:2007/02/14(水) 23:44:47
>>519
なるほど、ちょっと手間ですがそれでいけそうですね。

522 :デフォルトの名無しさん:2007/02/15(木) 08:56:49
WebBrowser インスタンスの ObjectForScripting プロパティ に
オブジェクトをぶち込んどくとスクリプト側から
そのオブジェクトのコード呼べるよ

523 :デフォルトの名無しさん:2007/02/15(木) 13:12:03
   """   
  ♥
  ヽ|〃

524 :デフォルトの名無しさん:2007/02/16(金) 05:30:45
お前らそろそろインタプリタ出来た?
もう出来上がった頃かと思ってもらいに来たんだけど。

525 :デフォルトの名無しさん:2007/02/16(金) 08:24:32
早朝5時にそんなくだらねえこと書いてるくだらない自分が嫌にならんアンタって
幸福な奴だよなw

526 :デフォルトの名無しさん:2007/02/16(金) 13:09:29
>>470みたいなのを使ってそれっぽいのを作るのは簡単だろうけど
インタプリタとは言わない

527 :デフォルトの名無しさん:2007/02/16(金) 20:51:29
PowerShell (Monado)? でいいじゃん?

528 :デフォルトの名無しさん:2007/02/16(金) 22:22:46
OOPだからインタプリタは意味内。

どうしてもインタプリタ作りたかったらJava使え。

529 :デフォルトの名無しさん:2007/02/16(金) 22:23:40
>OOPだからインタプリタは意味内。

そんな餌に(ry

530 :デフォルトの名無しさん:2007/02/16(金) 22:26:25
>>529
馬鹿だろあんたもw
遂次実行ってことは、その処理系にはユーザー定義の型を持たせ難いことを
意味するんだよw

531 :デフォルトの名無しさん:2007/02/16(金) 22:29:57
C#の文法には前方宣言がないから何らかの方法で型名の遅延解決をできるようにする必要はあるだろうな。

532 :デフォルトの名無しさん:2007/02/16(金) 22:42:08
すべてのメンバをデリゲートで持つようにするとか

533 :デフォルトの名無しさん:2007/02/16(金) 22:47:42
何でインタプリタが欲しいの??

534 :デフォルトの名無しさん:2007/02/16(金) 22:48:26
IronPython

535 :デフォルトの名無しさん:2007/02/16(金) 22:53:41
前方参照なつかしい。
これでコンパイル速度が速かったPASCAL思い出した…

536 :デフォルトの名無しさん:2007/02/16(金) 23:00:11
OOPだから、というのは変でした。
OOPスクリプト言語も一応インタプリタみたいなものが多いみたいだし。
ASCIIコードを実行してるわけじゃなくて、内部コードに変換してるんだろうな。


537 :デフォルトの名無しさん:2007/02/16(金) 23:01:59
Emitで無理やり実現できないかな

538 :デフォルトの名無しさん:2007/02/16(金) 23:10:20
>>530 持たせ難いといってる時点で矛盾を露呈していることに気づいてなす

539 :デフォルトの名無しさん:2007/02/16(金) 23:14:50
つーか、最近のCPUなら実行時にcscにかけたって大丈夫だろ。

540 :デフォルトの名無しさん:2007/02/16(金) 23:16:10
>>539
それはコンパイルしてるw
そのあともう一度コンパイルする羽目に…

541 :デフォルトの名無しさん:2007/02/16(金) 23:24:19
クラスのスタティックメンバが参照されたり、オブジェクトが最初にインスタンス化されるあたりで
おもむろに相互参照の解決とか始めるってのはどうだろう。

実行中にエラーが出たりしていかにもインタプリタらしい感じの動作になるな・・・

542 :デフォルトの名無しさん:2007/02/16(金) 23:26:45
実行部分よりも下に型定義があった場合はどうするよ
結局、最初に全部読む羽目になるんじゃないか?

543 :デフォルトの名無しさん:2007/02/16(金) 23:32:10
とりあえず名前を考えよう

ShapaScript

544 :デフォルトの名無しさん:2007/02/16(金) 23:35:24
CSharpScriptってきっと探せば誰か既に作ってるだろ。

545 :デフォルトの名無しさん:2007/02/16(金) 23:37:35
CSharpScript の検索結果 約 52 件

546 :デフォルトの名無しさん:2007/02/16(金) 23:41:24
できても c--って感じだろ。

c=かなw

547 :デフォルトの名無しさん:2007/02/16(金) 23:43:09
現状,完結したコードを実行時に一気にコンパイルするものしかないみたいだな

548 :デフォルトの名無しさん:2007/02/16(金) 23:43:44
C::Script

549 :デフォルトの名無しさん:2007/02/16(金) 23:44:01
C# Script for .NET 2.0
script compilerってなってるね。
何だこれ?

550 :デフォルトの名無しさん:2007/02/16(金) 23:53:14
>>530
そもそも持たせ"難い"ってプログラマにあるまじき発言だな。

551 :デフォルトの名無しさん:2007/02/17(土) 00:10:35
http://skazami.web.infoseek.co.jp/tools/Graphviz_Doxygen.htm

552 :デフォルトの名無しさん:2007/02/18(日) 20:54:33
TabControlの文字・画像をタブ幅を固定したまま左に寄せることは出来ませんか?
タブ幅を固定しようとして、SizeModeをFixにすると画像と文字が中央によってしまいますし
例としてはSleipnirのタブのようにFaviconとタイトルを左詰にしたような感じです
もしかしてオーナードローするしか方法はないでしょうか?

553 :デフォルトの名無しさん:2007/02/18(日) 21:13:18
オーナードローすりゃいいんじゃね?

554 :デフォルトの名無しさん:2007/02/18(日) 22:09:31
>>553
そういうのは「するしかない」と表現しようね

555 :デフォルトの名無しさん:2007/02/18(日) 22:22:58
そういう揚げ足とって楽しいか?

556 :デフォルトの名無しさん:2007/02/18(日) 23:24:40
>>554
大学は合格したのか?w

557 :デフォルトの名無しさん:2007/02/18(日) 23:32:27
オーナードローすりゃいいなんて答えの方がガキっぽい匂いがするが

558 :デフォルトの名無しさん:2007/02/18(日) 23:41:10
そりゃ鼻がおかしいんだろう

559 :デフォルトの名無しさん:2007/02/18(日) 23:41:21
そんなもの大昔に卒業したがな。

560 :デフォルトの名無しさん:2007/02/19(月) 13:02:27
最悪,空フォームに全部自前で描画すればなんだってできる

561 :デフォルトの名無しさん:2007/02/19(月) 21:21:11
c++の<algorithm>で定義されているような関数ってC#で使えんの?
accumulateとか.
関数型ライクにC#を満喫したいんだ。

562 :デフォルトの名無しさん:2007/02/19(月) 22:19:08
>>561
うーん、少なくとも標準ではない。
generics 内でオペレータのオーバーロードしたの使えないから作りづらいし。
C++ の template と違って、インラインに展開されまくったりしないから
効率もあんまりよくないと思うし。

563 :デフォルトの名無しさん:2007/02/19(月) 23:54:54
>>562
thx!
そうか・・・。
だからあんまりそういう系の話出てこないのか

564 :デフォルトの名無しさん:2007/02/20(火) 00:25:47
DynamicMethodに関して質問です。

DynamicMethodを定義したのですが、通常のメソッド呼び出しより2倍以上の時間がかかってしまいます。
DynamicMethodから生成されたMSILとハードコーディングされたメソッドのMSILを見ても
バイトコードのサイズは誤差程度なのですが・・

やっていることはオブジェクトのプロパティを取得して同値判定しているだけです。

o.Name == "name";//ハードコーディングによる比較

PropertyInfo prop = o.GetType().GetProperty("Name");
(string)prop.GetValue(o,null) == "name";//リフレクションによる比較

DynamicMethodWriter dmw = new DynamicMethodWriter("Name");//Nameプロパティで比較するようなILを作成するクラスを初期化
dmw.Compare(o, "name");//DynamicMethodによる比較

比較する箇所の速度を比較するとDynamicMethod:リフレクション:ハードコーディング = 4:2:1 位になってしまいます。
DynamicMethodのInvokeメソッドを使用した場合、そもそも速度は出ないものなのでしょうか?


565 :デフォルトの名無しさん:2007/02/20(火) 00:31:12
listboxに表示されている項目について、右クリックで選んで
右クリックメニューを出して、そのメニューを選択するのは
どうすればいいですか?

566 :デフォルトの名無しさん:2007/02/20(火) 01:02:45
>>564
そんなもん

567 :デフォルトの名無しさん:2007/02/20(火) 01:11:28
Invokeじゃなくてデリゲートにバインドしないとだめじゃない?
Invokeはリフレクションと実質同じだと思う。


568 :デフォルトの名無しさん:2007/02/20(火) 01:13:33
つーか、プロパティとかだとリフレクションて意外と早いのね…


569 :デフォルトの名無しさん:2007/02/20(火) 16:31:20
こっちで試したらリフレクション:ハードコーディング=700:1くらいだったぞ

570 :デフォルトの名無しさん:2007/02/20(火) 17:14:11
どんなリフレクションの使い方してる?
てかリフレクションじゃない方インライン展開されてるとかっておちじゃねーの?


571 :569:2007/02/20(火) 17:49:15
リフレクションの方は>>594をそのまま
リフレクションじゃない方は
[MethodImpl(MethodImplOptions.NoInlining)]
string GetName(){return this.name;}みたいに変えたり
仮想プロパティにしたりしてみてもほとんど変わらなかった

572 :デフォルトの名無しさん:2007/02/20(火) 19:39:04
>>594がみえない…

そうか、やっぱり差がある方が普通な気がするな。
>>564は何かを間違ってる気がする。


573 :デフォルトの名無しさん:2007/02/20(火) 20:10:47
俺も>>594は今のところみえない

574 :デフォルトの名無しさん:2007/02/20(火) 20:29:02
リフレクションて実行時にコンパイルしてるの?

575 :デフォルトの名無しさん:2007/02/20(火) 21:08:47
何ツーか参考書見直してからカカッテコイ!щ(゚Д゚щ)

576 :564:2007/02/20(火) 21:13:47
計測に使用したプログラムはちょっとしたイテレータを含んでいたのでリフレクションの差はそんなに出なかったみたいです。
試しに作ってみたプログラムを一応貼り付け。まぁ、問題はDynamicMethodを使うとさらに遅くなってしまったことなんですが。
  public class RefTest{
    public void Test(){EvalByReflection();EvalByHardcode();}
    private MethodInfo _m;
    private NamedObject[] _array = new NamedObject[1000000];
    public RefTest(){
      _m = typeof(NamedObject).GetProperty("Name").GetGetMethod();
      for (int i = 0; i < _array.Length; i++) { _array[i] = new NamedObject(); }
    }
    public void EvalByReflection(){
      Stopwatch sw = new Stopwatch(); sw.Start();
      for (int i = 0; i < _array.Length; i++){if (_evalReflect(_array[i])){ }}
      sw.Stop(); Debug.Print("reflect {0}ms", sw.ElapsedMilliseconds);
    }
    public void EvalByHardcode(){
      Stopwatch sw = new Stopwatch(); sw.Start();
      for (int i = 0; i < _array.Length; i++){if (_evalHardcode(_array[i])) { }}
      sw.Stop(); Debug.Print("hardcode {0}ms", sw.ElapsedMilliseconds);
    }
    private bool _evalReflect(NamedObject n){return ((string)_m.Invoke(n, null) == "name");}
    private bool _evalHardcode(NamedObject n){return n.Name == "name";}
  }
  public class NamedObject{
    private string _name = "xxxx";
    public string Name { get { return _name; } set { _name = value; } }
  }
reflect 2280ms
hardcode 66ms
reflect 2405ms
hardcode 70ms
単純な、そこだけの処理コストだけで比較すると確かに700:1あるかも。

577 :デフォルトの名無しさん:2007/02/20(火) 22:58:48
なんでベンチの最中に文字列比較とかそういうことを入れるわけ?
しかもメソッド呼び出しが2回で間接になってるし。
(まああえてそういう場合で計測ってのはもちろんありえるが)

しかしそれでも30倍程度は差があるし、2倍っていったいどんなベンチしたときなんだ?

>まぁ、問題はDynamicMethodを使うとさらに遅くなってしまったことなんですが。
で、デリゲートではためしてみたのかえ?
Invokeじゃリフレクションとおなじだっつってんだが。


578 :デフォルトの名無しさん:2007/02/20(火) 23:25:54
バインドで試しました。
静的に作成したデリゲートにバインドしたら速度的にはほぼ同じでした。
デリゲートの型が実行時に確定するようなコードだったので、どのようにバインドすればいいのわかりませんでした。
実装方式変えてDynamicMethodのシグニチャを固定しました。
ありがとうございました。

ベンチはより実装に近いイメージで計測しました。(動的メソッド内でメソッド呼び出しを行っていたので)
DynamicMethodとの比較がメインだったので、2倍とかの情報は誤解を与えました、ごめんなし。

579 :デフォルトの名無しさん:2007/02/20(火) 23:55:21
>静的に作成したデリゲートにバインドしたら速度的にはほぼ同じでした。
これは速くなった(ハードコードに近い感じ)と受け取っていいのか?


580 :デフォルトの名無しさん:2007/02/21(水) 00:14:28
はい、ハードコードに近い感じです。
生成したILが若干余計なものが含まれているので少し遅いですが
ILが同じなら多分同じくらいじゃないかと。

581 :デフォルトの名無しさん:2007/02/21(水) 00:54:53
マーシャリングについて質問です。

文字列を返すアンマネージドAPIで、呼び出し側が文字列のために自前でバッファを
割り当て/解放することが要求されているものでは
HogeAPI( LPTSTR lpstr );

HogeAPI( StringBuilder str );
のようにするとマーシャラがアンマネージドバッファを勝手に解放してくれると
どこかで読んだ記憶があるんですが、

SHGetKnownFolderPath(... , PWSTR *ppszPath );

みたいにCoTaskMemFreeで解放することが要求されているものはどうしたらいいんでしょうか?

SHGetKnownFolderPath(... , out string ppszPath );

で動作してしまうんですが、やっぱりIntPtrで貰って自前で解放しないと駄目なんでしょうか。。


582 :デフォルトの名無しさん:2007/02/21(水) 14:31:48
ビルドでインストールされるプログラムを、
exeファイルの実行等でビルド等の処理を行うにはどうした良いのでしょう?

583 :デフォルトの名無しさん:2007/02/21(水) 16:20:17
日本語でたのむ

584 :デフォルトの名無しさん:2007/02/21(水) 16:28:18
インストーラの実行時にビルドしたいとか?

585 :デフォルトの名無しさん:2007/02/21(水) 16:32:35
順番に行こうw
まずこれから。

「ビルドでインストールされるプログラム」



586 :デフォルトの名無しさん:2007/02/21(水) 16:38:01
理解したかも
「ビルドでインストールされるプログラム」はVisualStudioのGUIを通したビルドや実行のことで,
>>582は,出力されたexeファイルがどこにあるのかが分からないんじゃないか?
プロジェクトのフスマソォルダ\bin\Debug\名前.exe
間違ってたらスマン

587 :デフォルトの名無しさん:2007/02/21(水) 17:17:32
エスパーすると、nmake.exeが正解。

588 :デフォルトの名無しさん:2007/02/21(水) 17:47:07
コマンドでビルドしたいってことじゃね?



違うな・・・

589 :デフォルトの名無しさん:2007/02/21(水) 17:47:48
次はコレ。

「プロジェクトのフスマソォルダ」

590 :デフォルトの名無しさん:2007/02/21(水) 18:18:31
msbuild とかこういう話じゃないの?

591 :デフォルトの名無しさん:2007/02/21(水) 18:39:22
すみません。
p[0]+2
このような配列への計算はできないのですか?

592 :デフォルトの名無しさん:2007/02/21(水) 18:40:48
「配列への計算」という言葉の意味はわかりませんが、そのような計算はできます。

593 :デフォルトの名無しさん:2007/02/21(水) 19:32:48
エスパー回答!

p[0]=p[0]+2

594 :デフォルトの名無しさん:2007/02/21(水) 20:12:16
double[]とint型の演算はできないというエラーが出たのですが・・・。

public int a(・・・・)
{
swap(p[i],p[i]+i);

}

swap(res a,res b)
{
:
}
このように使うときなんですが。

595 :デフォルトの名無しさん:2007/02/21(水) 20:16:36
C#にポインターは無いだろ

596 :デフォルトの名無しさん:2007/02/21(水) 20:19:16
なにその言語

597 :デフォルトの名無しさん:2007/02/21(水) 20:22:56
ref

598 :デフォルトの名無しさん:2007/02/21(水) 20:25:37
p[i] + i の ref ってなにか考えてみろよ。

599 :デフォルトの名無しさん:2007/02/21(水) 20:31:50
意表をついて res型つくってるとかw

600 :デフォルトの名無しさん:2007/02/21(水) 20:32:24
こちらへどうぞ。

ふらっとC♯, C#(初心者用) Part13
http://pc10.2ch.net/test/read.cgi/tech/1170761729/

601 :デフォルトの名無しさん:2007/02/21(水) 20:33:55
すいません。間違えました。
public int a(・・・・)
{
swap(ref p[i],ref p[i]+i);

}

swap(ref a,ref b)
{
:
}


602 :デフォルトの名無しさん:2007/02/21(水) 20:41:39
>>601
>>600 のリンク先のスレッドで続けるか、C# の学習本(サイト等でもよい)を読むか
した方がよいと思います。

603 :デフォルトの名無しさん:2007/02/21(水) 20:42:02
それ以前に良く見直せ。

swap(p[i],p[i]+i);

これは何をしたいのか分からん。
実際に引数が何を指しているか考え直せ。

604 :デフォルトの名無しさん:2007/02/21(水) 20:43:41
>>601
なあ、おまいさん。
それ、意味分かって書いてんのか?

605 :デフォルトの名無しさん:2007/02/21(水) 20:55:15
これ適当に書いたものなので特に意味はないです。
ただp[i]+iのようにできるか知りたいだけだったのですが。

606 :デフォルトの名無しさん:2007/02/21(水) 21:01:04
>p[i]+iのようにできるか

できるっつってんだろボケ。

607 :デフォルトの名無しさん:2007/02/21(水) 21:03:15
だからエラーが出たから聞いてんだろハゲ!!

608 :デフォルトの名無しさん:2007/02/21(水) 21:06:58
>>607
だからさ、これはできるの。
 ↓
p[i]+i

これはC# のコードではないし、何をしたいのかもわからないの。
 ↓
>>601


609 :デフォルトの名無しさん:2007/02/21(水) 21:08:03
適当に書いた箇所が間違ってんだ低脳

610 :デフォルトの名無しさん:2007/02/21(水) 21:08:16
変数と変数でないものの区別も付かんような奴は氏んでください

611 :デフォルトの名無しさん:2007/02/21(水) 21:09:33
>>605
そういう時には
「ref 引数に変数ではなく式を渡せますか」と質問して、
「渡せません」と答えをもらって、
「そうですか、ありがとうございました」とお礼を言うんだよ。

>p[i]+iのようにできるか
こんなの関係ないじゃん。

612 :デフォルトの名無しさん:2007/02/21(水) 21:12:29
変なコードを書くより、何をしたいのか日本語で書いてよ。

613 :デフォルトの名無しさん:2007/02/21(水) 21:15:09
swap(ref p[i],ref p[i]+i);

いったいどういう挙動を期待してるんだよ。

614 :デフォルトの名無しさん:2007/02/21(水) 21:28:44
2/21 (水) NHK教育
22:00 ようこそ!鉄道模型の世界へ・レイアウト制作入門


615 :デフォルトの名無しさん:2007/02/21(水) 21:45:17
( ´д)テッチャン(´д`)テッチャン(д` )

616 :デフォルトの名無しさん:2007/02/21(水) 21:48:08
コテッチャ━━━━(゚∀゚)━━━━ソ!!

617 :デフォルトの名無しさん:2007/02/21(水) 22:01:18
はじまった

618 :デフォルトの名無しさん:2007/02/21(水) 22:16:21
みるなよw

619 :デフォルトの名無しさん:2007/02/21(水) 22:32:07
市況1かよ。

620 :デフォルトの名無しさん:2007/02/21(水) 22:51:16
流れを切って申し訳ありません。質問させて下さい。
半透明ウィンドウで、テキストだけをくっきりと不透明で表示したいのですが、
可能でしょうか?可能であればヒント・参照先を教えていただけるとありがたいです。
よろしくお願いします。

621 :デフォルトの名無しさん:2007/02/21(水) 23:04:37
可能だけど難しいよ。
レイヤードウィンドウ(layered window)にして、アルファ付で描画したビットマップのGraphicsから
取得した DC のハンドルで UpdateLayeredWindow してあげる、というような流れ。

622 :デフォルトの名無しさん:2007/02/21(水) 23:44:49
vistaでxaml使ってやれ。

623 :デフォルトの名無しさん:2007/02/22(木) 02:48:30
>>621
できました!ありがとうございます。

>>622
Vistaへの移行は・・・orz

624 :デフォルトの名無しさん:2007/02/22(木) 09:49:07
XP SP-2 でも .NET 3.0 つかえるよ

625 :デフォルトの名無しさん:2007/02/22(木) 10:39:22
数値でも、文字でもインデクサの指定できるDictionaryだかListってなかったけ?
dic[int]やdic[string]のどちらもイけるやつ。

626 :デフォルトの名無しさん:2007/02/22(木) 11:09:59
なければそれぐらい作れ

627 :デフォルトの名無しさん:2007/02/22(木) 11:19:43
>>626
作り方聞いてんじゃなくて、あるかどうか聞いてんの。


628 :デフォルトの名無しさん:2007/02/22(木) 11:27:44
最近はゴミばかりだな

629 :デフォルトの名無しさん:2007/02/22(木) 11:37:14
>>628
お前もな
けなしてる暇あったら回答しろ。
相談室なんだから。
>>626
SortedListだかSortedDictionaryあたりが使えたかもしれないね。
俺もあったような気はするんだが、結局自作したかもしんない。

630 :デフォルトの名無しさん:2007/02/22(木) 12:00:41
つーか、Dictionary<object> でよくね?

631 :デフォルトの名無しさん:2007/02/22(木) 12:31:59
っていうか、俺には>>625の言ってる意味がさっぱり分からんが。
いや「分からん」ってのは婉曲表現だから勘違いしないように

632 :デフォルトの名無しさん:2007/02/22(木) 12:37:07
そうか

633 :デフォルトの名無しさん:2007/02/22(木) 14:05:34
VBのCollectionと同じのがほしいんでしょ。

634 :デフォルトの名無しさん:2007/02/22(木) 14:41:11
なんか色々カキコすまそ

要は
dic[1] = "hogehoge"
dic["key1"] = "hogehoge"

のどちらでもアクセスできるクラスがなかったかなぁと。

635 :デフォルトの名無しさん:2007/02/22(木) 14:57:43
ない。

以上。

636 :デフォルトの名無しさん:2007/02/22(木) 15:01:21
いや、だから、Dictionary<object, string> でいけるって。

637 :デフォルトの名無しさん:2007/02/22(木) 15:05:41
>>636
>>634はindexでもkeyでも両方で全部のアイテムにアクセスできる
もの、という意味でいってるんじゃないのか

638 :デフォルトの名無しさん:2007/02/22(木) 15:08:47
それならSortedList

639 :デフォルトの名無しさん:2007/02/22(木) 15:40:06
あまり詳しくないけど
DataTableだかDataRowとかは?

640 :デフォルトの名無しさん:2007/02/22(木) 15:55:43
ふぃ〜
SortedListにて、いけるわ
list[0]
list.Keys[0]
でアクセスできるわ。
これだた。

センクス〜
長々お付き合い頂き、誠に、真に、感謝いたす。
それでは失礼つかまつります

641 :デフォルトの名無しさん:2007/02/22(木) 15:57:29
すんずれい。
list["key"]
List[0]
だ。
それでは!


642 :デフォルトの名無しさん:2007/02/22(木) 16:23:18
TreeView で CheckBoxes = true の場合に、チェックがされたノードって拾えますか?
.NET 1.1 なのですが。

643 :デフォルトの名無しさん:2007/02/22(木) 16:28:29
>>642
自己レス。TreeNode node = (TreeNode)e.Node;

644 :デフォルトの名無しさん:2007/02/22(木) 18:10:19
実行時に、基底に同じクラスを持つインスタンスの数をチェックしたいです。
よく判らないのですが、リフレクションを使うと可能になるのでしょうか?

645 :デフォルトの名無しさん:2007/02/22(木) 18:14:56
基底クラスを触れるなら,
public static int Count;

public MyBaseClass()
{
Count++;
}

646 :デフォルトの名無しさん:2007/02/22(木) 18:17:03
>>645
おぉ。難しく考えすぎていました。ありがとうございました。

647 :デフォルトの名無しさん:2007/02/22(木) 20:55:21
MMORPGのようなコンテンツを作りたいんですが、
アイテム「が100個あるとすればどのようにDBで管理すれば良いのでしょうか?
フィールド100個とか無理です・・・

648 :デフォルトの名無しさん:2007/02/22(木) 20:58:08
本屋行けばそういう本は幾らでも並んでるから、好きなの買ってきなよ

649 :デフォルトの名無しさん:2007/02/22(木) 20:59:21
ArrayList<Hogerpg.Item> itemList = new ArrayList<Hogerpg.Item>();

650 :デフォルトの名無しさん:2007/02/22(木) 21:00:44
List<T>

651 :デフォルトの名無しさん:2007/02/22(木) 21:02:38
買えないから聞きましたorz

652 :デフォルトの名無しさん:2007/02/22(木) 21:05:44
>>647
データベースレイアウトの話ならスレ違いだと思うが、
持ち主のIDを振ったレコードを100ほど用意すればいいんじゃなかろうか

653 :デフォルトの名無しさん:2007/02/22(木) 21:08:25
>>651
図書館にあるよ。

654 :デフォルトの名無しさん:2007/02/22(木) 22:49:07
なかったよ

655 :デフォルトの名無しさん:2007/02/22(木) 22:53:29
>>654
コンピュータ関連の棚とは別に、
ゲーム関連の棚がある。

オセロとかダーツの辺りにあるよ。

656 :デフォルトの名無しさん:2007/02/22(木) 22:57:38
>フィールド100個とか無理です・・・
下のスレに行って聞くと教えてもらえるかもしれないよ。
一つの文字列を固定長分割して使うのもお奨め。

コボラは横長DBがお好き
http://pc10.2ch.net/test/read.cgi/prog/1160745584/

657 :デフォルトの名無しさん:2007/02/23(金) 00:07:37
>>640
ほんまにそれでええのんか?

OrderedDictionary とか、文字列対象ならNameValueCollectionとか。



658 :デフォルトの名無しさん:2007/02/23(金) 01:56:42
はっきり言って俺はC#は詳しいよ。
Append()は戻り値がvoidなので新たにオブジェクトを作らない。
よーく考えろ。

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\| ̄ ̄ ̄ ̄ ̄ ̄
                        _,,t-‐‐-、,-‐‐-、
                     三'::::::............... .....::::::`y,.
                     ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ
              | ̄|   V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{
           | ̄| | ̄|   ナ::::::::::::::i`__,,,,,,,ァ_  _,,,,,_ t;;:ヌ
           |  | |  |  イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f
           |  | |  |  i {t)テ" ヘ' '___,イ ヽ_/ 介'
           |  | |  | _,rヘ_,j|!'     /ー--''!     |'
           |,.ィ―'''' ̄ /| |       /二ク     !
           /;;:::'';;::''::;;:/ { ! 、     ヾニン   ノ\
            /'''::::;r|''':::;;;|  | ! \       _,,./|::;;'''\
        /:;;/ |;;;''::;;|   丶\  `__>-ー´   !;;;:'''::iヽ、
          i/   |'::;;;;''|      三 ―''"       !''::;;;;| /ヽ
        /⌒ヽ  |;;''':::;|       \            !;;::''|/  i
         /     \{'';;;::''}          ̄二ニ=    !::;;|   |
        /ヘ     |;;:::::;{            ‐-      !/   |
        /  i     |:::;;;''!             ー       !  / |
     /   l     |;;'';イ                   }   {、
     〉、      ∧テ{ ヽ  _   _,,,,;;;;;:::-==ニ;;;_   ノ __,イ´
      / \_    //レ!      ̄           ̄ { ̄  |




659 :デフォルトの名無しさん:2007/02/23(金) 10:07:55
図書館にあるコンピュータ関係の本ってマイコンとBASIC時代止まりなんだが@田舎

660 :デフォルトの名無しさん:2007/02/23(金) 10:27:31
>>659
古くなった技術書ほど役に立たないものはないよな。
古本屋でたな晒しになってるN66BASIC入門とかNIFTY-Serve活用術とか、誰も買わないって。

661 :デフォルトの名無しさん:2007/02/23(金) 11:25:47
>>657
おおぅ!
こちらの方が使いやすいス!スバラスィ〜
ご好意感謝致す。


662 :デフォルトの名無しさん:2007/02/23(金) 13:09:29
このスレを見ている人はこんなスレも見ています。(ver 0.20)
Windows Vista PGスーパーハカー専用 スレ [Windows]
総合質問スレッド@PCサロン Part23 [PCサロン]
OSを作ろうpart12 [OS]
Windows Meの良さについて語ろう。 [Windows]
JR東日本 社会人採用対策スレッド 2006 Part6 [転職]

663 :デフォルトの名無しさん:2007/02/23(金) 13:29:22
JR東日本ってことは、JR情報システム関連だな。

あそこはまだドトネトにこだわりをもっているのか?

664 :デフォルトの名無しさん:2007/02/24(土) 11:52:22
COBOLという古い資産に縛られて生きているからね

665 :デフォルトの名無しさん:2007/02/24(土) 12:04:14
JAVAやC#なくなってもCOBOLは現役だろ

666 :デフォルトの名無しさん:2007/02/24(土) 15:13:44
SVGを表示するには独自に解釈するしかない?

667 :デフォルトの名無しさん:2007/02/24(土) 18:20:14
ファイルをダウンロードするときに、リクエストヘッダに
Range: bytes= と、 If-Modified-Since:
を追加したいのですが、どうすればいいですか?

668 :デフォルトの名無しさん:2007/02/24(土) 18:25:16
どういうクラスを使ってるかくらい書いてくれんと答えようがない

669 :デフォルトの名無しさん:2007/02/24(土) 18:27:09
HttpWebRequestです。

670 :デフォルトの名無しさん:2007/02/24(土) 18:31:39
HttpWebRequest.AddRange
HttpWebRequest.IfModifiedSince

何でMSDN見ないのかなあ

671 :デフォルトの名無しさん:2007/02/24(土) 18:41:18
どうもです。

672 :デフォルトの名無しさん:2007/02/24(土) 18:45:55
>>665
何れ衰退するよ。あの言語は問題だらけな上に将来性がない。

抵抗勢力のッサン共を救済するためにあえて残っているだけ。
今は必要悪だが、徐々に不要になり、いずれ不要悪になる。


673 :デフォルトの名無しさん:2007/02/24(土) 18:47:49
>>670
ライセンス持ってないから

674 :デフォルトの名無しさん:2007/02/24(土) 18:48:39
ライセンス?
何を言ってんだおまいさんは

675 :デフォルトの名無しさん:2007/02/24(土) 18:52:48
MSDNなしで開発できる猛者とかいるわけ?尊敬するわ

676 :デフォルトの名無しさん:2007/02/24(土) 18:54:53
全く知識がなくてある程度の見当がついてないと探しようがないけどな

677 :デフォルトの名無しさん:2007/02/24(土) 20:03:54
CookieContainer|CookieCollectionをファイルへ保存したいのですが、どういった方法が一番良いでしょうか?
よろしくお願いします。

678 :デフォルトの名無しさん:2007/02/24(土) 20:13:46
>>674
Windowsもっていません。

679 :デフォルトの名無しさん:2007/02/24(土) 20:40:32
>>677
普通にシリアライズすればどうだろう

680 :デフォルトの名無しさん:2007/02/24(土) 21:11:06
>>678
Webで全部読めるぞ

681 :デフォルトの名無しさん:2007/02/24(土) 21:42:37
>>679
・・・出来ました・・・。
恥ずかしながら、バイナリシリアル化とXmlシリアル化を混同してました・・・orz
有り難うございました。

682 :デフォルトの名無しさん:2007/02/24(土) 21:45:56
JavaでいうところのXMLEncoder/XMLDecoderが
XMLシリアライズか・・・

683 :デフォルトの名無しさん:2007/02/24(土) 21:47:11
コンパイラDLしたんだけど、実行の仕方がわからん
誰か教えて

684 :デフォルトの名無しさん:2007/02/24(土) 21:50:56
断る

685 :デフォルトの名無しさん:2007/02/24(土) 21:53:32
改めてVisualC#Expressを落としてきて出直せ

686 :デフォルトの名無しさん:2007/02/24(土) 22:05:44
>>673
タダだ。落として入れとけ。

MSDN ライブラリ 2006 年 12 月版
http://www.microsoft.com/downloads/details.aspx?FamilyID=94596af5-cc58-45af-a14b-df627a31e783&DisplayLang=ja

687 :デフォルトの名無しさん:2007/02/24(土) 23:25:27
質問させてください。

Formを特定の場所に出力させるために下記のようなコード書きました。
--------------------------------
Form form = new Form();
form.Show();
form.Location = new Point(300, 300);
---------------------------------
しかし、上記のように書くとShowしたフォームが一瞬、別の場所に表示されてしまい
ちらつきが発生してしまいます。
どのようにコードを書けば画面のちらつきは解消できますでしょうか?
ご教授お願いいたします。

688 :デフォルトの名無しさん:2007/02/24(土) 23:28:49
表示してから動かしたらちらつくに決まっているではないか

Form form = new Form();
form.StartPosition = FormStartPosition.Manual;
form.Location = new Point(300, 300);
form.Show();

689 :デフォルトの名無しさん:2007/02/24(土) 23:33:27
form.StartPosition = FormStartPosition.Manual;

こんなのがあったんですね。
ありがとうございました。

690 :デフォルトの名無しさん:2007/02/25(日) 00:04:27
>>686
必要システム

* サポートされているオペレーティング システム : Windows Server 2003; Windows Vista; Windows XP

Windows持ってないから無理です

691 :デフォルトの名無しさん:2007/02/25(日) 00:08:18
気違い警報

692 :デフォルトの名無しさん:2007/02/25(日) 00:08:44
http://msdn2.microsoft.com/ja-jp/library/default.aspx
ウェブで見放題だ
釣りか?

693 :デフォルトの名無しさん:2007/02/25(日) 00:09:33
ieがない

694 :デフォルトの名無しさん:2007/02/25(日) 00:10:52
あきらめたら?

695 :デフォルトの名無しさん:2007/02/25(日) 00:41:21
単なるヘルプファイルの詰まったDVDなんだから
XML解読してビューア作るくらいしろよ

696 :デフォルトの名無しさん:2007/02/25(日) 01:04:18
>>689
それもそうだけど、Show()してから移動してるのが主な原因

697 :689:2007/02/25(日) 01:17:54
>>696
はい。そうですね。
俺が行間を補わなかったので
そう思われても仕方がありませんね。

698 :696:2007/02/25(日) 01:29:16
>>697
わかってたんなら余計な事言った。スマン

699 :デフォルトの名無しさん:2007/02/25(日) 09:03:59
>>693
釣り野郎か?Fxで普通に見られるつーの

700 :デフォルトの名無しさん:2007/02/25(日) 10:28:22
眼がないので無理です

701 :デフォルトの名無しさん:2007/02/25(日) 10:30:34
Fxてなんだ サンテFX?

702 :デフォルトの名無しさん:2007/02/25(日) 10:42:20
.NET Fx

703 :デフォルトの名無しさん:2007/02/25(日) 16:56:32
なんでで炉の裏ものって肝心なところ塗り潰してたりするんだろ
どうせ違法なのに

704 :デフォルトの名無しさん:2007/02/25(日) 17:01:31
>>703
すごい誤爆だなw

705 :デフォルトの名無しさん:2007/02/25(日) 17:11:42
規制前だろ

706 :デフォルトの名無しさん:2007/02/25(日) 21:27:22
>>701
Wikipediaより

Firefox は FireFox, FireFOX, FIREFOX, Fire fox, Fire Fox
などと表記されることが多いが、これらはすべて誤表記である。
正式には最初の文字だけが大文字であり、分かち書きもしない。
また FF と略記されることも多いが、こちらも誤りである。
Fx あるいは fx が好ましい略称とされている。

707 :デフォルトの名無しさん:2007/02/25(日) 21:34:51
「好ましい」略称が示されているだけなのにその他の略称は誤りなのか
いやまあその部分書いた奴は /. で死刑とか言ってたようなのと同類なんだろうけど

708 :デフォルトの名無しさん:2007/02/25(日) 21:42:02
このスレ的には>>702だとオモタ

709 :デフォルトの名無しさん:2007/02/25(日) 21:53:13
スレの流れから判断できるだろ

ここも春が来たか・・・

710 :デフォルトの名無しさん:2007/02/25(日) 21:56:05
まあMozilla-Japanもそういう口調で出てるからいいんじゃね

Q. Firefox のスペルは? 短縮形は?

A. Firefox のスペルは F-i-r-e-f-o-x です。最初の文字だけが大文字になります (例えば、FireFox や FireFOX、FIRE FOX など、多くの人がそうだと思い込んでいるものはすべて間違いです)。好ましい短縮形は「Fx」か「fx」です。

711 :デフォルトの名無しさん:2007/02/25(日) 22:03:53
英文翻訳体だから原文で読まんとなんとも

712 :デフォルトの名無しさん:2007/02/25(日) 22:21:42
為替証拠金取引

713 :デフォルトの名無しさん:2007/02/25(日) 23:09:59
おまえら全員消えろガキ

714 :デフォルトの名無しさん:2007/02/25(日) 23:15:01
WebBrowserを使って、マウスがリンク上にあることを
伝えるイベントって何ですか?

715 :デフォルトの名無しさん:2007/02/25(日) 23:16:35
そんなものはない

716 :デフォルトの名無しさん:2007/02/25(日) 23:31:56
<a>のonmouseoverになんか設定しとけばいんじゃね?

717 :デフォルトの名無しさん:2007/02/25(日) 23:52:40
ファイヤーフォックス?

ファイアーフォックス?

718 :デフォルトの名無しさん:2007/02/25(日) 23:55:27
>>717
失せろクズ

719 :デフォルトの名無しさん:2007/02/26(月) 01:47:36
スレ違いというより板違いだな
まー 一人の基地外が暴れているだけだと思われるが

720 :デフォルトの名無しさん:2007/02/26(月) 23:45:35
AxWebBrowser で表示させたブラウザ内をマウスホイールで
スクロールするにはどうしたらいいですか?

721 :デフォルトの名無しさん:2007/02/26(月) 23:47:07
.Netのロギング機構って使い辛いと思いませんか?Trace.XXX TraceSwitch
皆さんはロギングには何を使用していますか?
ツリー構造なのと、書き込みメソッド呼び出しが簡単なので自分はlog4netを使っています。
標準のをしっかり使ってる人いますか?

722 :デフォルトの名無しさん:2007/02/26(月) 23:56:30
自作のライブラリに限るね。
不用意に第三者の書いたコードを混入させるわけにいかんし。

723 :デフォルトの名無しさん:2007/02/26(月) 23:58:59
>>722
車輪の(ry

724 :デフォルトの名無しさん:2007/02/27(火) 00:00:31
仕事だと再発明をせんとならん場合もあるだろう

725 :デフォルトの名無しさん:2007/02/27(火) 00:03:08
>>721
Enterprise Libraryのロギングは標準のの上に構築されているそうだから使ってみたら。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=5a14e870-406b-4f2a-b723-97ba84ae80b5&DisplayLang=en

なまで使うならここが参考になるかも。
ttp://www7a.biglobe.ne.jp/~fbsoft/denshoku/dntrace00.html

726 :デフォルトの名無しさん:2007/02/27(火) 00:15:40
C#のソースコードをJavaに変換したいのですが
どんなツールで出来るか、或いは出来ないのかを教えて頂きたいです

727 :デフォルトの名無しさん:2007/02/27(火) 00:32:16
出来ない。

728 :デフォルトの名無しさん:2007/02/27(火) 03:01:45
そんな魔法みたいなことが

729 :デフォルトの名無しさん:2007/02/27(火) 09:47:36
っJ#

730 :デフォルトの名無しさん:2007/02/27(火) 10:29:16
>>726 
つ【小人】

731 :デフォルトの名無しさん:2007/02/27(火) 15:59:03
Enterprise Libraryって周りでは使ってるひと居ないんだけど。
みなさんどうですか?

732 :デフォルトの名無しさん:2007/02/27(火) 17:54:49
使ったことありますが、二度と使いません。

733 :デフォルトの名無しさん:2007/02/27(火) 18:20:26
>>726
.NET FrameworkとJAVA SDKで互換性がないから無理。
VB.NET VC.NET VC#.NET 
この3つ間なら一部のAPI以外は互換性あるから可能だと思うけど。

734 :デフォルトの名無しさん:2007/02/27(火) 18:28:47
>726
文法だけならほとんど同じだから、
スクリプト組んで変換すれば動くかも。
ライブラリを一つでも使うと無理。

735 :デフォルトの名無しさん:2007/02/27(火) 19:05:59
C#でソフトウェアを作ろうと思っているんですが
C#はソースコードが丸見え、通信の反応からソースコードがばれるといいますが
どういうことなんでしょうか?詳しい方お教え下さいませ
また、それに対する対処法などもあればお教え願いたいです
ただし、逆アセンブリング解析でのソースコード判明は置いておいたとします

736 :デフォルトの名無しさん:2007/02/27(火) 19:09:00
ヘラブナ釣り思い出した

737 :デフォルトの名無しさん:2007/02/27(火) 19:11:01
>>735
http://uwa.potetihouse.com/soft/nandoku.html
ここを参考にすればいいかと。
というか、最新バージョンの作成日が「2007/12/05」になっている。w
誰も指摘していないのか・・。

738 :デフォルトの名無しさん:2007/02/27(火) 19:17:37
WindowsXP Embedded を採用したATM
http://pc10.2ch.net/test/read.cgi/pcnews/1172571379/

739 :デフォルトの名無しさん:2007/02/27(火) 20:14:11
>>737
あらゆるカテゴリのUnicode文字が識別子に使えたら面白いな。
繁体字、カンナダ文字、IPA、ハングル、アムハラ文字、罫線、アルメニア文字、etc.が入り乱れるソースコードに。

740 :デフォルトの名無しさん:2007/02/27(火) 20:20:07
それはすごい(棒)

741 :デフォルトの名無しさん:2007/02/27(火) 20:32:00
それはうまい(棒)

742 :デフォルトの名無しさん:2007/02/27(火) 20:32:34
それはエロい(棒)

743 :デフォルトの名無しさん:2007/02/27(火) 20:32:38
それは珍しい(棒)

744 :735:2007/02/27(火) 20:50:24
>>737
私は難読化ツールを紹介して欲しかったのではなくて
逆アセンブリング解析と難読化の有無は置いておいた上で
C#はソースコードが丸見え、通信の反応からソースコードが分かるといわれる仕組みを知りたかったのです
どういう風にしてソースがばれるのかということで、クライアントサイドとサーバーサイドで動くもの
両方とも同じ仕組みでソースコードがばれてしまうのかということについても、不躾ですがお教え願いたいです

745 :デフォルトの名無しさん:2007/02/27(火) 20:52:35
>通信の反応からソースコードが分かる

イミワカラン

746 :デフォルトの名無しさん:2007/02/27(火) 20:55:32
むむ、この浮きの反応はスレアタリだな。あわせたらいかん。

747 :デフォルトの名無しさん:2007/02/27(火) 20:57:04
> C#はソースコードが丸見え、通信の反応からソースコードが分かるといわれる
> 両方とも同じ仕組みでソースコードがばれてしまう
そんなことはない。

748 :デフォルトの名無しさん:2007/02/27(火) 21:09:59
通信云々は知らんが、.net言語は全部ILに変換するはずだから、
ILさえ解析できれば動作がわかるのは当然。
それがソースコード丸見えっていうのならそうに違いないが、
アセンブリが読めるからソースコードがわかるってのとそんなに替わらん。

現実的にはILからC#のソースに逆変換するのは難しいんじゃないか?
おれが知らんだけかもしれんが。

749 :デフォルトの名無しさん:2007/02/27(火) 21:12:24
C#をコンパイルしたままのMSILは、ほど100%の精度でデコンパイルできるでしょ

750 :737:2007/02/27(火) 21:17:23
リンク先にある「Reflector for .NET」を探しているのかと思ったけど
いったい何がしたいのやら・・

751 :デフォルトの名無しさん:2007/02/27(火) 21:20:24
CILは通常のネイティブアセンブリと違って、人間の読むことができる言語だがな

752 :デフォルトの名無しさん:2007/02/27(火) 21:41:51
>>749
ググったらほんとにそうだった。
MSILってもっとミクロな言語だと思ったんだが、クラス名や関数名まで再現できるのね。
こりゃセキュリティ関連で使うには問題あるわ。

753 :デフォルトの名無しさん:2007/02/27(火) 21:43:18
解析されても大丈夫なセキュリティにすればよいのだ

754 :デフォルトの名無しさん:2007/02/27(火) 21:44:26
> こりゃセキュリティ関連で使うには問題あるわ。

そんなプログラムを書くプログラマの方に問題がある。

755 :デフォルトの名無しさん:2007/02/27(火) 21:46:14
セキュリティじゃなくて、シェアウェアの解除コードとか埋め込んでる人たちは困るだろうな。
大体ネガってるのはシェアウェアの作者や業者だな。

756 :デフォルトの名無しさん:2007/02/27(火) 21:51:30
競合他社のアセンブリを、なぜか入手できちゃって、なんとなく解析しちゃってる
大手ベンダーの存在も見逃せないけどなw

757 :デフォルトの名無しさん:2007/02/27(火) 21:55:25
.NETの初期の頃なだまだしも、今更な話題で盛り上がれてもなぁ。
で、>>744はどこ行ったんだ?
オマエの知識の参考元のURLでも示してくれよ。

758 :デフォルトの名無しさん:2007/02/27(火) 22:01:27
初めのころはそういう話題で盛り上がったのを思い出した。
ソースに近い情報が見えたら盗用してるのがばれてしまうではないか。
おらのセキュリティの危機っす・・とかいうネタがあった。

759 :デフォルトの名無しさん:2007/02/27(火) 22:01:59
クライアント側で動くものについてはC#でもJavaでもC++でも
アセンブラでも(クラックは簡単という点で)大差ないんだけどね。
サーバ側で動くものについても(クラックは難しいという点で)
大差ないわけだが。

760 :デフォルトの名無しさん:2007/02/27(火) 22:06:00
>>759
>>774によればサーバー側のアプリも逆コンパイルできるようだが?

761 :デフォルトの名無しさん:2007/02/27(火) 22:08:14
そりゃサーバー側のプログラムが手に入れば逆コンパイルできるかもしれんが
それ以前にどうやってそのプログラムを手に入れるんだという問題が

762 :デフォルトの名無しさん:2007/02/27(火) 22:10:10
期待してるぞ>>774

763 :デフォルトの名無しさん:2007/02/27(火) 22:20:47
文句があるならP&Gは何の略か言ってみろ。

764 :デフォルトの名無しさん:2007/02/27(火) 22:34:35
大学翻訳センターです。

765 :デフォルトの名無しさん:2007/02/27(火) 22:39:16
何とかアンドギャンブル

766 :デフォルトの名無しさん:2007/02/27(火) 22:40:02
http://www.amiami.com/images/product/main/HOB-FIG-5150A.jpg
http://www.vipper.net/vip187747.jpg

キタ━━━━━(´Д`(○≡(゚∀゚)≡○)´Д`)━━━━━!!!!
10体予約したwwwww


767 :デフォルトの名無しさん:2007/02/27(火) 23:06:19
今回のスレは今まで以上に無駄な内容ばかり。

768 :デフォルトの名無しさん:2007/02/27(火) 23:13:27
>C#はソースコードが丸見え、通信の反応からソースコードが分かるといわれる
どこで言われてんのか教えろ


769 :デフォルトの名無しさん:2007/02/27(火) 23:16:48
(アニメ) マリア様がみてる 〜春〜 第13話 「パラソルをさして」 [23m40s 640x480 DivX502+MP3].avi

770 :デフォルトの名無しさん:2007/02/27(火) 23:18:04
ソース見える言うけど実際はあれくらい見えてもいいんじゃないかと思う。
見られてほんとに困るところは少数な気がする。
まあいやってのも分かるんだけどね。


771 :デフォルトの名無しさん:2007/02/27(火) 23:19:55
>シェアウェアの解除コードとか埋め込んでる人たち
んなの.NETでなくてもあるていどは似たようなもんだと思うが。



772 :デフォルトの名無しさん:2007/02/27(火) 23:21:44
>>752
リフレクションが使える時点で気づけよ・・・

773 :デフォルトの名無しさん:2007/02/27(火) 23:22:15
>>725
せめてTraceSourceの説明がまともにあるとこにしてやれ。
Enterprise Libraryはログだけのためには大げさなんだよな…


774 :デフォルトの名無しさん:2007/02/28(水) 00:20:12
解析する奴はドングルにしたって解析するだろ

775 :デフォルトの名無しさん:2007/02/28(水) 00:23:22
つうか普通はバイナリでも見られちゃ困るものはそのまま埋め込むようなことはしない。

776 :デフォルトの名無しさん:2007/02/28(水) 00:41:40
ソース


777 :デフォルトの名無しさん:2007/02/28(水) 00:44:36
ソースが見えるからセキュリティで使うのは問題って、典型的なSecurity by Obscurityですね

778 :デフォルトの名無しさん:2007/02/28(水) 01:03:12
>>744
あんまりお勧めじゃないけど、

『これからはじめる .NETFramework .NETリモーティング編』
にそこら辺の理由が書かれている。

実際には『C#はソースコードが丸見え…』でなく、作り方によっては丸見え(?)なってしまうこと。

もうちょっと書くと、C/S間でお互い通信するために、インターフェースのやりとりが必要で、
インターフェースのやりとりをするのに生のコード(DLL)を渡してしまうと>>752
が書いているようにMSILで簡単にコードが分かってしまうってこと。
インターフェースのやりとりに3種類あるらしく
 ・実装タイプ
 ・メタデータタイプ
 ・インターフェース
で、実装タイプにはソースコードの機密性の問題があるらしい。
その他はインターフェースのみだから、ソースコードの漏れの問題は無し

779 :デフォルトの名無しさん:2007/02/28(水) 01:22:49
ぶっちゃけfubsucatorとかで難読化した紋ってどの程度難読化になるのかね?
個人的にはあれで難読化したものおおうとは思わないが、気合入れてやる人にはあまり意味がない?でもそんな人にはあせんビルコードでも意味が内規がするが。

780 :デフォルトの名無しさん:2007/02/28(水) 02:07:27
ttp://madebits.com/netz/index.php

781 :デフォルトの名無しさん:2007/02/28(水) 03:35:23
難読化なんて文字通り意味ない。
ソースコード見られてマズいのはセキュリティ関連や特許技術なんかじゃねーの?

それか恥ずかしいとかw

782 :デフォルトの名無しさん:2007/02/28(水) 04:20:14
業務で実際に見られて困るのは、DBのレコードや通信データがほとんどだから、
DBはサーバ管理、通信データは暗号化で対応するから問題ない。

783 :デフォルトの名無しさん:2007/02/28(水) 05:14:40
あと契約上の問題とか。ソースを納品しない契約だから、バイナリからソースを復元できてはダメとかw

784 :デフォルトの名無しさん:2007/02/28(水) 10:09:23
>>778
通信内容からとか全然関係ないじゃん。
dll配ったらそら見れるつか当たり前。
配らなくても出来るのにわざわざ配って
ソースまる見えとかただのあほじゃん。


785 :デフォルトの名無しさん:2007/02/28(水) 10:13:05
ああちなみに、インターフェイスでやりとりするのが常識、俺の中では。
まあそもそもリモーティング使う場合の話だが。

786 :デフォルトの名無しさん:2007/02/28(水) 10:22:25
opensslなんかソース公開だがそれで危険なんて話は聞いたことがない

787 :デフォルトの名無しさん:2007/02/28(水) 11:33:37
あれは公開されてるから安心なパターン。


788 :デフォルトの名無しさん:2007/02/28(水) 11:35:41
大抵暗号キーを埋め込んでたり俺暗号もどきをおこなってたりっていう
馬鹿なことをしてる奴だろ。

789 :デフォルトの名無しさん:2007/02/28(水) 12:59:44
売り上げ3500万程度だと接待費はどれくらいまでなら落ちますか?


790 :デフォルトの名無しさん:2007/02/28(水) 13:24:34
はいはいスレ違い。
食費とバレナイ程度じゃねw

791 :デフォルトの名無しさん:2007/02/28(水) 13:29:54
@IT:.NET TIPS 実行ファイルのパスを取得するには? - C#
file:///D:/html/_entry/NET%20TIPS%20−%20@IT/www.atmarkit.co.jp/fdotnet/dotnettips/016exepath/exepath.html

ここを参考にして、実行してるプログラム自身のパスを取得したんですが、
あってるはずのパスと比較してもうまくいきません。
実際には以下のようなコードです。

String exePath = Application.ExecutablePath;
if (exePath == @"C:\p1\bin\Debug\p1.exe")
{

}

パスはあってるはずなのに何度やってもfalseになるので、格納されてる文字列を出力してみたところ、

ExecutablePath で取得したパス:C:\p1\bin\Debug\p1.EXE
実際のパス:C:\p1\bin\Debug\p1.exe

のように、実際の拡張子が小文字にもかかわらず大文字で認識されることがわかりました。
そこで、文字列比較のところでToUpper()を使うことにより正常に動作するようになったのですが、
上のサイトでは、ExecutablePathで取得したパスの拡張子は小文字なのに、なぜ私の環境だけ大文字になるのか不可解です。
これは.netのバグでしょうか?それとも私が仕様を読み違えているんでしょうか?
ググっても、MSDNを参照してもそれらしいことは発見できませんでした。



792 :デフォルトの名無しさん:2007/02/28(水) 13:56:53
多分Win32APIの仕様だと思うが
とりあえずパス比較ではCaseを揃えるのは常識

793 :デフォルトの名無しさん:2007/02/28(水) 14:07:59
そんなことあるまいと思って見てみたけど、確かに拡張子は大文字になってら

ちなみに、自分の過去アプルもCaseは揃えるようにしてた。
大文字、小文字が混合している場合とか考えると、
その方が楽だからという理由だったんだけど

794 :デフォルトの名無しさん:2007/02/28(水) 15:10:24
>>792-793
パスの文字列比較はCaseをそろえる必要があるんですか、知りませんでした。

でも、もしこれがWin32APIの仕様だとすれば、Vistaでは通常通りのパスが取得できるんですかね。
OSによって取得する文字列が違うとかまずいと思うんですが、そこらへんMSはどう考えてるんでしょうか。

795 :デフォルトの名無しさん:2007/02/28(水) 15:16:31
Vista上のVC#2005 Express Edition で試してみたけど、

デバッグ時→.EXE
リリース時→.exe

になったよ

796 :デフォルトの名無しさん:2007/02/28(水) 15:22:11
プロジェクトのプロパティで[Visual Studio ホスティング プロセスを有効にする]
が有効になってると拡張子が大文字になる気がする

797 :デフォルトの名無しさん:2007/02/28(水) 15:35:30
>>794
>OSによって取得する文字列が違うとかまずいと思うんですが、そこらへんMSはどう考えてるんでしょうか。

FATとNTFSの仕様でパス名内の大文字小文字は区別しないことになってる。
文字列として違っていてもパスとしては等しいので問題なし。


798 :デフォルトの名無しさん:2007/02/28(水) 15:41:44
ntfsは区別できるけどな
あえてしないだけで

165 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)