- 1 名前:デフォルトの名無しさん mailto:sage [2009/12/06(日) 23:54:00 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ C#, C♯, C#相談室 Part55 pc12.2ch.net/test/read.cgi/tech/1255530225/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>2-5くらい
- 175 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 10:39:13 ]
- デリゲートと関数ポインタは機能として似た部分あるが概念はまったく違うものなのでおkではない
- 176 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 10:46:44 ]
- >>175
そっか? Cの関数ポインタ型の抽象化といっていいんじゃないか。実装は、全然違うけど。
- 177 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 11:10:05 ]
- どっちかというと,デザインパターンで多用されるような
メソッドを無理やりオブジェクトのように扱うための手法を 言語に取り込んで関数ポインタっぽくしたものだな
- 178 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:25:55 ]
- 関数ポインタ + thisがデリゲートという思ってれば問題ない。
一度C++でクラスメンバーへの関数ポインタを扱ってみるといい。 めんどくせーから。
- 179 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 15:39:31 ]
- 日本にプログラマとして数千万もらってる人いるのかなぁ
- 180 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:04:46 ]
- プログラマー板へ行けよ
- 181 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 16:10:19 ]
- ラムダ士気のおかげでデリゲートじゃなきゃやってられなくなった
- 182 名前:デフォルトの名無しさん [2009/12/24(木) 20:26:26 ]
- リフレクションでプラグインのDLLをロードします。
そのときプラグインのメソッドは制限ゾーンで動かしたいと思っています。 そのときに、これ [PermissionSet(SecurityAction.PermitOnly, Name = "Nothing")] public void func() { ... と同等の状態で動かしたいのですが、 MethodInfo.Invokeで呼び出す前に制限状態にするとInvokeに失敗してしまいます。 プラグイン側は第3者が作るので属性をつけることを強制できません。 なにか良い方法はないでしょうか。
- 183 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 22:55:22 ]
- NothingなAppDomainを作って、そいつの中へDLLをロードすれば?
- 184 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 23:01:07 ]
- らむだとでりげーどってなあに??
- 185 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 23:15:00 ]
- そもそもなんでMethodInfo.Invokeで呼び出す必要があるんだ?
インターフェイスか基底クラスにしといて、そこで定義したメソッドを SecurityAction.PermitOnly状態から呼び出したらいけるんでないの?
- 186 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 23:20:16 ]
- Dispose("俺");
- 187 名前:デフォルトの名無しさん mailto:sage [2009/12/24(木) 23:53:24 ]
- Dispose("このスレ");
- 188 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 08:14:40 ]
- "俺".Dispose();
"このスレ".Dispose();
- 189 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 09:39:15 ]
- 俺にとっては
using このスレ;
- 190 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 09:46:29 ]
- ">>1-1000".Dispose();
- 191 名前:デフォルトの名無しさん [2009/12/25(金) 11:10:51 ]
- USBカメラと接続して静止画を撮りたいです。
DShowNETというのがあるようですが、VistaやWin7にも対応したいです。 どんな方法があるでしょうか。
- 192 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 11:17:42 ]
- 191.Dispose();
- 193 名前:デフォルトの名無しさん [2009/12/25(金) 11:47:24 ]
- >>178
それやったことあるけど面倒だったわw。 確かに面倒だったね。
- 194 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 12:02:49 ]
- >>191
DShowNETでOK
- 195 名前:デフォルトの名無しさん [2009/12/25(金) 12:44:46 ]
- >>194
やだぷーw。
- 196 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 12:58:10 ]
- OpenCV
- 197 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:36:41 ]
- DirectX使えば?
AudioVideoだっけ?ちょっと忘れたが・・・
- 198 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:54:03 ]
- >>199.Dispose();
- 199 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 13:58:17 ]
- >>198
それヌルポ例外
- 200 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:06:36 ]
- 例外出てたの4秒か
- 201 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:14:05 ]
- Silverlight4でWebカメラ使えるらしいけど
- 202 名前:191 [2009/12/25(金) 14:33:58 ]
- VistaってDirectShowがDirectXが外れて
DShowNetが使えないって聞いたんだけど ガセネタ?
- 203 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 14:37:59 ]
- それは勘違い。SDKでの話。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 15:13:53 ]
- >>199
ヌルリじゃね?
- 205 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 15:17:46 ]
- どちらにしろ
ノーリアクションException だな
- 206 名前:191 [2009/12/25(金) 15:54:43 ]
- >>202
そうなんだ。ありがとう。 誤:VistaってDirectShowがDirectXが外れて 誤:VistaってDirectShowがDirectXから外れて
- 207 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 16:19:58 ]
- もちつけ
- 208 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 17:00:44 ]
- やだやだやだー!
- 209 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 19:24:54 ]
- 正解も書けよ
- 210 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 23:34:07 ]
- 一次元配列をラップしてArrayのstaticメソッドをインスタンスメソッドとして
使えるジェネリッククラスを書いたら便利かな、とふと思ったんだけど、 これは馬鹿げた発想だろうか? それとも割とありふれた考え方? もし同じようなことをやってる人がいたら、参考までにどんなクラス名にしてるか 教えてくれるとありがたい。
- 211 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 23:45:41 ]
- ばかげた発想だろう
どうしてもってんなら拡張メソッド書いとけ
- 212 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:06:21 ]
- >>210
どういうときに役にたつのかわからんちん
- 213 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:34:02 ]
- わざわざそれ使うためにそのクラスをインスタンス化するのか?
拡張メソッドで充分だろ。
- 214 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:36:07 ]
- >>210
同じようなことをやっている人: Microsoft クラス名: Enumerable (名前空間: System.Linq)
- 215 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:46:26 ]
- ぷ
- 216 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:46:30 ]
- まさにその通り過ぎて吹いたw
- 217 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:49:00 ]
- その通りじゃないだろうよ。
- 218 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 00:52:54 ]
- 発想自体は馬鹿げたものではないと思う。
ただ、車輪の再発明は馬鹿げている。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 01:58:54 ]
- しかし他人の発明ってのは気軽には使えないんだよね。とくに業務用ソフトだといろいろとうるさく言われる。
だから自分で再発明するしかなくなる。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 02:02:56 ]
- 発明の再実装、再構築
発明の追体験 は意味があると思うんだけどな。 何でもかんでも車輪の再発明というのはどうかと思う。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 02:04:48 ]
- 再発明というのは表現が違う気がする
再構築とかの方がしっくりくる
- 222 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 02:10:28 ]
- いずれにしろ、この場合はあるものをつかうのが正解。
- 223 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 02:17:09 ]
- そこにある車輪が使いにくいなら、
使いやすいように一から作り直すのは悪いことではない。 別にそれは再発明ではなく、ただの理論の整理だし、 たまにはそれくらいしないとより良い物は作れない。 というか、あるものは必ず使えという考えしか持てないのは大問題。
- 224 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 11:37:05 ]
- あるものを組合せた方がはやいか
作りなおした方がはやいかなんてその時その時で結構違うよね。 んで往々にして後者を選んで自爆する人が多いから 車輪の再発明はやめておけって昔から言われてるんだろうと思うよ。 基本前者のスタンスでいてどうしても必要なら後者、がいいんだと思う。 ただ車輪の再開発って楽しいんだよねぇ。 俺の設計/実装の方が綺麗!!!俺のネーミングセンスいかしてる!!!0.01%速くなったぜ!!! みたいな。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 11:39:20 ]
- 使い方を調べたりドキュメント読むのが面倒だから
作っちまえって流れの車輪の再構築はダメなパターンだと思う。 あとマの習性としてどっか心の底で自分の方がうまくやれるって思ってる部分があるから 作り直したくなるんだろうなーとは思うなぁ。
- 226 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 13:34:07 ]
- 過程なんか実際どうだっていいんだよ。
成果物が評価されるかどうかの話。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 19:06:59 ]
- 流れを読まずに書きこするが、計算結果をキャッシュして、依存するほかの部分の値が更新されていなかったらその計算結果を使い続けるということをしたいんだが、
そのときの更新した時点のTimeスタンプとして、System.Environment.TickCountをつかってもよろし?パフォーマンス的にとか言う意味で。 具体的にやりたいことは、UIElementTreeのようなものがあって、上の階層の座標やスケーリングが変更されたときはそれより下のものはパネル上の絶対座標が変わることになる。 各Elementは自分自身のパネル上での絶対座標を計算しておきキャッシュしておき上のものの座標などが変わらない限りそれを使い続けたい。 とりあえずその辺のアーキテクチャは置いといてタイムスタンプとしての使用に望ましい高速な経過時間に類するものがわかるものがしりたいです。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 19:48:26 ]
- >>227
それ本当にパフォーマンスを考慮する必要があるの? そういう風に聞こえない。ただの杞憂じゃないの? 端的に言ってその「タイムスタンプの取得」、n万回/secとかで行われるわけじゃないでしょ? だったらどこにパフォーマンスを気にする必要があるの?
- 229 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:07:35 ]
- >>228
わかんないなら答えなくてもいいんだよ?
- 230 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:12:00 ]
- わかるから答えてるんでしょ。
- 231 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:18:34 ]
- 涙拭けよ
- 232 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 20:31:33 ]
- さて、と
- 233 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 22:44:50 ]
- 今日も一日ご苦労さまでした。
- 234 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 23:08:08 ]
- System.Environment.TickCountは多分最も高速。
もちろん精度は例によってデフォルト15msくらいだからそこが注意だな。 DateTime.NowやUtcNowは遅い。UtcNowは比較的速いが。精度はTickCountと同レベル Stopwatchはもっと遅い。ただし精度ははるかに高い。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/12/26(土) 23:51:28 ]
- >>227
>>234 一日遅れのプレゼントが来ましたよ
- 236 名前:デフォルトの名無しさん [2009/12/27(日) 00:39:17 ]
- WebBrowserでフォルダの中身を表示してExplorerのようにして使いたいと思い、
WebBrowserのActiveXInstanceプロパティを SHDocVw.ShellBrowserWindow でキャストして、その Document プロパティを ShellFolderView として使い、 VerbInvoked イベントなどで何かの実行をイベントとしてモニターすることを やってみました。 その際、VerbInvoked の戻り値を true にして返しているのですが、なぜか なんの実行もしてくれません(コンテキストメニューでCopyを選ぶとこの VerbInvoked イベントは立つのですが「貼り付け」のメニュー項目が現れて くれません)。何か注意すべきことがあるでしょうか? それと、VerbInvoked によって、コンテキストメニュー上の何の処理を実行 しようとしたのかを知る方法はあるでしょうか?これも知りたいのですが、 方法がわかりません。よろしくお願いします。
- 237 名前:デフォルトの名無しさん [2009/12/27(日) 12:11:24 ]
- C#でPCのマスタ音量を変える(ボリュームコントロール)機能を実現したいのですが、
いい方法やクラスをお知りの方がいましたら、ご教授おねがいします。
- 238 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:15:19 ]
- マルチすんなよ
- 239 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:24:13 ]
- んなこといったって初心者用スレはごく一部の上級者とほぼ全員初心者しかいないから、たまにしかまともな回答えられないし
両方で相談するしかないじゃん。
- 240 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:25:27 ]
- だったらあっちじゃなくてこっちだけで相談すりゃいいでしょ。
「じゃん」じゃねーよ。
- 241 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:27:36 ]
- だったら2chで質問するなよ
- 242 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:32:16 ]
- 回答する気ないならレスすんな。うぜぇから。おめぇらは「初心者バーカ」とだけいってりゃいいんだよ。
- 243 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:35:50 ]
- マルチするようなカスには分かってても回答しないのが常識だからな
- 244 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:46:37 ]
- >>242
初心者バーカ^^
- 245 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 12:52:37 ]
- 初心者スレの初心者でもお前より初心者ではないと思うなw
- 246 名前:227 mailto:sage [2009/12/27(日) 12:56:39 ]
- >234
サンタさん、ありがとう。 今回は精度はそれほど重要でないので高速であれば十分です。 もしかしたら、速度も精度もPerformanceCounterからみのほうがよいのかもしれませんが、あのへんはよくわかってないです・・・
- 247 名前:デフォルトの名無しさん [2009/12/27(日) 12:58:51 ]
- どなたか>>236にもお恵み下さるとありがたく、何卒よろしく。
VerbInvoked を検知してしまうと何も実行しない、というのは 一体何が原因なのか知りたく、みなさんのところではこういうことは ないですか?
- 248 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:00:31 ]
- >>246
パフォーマンスカウンタはStopwatchと同じだよ。 一番遅い。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:03:11 ]
- 遅いならSindows.Forms.Timerなんて廃止すればいいのに。
もっといいのあるんだろ
- 250 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:06:15 ]
- >>246
っていうか、だからそんなワーストケースでもせいぜい数秒に一回程度しか 実行されないような処理のパフォーマンスを気にして意味あるのかよ
- 251 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:09:37 ]
- ついでに言えば、タイマーは精度に比例してタイマーそのものがCPU時間を消費する、
っていうのはら話も分かるけど、普通に考えてタイマーがカウントしてるカウンターの 値を読み取ることそれ自体はただの同期読み取りに過ぎないわけで、 こんなものがそんなに重い処理になる道理がないだろうよ。
- 252 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:14:22 ]
- 一番楽な方法で書いてから最後にチューニングしませう
- 253 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:21:43 ]
- WebBrowserはなにげに機能制限されてるからなぁ。
Axの方を使ってみたら?
- 254 名前:236 [2009/12/27(日) 13:37:41 ]
- >>253
WebBrowserなためかもしれないと。わかりました。 >Axの方を使ってみたら? 直接COMの方を使うと。わかりました。やってみます。
- 255 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:39:57 ]
- つーか、そうやって切り分けるもんだろ?普通。
- 256 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 13:40:37 ]
- >>242
( ´∀`)初心者バーカ
- 257 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:10:43 ]
- >>237
mcisendstring
- 258 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 14:59:10 ]
- >>251
素人は黙ってろ
- 259 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:10:44 ]
- はい
- 260 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:14:02 ]
- 無能な玄人が有能な素人を恫喝してみました。
- 261 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:17:46 ]
- つまらんな
ところでなんでQueryPerformanceCounterはあんな遅いの?
- 262 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:19:52 ]
- 読み出すだけに決まってるから遅いわけないなんていう奴はどう見ても素人。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:29:11 ]
- どう見てもとか書いちゃう人に、具体的にどう見たのか尋ねると、
良くても一つしか挙げないし、大抵は発狂するんだよね。 >>262 どう見たの?
- 264 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:34:23 ]
- >>262 初心者バーカ
- 265 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:35:44 ]
- −−−−−−−−−− たにおり −−−−−−−−−−
- 266 名前:227 mailto:sage [2009/12/27(日) 15:43:44 ]
- >248
ありです。 >250 ピーク時は一秒間に数百回コールされる可能性あるので。
- 267 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 15:51:11 ]
- 値の取り方はわかってんだから実際に1000回取得して
掛かる時間とかCPU負荷とか調べてみりゃいいじゃん
- 268 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:01:11 ]
- >>266
最大限見積もっても1,000回/sec程度の頻度の読み出しでパフォーマンスを気にする 必要があるほど重い処理とは思えないけどね。
- 269 名前:227 mailto:sage [2009/12/27(日) 16:05:51 ]
- >267
もともとはTickCountのほかに何かいい方法があるかという趣旨の質問です。 >268 1ミリせく違うだけでも一秒の違い生じますが。
- 270 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:09:52 ]
- 1ms違えばそうだろうけど1μs違うだけなら誤差だろ?
- 271 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:10:09 ]
- >>269
msオーダーの時間が掛かるわけないでしょw 恐らく10nsかかんないよ。 10のマイナス6乗見積もる時間が間違ってる。
- 272 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:14:02 ]
- なにをしたいかわからないけど、こんなにたくさん呼ばれるということは、
順番だけが重要なんじゃないか?
- 273 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:43:30 ]
- >>271
10nsって面白い冗談だ。 メモリアクセスですら何倍もかかるというのに
- 274 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:45:18 ]
- まあTickCountは確か数十nsくらいだったと思うけどな。
QueryPerformanceCounterになるとマイクロ秒以上かかる。
- 275 名前:デフォルトの名無しさん mailto:sage [2009/12/27(日) 16:48:17 ]
- でまあ元質問の話じゃ別に気にするような用途じゃなかろうが、
キャッシュとかを実装しようとすると気になる話ではあるよ。 TickCountは精度は悪いが速いってこと以外に 値が32ビットに収まるって利点と欠点がある。
|

|