C#, C♯, C#相談室 Part55at TECH
C#, C♯, C#相談室 Part55 - 暇つぶし2ch1:デフォルトの名無しさん
09/12/06 23:54:00
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part55
スレリンク(tech板)

Visual C# 2008 Express Edition 日本語版
URLリンク(www.microsoft.com)

その他テンプレ>>2-5くらい

2:デフォルトの名無しさん
09/12/06 23:56:24
関連スレ

ふらっとC#,C♯,C#(初心者用) Part49
スレリンク(tech板)

Visual Studio 2008 Part 19
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)

【VB.NET】LINQ友の会【C#, C♯, C#】
スレリンク(tech板)

C#,C#の宿題片付けます。
スレリンク(tech板)

3:デフォルトの名無しさん
09/12/06 23:57:11
参考リンク

MSDNライブラリ
URLリンク(msdn.microsoft.com)

@IT Insider.NET
URLリンク(www.atmarkit.co.jp)
Insider.NET 会議室 ディレクトリ
URLリンク(www.atmarkit.co.jp)
MSDN フォーラム
URLリンク(forums.microsoft.com)

pinvoke.net: the interop wiki!
URLリンク(pinvoke.net)
宇宙仮面の C# プログラミング / C# Programming
URLリンク(ukamen.hp.infoseek.co.jp)
WisdomSoft C#入門
URLリンク(wisdom.sakura.ne.jp)
WisdomSoft Microsoft .NET入門
URLリンク(wisdom.sakura.ne.jp)
どっとねっとふぁん
URLリンク(dotnetfan.org)
緑のバイク 初めてのC# ~ 覚え書き ~
URLリンク(homepage3.nifty.com)
どぼん!の .NET Tips
URLリンク(dobon.net)

4:デフォルトの名無しさん
09/12/07 00:00:01
質問する前に"必ず"WikiやFAQ集を参照し、同じような質問がないか確認してください。

初歩的な質問はPC初心者板で・・・
URLリンク(pc11.2ch.net)
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
URLリンク(windowsvista.ms)
Windows VistaFAQ
URLリンク(vistafaq.stdo.net)
インストールから設定・活用まで~ すべてが分かるWindows Vista大百科
URLリンク(journal.mycom.co.jp)



次スレから関連スレに追加してください

ASP.NET + Atlas or Ajax について
スレリンク(tech板)

Microsoft Silverlight その5
スレリンク(tech板)

Visual Studio 2010 Part 2
スレリンク(tech板)

5:デフォルトの名無しさん
09/12/07 00:02:11
>>1
スレタイ間違えました
正しくは
C#, C♯, C#相談室 Part56
です
次スレはPart57で立ててください

6:デフォルトの名無しさん
09/12/07 01:16:01
重複して両方ともスレ番号間違えるとは

7:デフォルトの名無しさん
09/12/07 08:58:58
別人です

8:デフォルトの名無しさん
09/12/07 10:01:37
別人なのに両方とも同じ間違いをやらかしてるのが興味深い

9:デフォルトの名無しさん
09/12/07 23:37:15
どこが本スレよ?

10:デフォルトの名無しさん
09/12/08 00:11:40
ここ
もう一つのスレは削除依頼が出てるのかな? このスレが終わるまで残ってれば再利用だろうけど

11:デフォルトの名無しさん
09/12/08 00:40:06
>>10
もう一つのスレ建てたものです、
削除依頼済みですので、こちらが本スレですね

12:デフォルトの名無しさん
09/12/08 22:02:58
short配列をファイルに書き込みたいのですが、
StreamクラスのWriteメソッドはbyte配列しか引数に取れません。
short配列からbyte配列に簡単に変換するにはどうしたらいいんでしょうか?
(Cのmemcpyのようなのが欲しい)

13:デフォルトの名無しさん
09/12/08 22:08:05
BynaryWriter使った方がいいんでない?


14:デフォルトの名無しさん
09/12/08 22:09:18
Buffer.BlockCopy

15:デフォルトの名無しさん
09/12/08 22:14:20
ありがとうございました。
BynaryWriterを使うことにしました。

16:デフォルトの名無しさん
09/12/08 23:01:24
そんなのねーよ


17:デフォルトの名無しさん
09/12/08 23:38:52
BinaryWriterじゃね?
シリアライズするんでしょ?

18:デフォルトの名無しさん
09/12/09 14:26:46
現在開いているIEのウインドウのページの
javascriptを外部アプリケーションのコードから実行することってできますか?

IEのウインドウ列挙は↓
URLリンク(d.hatena.ne.jp)
が使えると思うんですが、SHDocVwじゃjsのinvokeってできないのかなあ。。。

19:デフォルトの名無しさん
09/12/09 14:54:01
InvokeScript

20:デフォルトの名無しさん
09/12/09 16:14:10
自己解決した。
シングルスレッドアパートメントのオプションつければよかったのね。

21:デフォルトの名無しさん
09/12/09 16:31:18
C#ってCって名前だけどJavaだね。

C+Javaって言う名前のほうがふさわしいな

22:デフォルトの名無しさん
09/12/09 16:33:33
C++++

23:デフォルトの名無しさん
09/12/09 17:21:20
Cava

24:デフォルトの名無しさん
09/12/09 17:21:45
スペインのスパークリングワインか

25:デフォルトの名無しさん
09/12/09 17:34:11
まあJavaもCの子孫みたいなもんだしな
C++とJavaならJavaの方が近いとはおもう

26:デフォルトの名無しさん
09/12/09 17:42:50
Delphiの種が入ってるのは公然の秘密

27:デフォルトの名無しさん
09/12/09 20:13:57
Eiffelさんのことも、たまにで良いので思い出してあげてください・・・

28:デフォルトの名無しさん
09/12/09 20:19:47
foreach、ドット(.)区切りでメンバーを指定、イベント、
UIのビジュアルなデザイナ、プロパティグリッド……

どう見ても片親はVBだなw

29:デフォルトの名無しさん
09/12/09 20:57:19
そりゃもともと「C++やJava経験者向けのきれいなVB」として売り出してるわけだし

30:デフォルトの名無しさん
09/12/09 21:02:06
C#にてpanelに貼り付けた複数のlabelをクリックしたとき、
panelのクリックイベントを発生させるにはどうしたら良いのでしょうか?

複数貼り付けられたどのlabelをクリックしても、
panelでイベントを発生させたいです。

31:デフォルトの名無しさん
09/12/09 21:08:06
それぞれのLabelのClickイベントで同じメソッド呼び出すんじゃ駄目か

32:デフォルトの名無しさん
09/12/09 21:08:08
panel内のlabelのクリックイベントプロシージャをpanelのクリックイベントプロシージャにするんじゃだめなんか?

33:デフォルトの名無しさん
09/12/09 21:09:24
プロシージャw

34:デフォルトの名無しさん
09/12/09 21:12:47
foreach (var label in panel.Controls.OfType<Label>()) { label.Click += Clicked; }

35:30
09/12/09 21:14:31
PGによって画面上にpanelを配置するのですが、
ユーザコントロールで、panel上にlabelが沢山あるものになっています。

配置したあと、PGにてそのpanelのイベントを登録します。
ですのでlabelをクリックしたら、panelのイベントがよばれると良いなと思ったのですが、
なんか無理そうな気がしました。。。

36:30
09/12/09 21:15:29
>>34
天才!
ありがとうございました。

37:デフォルトの名無しさん
09/12/10 00:35:18
どういたしまして

38:デフォルトの名無しさん
09/12/10 08:37:03
WPFだと楽なんだよな。


39:デフォルトの名無しさん
09/12/10 09:17:04
WPFは別の部分で大変になるからなぁ

40:デフォルトの名無しさん
09/12/10 09:21:04
C#でCEの無線LANを繋いだり切ったり状態を調べたりしたいのですが、
どうやればいいのでしょうか?

41:デフォルトの名無しさん
09/12/11 18:54:22
ペインを切り替えできるようなソフトを作りたいのですが
どうすれば切り替えできるんでしょうか

Janeみたいに、ボタン一つで表示位置を変えられるようにしたいです

内部でどういう処理をすればボタン一つで切り替えられるんでしょうか

42:デフォルトの名無しさん
09/12/11 21:28:47
UserControlでカテゴリわけ
UI設計の基本です

43:デフォルトの名無しさん
09/12/11 21:31:24
どういう処理って言ってもそういう処理としか答えようがないな
そういう機能が用意されてるわけではないので結構深いところから自分で枠組み作る感じ

44:デフォルトの名無しさん
09/12/12 00:36:06
XmlSerializerを使ってオブジェクトをXML化したいのですが、
byte[]のメンバが暗号化されてしまうのを止めることは可能でしょうか?
int[]メンバのような形でXMLにしたいのです。
宜しくお願いします

45:デフォルトの名無しさん
09/12/12 01:06:08
暗号化w


46:デフォルトの名無しさん
09/12/12 01:18:10
BASE64が暗号化かどうかはともかく、
そのメンバにXmlArray属性かXmlArrayItem属性を付ける 両方でも可

47:デフォルトの名無しさん
09/12/12 01:24:34
暗号化と符号化の区別がついていない人がいるって聞いたので、着てみたよ。

48:デフォルトの名無しさん
09/12/12 01:25:43
デリゲートってなんですか?><

49:デフォルトの名無しさん
09/12/12 01:27:49
ここじゃ説明しきれない。
Action action =new Action(hoge);のように書くから
クラスみたいなんだけど
action("死ねよクズ");
みたいに関数のように使えるもの
でぐぐれ

50:デフォルトの名無しさん
09/12/12 01:29:35
ゲータレード

51:デフォルトの名無しさん
09/12/12 18:29:01
AというクラスとBというクラスがあって、それぞれObjectを継承している。
そのとき
Object o = true ? new A() : new B();

これがAとBの間に暗黙的な変換がありません
とか言うエラーがでるんだけどなんでこれAとBで変換存在しなきゃいかんの?

52:デフォルトの名無しさん
09/12/12 18:38:20
どっちでもいいのでobjectにキャストが必要。
3項式の値が何になるかにoの型は影響しない。

Object o = true ? (object) new A() : new B(); 


53:デフォルトの名無しさん
09/12/12 18:40:14
キャストがB側にひとつ足りなくないか?

54:デフォルトの名無しさん
09/12/12 18:52:14
なんとなくわかった。
C#の?はC++の?とは性質が違うみたいだな・・・
C++では51みたいな書き方でもOKなんだが。C#はうるさいやつだなぁ。

55:デフォルトの名無しさん
09/12/12 19:07:34
三項演算子なんて使う必要ないだろ

56:デフォルトの名無しさん
09/12/12 19:10:25
C++でも同じようにしないと警告が出たよ。MSVC++2008だけど
class S {};
class A : public S{};
class B : public S{};
void  test(int i) {
  S *s = i > 0 ? (S*)new A() : new B();
}


57:デフォルトの名無しさん
09/12/12 20:02:17
それ推論的にはとてもめんどくさい議論が発生するんだよなー
逆順の推論なので。


58:デフォルトの名無しさん
09/12/12 20:37:40
昨晩C#で書いたプログラム(低負荷)を動かしながらDVDを焼いたら
バッファーアンダーランが数回出ていた\(^o^)/

C++で書いたプログラムだと出ないのにC#のライブラリ関数はあちこちで
ロックしているんだろうか?

59:デフォルトの名無しさん
09/12/12 20:47:39
ロックって何?
矢沢とか内田とかみたいな恥ずかしい勘違いオヤジのことかなw

60:デフォルトの名無しさん
09/12/12 21:36:25
デリゲートな部分のかゆみ

61:デフォルトの名無しさん
09/12/12 22:39:16
何をロックするんだよ。
ってかどういうプログラムなんだよ。


62:デフォルトの名無しさん
09/12/12 23:44:40
>>54
まあ、C# は人的ミスを減らせるなら多少コードが冗長になる方を選んでるんで。

63:デフォルトの名無しさん
09/12/12 23:52:31
そうか?
ラムダ式なんかかなり柔軟に型推論してくれるじゃん

64:デフォルトの名無しさん
09/12/12 23:57:53
匿名メソッド、ラムダ式
オプション引数etc
どうみても冗長性の排除が優先だな

65:デフォルトの名無しさん
09/12/13 00:06:04
KeyPressってなんのためにあるの?
KeyPress=Escキーとか認識できない
KeyDown=Escキーなども認識できる

66:デフォルトの名無しさん
09/12/13 00:08:28
文字入力
IMEオンで入力したら楽しいよ

67:デフォルトの名無しさん
09/12/13 10:34:15
 C#のwebbrowserコンポーネントでsleipnirにおける
