C♯, C#相談室 Part37

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

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

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
2デフォルトの名無しさん:2007/01/18(木) 17:56:46
3デフォルトの名無しさん:2007/01/18(木) 17:57:17
4デフォルトの名無しさん:2007/01/18(木) 17:58:12
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
普通にポインタつかえばいいじゃない?
4138: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でも使っとけ
4938,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のほうが速いよ
5438: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
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あたりじゃね
8179:2007/01/22(月) 20:26:16
うーん

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

Javaのはこういうコンストラクタがあってさ
これ使うとReaderのデータを自動的にWriterに渡せるんだよね
やっぱりないか・・・
82デフォルトの名無しさん:2007/01/22(月) 20:44:20
83デフォルトの名無しさん:2007/01/22(月) 22:13:28
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
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インストールしたら報告してね!
183169: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は兄弟だから、ダウンキャストとは言わんな
194192: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で
アクティブにせずに表示。
208206:2007/01/31(水) 16:47:03
ShowWithoutActivationは実装し呼ばれることも確認したんですが、trueかえしてもフォーカスロスとしてるっぽいです...
ShowWindowあたり見てみます。
209206: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
だがエクスプローラの右ドラッグには「キャンセル」がありまする。
これきっと、メニューの外側を適当にクリックしてメニューを消すと
ファイルの選択が解除されるからだな。
213211: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
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
236デフォルトの名無しさん:2007/02/01(木) 23:48:38
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
246デフォルトの名無しさん:2007/02/02(金) 00:19:47
.NET Framework 3.5って、プログラミング言語(C#3.0)の処理系を含むの?
247デフォルトの名無しさん:2007/02/02(金) 00:23:01
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

269264: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
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/
349344: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に空白が含まれてるなら""で囲え
367365: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
しばくぞ
421416: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
仕事で使いたくないと思うが勉強になる
466464: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章)
467464: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)
468464: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
△をカラムのテキストに含めるんだ
478475: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から使えそう。
480479:2007/02/12(月) 13:59:48
違う違う。
1. ListViewにLVM_GETHEADERをSendMessage
481475: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;
483475: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
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
解決しました。ありがとうございます。
517510:2007/02/14(水) 23:24:25
LinkLabelではなくて、>>514の言うとおりXPの「プログラムの〜」とかiTunesとかです。
ああいうのを使いたいんですが。
518510: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
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
どんなリフレクションの使い方してる?
てかリフレクションじゃない方インライン展開されてるとかっておちじゃねーの?
571569: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
何ツーか参考書見直してからカカッテコイ!щ(゚Д゚щ)
576564: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()してから移動してるのが主な原因
697689:2007/02/25(日) 01:17:54
>>696
はい。そうですね。
俺が行間を補わなかったので
そう思われても仕方がありませんね。
698696: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
それは珍しい(棒)
744735: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%の精度でデコンパイルできるでしょ
750737: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
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は区別できるけどな
あえてしないだけで
799デフォルトの名無しさん:2007/02/28(水) 21:15:39
ファイルシステムはいろいろ制限がある。
大文字小文字のほかに長いファイル名の問題もある。