SuperDrag Extensionのようなドラッグ&ドロップ処理を
実装したいと考えています。検索しても実装は厳しいという話しか
ありません。(というか扱っているサイトの数も少ない?)
どうかお力添え願えませんか?

68:デフォルトの名無しさん
09/12/13 10:35:29
SuperDrag Extension ってそもそもなんだよ?

69:デフォルトの名無しさん
09/12/13 12:23:30
フェンリル広告乙

70:デフォルトの名無しさん
09/12/13 16:41:08
WinAPIで登録したホットキーを経由して、別ウィンドウがアクティブでも
音楽再生アプリでのplay/stopをしたいと思ったのですが、
nProtectGameGuardのオンラインゲーム上では登録したホットキー使用が不可能でした。
不正行為防止用にそうなっているのは予想が付いたのですが、
これをすり抜けるようなホットキー登録方法はありませんか?

71:デフォルトの名無しさん
09/12/13 23:45:00
自己解決しました

72:デフォルトの名無しさん
09/12/14 10:02:07
別スレで答えもらっておいて自己解決もないもんだ

73:デフォルトの名無しさん
09/12/16 00:17:36
C#2.0 ジェネリック&partial
C#3.0 ラムダ式,LINQ
C#4.0 dynamic

74:デフォルトの名無しさん
09/12/16 00:35:00
1.1 /** */ 形式のドキュメントコメント
2.0 匿名delegate、staticクラス、yield
3.0 var
4.0 Genericsのco/contra-variance

75:デフォルトの名無しさん
09/12/16 00:37:49
VB10 行継続文字 "_" がいらなくなったよ!(条件あり)

76:デフォルトの名無しさん
09/12/16 00:39:43
4.0はいまいち魅力がないな
2.0と3.0が凄すぎた

77:デフォルトの名無しさん
09/12/16 00:41:42
言語の進歩はいまいちかもしれないが
フレームワーク側の進歩が2.0の時以上な気がする

78:デフォルトの名無しさん
09/12/16 00:42:24
>>74
/** */ に対応したのは 1.1 ではなく 1.2 だよ

79:デフォルトの名無しさん
09/12/16 01:27:18
.NET 4はライブラリの方よね、主な変更。
3.0 のときと同じ感覚。C# 4.0はおまけ。

80:デフォルトの名無しさん
09/12/16 08:54:04
正直LINQの意義がわからんorz

81:デフォルトの名無しさん
09/12/16 09:14:16
3行かかってたデータ処理が1行ですむ
こんだけ。

82:デフォルトの名無しさん
09/12/16 09:15:56
>>80
コレクション操作がらみをライブラリ化しようとすると行きつく先は LINQ。