http://support.microsoft.com/kb/436213/ja
800デフォルトの名無しさん:2007/02/28(水) 21:21:53
パス文字列の等価性を検証するのはかなり困難だろ
801デフォルトの名無しさん:2007/02/28(水) 21:54:54
\\?\
802デフォルトの名無しさん:2007/02/28(水) 22:27:29
それかって一部の変態的サービスが無効になるだけだからなあ
803デフォルトの名無しさん:2007/02/28(水) 23:02:29
UNIXのNTFSドライバで大文字小文字区別する設定があるな。
FATは元々同一ファイルになるからないが。
804デフォルトの名無しさん:2007/02/28(水) 23:04:39
クマー
805デフォルトの名無しさん:2007/02/28(水) 23:06:52
>>804
ttp://www.sixnine.net/cygwin/cygwin-doc/managed.html
NTFS では区別することが可能ですが、互換性維持のため、区別しないようになっています。
806デフォルトの名無しさん:2007/03/01(木) 02:10:23
おまいらある領域を透明なカラーで塗りつぶしたいときはどうしたらいいんですか?
やりたいことは半透明なカラーとかで描画する前にその領域をアルファ値が0のカラーで塗りつぶしてくことです。
そうしないと前回描画したものに上書きすることになってしまい残ってしまいます。
透明な色で塗りつぶしたいのはその描画した内容をUpdateLayeredWindowで半透明な描画として扱いたいためです。
807デフォルトの名無しさん:2007/03/01(木) 02:21:29
XOR
808デフォルトの名無しさん:2007/03/01(木) 02:45:22
System.Drawingでいいんだよな?
ClearメソッドかCompositingMode?だかそんな感じのプロパティ
809デフォルトの名無しさん:2007/03/01(木) 02:59:58
Graphicsのプロパティですかの?
明日調べてみます。もうおねむなので・・・(´・ω・`)
お舞らあり。
810デフォルトの名無しさん:2007/03/01(木) 06:02:01
あるDataSet内に関連性の無いDataTable1とDataTable2があって、それぞれのスレッドで書き込みがあるとしても、同期を取る必要はあるのでしょうか?
それとも、そもそも関連性の無いDataTableは違うDataSetに分けるべきでしょうか?
よろしくお願いします。
811デフォルトの名無しさん:2007/03/01(木) 08:16:27
普通にalpha値指定した「色」で描画するだけだと思うんだが。。
812デフォルトの名無しさん:2007/03/01(木) 09:27:56
>>809
そ、Graphics。
俺もおねむだったのではしょったけど、SourceCopyにしてFillRectangle
みたいな感じでいけない?
813デフォルトの名無しさん:2007/03/01(木) 11:57:13
>>811 普通に透明な色で描画してみなはれ。
>>812 いけますたありがと♪(´ー`* )))) ((((*´ー`)ありがと♪
814デフォルトの名無しさん:2007/03/01(木) 12:59:11
ベースクラスのコンストラクタで呼ばれるメソッドの挙動を変える何かいい方法ありませんか?
コンストラクタから呼ばれてしまうので内部メンバを変える暇がない。
オーバー可能なプロパティを読んでるものならそれをオーバーライドすればいいけどパラメータの組み合わせの数だけクラスを作らないといけない(´・ω・`)
なんかすごく醜いコードです・・・
815デフォルトの名無しさん:2007/03/01(木) 13:25:47
>>814
ベースクラスの挙動を制御しなきゃいけないような設計自体がまずいのでは。
816デフォルトの名無しさん:2007/03/01(木) 13:27:37
virtual
817デフォルトの名無しさん:2007/03/01(木) 14:40:18
>>815 Formみたいにベースクラスで勝手にウィンドウ作られてるのとかほかの人がくそな設計してることも多いと思われ。
818デフォルトの名無しさん:2007/03/01(木) 15:35:38
>>814
815の指摘通り設計がまずいと思う。
ベースクラスがきちんとデザインパターンに沿った設計をしていればそんなひどいことにならない。
819デフォルトの名無しさん:2007/03/01(木) 16:10:06
いやいやですからベースクラスの設計がうんこなのは承知の上で(自分じゃタッチできないし)それをコントロールする方法ないかということだったんですが・・・(´・ω・`)
820デフォルトの名無しさん:2007/03/01(木) 16:20:51
>自分じゃタッチできないし

それを先に書かないと、「設計しなおせ」の嵐になるのは当然
821デフォルトの名無しさん:2007/03/01(木) 16:23:26
>>819
メソッド宣言でvirtual使っていたら、挙動を変えれるが
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/csref/html/vclrfVirtualPG.asp

結局は、ベースクラスのメソッド宣言次第ということ。
822デフォルトの名無しさん:2007/03/01(木) 16:23:34
すまんですた(´・ω・`)
823デフォルトの名無しさん:2007/03/01(木) 16:24:32
ちなみにひとつでも仮想関数を使った場合にほかのメソッドをvirtualにしないりゆうってなんざんしょ。
824デフォルトの名無しさん:2007/03/01(木) 16:36:05
前も同じこと言ってる奴いなかったか
825デフォルトの名無しさん:2007/03/01(木) 16:44:57
とりあえず、デザインパターンも知らないやつに設計してもらいたくはないな
826デフォルトの名無しさん:2007/03/01(木) 16:58:26
デザインパターンとか持ち出す以前の問題ではある
ていうか、どうしてもその出来の悪いクラスを親にしないといかんの?
827デフォルトの名無しさん:2007/03/01(木) 17:04:52
>>814
まさかとは思うが>>379と同じ奴?
828デフォルトの名無しさん:2007/03/01(木) 17:28:52
>デザインパターンとか持ち出す以前の問題ではある
んだね

派生クラスで手に負えないってどういうケースなんだろ
コンストラクタって初期化するところだろ
派生クラスで上書きで初期化すれば通常済むだけだとおもうし、
場合によっては、基底クラスのコンストラクタ呼ばなければいいんじゃないと思ってしまったけど

複数の変数間でうまいこと整合性がとれないとかなのかな?
829デフォルトの名無しさん:2007/03/01(木) 18:57:30
規定クラスのコンストラクタは必ず呼ばれるだろ。
830デフォルトの名無しさん:2007/03/01(木) 21:59:07
α値 0で塗りつぶしても描画されないのでは???
50%ぐらいにしないと…
831デフォルトの名無しさん:2007/03/01(木) 22:07:27
透明度0だとでは
832デフォルトの名無しさん:2007/03/01(木) 22:19:57
>>830
というかお前はいまさらなにを
833デフォルトの名無しさん:2007/03/01(木) 22:26:09
834デフォルトの名無しさん:2007/03/02(金) 01:16:03
Reflectorの今度のアップデートで
ローカル変数の名前まで出るようになってない?!

と焦ったが、単にメソッドの仮引数から名前引っ張ってきてるだけだった
835デフォルトの名無しさん:2007/03/02(金) 01:34:31
チラシの裏にでも書いてろ
836デフォルトの名無しさん:2007/03/02(金) 01:39:34
いや、変数の意味をある程度推測して名前つけるようになってるよ。
837デフォルトの名無しさん:2007/03/02(金) 08:31:26
Add-Inが全滅したでよ!!!
838デフォルトの名無しさん:2007/03/02(金) 12:37:44
MSDNライブラリのRSACryptoServiceProviderの項を見ますと、次のように書かれています。

> Microsoft Enhanced Cryptographic Provider がインストールされている場合、
> RSACryptoServiceProvider は 384 ビットから 16384 ビットのキー長を 8 ビット単位でサポートします。
> Microsoft ベース暗号化プロバイダがインストールされている場合は、
> 384 ビットから 512 ビットのキー長を 8 ビット単位でサポートします。

これは要するに、Windows 2000以前のバージョンでは、RSAの鍵長は512bitまでだ、ってことなんでしょうか。
839デフォルトの名無しさん:2007/03/02(金) 13:44:17
>>838
そうじゃないの?
俺もそう受け取ってるんだけど

MSDNのどっかに、もっと直接的に書かれてなかったっけ?
840839:2007/03/02(金) 14:00:31
たぶん、自分がそう思ったのは↓かな。 正確に理解出来てるわけではないので、判断はおまかせします
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemsecuritycryptographyrsacryptoserviceproviderclassencrypttopic.asp
841デフォルトの名無しさん:2007/03/02(金) 23:14:39
お前らは、なぜC++/CLIを使わずに、C#を使うの?
842デフォルトの名無しさん:2007/03/02(金) 23:17:34
キモ過ぎる
C++でさえ変態的なのに、もはやC++ですらない
843デフォルトの名無しさん:2007/03/02(金) 23:23:29
キモいは言い過ぎだと思うけど、生理的に嫌。
844デフォルトの名無しさん:2007/03/02(金) 23:33:40
C#ってそんなにキモイの?
845デフォルトの名無しさん:2007/03/02(金) 23:34:22
というか*C++/CLIを使わずに*って決め付けられても。
適材適所としか。
846デフォルトの名無しさん:2007/03/02(金) 23:36:17
C#でできることって全部C++/CLIでできるじゃん。しかも簡単に。
なのに、なぜC#をわざわざ使うのかわからない。
847デフォルトの名無しさん:2007/03/02(金) 23:37:31
勝手にC++/CLIでも使ってろよ
848デフォルトの名無しさん:2007/03/02(金) 23:40:52
>>846
巣に帰れ
849デフォルトの名無しさん:2007/03/02(金) 23:49:12
>>846
・匿名メソッド
・イテレータ

IDEに広げればインテリセンス(さらにその他の支援機能)は劣るし、
「クラス」で機能分割しているからヘッダのシステムは糞めんどくさいだけだし
そもそもC++ってEffectiveC++とか「あんなレベル」の解説書が何冊も書ける
仕様なほど落とし穴だらけだし(EC++が糞本っていう意味じゃないぞ)、
まぁ、その、なんだ、C++は嫌い。もう。すごく。便利だけど。
C++/CLIなんてさらに複雑だし。つーか、あのデストラクタの実装超キモいよ。
850デフォルトの名無しさん:2007/03/02(金) 23:51:51
>>849
そういう論理的な理由が聞きたかった。ありがとう。
851デフォルトの名無しさん:2007/03/02(金) 23:57:59
.NET使うなら一番楽ができるのはC#なんだろうなあとは思うけど、
言語的にはけっこう窮屈な気がする。多重継承ありでmix-inとかやりたい。
852デフォルトの名無しさん:2007/03/03(土) 00:04:29
>>851
それは、partial class + Generatorで補えってことなんだと思う。
個人的にはこれはキモいのでいい手ないかなぁとも思うけど、
Extension Methodがあんな形で出てくるところを見ると、難しい
点でもあるのでしょう。

ヘジの統合屋としての才能は信用しているから余計に。
853デフォルトの名無しさん:2007/03/03(土) 00:10:15
dotcoeという.NETで書かれたPC管理ソフトがある。
難読化もされていない。
リモーティングも活用ですよ。
お前等もこれくらいノーガードを見習え。
854デフォルトの名無しさん:2007/03/03(土) 01:12:16
見習えって誰も難読化なんてしてませんが・・・
855デフォルトの名無しさん:2007/03/03(土) 01:14:19
なんて○○使わずに○○使うの?って質問の方がキモイ
世の中の車は全てヴィッツが正しいとでも言うのかよw
856デフォルトの名無しさん:2007/03/03(土) 01:35:28
>>855のてぃんこはポークヴィッツ
857デフォルトの名無しさん:2007/03/03(土) 01:37:28
>>855が一番キモイ
858デフォルトの名無しさん:2007/03/03(土) 06:12:54
おまえらなんでムキになってんの?
859デフォルトの名無しさん:2007/03/03(土) 09:47:03
男ならGT-R
860デフォルトの名無しさん:2007/03/03(土) 11:20:13
結論

1から始めるなら C# よりも C++/CLI の方がよい。
861デフォルトの名無しさん:2007/03/03(土) 11:21:29
そうだな。1から始めるような人がこのスレに来なくて済む
862デフォルトの名無しさん:2007/03/03(土) 11:22:31
そして路頭に迷うんだな
863デフォルトの名無しさん:2007/03/03(土) 11:34:55
C#不要論が大勢を占めてきたな
864デフォルトの名無しさん:2007/03/03(土) 12:05:23
ManagedからんだときはC++/CLIでできることもC#でできることもかわらんと?
865デフォルトの名無しさん:2007/03/03(土) 12:22:17
C#にしろC++に言語など所詮道具、使う人の技能次第だということがわからないとは。
866デフォルトの名無しさん:2007/03/03(土) 12:27:10
物事を始めるにあたり、先ずはじめに、どの道具を使うかを選ぶわけで、
道具としてC#よりC++/CLIの方が便利であるという結論が出た。
867デフォルトの名無しさん:2007/03/03(土) 12:35:31
>>865 そうだねー原子とかいじれればたいていのことできるもんねー。すごいねー。
868865:2007/03/03(土) 12:50:20
C# WindowsOS上の開発(ASP.NET・スマートクライアント)
C++ UNIXおよびリソースの少ない組み込み開発
に使い分けられるだけだよ。
C++はライブラリ互換性に問題あるからWindowsアプリで使うには厳しいだけ
869デフォルトの名無しさん:2007/03/03(土) 14:11:58
漏れはWindows上なら、
1.仕事で作る物と使い捨てプログラムはC#が使えるなら使う。
2.個人使用目的、特に常用する物なんかはC++で古風に書く。

1は楽だから。
2は.NETでかいから。
870デフォルトの名無しさん:2007/03/03(土) 14:57:12
c++ のライブラリで ***a とかが出てくるだけでやる気が失せるんですけど。
871デフォルトの名無しさん:2007/03/03(土) 15:08:13
C++とC++/CLIはまったく別物だろうが…
872デフォルトの名無しさん:2007/03/03(土) 15:13:04
>>860-871
趣味グラマはチラシの裏に書いておけ
873デフォルトの名無しさん:2007/03/03(土) 15:27:37
C++/CLIはVBプログラマーをVB.NET開発に引き入れるために作られたのと同じように
C++プログラマーを.NET開発に引き入れるために作られたもの。
C++/CLIで実装したことはC#でも実装できる。
C#はJAVAと構文が近いからJAVAとまったく一緒と思い込んでる人が多いのしょうがないけど、
実際にはC++で必要と思える機能を書き直した言語だと理解していないだけ。
C++で実装できたことはほとんど実装できると見てよい。
874デフォルトの名無しさん:2007/03/03(土) 16:35:50
>>841
お前は、なぜC++0xを使わずに、C++/CLIを使うの?
875デフォルトの名無しさん:2007/03/03(土) 16:36:47
>>849
EffectiveC++がそうだからといって
EffectiveJavaまでそうだとはいわんよな
876デフォルトの名無しさん:2007/03/03(土) 17:32:41
>>874
C++0xはまだ出ていないから。

あと、C++0xにはGC無いんでしょ。
auto_ptrとかshared_ptrとかいちいち使い分けたくないし。
877デフォルトの名無しさん:2007/03/03(土) 18:27:56
>>849
Effective C++が書けて、Effective C#が書けない理由は何?
878デフォルトの名無しさん:2007/03/03(土) 18:52:56
これ全部 >>841 の自演だろ。
わざわざC#のスレに荒らしに来るなってw
879デフォルトの名無しさん:2007/03/03(土) 18:56:41
荒らしだとか言う人が一番の荒らしです。
880デフォルトの名無しさん:2007/03/03(土) 19:13:58
お前らくだらねぇから消えろ
881デフォルトの名無しさん:2007/03/03(土) 22:09:48
IDが出ないのも困るよね
882デフォルトの名無しさん:2007/03/04(日) 23:21:24
IDが出ないならfusianasanすればいいじゃない
883デフォルトの名無しさん:2007/03/04(日) 23:26:21
C++よりC#の方が開発、保守が楽になってるのに、C#に文句いってるC++プログラマーは変だな。
新言語覚えるのめんどくさいからいやだと一言ですませればいいのに。
884デフォルトの名無しさん
いい加減スレ違い