クエリ式(C# 中に SQL っぽいもの書ける構文)を LINQ だと思ってるならそれは勘違い。
あれは LINQ の一部分。

83:デフォルトの名無しさん
09/12/16 09:34:45
LINQの記法が特殊だからな。
実は追加された拡張メソッド部分が本体だよな。

84:デフォルトの名無しさん
09/12/16 12:09:27
メソッド構文でしかLinq使った事ない

85:デフォルトの名無しさん
09/12/16 13:19:02
リモート処理のセキュリティについて質問させてください。
IPCチャネルを使って同じコンピュータ上でサーバーとクライアントを動かしたいのですが、
それぞれの通信相手が正規のプログラムであることを認証するには
どのような方法を取ればいいのでしょうか。
悪意のあるプログラムが通信相手に成り済ますのを防ぎたいと考えてます。

86:デフォルトの名無しさん
09/12/16 13:22:06
厳密には不可能。

カジュアルななりすましを防ぎたいなら、何らかの手順を挟めばいい。
それこそ、「山」「川」みたいな。

87:85
09/12/16 13:28:51
>>86
なるほど。
大げさかもしれませんが、プログラムに対するデジタル署名を
使ってもできますか?

88:デフォルトの名無しさん
09/12/16 13:35:54
コードサイニング証明で確認できるのは、ファイルがある組織で作られた、
ということ。なので、そのファイルを確認できる状態じゃないとダメ。

なので、通信先を証明するのにはちょっと厳しいでしょ。

89:85
09/12/16 13:42:28
>>88
サーバーとクライアントプログラムは同じコンピュータ上に
存在することを前提にしているのでファイルの確認は可能だと思います。

90:デフォルトの名無しさん
09/12/16 13:43:00
であれば大丈夫だね。

IPCってのを忘れてた。ごめんごめん。

91:85
09/12/16 13:46:22
>>90
いえいえ。
とりあえず>>86のように何らかの手順で作ってみることにします。
ありがとうございました。

92:デフォルトの名無しさん
09/12/16 13:48:08
通信系路上の改ざんがないという前提ならいろいろできそうな気がする。


93:デフォルトの名無しさん
09/12/16 13:50:38
ゼロ知識証明、だっけ?
チャレンジレスポンスでやったらいいんじゃない?

基本的な手順は、

あらかじめ、秘密の文字列 k を決めておき、クライアントとサーバはそれを
知っている。外には漏らさない。

通信を開始する時に、ランダムでトークン文字列 s を決め、それを渡す。
s をもらったら k と連結しハッシュ関数にかけた値 h(k + s) を返す。

返ってきた値が、自分で計算した h(k + s) と同じかどうかを確認する。
同じなら相手は k を知ってるので正しい相手と認める。

詳しくは暗号の本を。
ていうかこういうのは正しく実装するのは難しいので。ライブラリ無いのかな?

94:デフォルトの名無しさん
09/12/16 13:56:31
あーこれだとリプレイ攻撃を防げないか。
まぁとにかくそんな感じの方法。

95:デフォルトの名無しさん
09/12/16 14:34:12
>>85
一般的な結論は>>86なんだが、限定状況下では有効な対処が可能な場合もある
ユーザーがプログラム(バイナリ)の読み取りや通信路への細工ができないよう厳重に管理されていれば、
実用的なレベルでの対処は可能
それ以外の状況なら何をしても程度問題(しかも分が悪い)でしかない

>>93
それはホストやユーザーの認証の場合で、今回のクライアント(プログラム)が正規のものかを
判定する用途には使えない

96:デフォルトの名無しさん
09/12/16 17:26:21
そもそも秘密の文字列を組み込むってこと自体に無理があるからね。


97:デフォルトの名無しさん
09/12/17 01:56:21
>>64
ラムダ式が先に実装されていれば匿名メソッドはいらなかったとMSが言っていたはずよ
つまり、delegate{~}はobsolute扱いで。

98:デフォルトの名無しさん
09/12/17 04:29:11
匿名デリゲートは引数自体を省略できる
ラムダ式は() =>
って絶対つけないとダメだからちょっとかっこ悪い。

99:デフォルトの名無しさん
09/12/17 08:05:38
だがそれがいい

100:デフォルトの名無しさん
09/12/17 09:37:12
その代わり引数の型は省略できない

101:デフォルトの名無しさん
09/12/17 12:18:50
delegate { なんかいかにもキーワード増やしたくなくて無理矢理当てた
感じで格好悪い
後で捨てることを前提に作られたように見える

102:デフォルトの名無しさん
09/12/17 13:00:11
なんで?

103:デフォルトの名無しさん
09/12/17 13:29:55
C#でMarchingCubeアルゴリズムを実装したいのですが、やり方がわかりません。
関連サイトなどもC++やGLを使っているのでどうしたらいいかわかりません。
どなたか教えてくれませんか?

104:デフォルトの名無しさん
09/12/17 13:46:41
C++やGL使ってるっつったってそっからC#に翻訳すればいいだけだと思うんだが・・・

105:デフォルトの名無しさん
09/12/17 14:09:26
>>104
そのやり方がわからなくて困ってます

106:デフォルトの名無しさん
09/12/17 14:25:11
自力でやるんだよ、ばか。

107:デフォルトの名無しさん
09/12/17 19:06:48
>>105
そんなレベルでなんでC#に移植する必要があるんだよ

108:デフォルトの名無しさん
09/12/17 20:28:13
同意
C++での実装コードが理解できないなら,このスレの誰かがC#で書いてくれたとしても理解できるとは思えない

109:デフォルトの名無しさん
09/12/17 21:34:43
死んだのに仕事してるとか俺には信じられん

110:デフォルトの名無しさん
09/12/17 21:35:23
誤爆すまん

111:デフォルトの名無しさん
09/12/17 21:36:51
死んだような顔して仕事してるやつはこの業界では珍しくないよな・・・
うぅ・・・

112:デフォルトの名無しさん
09/12/18 02:38:37
WaitHandle の WaitAll や WaitAny で待ち合わせをするのですが
散乱すると面倒くさいので WaitAll/WaitAny 相当の待ちのシグナルが発生するWaitHandleを作ろうかと思っているのでずか
これってライブラリにそもそもなかったりしませんでしょうか?
探しているのですが、誰か知っていたら教えてください

113:デフォルトの名無しさん
09/12/18 04:10:16
矢沢 久雄著 標準C#入門 の無印と改訂第2版って何が変わったんですか?

114:デフォルトの名無しさん
09/12/18 04:34:08
C++の
#using <System.Windows.Forms.dll>
はC#の参照設定→System(略)
とまったく同じ機能ですか?

115:デフォルトの名無しさん
09/12/18 07:10:45
>>114
同じ。
ちなみに、C++/CLIでもC#同様VSのプロジェクトのプロパティから設定することも可能。

116:デフォルトの名無しさん
09/12/18 12:40:24
そうなんだ。
dllの管理は直接コードに書き込めるC++/CLIのほうが便利だな
C#もコードに書き込めればいいのにな。

117:デフォルトの名無しさん
09/12/18 12:52:38
MSBuild使え
プロジェクト構成によって参照するdllを変えたりできる

118:デフォルトの名無しさん
09/12/18 19:11:50
フリーで3Dチャートが簡単に描画出来るClassってないですか?

119:デフォルトの名無しさん
09/12/18 20:51:48
Microsoft Chart Controls for Microsoft .NET Framework 3.5

120:デフォルトの名無しさん
09/12/18 23:53:52
>>119
ざっと調べたんですがこれはwinアプリケーションでは作成できないのですかね?

121:デフォルトの名無しさん
09/12/18 23:58:33
> Microsoft Chart Controls for Microsoft .NET Framework 3.5 は、
> ASP.NET および Windows Forms Chart Controls を含む新しいアセンブリをインストールします。

122:デフォルトの名無しさん
09/12/19 09:39:00
>>120
Samples Environment for Microsoft Chart Controls
URLリンク(code.msdn.microsoft.com)
に Windows Forms Samples がある。

123:デフォルトの名無しさん
09/12/19 09:56:13
なんて名前なのかわからないんだけど、Mac OS X のDockとか、iPodのカバーフローみたく
マウスカーソルの付近の画像が拡大されて表示されるコントロールとかってない?

やりたいこと
画像を横に並べて表示したいんだけど、視認性が確保できる画像サイズだとあまり多くの画像が一度に表示できないのをなんとかしたい。

124:デフォルトの名無しさん
09/12/19 10:10:44
意味がわからん・・・アクセサリの拡大鏡?

ペイントの縮小ウィンドウみたいなやつなら自作するしか無いだろう。
単にビットマップをDrawImageするだけだし、そんな簡単なものコントロール化
する奴は物好きと思われる。

125:デフォルトの名無しさん
09/12/19 10:30:23
>>124
何か勘違いしてるだろ。
別にコントロールがあったとしてもおかしくはない。
ただし、WPFだったらほんと簡単にできたはず。
ってかよく見るだろ。
WindowsFormsではあまり向かないというか汎用化はしにくい。


126:デフォルトの名無しさん
09/12/19 10:33:01
>>124
URLリンク(www.youtube.com) これの0:27くらいみたいからなイメージ
拡大鏡って言われるとそうな気がする。
確かになんかテキトウにPanelの上にPictureBoxガシガシ置いてMouseHoverかなんかででっかくするだけでいいような気がしてきた…

127:デフォルトの名無しさん
09/12/19 10:34:42
>>125
mjd 実現できればなんでもいいわ
WPFって聞いたことしかないからちょっと調べてみるよ!

128:デフォルトの名無しさん
09/12/19 10:35:06
WPFならC#のコードは書かずに実現できるな

129:デフォルトの名無しさん
09/12/19 11:52:03
>>125
さーせんなんか良い検索ワード教えてください…

みんな普通にWPFとC#組み合わせての開発とかできてんのかね?難しゲーだ

130:デフォルトの名無しさん
09/12/19 12:01:58
URLリンク(wpfdock.codeplex.com)

131:デフォルトの名無しさん
09/12/19 12:13:42
C#で作ったライブラリDLLを動的に読み込んで
このDLLで発生するイベントを拾う方法教えてください

DLLで定義されているメソッドを実行するところまでは出来たのですが
イベントを動的に関連付ける方法がわかりません


132:デフォルトの名無しさん
09/12/19 12:21:16
>>130
あなたが神か
Codeplexで探せばよかったのかー ありがとー

133:デフォルトの名無しさん
09/12/19 12:39:46
>>131
やったことは無いけど、eventのアクセサの
add_EventName(Delegate) などを使うのではないかな。



134:デフォルトの名無しさん
09/12/19 12:44:58
.NET 4/C# 4.0 待って MEF 使うとか、dynamic 使うとか。


135:デフォルトの名無しさん
09/12/19 13:04:19
C#やVB以外ではadd_xxx以外の名前が付くこともあるので
Type::GetEvent
EventInfo::GetAddMethod
の順で取得したほうが良い。

136:デフォルトの名無しさん
09/12/19 14:20:19
急にもりあがってきた

137:デフォルトの名無しさん
09/12/19 14:50:34
インスタンスメンバを表すのに::はあんまり使わないだろ

138:デフォルトの名無しさん
09/12/19 17:26:44
EventInfoから直にハンドラ追加できるだろ

139:131
09/12/19 21:57:14
>133
>135
>138

ありがとうございます。

EventInfoのAddHandler辺りを上手いこと使えば
出来そうな予感はしているのですが
いまいちよくわかりません。

MethodInfoも有り、ますます混乱してます。

140:デフォルトの名無しさん
09/12/19 22:00:37
プラグインみたいなことをしたいならinterface用のDLLを
準備しておくのがセオリーだな。
インターフェイスにキャストしたあとは普通に使えるので便利。

141:デフォルトの名無しさん
09/12/19 22:27:42
// csc /o /t:library test1a.cs
using System;
public class Foo {
 public event EventHandler Do;
 public void Fire() {
  EventHandler eh = Do;
  if (eh != null) eh(this, EventArgs.Empty);
 }
}

142:デフォルトの名無しさん
09/12/19 22:29:56
// csc /o test1.cs
using System;
using System.Reflection;
public class Program {
 static void Main() {
  Type fooType = Assembly.LoadFrom("test1a.dll").GetType("Foo");
  object foo = Activator.CreateInstance(fooType);
  EventInfo einfo = fooType.GetEvent("Do");
  MethodInfo minfo = fooType.GetMethod("Fire");
  einfo.AddEventHandler(foo, new EventHandler(MyHandler));
  minfo.Invoke(foo, null);
 }
 static void MyHandler(object sender, EventArgs e) {
   Console.WriteLine("WTF !");
 }
}


143:デフォルトの名無しさん
09/12/20 10:31:03
質問です。
C#で、基本文法を学習した後に読む本、
例えばCのプログラミング作法、C++のEffectiveC#やCording Standards、に該当するような
コーディングのスタイルスタンダードや、べからず集、などで勉強になる良書でお勧めがあったら教えてください。
よろしくお願いしますm(_ _)m

144:デフォルトの名無しさん
09/12/20 10:34:10
すいません3行目は
C++のEffectiveC++の間違いです

145:デフォルトの名無しさん
09/12/20 10:36:33
本ばかり読んでないでMikuMikuDanceを作れ

146:デフォルトの名無しさん
09/12/20 11:15:41
>>143
Effective C#は 最近翻訳版が出たんじゃなかったかな?
中まだ見てないけど。

147:デフォルトの名無しさん
09/12/20 14:42:46
シーシャプー

148:デフォルトの名無しさん
09/12/20 15:09:35
>>141,142
デリゲートもDLLで定義されている場合はもう少しめんどくさくなる。
-- test1a.cs
 :
public delegate void FooHandler(object sender, EventArgs e);
public class Foo {
 :
-- test1.cs
  Type fooType = asm.GetType("Foo");
  Type fooHandlerType = asm.GetType("FooHandler");
  object foo = Activator.CreateInstance(fooType);
  Delegate fooHandler = Delegate.CreateDelegate(fooHandlerType, typeof(Program), "MyHandler");
  EventInfo einfo = fooType.GetEvent("Do");
  MethodInfo minfo = fooType.GetMethod("Fire");
  einfo.AddEventHandler(foo, fooHandler);
  minfo.Invoke(foo, null);

MyHandlerがインスタンスメソッドの場合はthisが必要になる。
Delegate fooHandler = Delegate.CreateDelegate(fooHandlerType, typeof(Program), this, "MyHandler");


149:デフォルトの名無しさん
09/12/20 18:21:02
>>146
出たな
なぜかMore~の方が先に出たw

150:デフォルトの名無しさん
09/12/20 18:57:07
なんで翻訳のほうが原書より安いんだ?

151:デフォルトの名無しさん
09/12/20 19:40:05
結局原書を読むはめになるから

152:デフォルトの名無しさん
09/12/21 11:20:12
MSの機械翻訳は暗号化

153:デフォルトの名無しさん
09/12/22 11:19:34
ムズカシス

154:デフォルトの名無しさん
09/12/22 13:06:00
ムズクロスグリ

155:デフォルトの名無しさん
09/12/22 13:22:25
ある何が

156:デフォルトの名無しさん
09/12/22 13:35:10
すべて中国の陰謀

157:デフォルトの名無しさん
09/12/22 17:43:52
ぐりクロスぐら

158:131
09/12/22 22:46:10
>140

それは意味無いですね


>141
>142
>148

皆様ありがとうございます。
試して後日結果を書きますね。


159:デフォルトの名無しさん
09/12/23 18:01:19
飯だ
うっほうっほ!

160:デフォルトの名無しさん
09/12/24 00:11:45
プログラマーとしてC♯の仕事に就くには、
デリゲートや
オーナードローや
オーバーライドの意味は絶対に知っておかなきゃ話にならないですか?

161:デフォルトの名無しさん
09/12/24 00:14:46
言語仕様なんか全部完全に理解して人に説明できるくらいで当たり前
それではじめてスタートライン

162:デフォルトの名無しさん
09/12/24 00:24:40
時や場所をわきまえるのが第一歩だな
つ マ板

163:デフォルトの名無しさん
09/12/24 00:24:40
んなわけない
そんな奴がいたとしたら年収数千万クラスだわ
本もたくさん書いてることだろう
国内の本みれば国内のエンジニアのレベルがわかるでしょ

164:デフォルトの名無しさん
09/12/24 00:27:24
C#の言語仕様って.Netの関数も入らないとどうしようもないわけだから…
絶対無理だね

165:デフォルトの名無しさん
09/12/24 00:32:38
言語の勉強しない奴って何なんだろう
もうほんのちょっとだけ勉強すれば世界がかわるのに

166:デフォルトの名無しさん
09/12/24 00:52:56
effectiveC#のデータバインドの項が良く解らないんです。つか使ったこと無いんです。
もうすこしサンプル読んで見たいのですが、お勧めのサンプルコードありませんか?

167:デフォルトの名無しさん
09/12/24 01:11:50
デリゲートとか、プロのうちの父ちゃんに聞いても知らなかったぞ。
ちなみに父ちゃんは、コボラーから独学でCを身に付けて開業し、今は月収100万くらい。

168:デフォルトの名無しさん
09/12/24 01:14:23
畑違い

169:デフォルトの名無しさん
09/12/24 01:40:00
>>167
新技術の学習をやめてる時点で先が無い

170:デフォルトの名無しさん
09/12/24 02:29:23
C++には継承と似たものに
デリゲーション(委譲)ってのがあるが
それも知らないんだろうか。

まぁオブジェクト指向なんてすでに関数型使いこなせるヒトには大して重要じゃないし。

171:デフォルトの名無しさん
09/12/24 04:35:04
>>163
それプログラマとしてじゃないよね?

172:デフォルトの名無しさん
09/12/24 09:26:17
>>167
Cプログラマなら、関数ポインタの使い方を知っていれば、デリゲートの概念は知ってるのでOK。

173:デフォルトの名無しさん
09/12/24 10:18:06
>>171
話しかけないでくれ

174:デフォルトの名無しさん
09/12/24 10:33:27
デリゲートの使い道がわかりません。

175:デフォルトの名無しさん
09/12/24 10:39:13
デリゲートと関数ポインタは機能として似た部分あるが概念はまったく違うものなのでおkではない

176:デフォルトの名無しさん
09/12/24 10:46:44
>>175
そっか? Cの関数ポインタ型の抽象化といっていいんじゃないか。実装は、全然違うけど。

177:デフォルトの名無しさん
09/12/24 11:10:05
どっちかというと,デザインパターンで多用されるような
メソッドを無理やりオブジェクトのように扱うための手法を
言語に取り込んで関数ポインタっぽくしたものだな

178:デフォルトの名無しさん
09/12/24 15:25:55
関数ポインタ + thisがデリゲートという思ってれば問題ない。
一度C++でクラスメンバーへの関数ポインタを扱ってみるといい。
めんどくせーから。

179:デフォルトの名無しさん
09/12/24 15:39:31
日本にプログラマとして数千万もらってる人いるのかなぁ

180:デフォルトの名無しさん
09/12/24 16:04:46
プログラマー板へ行けよ

181:デフォルトの名無しさん
09/12/24 16:10:19
ラムダ士気のおかげでデリゲートじゃなきゃやってられなくなった

182:デフォルトの名無しさん
09/12/24 20:26:26
リフレクションでプラグインのDLLをロードします。
そのときプラグインのメソッドは制限ゾーンで動かしたいと思っています。
そのときに、これ
[PermissionSet(SecurityAction.PermitOnly, Name = "Nothing")]
public void func() { ...
と同等の状態で動かしたいのですが、
MethodInfo.Invokeで呼び出す前に制限状態にするとInvokeに失敗してしまいます。
プラグイン側は第3者が作るので属性をつけることを強制できません。
なにか良い方法はないでしょうか。

183:デフォルトの名無しさん
09/12/24 22:55:22
NothingなAppDomainを作って、そいつの中へDLLをロードすれば?

184:デフォルトの名無しさん
09/12/24 23:01:07
らむだとでりげーどってなあに??

185:デフォルトの名無しさん
09/12/24 23:15:00
そもそもなんでMethodInfo.Invokeで呼び出す必要があるんだ?
インターフェイスか基底クラスにしといて、そこで定義したメソッドを
SecurityAction.PermitOnly状態から呼び出したらいけるんでないの?


186:デフォルトの名無しさん
09/12/24 23:20:16
Dispose("俺");

187:デフォルトの名無しさん
09/12/24 23:53:24
Dispose("このスレ");

188:デフォルトの名無しさん
09/12/25 08:14:40
"俺".Dispose();
"このスレ".Dispose();

189:デフォルトの名無しさん
09/12/25 09:39:15
俺にとっては
using このスレ;

190:デフォルトの名無しさん
09/12/25 09:46:29
">>1-1000".Dispose();

191:デフォルトの名無しさん
09/12/25 11:10:51
USBカメラと接続して静止画を撮りたいです。
DShowNETというのがあるようですが、VistaやWin7にも対応したいです。
どんな方法があるでしょうか。

192:デフォルトの名無しさん
09/12/25 11:17:42
191.Dispose();

193:デフォルトの名無しさん
09/12/25 11:47:24
>>178
それやったことあるけど面倒だったわw。
確かに面倒だったね。

194:デフォルトの名無しさん
09/12/25 12:02:49
>>191
DShowNETでOK

195:デフォルトの名無しさん
09/12/25 12:44:46
>>194
やだぷーw。

196:デフォルトの名無しさん
09/12/25 12:58:10
OpenCV

197:デフォルトの名無しさん
09/12/25 13:36:41
DirectX使えば?
AudioVideoだっけ?ちょっと忘れたが・・・

198:デフォルトの名無しさん
09/12/25 13:54:03
>>199.Dispose();

199:デフォルトの名無しさん
09/12/25 13:58:17
>>198
それヌルポ例外

200:デフォルトの名無しさん
09/12/25 14:06:36
例外出てたの4秒か

201:デフォルトの名無しさん
09/12/25 14:14:05
Silverlight4でWebカメラ使えるらしいけど

202:191
09/12/25 14:33:58
VistaってDirectShowがDirectXが外れて
DShowNetが使えないって聞いたんだけど
ガセネタ?


203:デフォルトの名無しさん
09/12/25 14:37:59
それは勘違い。SDKでの話。

204:デフォルトの名無しさん
09/12/25 15:13:53
>>199
ヌルリじゃね?

205:デフォルトの名無しさん
09/12/25 15:17:46
どちらにしろ
ノーリアクションException だな

206:191
09/12/25 15:54:43
>>202
そうなんだ。ありがとう。

誤:VistaってDirectShowがDirectXが外れて
誤:VistaってDirectShowがDirectXから外れて

207:デフォルトの名無しさん
09/12/25 16:19:58
もちつけ

208:デフォルトの名無しさん
09/12/25 17:00:44
やだやだやだー!

209:デフォルトの名無しさん
09/12/25 19:24:54
正解も書けよ

210:デフォルトの名無しさん
09/12/25 23:34:07
一次元配列をラップしてArrayのstaticメソッドをインスタンスメソッドとして
使えるジェネリッククラスを書いたら便利かな、とふと思ったんだけど、
これは馬鹿げた発想だろうか?

それとも割とありふれた考え方?

もし同じようなことをやってる人がいたら、参考までにどんなクラス名にしてるか
教えてくれるとありがたい。

211:デフォルトの名無しさん
09/12/25 23:45:41
ばかげた発想だろう
どうしてもってんなら拡張メソッド書いとけ

212:デフォルトの名無しさん
09/12/26 00:06:21
>>210
どういうときに役にたつのかわからんちん

213:デフォルトの名無しさん
09/12/26 00:34:02
わざわざそれ使うためにそのクラスをインスタンス化するのか?
拡張メソッドで充分だろ。


214:デフォルトの名無しさん
09/12/26 00:36:07
>>210
同じようなことをやっている人: Microsoft
クラス名: Enumerable (名前空間: System.Linq)

215:デフォルトの名無しさん
09/12/26 00:46:26



216:デフォルトの名無しさん
09/12/26 00:46:30
まさにその通り過ぎて吹いたw

217:デフォルトの名無しさん
09/12/26 00:49:00
その通りじゃないだろうよ。


218:デフォルトの名無しさん
09/12/26 00:52:54
発想自体は馬鹿げたものではないと思う。
ただ、車輪の再発明は馬鹿げている。

219:デフォルトの名無しさん
09/12/26 01:58:54
しかし他人の発明ってのは気軽には使えないんだよね。とくに業務用ソフトだといろいろとうるさく言われる。
だから自分で再発明するしかなくなる。

220:デフォルトの名無しさん
09/12/26 02:02:56
発明の再実装、再構築
発明の追体験
は意味があると思うんだけどな。
何でもかんでも車輪の再発明というのはどうかと思う。

221:デフォルトの名無しさん
09/12/26 02:04:48
再発明というのは表現が違う気がする
再構築とかの方がしっくりくる

222:デフォルトの名無しさん
09/12/26 02:10:28
いずれにしろ、この場合はあるものをつかうのが正解。

223:デフォルトの名無しさん
09/12/26 02:17:09
そこにある車輪が使いにくいなら、
使いやすいように一から作り直すのは悪いことではない。
別にそれは再発明ではなく、ただの理論の整理だし、
たまにはそれくらいしないとより良い物は作れない。

というか、あるものは必ず使えという考えしか持てないのは大問題。

224:デフォルトの名無しさん
09/12/26 11:37:05
あるものを組合せた方がはやいか
作りなおした方がはやいかなんてその時その時で結構違うよね。

んで往々にして後者を選んで自爆する人が多いから
車輪の再発明はやめておけって昔から言われてるんだろうと思うよ。
基本前者のスタンスでいてどうしても必要なら後者、がいいんだと思う。

ただ車輪の再開発って楽しいんだよねぇ。
俺の設計/実装の方が綺麗!!!俺のネーミングセンスいかしてる!!!0.01%速くなったぜ!!!
みたいな。


225:デフォルトの名無しさん
09/12/26 11:39:20
使い方を調べたりドキュメント読むのが面倒だから
作っちまえって流れの車輪の再構築はダメなパターンだと思う。

あとマの習性としてどっか心の底で自分の方がうまくやれるって思ってる部分があるから
作り直したくなるんだろうなーとは思うなぁ。

226:デフォルトの名無しさん
09/12/26 13:34:07
過程なんか実際どうだっていいんだよ。
成果物が評価されるかどうかの話。

227:デフォルトの名無しさん
09/12/26 19:06:59
流れを読まずに書きこするが、計算結果をキャッシュして、依存するほかの部分の値が更新されていなかったらその計算結果を使い続けるということをしたいんだが、
そのときの更新した時点のTimeスタンプとして、System.Environment.TickCountをつかってもよろし?パフォーマンス的にとか言う意味で。

具体的にやりたいことは、UIElementTreeのようなものがあって、上の階層の座標やスケーリングが変更されたときはそれより下のものはパネル上の絶対座標が変わることになる。
各Elementは自分自身のパネル上での絶対座標を計算しておきキャッシュしておき上のものの座標などが変わらない限りそれを使い続けたい。

とりあえずその辺のアーキテクチャは置いといてタイムスタンプとしての使用に望ましい高速な経過時間に類するものがわかるものがしりたいです。

228:デフォルトの名無しさん
09/12/26 19:48:26
>>227
それ本当にパフォーマンスを考慮する必要があるの?
そういう風に聞こえない。ただの杞憂じゃないの?

端的に言ってその「タイムスタンプの取得」、n万回/secとかで行われるわけじゃないでしょ?
だったらどこにパフォーマンスを気にする必要があるの?


229:デフォルトの名無しさん
09/12/26 20:07:35
>>228
わかんないなら答えなくてもいいんだよ?

230:デフォルトの名無しさん
09/12/26 20:12:00
わかるから答えてるんでしょ。

231:デフォルトの名無しさん
09/12/26 20:18:34
涙拭けよ

232:デフォルトの名無しさん
09/12/26 20:31:33
さて、と

233:デフォルトの名無しさん
09/12/26 22:44:50
今日も一日ご苦労さまでした。

234:デフォルトの名無しさん
09/12/26 23:08:08
System.Environment.TickCountは多分最も高速。
もちろん精度は例によってデフォルト15msくらいだからそこが注意だな。
DateTime.NowやUtcNowは遅い。UtcNowは比較的速いが。精度はTickCountと同レベル
Stopwatchはもっと遅い。ただし精度ははるかに高い。


235:デフォルトの名無しさん
09/12/26 23:51:28
>>227
>>234
一日遅れのプレゼントが来ましたよ


236:デフォルトの名無しさん
09/12/27 00:39:17
WebBrowserでフォルダの中身を表示してExplorerのようにして使いたいと思い、
WebBrowserのActiveXInstanceプロパティを SHDocVw.ShellBrowserWindow
でキャストして、その Document プロパティを ShellFolderView として使い、
VerbInvoked イベントなどで何かの実行をイベントとしてモニターすることを
やってみました。

その際、VerbInvoked の戻り値を true にして返しているのですが、なぜか
なんの実行もしてくれません(コンテキストメニューでCopyを選ぶとこの
VerbInvoked イベントは立つのですが「貼り付け」のメニュー項目が現れて
くれません)。何か注意すべきことがあるでしょうか?

それと、VerbInvoked によって、コンテキストメニュー上の何の処理を実行
しようとしたのかを知る方法はあるでしょうか?これも知りたいのですが、
方法がわかりません。よろしくお願いします。

237:デフォルトの名無しさん
09/12/27 12:11:24
C#でPCのマスタ音量を変える(ボリュームコントロール)機能を実現したいのですが、
いい方法やクラスをお知りの方がいましたら、ご教授おねがいします。

238:デフォルトの名無しさん
09/12/27 12:15:19
マルチすんなよ

239:デフォルトの名無しさん
09/12/27 12:24:13
んなこといったって初心者用スレはごく一部の上級者とほぼ全員初心者しかいないから、たまにしかまともな回答えられないし
両方で相談するしかないじゃん。

240:デフォルトの名無しさん
09/12/27 12:25:27
だったらあっちじゃなくてこっちだけで相談すりゃいいでしょ。
「じゃん」じゃねーよ。


241:デフォルトの名無しさん
09/12/27 12:27:36
だったら2chで質問するなよ

242:デフォルトの名無しさん
09/12/27 12:32:16
回答する気ないならレスすんな。うぜぇから。おめぇらは「初心者バーカ」とだけいってりゃいいんだよ。

243:デフォルトの名無しさん
09/12/27 12:35:50
マルチするようなカスには分かってても回答しないのが常識だからな

244:デフォルトの名無しさん
09/12/27 12:46:37
>>242
初心者バーカ^^

245:デフォルトの名無しさん
09/12/27 12:52:37
初心者スレの初心者でもお前より初心者ではないと思うなw

246:227
09/12/27 12:56:39
>234
サンタさん、ありがとう。
今回は精度はそれほど重要でないので高速であれば十分です。
もしかしたら、速度も精度もPerformanceCounterからみのほうがよいのかもしれませんが、あのへんはよくわかってないです・・・

247:デフォルトの名無しさん
09/12/27 12:58:51
どなたか>>236にもお恵み下さるとありがたく、何卒よろしく。
VerbInvoked を検知してしまうと何も実行しない、というのは
一体何が原因なのか知りたく、みなさんのところではこういうことは
ないですか?

248:デフォルトの名無しさん
09/12/27 13:00:31
>>246
パフォーマンスカウンタはStopwatchと同じだよ。
一番遅い。


249:デフォルトの名無しさん
09/12/27 13:03:11
遅いならSindows.Forms.Timerなんて廃止すればいいのに。
もっといいのあるんだろ

250:デフォルトの名無しさん
09/12/27 13:06:15
>>246
っていうか、だからそんなワーストケースでもせいぜい数秒に一回程度しか
実行されないような処理のパフォーマンスを気にして意味あるのかよ

251:デフォルトの名無しさん
09/12/27 13:09:37
ついでに言えば、タイマーは精度に比例してタイマーそのものがCPU時間を消費する、
っていうのはら話も分かるけど、普通に考えてタイマーがカウントしてるカウンターの
値を読み取ることそれ自体はただの同期読み取りに過ぎないわけで、
こんなものがそんなに重い処理になる道理がないだろうよ。

252:デフォルトの名無しさん
09/12/27 13:14:22
一番楽な方法で書いてから最後にチューニングしませう

253:デフォルトの名無しさん
09/12/27 13:21:43
WebBrowserはなにげに機能制限されてるからなぁ。
Axの方を使ってみたら?

254:236
09/12/27 13:37:41
>>253
WebBrowserなためかもしれないと。わかりました。
>Axの方を使ってみたら?
直接COMの方を使うと。わかりました。やってみます。

255:デフォルトの名無しさん
09/12/27 13:39:57
つーか、そうやって切り分けるもんだろ?普通。

256:デフォルトの名無しさん
09/12/27 13:40:37
>>242
( ´∀`)初心者バーカ

257:デフォルトの名無しさん
09/12/27 14:10:43
>>237
mcisendstring

258:デフォルトの名無しさん
09/12/27 14:59:10
>>251
素人は黙ってろ

259:デフォルトの名無しさん
09/12/27 15:10:44
はい

260:デフォルトの名無しさん
09/12/27 15:14:02
無能な玄人が有能な素人を恫喝してみました。

261:デフォルトの名無しさん
09/12/27 15:17:46
つまらんな
ところでなんでQueryPerformanceCounterはあんな遅いの?


262:デフォルトの名無しさん
09/12/27 15:19:52
読み出すだけに決まってるから遅いわけないなんていう奴はどう見ても素人。


263:デフォルトの名無しさん
09/12/27 15:29:11
どう見てもとか書いちゃう人に、具体的にどう見たのか尋ねると、
良くても一つしか挙げないし、大抵は発狂するんだよね。

>>262
どう見たの?

264:デフォルトの名無しさん
09/12/27 15:34:23
>>262 初心者バーカ

265:デフォルトの名無しさん
09/12/27 15:35:44
---------- たにおり ----------

266:227
09/12/27 15:43:44
>248
ありです。

>250
ピーク時は一秒間に数百回コールされる可能性あるので。

267:デフォルトの名無しさん
09/12/27 15:51:11
値の取り方はわかってんだから実際に1000回取得して
掛かる時間とかCPU負荷とか調べてみりゃいいじゃん

268:デフォルトの名無しさん
09/12/27 16:01:11
>>266
最大限見積もっても1,000回/sec程度の頻度の読み出しでパフォーマンスを気にする
必要があるほど重い処理とは思えないけどね。

269:227
09/12/27 16:05:51
>267
もともとはTickCountのほかに何かいい方法があるかという趣旨の質問です。

>268
1ミリせく違うだけでも一秒の違い生じますが。

270:デフォルトの名無しさん
09/12/27 16:09:52
1ms違えばそうだろうけど1μs違うだけなら誤差だろ?

271:デフォルトの名無しさん
09/12/27 16:10:09
>>269
msオーダーの時間が掛かるわけないでしょw
恐らく10nsかかんないよ。
10のマイナス6乗見積もる時間が間違ってる。

272:デフォルトの名無しさん
09/12/27 16:14:02
なにをしたいかわからないけど、こんなにたくさん呼ばれるということは、
順番だけが重要なんじゃないか?

273:デフォルトの名無しさん
09/12/27 16:43:30
>>271
10nsって面白い冗談だ。
メモリアクセスですら何倍もかかるというのに


274:デフォルトの名無しさん
09/12/27 16:45:18
まあTickCountは確か数十nsくらいだったと思うけどな。
QueryPerformanceCounterになるとマイクロ秒以上かかる。


275:デフォルトの名無しさん
09/12/27 16:48:17
でまあ元質問の話じゃ別に気にするような用途じゃなかろうが、
キャッシュとかを実装しようとすると気になる話ではあるよ。

TickCountは精度は悪いが速いってこと以外に
値が32ビットに収まるって利点と欠点がある。


276:デフォルトの名無しさん
09/12/27 16:52:20
キャッシュとかの実装だと、場合によっては数十nsオーダのパフォーマンスになることもあるからな、
マイクロ秒なんで膨大なオーバーヘッドだ。


277:デフォルトの名無しさん
09/12/27 17:09:32
ナノwwwwwwwwwセクwwwwwwwwwwww

278:デフォルトの名無しさん
09/12/27 17:54:41
当然「呼び出し一回あたりの平均処理時間」の話をしてるんだけど、
なんか通じてない奴が数人いるようなw

279:デフォルトの名無しさん
09/12/27 18:01:14
よくわからんが、毎回数字さえ変わればいいなら、
Interlocked..Incrementでカウントアップしたほうが早いんじゃないかな。

280:デフォルトの名無しさん
09/12/27 18:07:35
そんな奴はいない。
まあ平均ってのも曖昧な値だけどな。


281:デフォルトの名無しさん
09/12/27 18:17:32
用途がカウントアップで合ってるのかって話は置いといて、
なんでインタロックなんだよ。
元の話は明らかにスレッドセーフではない前提なのに。
大体インタロック使ったらTickCountより遅くなるかも知れんぞ。


282:デフォルトの名無しさん
09/12/27 18:21:59
勘違いしてると思う書き込みを示せば?
時間を書いてるのは明らかに平均だよな、平均でしか測定不能だし。
10nsへの突っ込みに噛みついてるのかな?
特に元の話でなら呼び出し頻度は低い前提だから、
どっちにしてもメモリアクセスより速い訳がないな。


283:デフォルトの名無しさん
09/12/27 18:24:11
>>278
どれが早いと言う話は方がついている。それで遅いならお前の実装が悪い。

284:デフォルトの名無しさん
09/12/27 18:30:30
サイズの大きいメモリストリーム、例えば数十MB以上とかを、
ひょっとするとたくさん同時使う可能性もあるとき、
組み込みのメモリストリームだとエラーになるリスクが大きい。
断片化を避けるために例えばチャンクわけして小さめの配列のコレクションを持つメモリストリームを作ったりとか
いろいろ考えるんだが、他にいい方法はあるだろうか?
サイズが一定のしきい値をこえたら、テンポラリ指定の実質オンメモリファイルを作成するのはどうかなと考えたんだけど、どう思う?

285:デフォルトの名無しさん
09/12/27 18:36:59
実質オンメモリファイルだと、ストリームをプロセス外にうまく追い出せる気がするので、
パフォーマンスオーバーヘッドは大きいとしてもメモリ的にはかなり上限を増やせる気がするんだ。
64ビットOSならそんなことあまり気にしなくてもいいんだろうけど。


286:デフォルトの名無しさん
09/12/27 19:09:49
>>281
Interlock系はCASなんじゃないの?確認はしてないけど。

287:デフォルトの名無しさん
09/12/27 19:28:29
メモリ(CPU)使用率を一定に抑えたり、逆に出来る限り沢山使ったりということはできますか?
計算処理がとても重くPCがすごく重くなってしまいます

一瞬で答えが欲しいタイプのものではないので
バックグラウンドでまわしっぱなしで放置する

といった使い方をしたいのですが

288:デフォルトの名無しさん
09/12/27 19:33:32
ぷらいおりてぃ

289:デフォルトの名無しさん
09/12/27 19:35:08
Process.PriorityClassね

290:デフォルトの名無しさん
09/12/27 19:37:13
場合によってはThread.Priorityも。

291:デフォルトの名無しさん
09/12/27 19:38:44
>メモリ(CPU)使用率を一定に抑えたり、
>Process.PriorityClassね
何の効果もないわな。


292:デフォルトの名無しさん
09/12/27 19:39:05
プライオリティそんなに大事か?

293:デフォルトの名無しさん
09/12/27 19:40:29
>>286
何が言いたいのか分からんが、CASだからなんなんだ?
そもそも(最初の話での用途的には)CASの必要がないだろって話だろ?


294:デフォルトの名無しさん
09/12/27 19:42:31
優先度ってのはCPUのタイムスライスをどのスレッドに割り当てるかの優先度なんだよ?
だからCPUがアイドルなら優先度が低かろうがCPUは実質100%割り当てられる。
まあ最近のCPUはそもそもマルチコアが普通だから、結局25とか50になるけど。


295:デフォルトの名無しさん
09/12/27 19:44:19
例えば後ろで動画をエンコーディングしつつ動画見るってシチュエーションで
動画再生がスムーズに行かないって時にプライオリティ設定は覿面
メモリを制約するのは知らないなぁ

296:デフォルトの名無しさん
09/12/27 19:44:25
>>291

> 一瞬で答えが欲しいタイプのものではないので
> バックグラウンドでまわしっぱなしで放置する

> といった使い方をしたいのですが

ちゃんとここも読もうね
質問者が何を求めてるかちゃーんと理解しないとだめだよ!エヘ!

297:デフォルトの名無しさん
09/12/27 19:46:45
そりゃそうだけど、優先度を落とすのは「PCがすごく重くなってしまいます」への解決にはなるでしょ。

298:デフォルトの名無しさん
09/12/27 19:48:05
で、結局どうすればいいんだよ?

299:デフォルトの名無しさん
09/12/27 19:49:42
>>293
最初の話は>>227だろどう読んだら
>元の話は明らかにスレッドセーフではない前提なのに。 
なんだ?

>大体インタロック使ったらTickCountより遅くなるかも知れんぞ。
CASなら競合が無い限りAPI呼び出すより速いだろ。
タイムスタンプの変わりに世代をあらわす整数で十分という前提なら、
この方はどうかということを言ってるのだが。

300:デフォルトの名無しさん
09/12/27 20:05:55
一億回実行
Interlocked.Increment:00:00:01.3034899
Environment.TickCount:00:00:00.3905401


301:デフォルトの名無しさん
09/12/27 20:08:13
もちろん1スレッドで競合なし。
ま連チャン呼び出しなので、TickCountは実質キャッシュ読み取りだな、APIはコールしてても。


302:デフォルトの名無しさん
09/12/27 20:09:09
気持ち悪いな。
IT土方ってパチンカスみたいに頭やられてる奴しかいないのかね。

303:デフォルトの名無しさん
09/12/27 20:10:35
ただし調査環境は2コアプロセッサ。
Interlockedはシングルなら多分もっと速いだろうが、そんな前提はあまりよろしくはないな。



304:デフォルトの名無しさん
09/12/27 20:11:09
>>300
調査ご苦労さん

305:デフォルトの名無しさん
09/12/27 20:14:06
すごいな、3倍以上も。
圧倒的な差じゃないか

306:デフォルトの名無しさん
09/12/27 20:27:36
} が必要です。


307:デフォルトの名無しさん
09/12/27 20:32:29
ついでだ。
こっちは遅いので1000万回で。

DateTime.Now:00:00:02.2796051
DateTime.UtcNow:00:00:00.1485831
Stopwatch.GetTimestamp:00:00:06.9976666

※Stopwatch.GetTimestampはつまりQueryPerformanceCounterね

308:デフォルトの名無しさん
09/12/27 20:32:34
TickCountとかQueryPerformanceCounterとかCASとか
結局は議論より実測してみるのが一番だな。


309:デフォルトの名無しさん
09/12/27 20:32:38
誰だよ10nsなんてありえねえって言ったのは。

310:デフォルトの名無しさん
09/12/27 20:33:29
こんなに差がでるのか
Interlocked厨涙目wwwwwwwwwwwwwwwwwww

311:デフォルトの名無しさん
09/12/27 20:34:48
UtcNowとNowも、ちりつもだと差が開くもんだな

312:デフォルトの名無しさん
09/12/27 20:36:49
1秒に1000回やったとしても
体感上全く差が無いレベルだけどな

313:デフォルトの名無しさん
09/12/27 20:37:22
1回あたり約
Interlocked.Increment:13ns
Environment.TickCount:4ns
DateTime.Now:228ns
DateTime.UtcNow:15ns
Stopwatch.GetTimestamp:700ns
てところか。


314:デフォルトの名無しさん
09/12/27 20:38:50
>誰だよ10nsなんてありえねえって言ったのは。
ハードウエアから読み取るタイミングおよびキャッシュされてない前提での話だったじゃん。
この調査はほぼキャッシュ読み取りなんだから速いのは当たり前。


315:デフォルトの名無しさん
09/12/27 20:41:09
結局
>>234
が実証されたわけだ。


316:デフォルトの名無しさん
09/12/27 20:42:40
気持ち悪いな

317:デフォルトの名無しさん
09/12/27 20:47:33
>>310
>>313
Interlocked厨だが、そこそこ検討してて安心したよ

318:デフォルトの名無しさん
09/12/27 20:50:51
>>314
キャッシュってのが何のことを言ってるのかわからないけど、
Environment.TickCountの値はシステムで一つだから、もともとその処理には
HWからの読み取りなんて入ってないと想像する。

っていうか、PCのアーキテクチャ詳しいわけじゃないけど、
もともと高精度のHWタイマは必ずしも持ってないんじゃないの?

持ってるのなら巷間いわれてるような「計測精度を上げるとPCへの負荷が変わる」
なんて現象は起こらないはず。

もしそんなことが本当に怒るとすれば、それはタイマ割り込みでSWでタイマを
実装してるからだろう。

319:デフォルトの名無しさん
09/12/27 20:52:02
本当に怒っちゃうぞ

320:デフォルトの名無しさん
09/12/27 20:54:45
タイマは持ってて、システムの領域にセットされるタイミングが違うとかじゃない?
いや俺も知らないんだけどね。


321:デフォルトの名無しさん
09/12/27 20:55:55
あーでもそんな頻繁にセットしてるってのも考えにくいのかな?よう分からん。


322:デフォルトの名無しさん
09/12/27 20:57:37
そこらへんなんかもう実行環境依存だったりするんじゃないの?


323:デフォルトの名無しさん
09/12/27 20:58:56
どういう意味の高精度かは分からんが、x86ならクロック毎でカウントするタイマーがある。


324:デフォルトの名無しさん
09/12/27 21:08:42
>>323
だから、持ってるとしてそれをシステムが使ってるのなら、
アプリレベルではないのと一緒でしょ。

325:デフォルトの名無しさん
09/12/27 21:10:19
x86のrdtscかな。

z80だったかDRAMのリフレッシュ用のレジスターがあって
ゲームの乱数に使っていた遠い記憶が・・・(笑


326:デフォルトの名無しさん
09/12/27 21:11:42
>>317
4コアだと多分さらに倍は遅いぜ。


327:デフォルトの名無しさん
09/12/27 21:13:53
#region
はらたいらも真っ青
#endregion

328:デフォルトの名無しさん
09/12/27 21:28:18
>>319
どぞ

329:デフォルトの名無しさん
09/12/27 21:44:54
しょうもねー議論だわ

330:デフォルトの名無しさん
09/12/27 21:47:07
>>323-325
Stopwatch.GetTimestampが内部で使っている可能性はある。
たぶん、今時のハードウェアならHPETを使っているのだと思うけど。

Stopwatch.GetTimestampはネイティブのQueryPerformanceCounterに対応するとされる。
URLリンク(msdn.microsoft.com)(loband).aspx
QueryPerformanceCounterはRDTSCまたはもっとましな手段を使うという話がある。
URLリンク(msdn.microsoft.com)(loband).aspx

331:デフォルトの名無しさん
09/12/27 21:58:17
>>330
なるほど、奥が深いな・・・

332:デフォルトの名無しさん
09/12/27 22:24:38
>>331
酸素が薄くなってきましたね・・・

333:デフォルトの名無しさん
09/12/27 22:36:08
static Stopwatch() {
  bool succeeded = SafeNativeMethods.QueryPerformanceFrequency(out Frequency);
  if(!succeeded) {
    IsHighResolution = false;
    Frequency = TicksPerSecond;
    tickFrequency = 1;
  }
  else {
    IsHighResolution = true;
    tickFrequency = TicksPerSecond;
    tickFrequency /= Frequency;
  }
}

public void Start() {
  if(!isRunning) {
    startTimeStamp = GetTimestamp();
    isRunning = true;
  }
}

public static long GetTimestamp() {
  if(IsHighResolution) {
    long timestamp = 0;
    SafeNativeMethods.QueryPerformanceCounter(out timestamp);
    return timestamp;
  }
  else {
    return DateTime.UtcNow.Ticks;
  }
}

334:デフォルトの名無しさん
09/12/27 22:40:43
(・∀・)

335:デフォルトの名無しさん
09/12/27 22:50:52
>Environment.TickCount:00:00:00.3905401
TickCountは単位としては1/1000秒、精度的には1/100秒程度だろ。
この例では1億回の実行中に39種類しかtickを返してないわけだ。
ちとずるいな。

336:デフォルトの名無しさん
09/12/27 22:53:16
ずるいとかそういう問題なのか?

337:デフォルトの名無しさん
09/12/27 22:54:16
そういう問題だ。ケチ付けんな。

338:デフォルトの名無しさん
09/12/27 22:59:09
ケチじゃなくて疑問でしょ。
突っ込まれたら答えられない程度の理解の人が
急いで先回りで釘刺すみたいな反応しなくても。

339:デフォルトの名無しさん
09/12/27 23:00:43
- - - - - - - やまおり - - - - - - -

340:デフォルトの名無しさん
09/12/27 23:03:29
タイムスタンプの呼び出しを気にするような
微細なキャッシュ処理をしてるのに、
タイムスタンプが荒すぎるんじゃないのかと。

341:デフォルトの名無しさん
09/12/27 23:08:06
227をどう読んでも、その後の227の話をどう読んでも
そんなに粗いとは思わないがな。

342:デフォルトの名無しさん
09/12/27 23:09:26
それは、はじめから分かっていたこと。
たぶんロジックを考え直せばシリアルをつけていけばすむ。

343:デフォルトの名無しさん
09/12/27 23:13:01
ハナから精度の問題じゃねえじゃん。
だから「そういう問題なのか?」って言ったのに。
死ね土方。

344:デフォルトの名無しさん
09/12/27 23:14:07


345:デフォルトの名無しさん
09/12/27 23:15:40
2chには同族嫌悪というか、ニートとかドカタとか同じ境遇の人がののしりあう傾向があるな。

346:デフォルトの名無しさん
09/12/27 23:17:01
病んでるからね

347:デフォルトの名無しさん
09/12/27 23:21:54
それで少しでも救われるなら喜んでドカタと罵しられるさ。

348:デフォルトの名無しさん
09/12/27 23:22:45
もうすぐハッピーニューイヤーなんだから明るく行こうぜ。

349:デフォルトの名無しさん
09/12/27 23:28:35
お前ら明るく行こうぜ!!!!!!!!!!!

350:デフォルトの名無しさん
09/12/27 23:28:46
テキストデータベースの効率のいい検索方法ってどんな方法がありますか?
Google検索とか膨大なデータベースの割に一瞬で検索できますよね?
どういう仕組みなんでしょうか

351:デフォルトの名無しさん
09/12/27 23:31:44
>>350
Googleはアルゴリズムはもとよりバックボーンが凄いんだと思う。
MapReduceとかもそのバックボーンがあってこその仕組みだし。

テキスト全文検索ならwikipediaにまとめがあるからそっからたどるといいよ
URLリンク(ja.wikipedia.org)

352:デフォルトの名無しさん
09/12/27 23:32:05
>>350
Google検索に関しては
あらかじめ分類して結果をキャッシュしておく。
最新のデータを使わずキャッシュを使う。
正確さを求めない。

なので勘定系のDBでこういう手法はご法度。

353:デフォルトの名無しさん
09/12/27 23:33:31
全文検索はインデックスを先に作るってことで処理速度の短縮を測るのが多いような。
最近のDBはそういう全文検索機能まで付いてるのもあるんじゃなかったっけ?

354:デフォルトの名無しさん
09/12/27 23:35:30
(・∀・)ニューイヤー!

355:デフォルトの名無しさん
09/12/27 23:41:49
>>335
ずるいっちゃずるいんだけどさ、最初からそういう話で
今さらそこを突っ込まれても困る。


356:デフォルトの名無しさん
09/12/27 23:45:19
たとえばintとlongの計算どっちが速い?
って疑問が出たとして計測したらintのが速かったとして
そこで、intはビット数半分だろ?ちとずるいな
って言われても困るんだ。


357:デフォルトの名無しさん
09/12/27 23:56:23
一緒だけどな。

358:デフォルトの名無しさん
09/12/28 00:23:38
一緒だね

359:デフォルトの名無しさん
09/12/28 00:29:06
ずっと一緒だよ ///

360:デフォルトの名無しさん
09/12/28 00:38:24
x64なら同じ、x86ならlongのが3倍ほど遅いという結果になった。


361:デフォルトの名無しさん
09/12/28 00:55:02
x64、x86と来たら次はx108になるのかな?

362:デフォルトの名無しさん
09/12/28 00:55:48
80186ですね。わかります。

363:デフォルトの名無しさん
09/12/28 00:56:13
話を戻すが、>>227はキャッシュの有効性を判別する値に使いたいんだから、
精度(precision)はどうでもいいけど分解能(resolution)はかなり重要

で、それぞれの(公称の)分解能は

Environment.TickCount: 500ms
DateTime.UtcNow: 10ms
Stopwatch.GetTimestamp: H/W性能に依存

>>266によると「ピーク時は一秒間に数百回コールされる」とのこと
簡単のため500Hzとすると周期は2msで、あきらかに前2者は不十分


364:デフォルトの名無しさん
09/12/28 01:00:04
>Environment.TickCount: 500ms
まあこれは実態に合ってない数値だけどな。
それはおいといて、更新を確実に確認したいなら素直にカウントにするべきだわな。


365:デフォルトの名無しさん
09/12/28 01:01:28
あれInterlocked厨大勝利の流れ?

366:デフォルトの名無しさん
09/12/28 01:05:00
なんでedだけ小文字なん

367:デフォルトの名無しさん
09/12/28 01:09:28
>>363
どうでもいいことに突っ込んで悪いけど、計測において「精度」と対比されるのは
「確度」じゃないの?

その分解能って精度とどう違うのよ?
というより、それって精度そのものじゃん。

368:デフォルトの名無しさん
09/12/28 01:21:03
いやまあ、たぶんLSBの大きさっていうか、
最小測定単位のことを言いたいんだろうってのは分かるけどね。

ただ、>>363に出てくる測定値の「誤差」ってのは、計測器そのものの
量子化誤差によるものというより、測定器を操作する側(つまりソフト)の
問題に起因する誤差だから、「分解能」ってのは概念的にしか意味を持たないよね。

369:デフォルトの名無しさん
09/12/28 01:21:50
ないない

370:デフォルトの名無しさん
09/12/28 01:45:53
>>365
いや、同一スレッドで(Interlocked使わずに)インクリメント&取得をする方がベター

371:デフォルトの名無しさん
09/12/28 01:54:28
どこの国のベターだよ

372:デフォルトの名無しさん
09/12/28 02:00:20
>>227は下層のエレメントが多数合って、
不特定のスレッドから勝手に情報が書き換えられるイメージで、
上層の管理スレッドが下層のエレメントの様子を見て
変更があればそれに応じた処理をするのだと思うけど。
そうなると変更があったことを示すシーケンスを作る出すのが
同一スレッドというわけにはいかない。

373:デフォルトの名無しさん
09/12/28 02:28:52
そうは思えんが。
>上層の管理スレッドが下層のエレメントの様子を見て
>変更があればそれに応じた処理をするのだと思うけど。
こんなことを別スレッドで監視する馬鹿はいない。


374:デフォルトの名無しさん
09/12/28 02:34:02
更新自体は複数スレッドからあったとしても、
こういうバージョンカウンタはスレッドセーフでなくてもよい場合もある。


375:デフォルトの名無しさん
09/12/28 02:35:10
[割り込み|シグナル|コールバック|イベントドリブン]が理解できないので~~~
よくある話ではある。

376:デフォルトの名無しさん
09/12/28 02:44:20
そういう話なら、そもそもバージョン管理自体入らないんじゃね。
変更があったら即書き換える。

377:デフォルトの名無しさん
09/12/28 02:58:19
ウェブサーバーもシングルスレッドで大丈夫とか言っちゃう人かな。
できなくはないだろうけがしんどいのと違うかなぁ。
>ピーク時は一秒間に数百回コールされる可能性あるので。 


378:デフォルトの名無しさん
09/12/28 03:16:13
>>350
分散処理

379:デフォルトの名無しさん
09/12/28 07:20:38
0

380:デフォルトの名無しさん
09/12/28 07:43:12
実行中に時刻の修正が入ったら、どうなる?

381:デフォルトの名無しさん
09/12/28 07:47:12
DateTime系以外は影響なし


382:227
09/12/28 08:06:38
朝起きたらすれが膨大に増えてて吹いた&さーせん。

基本的にユーザーの操作によって位置などが変えられる可能性があり、描画時に上の階層の更新時刻?をすべて舐めて更新されてたら絶対座標などの再計算を行うというものなので
後からの呼び出しが同時刻もしくはそれ以降であることが保障されるなら精度は数百ミリセクでも足ります。

計算してくれた人ありです。その時間なら問題なかです。

そもそもの更新時刻?みて再計算がやり方として正しいのかわからんですがとりあえず実装してみまふ。すくなくとも今の毎回上から全計算しながら下るよりは速いと願いたいw


383:デフォルトの名無しさん
09/12/28 10:33:58
そろそろ誰か3行でたのむ。
とちゅうでついていけなくなった。

384:デフォルトの名無しさん
09/12/28 10:50:53
>>382
それって、ただのカウンタでいいってことじゃない。

385:デフォルトの名無しさん
09/12/28 10:54:15
場合によってはフラグでも・・・


386:デフォルトの名無しさん
09/12/28 11:58:05
ハッシュとか

387:デフォルトの名無しさん
09/12/28 12:07:00
>>377
誰に言ってるのか何が言いたいのか分からん

388:デフォルトの名無しさん
09/12/28 12:09:59
たとえ更新が複数スレッドでも、その用途ならvolatile変数程度で普通にインクリメントで十分。
最もその前に更新自体が複数スレッドから正常に行えるか確認いるけどな。



389:デフォルトの名無しさん
09/12/28 12:15:13
volatileのincrementは安全なのか?

390:デフォルトの名無しさん
09/12/28 12:17:30
絶対座標取得時は親の座標取得して加算てのと余り変わらん気がするが。
キャッシュするなら、全キャッシュの一発無効化が出来るプラグや更新バージョンを使わんと、
結局全親のトラバースが必要なので大して効果ないと思う。
何せ計算自体の負荷が小さいだろうから。
計算が結構重いなら効果あるだろうけど。

391:デフォルトの名無しさん
09/12/28 12:21:59
volatileではもちろんインクリメントはスレッドセーフじゃない。
でも、キャッシュの無効化のための更新バージョンなんてのは、それでも実質的にうまく動く。
考えて見たら分かるよ。
更新が競合しない場合→当然問題なし
更新が競合する場合→結果として必ず誰かが1回は更新することになるので問題なし


392:デフォルトの名無しさん
09/12/28 12:25:21
後はビットフラグなんかで上手く工夫すれば、子孫だけキャッシュ無効化ってのもひょっとするとできるかもしれない。


393:デフォルトの名無しさん
09/12/28 12:26:44
>>391
ああそういうことね。ただ前提を創作しすぎるのはどうかと。
それだったらバージョンの更新は、
キャッシュを使ってる側がやれば十分でないかな。

394:デフォルトの名無しさん
09/12/28 12:27:47
とにかく、現状の考え方である、キャッシュの確認も実際の座標計算も同じだけトラバースが必要な設計では、
計算自体がそこそこ重くないとあまり効果は期待できない。


395:デフォルトの名無しさん
09/12/28 12:33:29
うみねこのなく頃にのような展開で話が見えない

396:デフォルトの名無しさん
09/12/28 12:39:46
実際のとこ、ホントにそんな計算に時間かかってるの?
要素数はトータルでどのくらい?
また現状のコードはどんなの?

それから、絶対座標計算するのは描画などの特定タイミングで一斉にやるの?
一斉にやるなら、ルートから全要素をトラバースするやり方ならそんな無駄はない。
あるいはこれと全要素共通の更新バージョンとの組み合わせ。


397:デフォルトの名無しさん
09/12/28 12:43:06
それでも遅いなら特定子孫のみを無効化出来るようにビットフラグなんかで工夫、
ただしこれはうまくできるかは分からない、頭の中で設計出来てない。
出来たとしてもちょっと複雑になるから効果は落ちる可能性が高い。



398:デフォルトの名無しさん
09/12/28 12:53:27
産業

399:デフォルトの名無しさん
09/12/28 16:57:48
みなさん!自己解決しました!

400:デフォルトの名無しさん
09/12/29 05:44:35
みなって誰?

401:デフォルトの名無しさん
09/12/29 08:17:31
青江

402:デフォルトの名無しさん
09/12/29 10:06:33
流石の俺も「青江」は出ねぇわw

403:デフォルトの名無しさん
09/12/29 12:44:01
(  ̄ー ̄)ふーん…

404:デフォルトの名無しさん
09/12/29 12:50:04
    (  ̄ー ̄)
  (  ̄ー ̄)(  ̄ー ̄)
(  ̄ー ̄)(  ̄ー ̄)(  ̄ー ̄)

405:デフォルトの名無しさん
09/12/29 13:14:47
    (  ̄ー ̄)
  (  ̄ー ̄)(  ̄ー ̄)
(  ̄ー ̄)(  ̄ー ̄)(TーT)


406:デフォルトの名無しさん
09/12/29 13:29:20
使い捨て下っ端のITドカタを表現したAAですね

407:デフォルトの名無しさん
09/12/29 13:57:46
本物のドカタは定刻で帰れるがな。

408:デフォルトの名無しさん
09/12/29 15:06:59
がながな。

409:デフォルトの名無しさん
09/12/29 15:52:14
VC#2008で行番号が表示されないんですが。知ってる人いませんか?

410:デフォルトの名無しさん
09/12/29 15:53:23
ありますたorzスミマセン

411:デフォルトの名無しさん
09/12/29 17:32:37
単にあったかだけ書かずにどこにあったかも書いとけよ

412:デフォルトの名無しさん
09/12/29 17:42:48
かわりに書いておいてください
では

413:デフォルトの名無しさん
09/12/29 17:47:51
死ねハゲ

414:デフォルトの名無しさん
09/12/29 17:56:50
悪性のタコだな

415:デフォルトの名無しさん
09/12/29 18:02:22
C#でDictionary型の連想配列のディープコピーをするには
ループでコピーするしかないですか?

416:415
09/12/29 18:05:18
自己解決しました

417:デフォルトの名無しさん
09/12/29 18:06:20
はいはい

418:デフォルトの名無しさん
09/12/29 18:08:40
>>416
答え書け、バカ

419:デフォルトの名無しさん
09/12/29 18:10:54
>>418
イヤです。

420:デフォルトの名無しさん
09/12/29 18:10:59
>>416-418
自演乙
誰だよお前w>>416

421:デフォルトの名無しさん
09/12/29 18:16:02
こんなカスが常駐してるからID非表示の板は嫌なんだ
おとなしくループでしこしこやってるわ

422:デフォルトの名無しさん
09/12/29 18:20:57
>>421
どうしても答え欲しいならトリップでもつけりゃいいじゃん
あほなの?

423:デフォルトの名無しさん
09/12/29 18:23:23
冬休みで基地外が居座ってる確率が急上昇中だな。

424:デフォルトの名無しさん
09/12/29 18:25:52
たいへんだな

425:デフォルトの名無しさん
09/12/29 18:28:05
まぁ、本当に自己解決したからいいわw
ループコピーの関数作ったから。

426:デフォルトの名無しさん
09/12/29 20:39:25
UserControl継承してコントロール拵えてたんだけど
パブリックプロパティ作ったらデザイナが勝手にnull入れようとしてくるのね。
そのプロパティはnull許容できないからArgumentNullException吐いてるのね。
それでも執拗にnull入れてくるのね。

たぶんこの辺を制御する属性があるはずなんで教えてください。

427:デフォルトの名無しさん
09/12/29 20:40:02
DefaultValueAttribute

428: ◆dqVzDvT5pM
09/12/29 20:40:47
よろしくおねがいします

429:デフォルトの名無しさん
09/12/29 20:41:58
こちらこそよろしくおねがいします

430:デフォルトの名無しさん
09/12/29 20:42:34
>>427
ありがとうござます。

431:デフォルトの名無しさん
09/12/29 21:23:32
こんごともよろしく

432:デフォルトの名無しさん
09/12/29 22:21:23
>>426
デザイナは勝手にnull入れようとなんてしないし、
DefaultValueAttributeは単にプロパティグリッドのコンテクストメニューが
表示されるときに「リセット」項目を有効にするかどうかの判定に使われるだけ。

なんか勘違いしてると思う。

433:デフォルトの名無しさん
09/12/29 22:26:51
しないし~と言わても、コントロール更新する度に
Form.InitializeCompornent
の中で毎度毎度
MyControl.NullNotablePropaty=null
を自動生成されるのでどうしたらいいのやら
結局メソッドにしたからいいんだけど

434:デフォルトの名無しさん
09/12/29 22:35:38
再現するので一応手順を書きます。

普通にFormアプリケーションのプロジェクトを新規作成します。
追加でUserControlを選択し、TestUserControlを作成します。
TestUserControlに以下のコードを記入します。

private object nullNotablePropaty = null;
public object NullNotablePropaty {
get { return this.nullNotablePropaty; }
set {
if (value == null) { throw new ArgumentNullException("value"); }
this.NullNotablePropaty = value;
}
}

一度ビルドします。
Formに戻ってTestUserControlを貼り付けます。
もう一度ビルドすると

//警告 値を Null にすることはできません。
//パラメータ名: value

と吐いてデザイナが停止します。
これ標準的な動作なのですか?

435:デフォルトの名無しさん
09/12/29 22:38:49
>>433
それはUserControlのコードで適切なタイミング(普通はコンストラクタで
いいと思うけど)でプロパティを初期化してないから。

あるいは逆に、UserControlが何かのイベントハンドラでプロパティ(またはその
バックストアフィールドに)nullを入れちゃってるか。

いずれにせよ、デザイナがやってるのは、ただ設定されてるプロパティを永続化するための
コードを吐いてるだけ。

もちろんDefaultValueAttributeで適当な値を指定して、そのプロパティをデザイナで
指定すれば、

MyControl.NullNotablePropaty=null;
は作成されなくなるけど、根本的な問題解決になってない。

436:デフォルトの名無しさん
09/12/29 22:39:52
そもそもnull入れちゃダメなのにnullで初期化してる意味がわからない

437:デフォルトの名無しさん
09/12/29 22:43:42
別にString.Emptyでも何でもええですよ。
適当な値が思いつかなかったからここではNullになってるだけっす。
重箱がお好きですねぇ。

438:デフォルトの名無しさん
09/12/29 22:46:16
重箱は職業マの趣味だよw
程度低いよねw

439:デフォルトの名無しさん
09/12/29 22:48:24
(´・ω・`)

440:デフォルトの名無しさん
09/12/29 22:52:52
>>434
だから、とにかくプロパティを初期化するコードを書こうよ。

なぜそういう動作になるのかは、俺も完全には説明できないけど
落ち着いて考えれば大体の想像はつくと思う。

441:デフォルトの名無しさん
09/12/29 23:02:06
プロパティって初期化するか?

442:デフォルトの名無しさん
09/12/29 23:02:58
後ろのフィールドを初期化してDefaultValue属性で明示するのが正しい

443:デフォルトの名無しさん
09/12/29 23:07:09
んじゃおきまりの文句を
設 計 が 悪 い

444:デフォルトの名無しさん
09/12/29 23:09:43
UserControlにnullを許容しない参照型のプロパティを持つのが理解できない
設計が悪い

445:434
09/12/29 23:20:31
自己解決しました

446:デフォルトの名無しさん
09/12/29 23:20:36
>>434
あと、一応言っておくけど単にIDEがそのプロパティを永続化するコードを吐くことを
抑止したいだけなら、DesignerSerializationVisibilityAttribute.Hiddenを付ければいい。

447:デフォルトの名無しさん
09/12/29 23:22:22
>>439
(´・ω・`)←鳥の糞

448:デフォルトの名無しさん
09/12/29 23:24:56
しかし、どう解決したかぐらい書けばいいのにな。
なんかさもしいよな

449:デフォルトの名無しさん
09/12/29 23:26:11
遊ばれてる人々

450:デフォルトの名無しさん
09/12/29 23:31:57
他人がネタで書いてるだけだってば。

451:デフォルトの名無しさん
09/12/29 23:44:30
ID無い板で冬休み
そういうことだ

452:デフォルトの名無しさん
09/12/30 00:17:40
>>437
こんなあほ相手にするだけ無駄だったな。


453:デフォルトの名無しさん
09/12/30 00:20:15
>>432
お前も勘違いしてる。


454:デフォルトの名無しさん
09/12/31 03:05:56
初めまして。
現在COMのiTunes 1.12 Type Libraryを利用して、
iTunesで曲が再生される度にListViewに曲目を追加していくアプリを開発しています。
再生開始時にListViewに追加できるようにするため、一通りコードを書いたのですが
以下のコードがうまく動かずに頓挫しています。

具体的には、関数ShowSongInfoOnList()において
リストを表示する手前でMessageBoxを出すと、曲目が表示されるのですが、
(ゆえに、曲目は正常に取れているはず)
その次の行のAddする時にうまく行っていないようで、困っています。
Addさえうまく行けば…と思い、苦労しております。

解決法をご存知の方、どうかご教授ください。

455:454のコード1
09/12/31 03:07:34
namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{
// iTunes操作のためのインスタンス
private iTunesApp iTunes;

public Form1()
{
// 初期化
InitializeComponent();

// リスト形式で表示するためのコード
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.Sorting = SortOrder.Ascending;
listView1.View = View.Details;
listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
listView1.Columns.Add("楽曲名", 145, HorizontalAlignment.Left);
listView1.Columns.Add("アーティスト", 145, HorizontalAlignment.Left);
listView1.Columns.Add("アルバム", 100, HorizontalAlignment.Left);
listView1.Columns.Add("再生日時", 200, HorizontalAlignment.Left);

// インスタンス生成
iTunes = new iTunesAppClass();



456:454のコード2
09/12/31 03:08:20
// イベントハンドラ群
iTunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(iTunesPlayEvent);
iTunes.OnPlayerStopEvent += new _IiTunesEvents_OnPlayerStopEventEventHandler(iTunesStopEvent);
iTunes.OnAboutToPromptUserToQuitEvent += new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(iTunesQuitEvent);
}
// 再生開始イベント
private void iTunesPlayEvent(Object iTrack)
{
ShowSongInfoOnList((IITTrack)iTrack);
}
// 再生終了イベント
private void iTunesStopEvent(Object iTrack)
{
}

// iTunes終了イベント
private void iTunesQuitEvent()
{
this.Close();
}

private void ShowSongInfoOnList(IITTrack itrack)
{
// 曲情報を格納
DateTime dt = DateTime.Now;
// デバッグ用
MessageBox.Show(itrack.Name + itrack.Artist + itrack.Album + dt.ToString());
// リスト表示
this.listView1.Items.Add(new ListViewItem(new String[] { itrack.Name, itrack.Artist, itrack.Album, dt.ToString() }));
}
}
}

457:454
09/12/31 03:11:17
自己解決しました。スレ汚し失礼しました。

458:デフォルトの名無しさん
09/12/31 22:29:20
ある値を返す関数FUNCがあるとします。FUNCが返す値は、FUNC内で取得や生成がされるものではなく、他のコールバック関数CBがきた時点でCB内で取得できるものです。
この場合、FUNCによってCBで得られた値を返すにはどのような方法をとればいいのでしょうか。

CB内の処理で適当なフラグをONにして、FUNC内でそのフラグがONになるのをwhileループで待つというのは微妙な方法だと思います。
またThread.Sleepで処理を待つというのも、この場合FUNCの反応速度が1ms単位になってしまうので若干の妥協を強いられることになってしまいます。

この場合どのような手段が最適なのでしょうか。
ちなみにこの情報が役に立つかはわかりませんが、具体的にやりたいことはDirectShowでUSBカメラのキャプチャを行うことの複雑さをクラスによって隠蔽しようとしています。
DirectShowのISampleGrabberCB.BufferCBが上記のコールバック関数CBにあたり、クラスでキャプチャ画像を取得する関数が上記のFUNCに相当します。
よろしくお願いします。

459:デフォルトの名無しさん
09/12/31 22:35:25
FUNCだけでやりたい、ってことなら、ポーリングするしかない。
普通に考えれば、コールバックなりイベントなりを使うだろうけどね。

460:デフォルトの名無しさん
10/01/01 02:08:29
要約するとこう?
| コールバック関数にキャプったデータが非同期で順次渡され、FUNCで現在のデータを取り出す
| しかし、まだカメラの準備ができていなくてデータがないときはFUNCをブロックしたい

いずれにしても、同期制御の基本的な部分が分らないんだろうな
キーワード: イベントオブジェクト、EventWaitHandle

461:デフォルトの名無しさん
10/01/01 05:13:05
>>460
笑(笑)

462:458
10/01/01 17:19:47
すいません自己解決しました。

463:デフォルトの名無しさん
10/01/01 17:34:25
よかったね。死ね。

464:デフォルトの名無しさん
10/01/01 18:01:31
すみません自己解凍しました。

465:デフォルトの名無しさん
10/01/01 21:09:16
>>459-460
レスありがとうございます。極力クラスを利用するほうには簡単に見せたかったので、イベントやコールバックも控えていたんです。
EventWaitHandleなどについて調べてみたいと思います。


466:デフォルトの名無しさん
10/01/03 13:47:18
DataGridView を継承したクラス を作っているんですが、CellValuePushed イベント内で
e.ColumnIndex の値が書き変わってしまいます。
関数内で this(あるいはキャストした sender).Rows[].Cells[].Value のように、cell.Value
を実行したのが原因のようですが、これはしてはいけないことなんでしょうか?

467:466
10/01/03 14:17:02
自己解決しました

468:466
10/01/03 14:20:14
偽者が出たので再度カキコ

DataGridView を継承したクラス を作っているんですが、CellValuePushed イベント内で
e.ColumnIndex の値が書き変わってしまいます。
関数内で this(あるいはキャストした sender).Rows[].Cells[].Value のように、cell.Value
を実行したのが原因のようですが、これはしてはいけないことなんでしょうか?

469:デフォルトの名無しさん
10/01/03 14:26:37
>>468
偽者なんてわかってるのに二重書き込みとかいちいちうざいよ。

470:デフォルトの名無しさん
10/01/03 14:54:31
>>469
チミ自身は「うざ」くないと思ってるの?w
こういう「俺様棚上げ君」って頭オカシイんじゃないのかねホント。

471:デフォルトの名無しさん
10/01/03 14:56:15
>>466
意味がわかんない。e.Value使えばいいんじゃね?
確かめたわけじゃないけど、Cellsのインデックスはカラム順じゃないキガス

それと467==469だな、うん。ゴミレスが根拠。470も同類ウザ

472:デフォルトの名無しさん
10/01/03 14:59:43
467だけど469ではないです。
あと466解決しました。

473:デフォルトの名無しさん
10/01/03 15:00:10
まったく同じこと書きなおす奴は読んでる人のことは全然考えてない

474:デフォルトの名無しさん
10/01/03 15:02:26
>>470
チミとかきんもーっ☆

475:デフォルトの名無しさん
10/01/03 15:11:11
>>471
「==」わろた

476:デフォルトの名無しさん
10/01/03 15:13:28
まぁマ板だし

477:デフォルトの名無しさん
10/01/03 15:29:54
いやム板でしょ

478:デフォルトの名無しさん
10/01/03 15:37:12
だから自己解決したときも答えを書けといってるのに

479:デフォルトの名無しさん
10/01/03 15:42:20
>>466-479
ここまで自演

480:デフォルトの名無しさん
10/01/03 15:43:16
だからいちいちトリップつけろよめんどくさい

481:デフォルトの名無しさん
10/01/03 15:49:59
>>466
試してみた。
現象としては違うんだけど、デバッグ文とかで
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value
を参照すると、e.Valueが何故か消えるな・・・

String mes1 = "row:" + e.RowIndex + ", col:" + e.ColumnIndex + ", val:" + e.Value;
String mes2 = "row:" + e.RowIndex + ", col:" + e.ColumnIndex + ", val:" + dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

そもそも CellValuePushed の中じゃ dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value は
入力以前の値だから見ても意味がない。
やっぱり e.Value を使えばいい。変更前の値ならデータストアを見る。


482:デフォルトの名無しさん
10/01/03 15:52:37
あと、ColumnIndexは表示のカラムとは無関係だった。(カラムの順番を手で移動しても変わらない)

483:466
10/01/03 17:31:14
>>471 >>481 >>482
レスありがとうございます。
Rows[].Cells[].Value で同行の他列を参照したいので、e.Value は使えないんです。
最初に e.ColumnIndex を保存しておくとかも考えたんですが、CellValuePushed 内で
他列を参照しない方がいいですね…
アドバイスどおり、おとなしく元データのほうを参照するようにします。

484:デフォルトの名無しさん
10/01/06 21:06:37
32bitOSで作ったC#アプリは
64bitOSでも使えますか?

485:デフォルトの名無しさん
10/01/06 21:15:00
動く

486:デフォルトの名無しさん
10/01/06 21:16:22
動くようにも作れる

487:デフォルトの名無しさん
10/01/06 21:25:25
動かないように作る方が難しいと思うけどw
IntPtr使うところわざとint使ったりでもしなきゃ動くんじゃないのか

488:デフォルトの名無しさん
10/01/06 21:57:04
まあ普通に作れば動くわな。
アンマネージ使う場合くらい注意。


489:デフォルトの名無しさん
10/01/06 22:24:56
あとは32ビット版しかないCOMコンポーネントとか要注意だな。

490:デフォルトの名無しさん
10/01/06 22:30:46
今は直ってた気がするけど、
昔、LINQ to SQL 使うと64ビットで動かなかったことが。

491:デフォルトの名無しさん
10/01/06 22:35:26
LINQってなんですかぁ?
Linkの派生版ですかぁ?
ハイパーリンク出来るんですかぁ?
よくわかりません><

492:デフォルトの名無しさん
10/01/06 22:39:13
>>491
和製英語で臨海空港のこと。
臨海空港 ⇒ りんくう ⇒ LINQ
一つお勉強になったね

493:デフォルトの名無しさん
10/01/06 23:05:22
つまんね

494:デフォルトの名無しさん
10/01/07 00:46:57
Properties.Settingsで、起動時にuser.configを読み込むタイミングで
validateを差し込む方法はあるでしょうか?

ユーザがuser.configを自分で無効な値に書き換えた場合などに、
キャンセルしてデフォルト値を読み込めるようにしたいのですが。

495:デフォルトの名無しさん
10/01/07 02:17:26
どうしても出来ない事があって、質問しようと今までやってきたことを書き連ねてたら、
突然ひらめいて解決できた。

ありがとう、本当にありがとう。

496:デフォルトの名無しさん
10/01/07 02:19:48
そういうもんだ。

497:デフォルトの名無しさん
10/01/07 02:25:12
文章書くことで頭が整理される


498:デフォルトの名無しさん
10/01/07 05:23:16
脳が活性化されるからね

499:デフォルトの名無しさん
10/01/07 09:01:53
文章というか可視化だな

500:デフォルトの名無しさん
10/01/07 09:33:12
そうそう、先輩や後輩に相談しようとして話してたら閃くことってたまにあるw
やっぱ整理するって大事なのね

501:デフォルトの名無しさん
10/01/07 09:37:27
アウトプットしないと人間馬鹿になるっていうしな

502:デフォルトの名無しさん
10/01/07 14:06:00
ありすぎて笑う

503:デフォルトの名無しさん
10/01/07 23:05:19
仮死化

504:デフォルトの名無しさん
10/01/07 23:14:25
ドキュメントを残していれば誰かが引き継いでくれるのを期待することですね

505:デフォルトの名無しさん
10/01/08 01:51:05
先生、このロンゴロンゴ文字解読できません!

506:デフォルトの名無しさん
10/01/08 02:32:56
C#WindowsアプリからWEBブラウザを起動し、
WindowsFormに入力した値をブラウザ上に自動入力する
プログラムを作っています。

通常のiFrame(インラインフレーム)等を使わないページであれば
mshtmlを使用する事によりWindowsフォームに入力した値を
ブラウザに設定する事が出来ているのですが、

指定したページ内部にiFrameを使用しているページの場合には
どうしても自動で入力をする事が出来ません。

どうすれば指定したページ(URL)にiFrameが使用されている場合にも
ページの特定項目にmshtmlを使用して自動入力をさせる事が出来るのでしょうか?

507:デフォルトの名無しさん
10/01/08 02:59:46
>>506
javascriptでのやり方と一緒です
iframeをDOMで取得して中のドキュメントを取得すれば
そこから先はiframeを使っていない場合と同じ
トップのドキュメントとフレームのドメインが異なるなら無理です
絶対不可能かというとそうでもないんだがセキュリティ上の制約です

508:デフォルトの名無しさん
10/01/08 19:24:09
Ctrl + Mを改行に割り当てられますか。
Mはアウトライン関連の2ストロークの最初の文字みたいだったんで、それらを削除してみたんだが。

509:508
10/01/08 19:53:31
失礼、残ってた、アウトラインのCtrl + M関連全部削除したら、できました。ありがとうございます。

510:デフォルトの名無しさん
10/01/09 12:47:14
OrderdOyについてなのですが
var seq = from item in container orderby item.Key1 , item.Key2 select item;
この複数キーでソートするorderbyに直接対応する拡張メソッドが無いようなのですが
これって、どうやって呼び出されているかご存じの方おられますか?


511:デフォルトの名無しさん
10/01/09 13:14:41
ThenBy

512:デフォルトの名無しさん
10/01/09 15:58:38
>>512

513:デフォルトの名無しさん
10/01/09 20:56:36
逆コンパイルしたらすぐわかるのに

514:デフォルトの名無しさん
10/01/10 03:20:21
ダイアログを、タスクトレイがどこに配置されていても、タスクトレイの直上(or 直下)に
開くようにコーディングしたいのですが、どうすればよいでしょうか。

515:506
10/01/10 04:11:58
折角ご回答頂いたのにお返事が遅くなりまして申し訳ありません。
※規制されていました。

>>507
フレーム内の要素にアクセスしようと思い
次の様なコードを書いてみたのですが
次の「ERROR_POINT」と書いた部分でエラーが発生してしまいます。
一体何が原因なのでしょうか?

アクセスが拒否されました。(HRESULT からの例外: 0x80070005(E_ACCESSDENIED))


iCol = HTMLDoc.getElementsByTagName("iframe");
foreach (mshtml.IHTMLElement IhtmlIE in iCol)
{
  if (IhtmlIE.getAttribute("id", 1) != null) // ERROR_POINT
  {
    sString = (string)IhtmlIE.getAttribute("id", 1);

  if (sString == "inputBody_ifr")
  {

  }
}


また、mshtml を使用して自動でiframe内の要素に自動入力が
出来ない場合には、Windows APIを使用して画面内のiFrameの位置をクリックし
文字列を入力したいと思うのですが、
そもそもWindows APIを使用して画面内の特定座標をクリックし
そこに対して文字列を入力する事など可能なのでしょうか?

516:デフォルトの名無しさん
10/01/10 09:13:30
>>515
>一体何が原因なのでしょうか?
507でもいったけどトップのドキュメントとフレームのドメインが同じかどうか確認したかい?
それもせずに、ソース丸投げでデバッグしてくれはないだろ

517:デフォルトの名無しさん
10/01/10 19:18:02
>>516
それが不思議な事にそのサイトは、コードを見ても次の様になっていて
(SRCにJavaScriptになっています。)
ドメインが同じかどうかの確認をする事が出来ません。

しかも、ブラウザから見て入力を行うと(例えば"あいうえお")
iFrame内の<body>タグ内になぜか文字が入るのです。
(FireBugで要素を調査したと結果)
<body>あいうえお</body>

■iFrame内のコード
<iFrame src="Javascript:">
<html>
  <head>
  </head>

  <body>
  </body>
</html>
</IFrame>



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch