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

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

C#, C♯, C#相談室 Part55

1 :デフォルトの名無しさん:2009/12/06(日) 23:54:00
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1255530225/

Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

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

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

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

Visual Studio 2008 Part 19
http://pc12.2ch.net/test/read.cgi/tech/1259076828/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/

【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc12.2ch.net/test/read.cgi/tech/1202568694/

C#,C#の宿題片付けます。
http://pc12.2ch.net/test/read.cgi/tech/1197620454/

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

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

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/
MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7

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

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

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



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

ASP.NET + Atlas or Ajax について
http://pc12.2ch.net/test/read.cgi/tech/1150036430/

Microsoft Silverlight その5
http://pc12.2ch.net/test/read.cgi/tech/1260010993/

Visual Studio 2010 Part 2
http://pc12.2ch.net/test/read.cgi/tech/1258631113/

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

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

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

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

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

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

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

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

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


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

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

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


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

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

IEのウインドウ列挙は↓
http://d.hatena.ne.jp/unibon/20090102/p3
が使えると思うんですが、SHDocVwじゃjsのinvokeってできないのかなあ。。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

56 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/12(土) 20:02:17
それ推論的にはとてもめんどくさい議論が発生するんだよなー
逆順の推論なので。


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

基本的な手順は、

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

122 :デフォルトの名無しさん:2009/12/19(土) 09:39:00
>>120
Samples Environment for Microsoft Chart Controls
http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591
に Windows Forms Samples がある。

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

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

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

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

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


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

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

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

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

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

130 :デフォルトの名無しさん:2009/12/19(土) 12:01:58
http://wpfdock.codeplex.com/

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

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


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

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



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


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

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

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

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

139 :131:2009/12/19(土) 21:57:14
>133
>135
>138

ありがとうございます。

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

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

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

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

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

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

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

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

148 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/20(日) 18:21:02
>>146
出たな
なぜかMore〜の方が先に出たw

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

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

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

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

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

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

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

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

158 :131:2009/12/22(火) 22:46:10
>140

それは意味無いですね


>141
>142
>148

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

181 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/12/24(木) 22:55:22
NothingなAppDomainを作って、そいつの中へDLLをロードすれば?

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

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


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

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

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

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

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

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

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

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

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

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

196 :デフォルトの名無しさん:2009/12/25(金) 12:58:10
OpenCV

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

215 :デフォルトの名無しさん:2009/12/26(土) 00:46:26



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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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


235 :デフォルトの名無しさん: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 :デフォルトの名無しさん:2009/12/27(日) 12:15:19
マルチすんなよ

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

>>262
どう見たの?

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

265 :デフォルトの名無しさん:2009/12/27(日) 15:35:44
−−−−−−−−−− たにおり −−−−−−−−−−

266 :227:2009/12/27(日) 15:43:44
>248
ありです。

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

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

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

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

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

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

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

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

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


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


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

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


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


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

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

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

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


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


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


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

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

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


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

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

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

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

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

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

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

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


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

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


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


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

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

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

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

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

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

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

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

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

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


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


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

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



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

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

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


307 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/27(日) 20:32:34
TickCountとかQueryPerformanceCounterとかCASとか
結局は議論より実測してみるのが一番だな。


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

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

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

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

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


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


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


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

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

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

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

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

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

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

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


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


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


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


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

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

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


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


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

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

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

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

Stopwatch.GetTimestampはネイティブのQueryPerformanceCounterに対応するとされる。
http://msdn.microsoft.com/ja-jp/library/system.diagnostics.stopwatch(loband).aspx
QueryPerformanceCounterはRDTSCまたはもっとましな手段を使うという話がある。
http://msdn.microsoft.com/ja-jp/library/bb173458(loband).aspx

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

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

333 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/12/27(日) 22:40:43
(・∀・)

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

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

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

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

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

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

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

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

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

344 :デフォルトの名無しさん:2009/12/27(日) 23:14:07


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

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

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

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

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

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

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

テキスト全文検索ならwikipediaにまとめがあるからそっからたどるといいよ
http://ja.wikipedia.org/wiki/%E5%85%A8%E6%96%87%E6%A4%9C%E7%B4%A2

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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


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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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



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

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

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


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


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

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


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

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

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


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



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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

416 :415:2009/12/29(火) 18:05:18
自己解決しました

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

445 :434:2009/12/29(火) 23:20:31
自己解決しました

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

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

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

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

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

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

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


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


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

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

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

455 :454のコード1:2009/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:2009/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:2009/12/31(木) 03:11:17
自己解決しました。スレ汚し失礼しました。

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

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

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

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

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

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

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

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


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

467 :466:2010/01/03(日) 14:17:02
自己解決しました

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

481 :デフォルトの名無しさん:2010/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 :デフォルトの名無しさん:2010/01/03(日) 15:52:37
あと、ColumnIndexは表示のカラムとは無関係だった。(カラムの順番を手で移動しても変わらない)

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


518 :デフォルトの名無しさん:2010/01/10(日) 19:45:47
そのサイトを教えてくれたら俺が作ってやるのに

519 :デフォルトの名無しさん:2010/01/10(日) 19:58:48
>>518
実は会社から自分のブログへアクセスし
書き込みをする事が出来ない為、

これまで仕事中にこっそりブログのネタをテキストファイルに書込みを行い、
メールで自宅に送信し、そのネタをブログの本文に貼り付けていたのですが、
毎回それを手動でするのは面倒なので、自動で受信メールの内容を

ブログにログインし本文に貼り付けようとしているのですが、
iFrameのトラップがある事を知り断念している状況です。

結構難易度が高く私のスキルではどうもiFramewを使ってるところに
自動で入力をする事が出来ません。。。

お手数ですがもし可能でしたらlivedoorの本文に自動入力する方法をご伝授頂けると助かります。

520 :519:2010/01/10(日) 20:01:55
>>519 ですが、仕事中にブログのネタを書いてる・・・の件はシカトして下さい><;

521 :デフォルトの名無しさん:2010/01/10(日) 20:03:02
そのブログ主だって会社にばれたときタイムスタンプについてどういいわけするのか
まずそこから考えたほうがいいと思うよ

522 :デフォルトの名無しさん:2010/01/10(日) 20:04:24
そういうのはどうでもいい。

523 :デフォルトの名無しさん:2010/01/10(日) 20:04:57
よし
龍馬伝見てから考える

524 :デフォルトの名無しさん:2010/01/10(日) 20:06:29
DOMでやるのはあきらめて、HttpWebRequestでやれば?
ログイン->クッキーもらう->ブログの書き込み内容をPOST、みたいな感じだろうし。

525 :519:2010/01/10(日) 20:11:37
>>521 >>521 >.523
(だって仕事詰まらないんですもの。)

>>524
httpWebRequestはあまり詳しく無いので
Windows APIでも駆使して何とかして
自動化したいんです。

(仕事中にじっくりネタを考えてるせいもあって、お陰様で結構人気です。)


526 :デフォルトの名無しさん:2010/01/10(日) 20:13:01
何とかして、って何ともなってねーじゃんw

527 :デフォルトの名無しさん:2010/01/10(日) 20:14:36
だなw

528 :デフォルトの名無しさん:2010/01/10(日) 20:15:07
だいたい「ちゃんと目的のページを読み込めたか」の例外処理のほうがむずかしいっつーの
プログラムってのはコードの実行性だけを示すんじゃないんだけどなぁ

529 :519:2010/01/10(日) 20:33:31
>>526 >>527 >>528
私のスキルではどうもiFrameを使ってるところの自動
入力させるのは難しいです。

どなたかこの様な事を出来る方はいませんか?

530 :デフォルトの名無しさん:2010/01/10(日) 20:40:01
ひとつ言っておくけど、この件でAPIはほとんど役立たず。
せいぜい、キー入力を送るくらい(これなら、SendKeysで充分だけど)。

531 :デフォルトの名無しさん:2010/01/10(日) 20:42:53
>>530
一言余計だと思うんだけどなぁ

532 :デフォルトの名無しさん:2010/01/10(日) 20:45:46
龍馬伝おわた
風呂入ってくる。

533 :デフォルトの名無しさん:2010/01/10(日) 20:47:43
答え書かれてるじゃん。一連の認証と送信手続きを動作確認しながらすればいいって。
意味わかんないなら誰かに金払って作ってもらいなよ。それか携帯でブログ更新するかだね。仕事中に。

534 :デフォルトの名無しさん:2010/01/10(日) 21:17:34
>>525
>それが不思議な事にそのサイトは、コードを見ても次の様になっていて
>(SRCにJavaScriptになっています。)
>ドメインが同じかどうかの確認をする事が出来ません。
それはドメインが異なるのと同じ扱いになってる(勝手に解釈して情報省くな)
まあ、どう考えても自動操作はめんどくさいだけだから
524の言うようにhttpWebRequestでやるか
もう少し扱いが簡単なWebClient使って頑張るかだな

535 :519:2010/01/10(日) 21:33:15
>>530
SendKeyで試そうしているのですが
例えばタイトル項目にフォーカスを当ててからSenkeyで
"{TAB}あいうえお" という文字列を送ろうとして次のコードを書いたところエラーが出てしまいます。

■コード
 // mshtml.IHTMLElement IhtmlIE
 IhtmlIE.Focus();

■エラー内容
 mshtml.IHTMLElement' に 'Focus' の定義がありません。

VB.netだと普通にFocus(); が出切るのになぜC#だと出来ないのでしょうか?






536 :デフォルトの名無しさん:2010/01/10(日) 21:36:45
mshtml.IHTMLElement' に 'Focus' の定義がないからだろ。

537 :519:2010/01/10(日) 21:39:46
>>532
お風呂から上がられましたら>>532さんのテクニックに期待してます。

>>533 >>534
mshtmlを操作して入力→ボタンのクリックをした方が一番簡単かと思っているのですが
その認証を行う為には、>>534さんのおっしゃってる様に
httpWebRequest か WebClient を使うしか無いのでしょうか。

また、mhstmを使用しても出来ない場合には、
本文の入力エリアは決まった位置に表示されるので、WindowsAPIを使用して
iFrameで定義されたiFrame内の要素をクリック→文字列の送信をする方法を考えているのですが

Windows APIで特定の座標をクリック→文字列の送信をするにはどうすれば良いでしょか?


538 :519:2010/01/10(日) 21:40:29
>>536
VB.netだと Focus();が普通に使えてました。

539 :デフォルトの名無しさん:2010/01/10(日) 21:41:42
じゃぁ、VB.NETでやれよ。

540 :519:2010/01/10(日) 21:58:49
C#の方がコードが見やすいのでC#でやりたいです。

541 :デフォルトの名無しさん:2010/01/10(日) 22:02:19
>>537
534だが、mshtmlを操作するよりWebClientのほうが簡単だ
DOMによる操作セキュリティ制限に引っかかっていて難しい
キー操作でどうにかするならレイアウト変わるたびにメンテ
マウスなら座標取るためにDOMが必要だから非現実的
どの方法も不可能とは言わないが、WebClientが圧倒的に簡単
根性でキー入力するなら文字はクリップボードから貼り付ければw

542 :デフォルトの名無しさん:2010/01/10(日) 22:23:48
いい加減、mshtmlの使い方はスレチだと気付け

543 :デフォルトの名無しさん:2010/01/10(日) 22:51:17
うーん。ログインしてタイトルと本文入れるとこまでできた。
でも投稿できない。本文を入れなければ投稿するけど
本文を入れて下さいのエラーがでる。今日はつかれたからこの辺にしておこう。

544 :519:2010/01/10(日) 23:07:18
>>541
WebClientにも挑戦してみようと思います。
というよりちょっと疑問なのですが、
>DOMによる操作セキュリティ制限に引っかかっていて難しい
この様な情報ってどこから知られたのでしょうか?
私の方でも色々とぐぐってみたのですが見つかりませんでした。

>>543
ええっ!?風呂入ってもうそこまで出来たのですか!?ぱねーっす。
私はタイトルの入力まででだいたい5時間位時間がかかったのに、、、
お暇な時で結構ですので本文の入力方法をご教示下さい。


(仕事がつまらないから、こっそりブログのネタを考えてる俺って社会人として最低かなw?
まだ、自覚症状があるだけましと勝手に解釈しています。)


545 :デフォルトの名無しさん:2010/01/10(日) 23:08:31
いいから死ねよ。

546 :デフォルトの名無しさん:2010/01/10(日) 23:27:16
背筋がゾワゾワってするぐらい気持悪い

547 :デフォルトの名無しさん:2010/01/10(日) 23:33:35
>>544
どこのブログ使ってんの?

548 :519:2010/01/10(日) 23:43:21
>>547
live door っす

549 :デフォルトの名無しさん:2010/01/10(日) 23:53:29
ATOM APIにも一応対応してるんだな。サポート外らしいけど。

550 :デフォルトの名無しさん:2010/01/10(日) 23:54:36
おっ
できた。例外エラーが出てただけだった。

551 :デフォルトの名無しさん:2010/01/10(日) 23:58:02
おめでとう。

552 :519 ◆JRq8rZjk7c :2010/01/11(月) 00:09:53
>>550
は偽者です。

553 :デフォルトの名無しさん:2010/01/11(月) 00:10:37
>>543=>>550 じゃねーの?

554 :519 ◆xdkteuOpHo :2010/01/11(月) 00:11:10
>>552
トリップ後出しとか意味ないから。

555 :519 ◆JRq8rZjk7c :2010/01/11(月) 00:12:51
>>554
そういうのつまんない

556 :デフォルトの名無しさん:2010/01/11(月) 00:13:49
#5151
#kusosure

557 :デフォルトの名無しさん:2010/01/11(月) 00:14:11
>>553
そうです


558 :519 ◆G0.qAawIBk :2010/01/11(月) 01:42:54
>>553
なるほどw勘違いしてました。すみません。

>>555
お前は2chのプロ固定w?酉が丸見えの様だけどw

559 :519 ◆G0.qAawIBk :2010/01/11(月) 01:50:25
プログラム板にもプロ固定がいるのか。

>>555
酉が分ってる時点でプロ固定丸出しw
2chのサクラのプロ固定はウザイからウセロカスw


560 :デフォルトの名無しさん:2010/01/11(月) 02:12:30
プロ固定ってなに?しかもム板でコテとか馬鹿ですって言ってるようなもんだろ。
ふらっと行けよ、ふらっと。

561 :デフォルトの名無しさん:2010/01/11(月) 02:22:47
>>543ですけどー
うpしとくよー。
DLパスはlivedoorだよ。
http://www1.axfc.net/uploader/Sc/so/72426.txt

562 :デフォルトの名無しさん:2010/01/11(月) 09:11:47
プロ固定ってなんだ・・・??

563 :デフォルトの名無しさん:2010/01/11(月) 09:40:40
これか。
病気か?
http://ja.uncyclopedia.info/wiki/%E3%83%97%E3%83%AD%E5%9B%BA%E5%AE%9A

564 :519 ◆G0.qAawIBk :2010/01/11(月) 11:50:05
>>561
ありがとうございます。凄いです^^w
まさかこんな短期間で出切るなんて、、、
本当にどうもありがとうございました。

(これで仕事中にブログのネタを一生件名考える事が出来ますw)



565 :519 ◆G0.qAawIBk :2010/01/11(月) 11:50:46
プロ固定を知らないとか大丈夫?
某サイトにプロ固定の情報がテンコ盛りだよw

566 :デフォルトの名無しさん:2010/01/11(月) 11:53:59
頭のおかしな人が妄想を書き連ねたサイト、だろwwwww

567 :デフォルトの名無しさん:2010/01/11(月) 12:03:35
kwsk

568 :デフォルトの名無しさん:2010/01/11(月) 12:25:30
http://anti2ch.blog61.fc2.com/blog-entry-55.html

プロ固定って新しい技術かなんかかと思ったら
ただのキチガイの妄想かよ

プロ固定とかいうのの存在を日記に書いたら
>しかし、この日記が広く知れ渡る前に、
>井上玄氏の元にはなぜか暴力団による激しい恫喝が行われ、
>家族もその被害に合い、この日記はすぐに閉鎖させられてしまいます。


新種の厨二病かなんか?

569 :デフォルトの名無しさん:2010/01/11(月) 12:27:01
>>568
プロ固定を必死に否定するのが表2chのサクラ(プロ固定だよw)

某掲示板にプロ固定の情報とか全部晒されてるから見てご覧

570 :デフォルトの名無しさん:2010/01/11(月) 12:29:19
>>569
よくわからんけど
ここでプロ固定うんぬん言い出してスレを荒らす行為と
そのプロ固定が無意味なコピペで書き込み数を水増しするのとどう違うの?

どんだけ2chに人生かけてんだよ

571 :デフォルトの名無しさん:2010/01/11(月) 12:39:00
>>519がちょっと可哀そうな人だってことだけはよーく伝わった。

572 :デフォルトの名無しさん:2010/01/11(月) 12:43:27
>>570
取り合えず荒らしと思う人がいるならこれで最後にするよ。
プロ固定 裏 で検索してみてね。

ブログの順位をあげるコツw
仕事中にネタを練りまくる事w

573 :デフォルトの名無しさん:2010/01/11(月) 12:46:00
>>572
いようがいまいが 一般人は 気にしない

574 :デフォルトの名無しさん:2010/01/11(月) 12:50:14
チラ裏に書いてろって言葉がぴったり

575 :デフォルトの名無しさん:2010/01/11(月) 13:18:32
最近のチラシは裏が白紙じゃないことが多いから
表に書いてもいいけどな

576 :デフォルトの名無しさん:2010/01/11(月) 14:30:39
プロ固定を知らないとか大丈夫?
某サイトにプロ固定の情報がチンコ盛りだよw

577 :デフォルトの名無しさん:2010/01/11(月) 14:34:39
>>576
表2chに対抗して作られた某掲示板の「表2ch批判」
板に色々と際どい情報(プロ固定の住所・指名とかw)がマンコ盛りw

ところでプロ固定を知らないのはマジでヤバイと思うよ。
そーいう人に限って規制を喰らって●とか買っちゃうんだろうね。

C#とは関係無いからこの変にしておくけど。


578 :デフォルトの名無しさん:2010/01/11(月) 14:38:09
ねぇ、これに乗っかってもなんも面白くないと思うけど・・・

579 :デフォルトの名無しさん:2010/01/11(月) 14:39:19
いまどきプロ固定ネタとか。

580 :デフォルトの名無しさん:2010/01/11(月) 15:10:15
最近知ったから興奮してるんでしょ。
よくまあググりゃひっかかるトリップバレからここまで話ひっぱれること。

581 :デフォルトの名無しさん:2010/01/11(月) 19:09:32
おおっぐぐったら確かにヒットしたw

プロ固定かとおもたw

582 :デフォルトの名無しさん:2010/01/11(月) 19:36:50
トリップは一方向ハッシュで生成してるから、
「プロ固定に配布されているトリップ解析プログラム」
なんてありえないのにねw

583 :デフォルトの名無しさん:2010/01/13(水) 00:06:10
質問です。

.NETあるいはWindows上で、
「それを確保したアプリケーション以外からは決してアクセスできないセキュアな永続化領域」
を確保する手段はあるでしょうか?

早い話が、ローカルに何かのサービスのパスワードをセキュアに保存する方法があるのかどうか、
ということなのですが。

584 :デフォルトの名無しさん:2010/01/13(水) 00:11:35
できます

585 :583:2010/01/13(水) 00:12:17
出来るんですね。分かりました。
自分で調べます。ありがとうございました。

586 :デフォルトの名無しさん:2010/01/13(水) 00:29:57
ないと思う。

587 :デフォルトの名無しさん:2010/01/13(水) 00:47:51
Windows APIのCryptProtectDataなんかで実現できると思う。

588 :デフォルトの名無しさん:2010/01/13(水) 01:06:44
それもパスワード知ってたら無理だろ。

589 :デフォルトの名無しさん:2010/01/13(水) 02:10:44
>>561 さんのコードを元に>>519さんと同じ事を学習用に
やっているのですがどうも次のキャストで失敗する為に
後続処理のページ内の各オブジェクトにアクセスする事が出来ません。
>>561さんは、キャストもせずになぜそのまま出来たのでしょうか?

※対象コード
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  
  state = state + 1
   If state = 1 Then
      Dim doc As HTMLDocument
      Try

        '(A)
        doc = DirectCast(WebBrowser1.Document, HTMLDocument)

        '(B)
        'doc = WebBrowser1.Document

      Catch ex As Exception

        Debug.WriteLine(ex.Message)

      End Try

※エラー内容
  System.InvalidCastException = {"型 'System.Windows.Forms.HtmlDocument'
  のオブジェクトを型 'mshtml.HTMLDocument' にキャストできません。"}


(A)(B)いずれのコードでも同一のエラーが表示されてしまいます。

590 :デフォルトの名無しさん:2010/01/13(水) 02:48:26
mshtml.HTMLDocumentとSystem.Windows.Forms.HtmlDocumentは全く別ものなんだからキャストできなくて当然。
>>561はmshtml使わずにFormsだけで実装しているように見える。
それからスレタイよく読め。

591 :デフォルトの名無しさん:2010/01/13(水) 02:52:58
>>590
WindowsFormにツールボックスからWebBrowserをドラッグして使用しているのですが、
何が違うのでしょうか?

大変あつかましいお願いかとは思いますが、キャストの方法を教えて頂けますか?

592 :デフォルトの名無しさん:2010/01/13(水) 03:19:31
だからキャストできないんだって

593 :デフォルトの名無しさん:2010/01/13(水) 03:32:16
絶対あつかましいとか思ってねーw

594 :デフォルトの名無しさん:2010/01/13(水) 06:32:17
私が寝ている間に、小人さん>>585がなんか書き込んでいますが、

>>586-588
CryptProtectData系も、ログイン中のユーザが実行している他のプログラムからは
普通にアクセスできてしまうようですので、欲しいものとは少し違うかもしれません。
(まぁ、大概のケースでは問題にならないかもしれませんが)

とりあえず無さそうということで、ありがとうございました。

595 :デフォルトの名無しさん:2010/01/13(水) 06:54:54
追記
小人さん>>585は無能

596 :583:2010/01/13(水) 07:04:06
>>595
いや。。君は誰さ。。。

597 :デフォルトの名無しさん:2010/01/13(水) 07:12:15
DomDocumentだっけか? キャストに使えるCOMオブジェクトがプロパティに
あった気がする。

598 :デフォルトの名無しさん:2010/01/13(水) 09:10:09
自演されたくない質問者はトリ付けた方がいいと思うぜ
最近暇人がなりすまし覚えて粘着してるから

599 :デフォルトの名無しさん:2010/01/13(水) 11:17:02
>>598
暇そうだね

600 :デフォルトの名無しさん:2010/01/13(水) 11:45:16
>>589
doc.xml = WebBrowser1.Document.outerXml
みたいに中身から再構築すればいいんじゃね?
超適当に言ってみるけど。

601 :デフォルトの名無しさん:2010/01/13(水) 13:47:25
>>600
低脳乙

602 :デフォルトの名無しさん:2010/01/13(水) 14:43:34
多分VB6上がりなやつなんだろう

603 :デフォルトの名無しさん:2010/01/13(水) 18:25:20
正直言って、WebBrowserコントロール使うんだったらVB6でやった方が楽だしデバッグもしやすい。

604 :589:2010/01/13(水) 22:25:52
>>600
分らないのなら黙ってて下さい。


どなたかお教え願います。

605 :デフォルトの名無しさん:2010/01/13(水) 22:28:21
>>603
なんでなんで?

606 :デフォルトの名無しさん:2010/01/13(水) 22:46:02
>>604
>>590

そのコードがこのスレに相応しいかどうかすら判らないなんて…
つか、どこから mshtml が沸いて出たのやら。
変な参照設定でもしてるのか?

607 :デフォルトの名無しさん:2010/01/13(水) 22:51:18
成りすましが受けると思ってしつこく繰り返してる頭のおかしな人だから放置で。

608 :デフォルトの名無しさん:2010/01/13(水) 22:53:26
もう冬休み終ったと思ったんだが

609 :デフォルトの名無しさん:2010/01/14(木) 00:41:44
今年のおれのスケジュール
〜3月下旬 冬休み
〜6月末 春休み
〜8月末 夏休み
〜11月末 秋休み
その後年末まで冬休み

610 :デフォルトの名無しさん:2010/01/14(木) 00:44:47
結局人生ってさ「経験」が物を言うんだよな
いい大学行こうがいい成績取ろうが「経験」が無いと世間に出たときに何も役に立たない
まぁお前らみたいなオタクにはわかんねーかもしんないけどな
俺は高卒で世間的には低学歴かもしれないが、フランスに渡米した経験を活かして
今は充実した仕事してるよ
お前らも壁作って自分の世界に閉じ込もって無いで
今しかできない「経験」しといて経験値積んどけ


611 :デフォルトの名無しさん:2010/01/14(木) 00:57:24
>>610
俺のよく行く「30代職歴無しの就職活動スレ」と同じ空気を感じる

612 :デフォルトの名無しさん:2010/01/14(木) 01:30:07
最早、懐かしさすら感じるw<フランスに渡米

613 :デフォルトの名無しさん:2010/01/14(木) 01:42:09
>>612
日本語でおか

614 :デフォルトの名無しさん:2010/01/14(木) 03:26:38
えり

615 :デフォルトの名無しさん:2010/01/14(木) 03:30:43
.NET アプリって低スペXPだと起動に数秒かかったりするけど
Vistaやwin7だったらメモ帳くらい早く画面出て操作可能になるの?

616 :デフォルトの名無しさん:2010/01/14(木) 03:33:02
なんでOSのバージョンがあがったくらいで
劇的に速くなるなどと想像できるんだろう。

617 :デフォルトの名無しさん:2010/01/14(木) 09:43:34
一回起動しちゃえば速くなるんだけどな。
そういうのが気になりそうな小さめのアプリはVC++でがんばれ

618 :デフォルトの名無しさん:2010/01/14(木) 10:32:15
まあ、Vista とかだと推奨スペックが違うから、ハード性能的にだいぶ違う気もするけど。
あと、Vista 以降では SuperFetch があるんで、メモリ多く積んでる速いかも。

619 :デフォルトの名無しさん:2010/01/14(木) 18:02:14
やはりそう簡単に実行速度がかわるもんでもないんですね
ありがとうございました

620 :デフォルトの名無しさん:2010/01/14(木) 18:38:36
起動は速いけど実行が遅いのと
起動は遅いけど実行が速いのが選べたらいいのに

621 :デフォルトの名無しさん:2010/01/14(木) 18:45:09
起動も早いし実行も速い

622 :デフォルトの名無しさん:2010/01/14(木) 19:08:27
ただし開発は…

623 :デフォルトの名無しさん:2010/01/15(金) 04:48:57
>>616
おまえは立派な開発現場に居合わせたことがないんだろうね

624 :デフォルトの名無しさん:2010/01/15(金) 17:03:05
C#で仮想メモリの領域って増やせないんですか?
4G中3.5Gぐらい使いたいんですけど

共有メモリにマッピングしても2G超えたらメモリダンプしちまいます。

誰か教えてください。

625 :デフォルトの名無しさん:2010/01/15(金) 17:37:26
>>624
つ 64bit版のWindows

626 :デフォルトの名無しさん:2010/01/15(金) 17:46:03
>>625
32Bit版が前提でお願いしますよ〜

いや、そう出来れば一番いいんですけどね・・・

627 :デフォルトの名無しさん:2010/01/15(金) 17:49:11
>>626
32Bitは無理。

628 :デフォルトの名無しさん:2010/01/15(金) 17:52:26
>>627
CとかだとCreateFileMappingとか使って、共有メモリに構造体ぶち込んだり
C++だったらVirtualAllocとか使ったりして
いけたんですがねー


やっぱりC#だと無理なのか・・・

629 :デフォルトの名無しさん:2010/01/15(金) 18:00:41
FileMappingは.NET4.0からだな


630 :デフォルトの名無しさん:2010/01/15(金) 18:02:16
一応DllImportして、CreateFileMapping使ってみたんだけど
やっぱり、2Gで落ちるんですよね

参った

631 :デフォルトの名無しさん:2010/01/15(金) 18:13:45
LargeAddressAwareがなんちゃら

632 :デフォルトの名無しさん:2010/01/15(金) 18:30:26
頑張ればいけるかもしれない・・・

633 :デフォルトの名無しさん:2010/01/15(金) 18:40:20
editbin.exeが鍵か

634 :デフォルトの名無しさん:2010/01/15(金) 19:40:57
boot.ini で /3G で >>633 ので IMAGE_FILE_LARGE_ADDRESS_AWARE 
でも3G

635 :デフォルトの名無しさん:2010/01/15(金) 19:51:59
DVDのISOファイルすら操れないとは・・・

636 :デフォルトの名無しさん:2010/01/15(金) 20:04:36
そんなものをオンメモリでやるな。

637 :デフォルトの名無しさん:2010/01/15(金) 20:24:06
でもそろそろそういうのもオンメモリでやる時代になってきたってことじゃね?
640kのメインメモリなんて頃もあったわけだし。

638 :デフォルトの名無しさん:2010/01/15(金) 22:42:10
じゃね?

639 :デフォルトの名無しさん:2010/01/15(金) 23:02:27
>>628
C++でも32ビットWindowsなら2GBまでだろ。C#も同じ。ただし、当然>>634はC#でも通用する。
あと、64ビット版WindowsでIMAGE_FILE_LARGE_ADDRESS_AWARE付きの32ビットEXEを実行すると仮想アドレス4GB全部使える。

>>635-637
64ビットでやれ。

640 :デフォルトの名無しさん:2010/01/16(土) 06:20:39
HDDに書き込んで取り出してを繰り返せよ


641 :デフォルトの名無しさん:2010/01/16(土) 07:42:52
>>628
CreateFileMapping自体は4G越えもいけた。
MapViewOfFileでまとめて設定できるViewが2G越えでダメだといってるのだろうか?
どちらにせよ、ネイティブのViewからマネージド領域へマーシャリングが必要になるので
あまり効率は良くない。

642 :デフォルトの名無しさん:2010/01/16(土) 10:40:26
32ビットで4G積んで、システムプロパティで実装メモリ見たら
4GB(3GB使用可能)てなってるが。

643 :デフォルトの名無しさん:2010/01/16(土) 11:09:58
>>642
それは物理メモリが3GB使えるということだけど、今の話とは関係ない。
物理メモリに空きが無くても、メモリ確保やMapOfViewFileは成功する。
そのためのページング機構。

今問題なのは、プロセスごとの仮想アドレス空間(のうち、ユーザモードで使える分)。
http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
逆に、いくら物理メモリが空いていても、アドレス空間に空きがなければソフトウェアから使うことは不可能。

644 :デフォルトの名無しさん:2010/01/16(土) 11:24:59
仮想領域が32bitアドレッシングである限り、言語を問わずマップできるのは 268435456 byte まで。
思うに、>630で落ちるというのは、マップ可能なサイズ以上にマップしようとしてないか?
細かくビューをMap/UnMapすれば通ると思うんだが・・・

645 :デフォルトの名無しさん:2010/01/16(土) 11:45:05
DOS時代に16bit nearポインタだと64kしかメモリブロック確保出来なかったのと同じことがおきてるわけだよな。

646 :デフォルトの名無しさん:2010/01/16(土) 13:18:46
そのうち、ギガバイト単位のメモリをやりくりするのが当然になる時代が来るのかなぁ。

647 :デフォルトの名無しさん:2010/01/16(土) 13:20:27
今はもう12GBとかつんでるパソコンが20万以下で手に入るからな。
もうすぐだろう

648 :デフォルトの名無しさん:2010/01/16(土) 14:36:55
こないだ会社の後輩がいきなり2GBの配列作ってた。
そういうことが何も考えずにできちゃう時代になったんだなあとしみじみ思った。

649 :デフォルトの名無しさん:2010/01/16(土) 14:44:51
でもやっぱ2G配列確保は躊躇するわ・・・



650 :デフォルトの名無しさん:2010/01/16(土) 14:54:15
さすがに2Gの配列を「何も考えずにできちゃう時代」はまだ数年は先だと思ふ

651 :デフォルトの名無しさん:2010/01/16(土) 15:14:40
ファイルマッピングなら2GB程度・・・と思ったが、「ファイルマッピング」という
点で「何か考えている」か。

652 :デフォルトの名無しさん:2010/01/16(土) 17:52:51
携帯開発だとそうはいかないんじゃないですか?
ビット詰めして軽くするとかやってるみたいですけど。

653 :デフォルトの名無しさん:2010/01/16(土) 18:22:56
そりゃ組込みだとそうはいかないだろうけど
そもそも組込みでC#だのJavaだのの高級言語使える時点で時代が違うよな。


654 :デフォルトの名無しさん:2010/01/16(土) 18:43:48
test

655 :デフォルトの名無しさん:2010/01/16(土) 18:49:48
共通一次

656 :デフォルトの名無しさん:2010/01/16(土) 19:01:52
2Gって64環境じゃないとそもそもできないと思うが。
しかし、アクセスがある時間内では局所的で、
ワーキングセットが小さく保たれていれば
それなりの動きをしているともいえるな。


657 :デフォルトの名無しさん:2010/01/16(土) 19:31:47
ですね。

658 :デフォルトの名無しさん:2010/01/17(日) 02:21:53
たぶん冬休みの宿題だったんだよw

659 :デフォルトの名無しさん:2010/01/17(日) 17:45:10
マルチスレッドプログラミングにおける適切なスレッド数を示したガイドラインみたいなものってありますか。
今はなんとなくコア数でやってます。

660 :デフォルトの名無しさん:2010/01/17(日) 18:26:40
場合によるとしか
IOなどでブロックされることが多いならいっぱい作れば速くなるだろうし
ずっと100%動いてるなら=コア数で十分だし

661 :デフォルトの名無しさん:2010/01/17(日) 20:11:00
>>660
ありがとうございます。
適当そうなスレッド数を事前に見積もる必要がありそうですね。

662 :デフォルトの名無しさん:2010/01/17(日) 20:57:19
レジストリとかで変更できるようにしとかないような残念な奴にならんようにな。

663 :デフォルトの名無しさん:2010/01/18(月) 07:51:32
レジストリを使うこと自体が残念なんだが

664 :デフォルトの名無しさん:2010/01/18(月) 10:27:29
スレッド数とかユーザが弄れるようになってるのもソフトによっちゃ結構残念ではあるような・・・
フリーソフトならありかもしれんけどサポート要るソフトでは面倒だからやりたくないわ。


665 :デフォルトの名無しさん:2010/01/18(月) 14:11:32
面倒だからやりたくない人にはプログラムを組む資格がないんだが

666 :デフォルトの名無しさん:2010/01/18(月) 14:21:52
その資格試験どこで受けられますか?

667 :デフォルトの名無しさん:2010/01/18(月) 14:33:34
>>664
非公開・サポート無し、な機能にすればいいと思うよ

668 :デフォルトの名無しさん:2010/01/18(月) 14:42:16
俺は面倒だからプログラムを組むけどな

669 :デフォルトの名無しさん:2010/01/18(月) 15:35:45
>>665
ん?
面倒だからやりたくないってのは
機能を盛りこむとユーザからその分の問い合わせがくる
→ 面倒な仕事が増えるってことなんだけど?

なんか意味判ってない人がいるようだな。

俺だったらコア数設定みたいなの設定項目に組みこむぐらいなら
動いてるシステムのコア数によってスレッド数増減するようなコード書くけどな。

670 :デフォルトの名無しさん:2010/01/18(月) 15:43:23
俺は面倒だから3行以上は読まないな

671 :デフォルトの名無しさん:2010/01/18(月) 15:47:01
この板はプロアマ自称他称問わずが混在していることを忘れないよう。
あと仕事の話しを持ちこむと喜ぶ奴がいることも忘れないよう。


672 :デフォルトの名無しさん:2010/01/18(月) 15:49:19
日本人は機能過剰と設定項目過剰が大好きな思考停止民族ニダ

673 :デフォルトの名無しさん:2010/01/18(月) 16:40:57
BackgroundWorker

674 :デフォルトの名無しさん:2010/01/18(月) 17:15:15
>>673
ふらっとスレとまちがえたか

675 :デフォルトの名無しさん:2010/01/18(月) 18:10:42
>>673
噂のおじいちゃんですか?((((;゚Д゚))))ガクガクブルブル

676 :デフォルトの名無しさん:2010/01/18(月) 21:33:40
そのスレッド増減の適正値なんて予測できないから調整手段入れとけって話。
あなたは神かww

677 :デフォルトの名無しさん:2010/01/18(月) 21:37:36
ん?システムのコア数に合わせて自動調整するって話とちゃうの?
QuadCoreなら4とか。上限ぐらいは設定できても良い気はするけど。

678 :デフォルトの名無しさん:2010/01/18(月) 21:48:38
適正値が存在する処理かどうかも不明だし
調整手段を用意するかどうかは処理次第ポリシー次第だし
質疑応答はとっくに終わってるし
どうでもよいと思います。

679 :デフォルトの名無しさん:2010/01/18(月) 21:58:09
はぁ?ユーザがどうやって適正な値に設定するっていうんだよ。
コア数はプログラム側で読める上にどんな処理してるのかわかってるのもプログラム側。
この状況で誰が一番適切な値決められるんだよ。思考停止してんじゃねーよぼけ。



680 :デフォルトの名無しさん:2010/01/18(月) 22:02:05
>>679
例えばMTUでggrks

681 :デフォルトの名無しさん:2010/01/18(月) 22:16:31
>>680
ん?はぁ?ふっはっ?

682 :デフォルトの名無しさん:2010/01/18(月) 22:17:39
>>680
あほだ、あほがおる

683 :デフォルトの名無しさん:2010/01/18(月) 22:25:09
まあ、だからレジストリがいいんじゃないの?
勝手にいじるようならサポートする必要はないし、勘違いユーザはいい気分になるだろうし

684 :デフォルトの名無しさん:2010/01/18(月) 22:28:13
ユーザ: 1コアだけ別のプログラム用に空けときたいんだけど・・・
>>679: はぁ?これが一番適切な値なんだよぼけ。

685 :デフォルトの名無しさん:2010/01/18(月) 22:34:08
仕方ないので優先度下げた

686 :デフォルトの名無しさん:2010/01/18(月) 22:42:27
>>685: はぁ?

687 :デフォルトの名無しさん:2010/01/18(月) 22:46:55
中身を知らなくてもユーザは使い方を知ってる。
っていうかね、全ての変数を設定項目にしてもいいぐらい。おもいあがんな。

688 :デフォルトの名無しさん:2010/01/18(月) 22:49:48
>>687
おもいあがってるのはおまえだろ

689 :デフォルトの名無しさん:2010/01/19(火) 00:00:13
>>688
おもいあがったプログラマさんですか?
最適コア数自動調整乙でございます。

690 :デフォルトの名無しさん:2010/01/19(火) 00:20:16
MAX何コアまで割り当てるとかくらいはあってもいいけど、まあその程度のことだ。


691 :デフォルトの名無しさん:2010/01/19(火) 00:58:47
プログラマの思い上りは異常。
ユーザーが一番偉いのに。設定値は解放されるべき。


692 :デフォルトの名無しさん:2010/01/19(火) 01:07:51
お客様は神様ってやつか。
客商売やってりゃ、神様とでも思わないとやってらんねーよってやつだ。

693 :デフォルトの名無しさん:2010/01/19(火) 01:40:07
ソフトが気に入らないときは自分でつくりゃいいんだよ。
低脳には無理だろうが。

694 :デフォルトの名無しさん:2010/01/19(火) 01:40:54
客商売やってりゃ、余計な設定は外したくなる。


695 :デフォルトの名無しさん:2010/01/19(火) 02:04:35
>>694
余計なことすんなよ。コア数設定させてやれよ。

696 :デフォルトの名無しさん:2010/01/19(火) 06:05:17
日本での商売のソフトは普通、環境を限定して作るもんだろ。

697 :デフォルトの名無しさん:2010/01/19(火) 07:24:17
わざわざマルチスレッドにしてまで高速化するものだったら、ユーザもそれなりのレベルを想定してると思う。

698 :デフォルトの名無しさん:2010/01/19(火) 08:02:18
アプリケーションの要求速度とユーザのレベルとの間に相関があるとか
論理展開が突飛すぎて付いていけない

699 :デフォルトの名無しさん:2010/01/19(火) 09:05:40
一種類のタスクでマルチスレッド化のオーバーヘッドを上回るほどの重い計算をさせるんだろ。
一般的じゃない。

700 :デフォルトの名無しさん:2010/01/19(火) 10:14:12
>>697
これがプログラマー脳って奴だ。
こんなんだから日本のIT業界はおいてきぼりになるんだわ。
あーあ。馬鹿に付ける薬はないって本当だな。


701 :デフォルトの名無しさん:2010/01/19(火) 10:23:34
なんだよ。じゃあ、いってみろよ。
シングルスレッドじゃなかったら、プロセッサの数のスレッド数。
それで不満なんてマニア。

702 :デフォルトの名無しさん:2010/01/19(火) 12:43:18
ロードバランサ

703 :デフォルトの名無しさん:2010/01/19(火) 13:30:06
>>702
意味不明な書き込みにワロタ

704 :デフォルトの名無しさん:2010/01/19(火) 14:14:36
処理内容も対象ユーザ層もぼんやりなまま各自の脳内設定で煽り合って何がしたいの?
というかそもそもなんで喧嘩腰なの?
あと突然5段階ぐらい論理過程ぶっ飛んだ単語を並べる奴は何がしたいの?
雑談にしてもちょっと酷いんじゃないの?
ばかなの?しぬの?

705 :デフォルトの名無しさん:2010/01/19(火) 14:23:04
荒らしたいだけだろ。馬鹿の相手する方も馬鹿だな。

706 :デフォルトの名無しさん:2010/01/19(火) 14:43:52
技術的な話になると出番がないので
こういうときでないと書き込めません><

707 :デフォルトの名無しさん:2010/01/19(火) 19:06:32
どういうときにマルチスレッドにするの? 数値計算ぐらいしか思い浮かばないんですが。

708 :デフォルトの名無しさん:2010/01/19(火) 19:08:05
C#勉強がてらダウンロードして早速サンプル作ろうと思ったんだけどコンパイルが通らない。
getData(string):値を返さないコードパスがあります。といったエラーが解決できない。
どこが悪いの?

namespace StockQuote
{
public class StockQuote
{
public static void Main()
{
string url = "http://stocks.finance.yahoo.co.jp/stocks/detail/?code=1";
string rtnData = getData(url);
Console.Write(rtnData);
}

private static string getData(string pUrl)
{
try
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(pUrl);
return "SUCCESS";
}
catch (Exception)
{
return "ERROR";
}
}
}
}

709 :デフォルトの名無しさん:2010/01/19(火) 19:16:48
そのコードをコピペしてみたが、
コンパイル通ったよ

710 :デフォルトの名無しさん:2010/01/19(火) 19:21:01
A.dllというアセンブリがあって
A.dllが読み込まれた場合に
A.dllの中のBというクラスの特定のスタティックメソッドを呼び出すことは出来ますか?


711 :デフォルトの名無しさん:2010/01/19(火) 19:22:10
>>709
えええ?と思い、コメントアウトしてた行を全部消してみたらコンパイルが通りました^^
なんかコンパイラが信用できないなー。。。

712 :デフォルトの名無しさん:2010/01/19(火) 19:52:01
>>710
A.dll側で実装する方法は思いつかないなぁ
A.dllを参照する側なら、ロード前にAppDomainのAssemblyLoadイベントを設定しとけばいけるけど

713 :デフォルトの名無しさん:2010/01/19(火) 20:01:18
呼び出すって言ってるから、エントリポイントのことじゃないだろ

714 :デフォルトの名無しさん:2010/01/19(火) 20:33:08
>>711
なぜ自分の頭の方を疑わないのか。。。

715 :デフォルトの名無しさん:2010/01/19(火) 20:34:03
コンストラクタってよくわからないのですが
初期化するって何を初期化するんでしょうか?


716 :デフォルトの名無しさん:2010/01/19(火) 20:34:45
newするオブジェクトを

717 :デフォルトの名無しさん:2010/01/19(火) 20:40:34
プライベート/パブリックフィールドの初期化とかインスタンスを実行するのに必要な初期処理とかしてやればいいよ。


718 :デフォルトの名無しさん:2010/01/19(火) 21:06:37
>>715
「何を初期化するか」が分からないというより、
そもそも初期化って概念がわからないんでしょw

そんなの気にしなくていいよ自ずとわかるから。

719 :デフォルトの名無しさん:2010/01/19(火) 23:05:20
>>707
ネットワークアクセスやIOなど
まあそういう使い方だとコア数なんか全く関係ないけどなw

720 :デフォルトの名無しさん:2010/01/20(水) 09:11:02
>>715
思いつかないなら、初期化するオブジェクトは無いということだね。

721 :デフォルトの名無しさん:2010/01/21(木) 11:24:22
>>715
物事には手続きがあるようにクラスを使うにもあるんですよ

たとえばファイルアクセスなんかだとOPENして読み書きしたあとCLOSEしますよね?

クラスもnewするとOPENに相当するコンストラクタが動いてクラスの初期化を行い
使われなくなったらCLOSEに相当するデストラクタが動きます

JavaやC#はメモリ上に確保されるクラスなどはファイルほど厳密に手続きを
踏まなくても勝手に開放してくれたりしますけどね

722 :デフォルトの名無しさん:2010/01/21(木) 11:28:59
c#のオーナードロー関連をいじって見た目を変えたりしてたのですが
どうせならWebbrowserにHTMLを与えて見た目を作った方がよさそう
と思ったのですが、HTML上のボタンなどが押された場合に
通常のブラウザとしての動作ではなく自作プログラムの動作として
拾う場合はどうすればいいのでしょうか?

723 :デフォルトの名無しさん:2010/01/21(木) 12:15:23
そういう人はWPF触ってみるべき

724 :デフォルトの名無しさん:2010/01/21(木) 13:07:52
>>722
HtmlElementのクリックイベント拾える

725 :デフォルトの名無しさん:2010/01/21(木) 13:33:15
>>723
おもしろそうですね
ただ、MSが解説してるサイトなどをみると実行部分に関しては
C#と同じみたいに書いてるのに実際はかなり変わってる気がします。
TreeViewにノード追加する部分が変わってるし、TreeNodeは見つからないしorz

>>724
ありがとうございます

726 :デフォルトの名無しさん:2010/01/21(木) 15:40:37
TreeViewはBindするだけで勝手にやってくれるぜ。
まじで超楽ちん♪

727 :デフォルトの名無しさん:2010/01/21(木) 16:34:43
HierarchicalDataTemplateを理解するまでに
1ヶ月ほどかかったけどね俺は

728 :デフォルトの名無しさん:2010/01/21(木) 16:44:07
>>726
まーねー
従来のやり方と比べるといいよね〜
でもあれを実現できるってことはますます難読化が必要な気がする

729 :デフォルトの名無しさん:2010/01/21(木) 16:47:13
何で変数名はクラス名まで元に戻せちゃうんだろう
嫌すぎる

730 :デフォルトの名無しさん:2010/01/21(木) 16:48:30
>>729
中間コード物は昔からそんなもんですよ

731 :デフォルトの名無しさん:2010/01/21(木) 17:17:34
WPFは慣れるまでが大変
周りを説得するのも大変

732 :デフォルトの名無しさん:2010/01/21(木) 21:10:42
会社に話しても導入してもらえなかった

733 :デフォルトの名無しさん:2010/01/21(木) 21:21:33
C#はPHPなみに楽させてくれる言語だな

734 :デフォルトの名無しさん:2010/01/21(木) 21:50:33
C#はIDEが便利すぎる

735 :デフォルトの名無しさん:2010/01/21(木) 22:20:53
>>732
現状仕事で積極的に導入出来る領域少ないよな。
Silverlightの方がまだ現実的な気がするわ。

736 :デフォルトの名無しさん:2010/01/21(木) 23:36:07
monaでiphoneのアプリを作れるそうですけど、
作った方います?
入れ歯経験談を聞かせて頂けるとありがたいのですが…

737 :デフォルトの名無しさん:2010/01/21(木) 23:38:14
モナーじゃ無理だと思うw

738 :デフォルトの名無しさん:2010/01/21(木) 23:50:50
入れ歯は結構臭くなりがちだから気をつけないとね。

739 :デフォルトの名無しさん:2010/01/22(金) 18:21:08
c#で2chのdatの更新日取得や差分ダウンロードはできますかね?
ネットで調べるといきなりダウンロードするコードくらいしかなさそうな感じ

740 :デフォルトの名無しさん:2010/01/22(金) 18:31:51
やったことないからわからん。
試してみればいいじゃん。

741 :デフォルトの名無しさん:2010/01/22(金) 18:32:14
出来る。WebClientなりHttpClientなりで組めばOK

742 :デフォルトの名無しさん:2010/01/22(金) 18:34:34
dat直接っていけるんだっけ?
2chブラウザなやり方が必要だった気もする。

743 :デフォルトの名無しさん:2010/01/22(金) 18:37:48
>>740
datまるまるとって来るのはもう作ったんですけど、専ブラはいろいろ通信してるみたいだったので

>>741
なるほど

>>742
いけますよ
外部の板はまだ手をつけてないんですが、2ch本家なら例えばここなら

http://pc12.2ch.net/test/read.cgi/tech/1260111240/

http://pc12.2ch.net/tech/dar/1260111240.dat
と変換すれば落ちてきますよ

744 :デフォルトの名無しさん:2010/01/22(金) 18:38:39
みす
http://pc12.2ch.net/tech/dat/1260111240.dat


745 :デフォルトの名無しさん:2010/01/22(金) 18:46:04
ちょろっと見てみたら、

HTTP/1.1 で↓あたり返してきてるから、たぶん問題ないね。

Last-Modified: Fri, 22 Jan 2010 09:38:39 GMT
Accept-Ranges: bytes

まーでも、

Content-Encoding: gzip

で、差分ダウンロードがどこまで意味あるのかわからんけど。

746 :デフォルトの名無しさん:2010/01/22(金) 18:48:59
板?(2chの用語は未だにわかってない)は
http://pc12.2ch.net/tech/subject.txt
とかやれば同じく取れます

http://menu.2ch.net/bbsmenu.html
これを解析して
http://pc12.2ch.net/tech/subject.txt
を入手して
http://pc12.2ch.net/tech/dat/1260111240.dat
とやれば専ブラのできあがり


747 :デフォルトの名無しさん:2010/01/22(金) 19:03:53
差分取得の仕方とか普通に説明されてるぞ。

差分取らずに全取得すべき場合とか移転時の処理とかちゃんと書いてあるから
一通り読んでから実装した方が良いと思う。

monazilla.org 資料室
http://monazilla.org/index.php?c=6-20

同開発資料
http://www.monazilla.org/index.php?e=192



748 :デフォルトの名無しさん:2010/01/22(金) 19:14:52
>>747
そんなの知ってます
C#でのやり方を聞いているんです
ちゃちゃ入れないでください

749 :デフォルトの名無しさん:2010/01/22(金) 19:17:30
>>748
勝手に書くなよw

>>747
そんなところあったんですね
勉強してみます。

というかプログラム関連の板ってなんでIDないんだろ

750 :デフォルトの名無しさん:2010/01/22(金) 19:28:26
スーパーハッカーにはIDなんて必要ないんだよ

751 :デフォルトの名無しさん:2010/01/22(金) 19:30:48
株主だとID無しのところでも書き込んだホストとかわかるのかな?

752 :デフォルトの名無しさん:2010/01/22(金) 19:39:50
最近なりすまし覚えたてのが常駐してるから
うっとおしいことこのうえない。

753 :デフォルトの名無しさん:2010/01/22(金) 20:02:22
>>752
どうせお前がやってんだろ

754 :デフォルトの名無しさん:2010/01/22(金) 20:20:57
>>753
なんでわかんの?ハッカー?

755 :デフォルトの名無しさん:2010/01/23(土) 03:47:28
まっさっか〜

756 :デフォルトの名無しさん:2010/01/23(土) 10:16:49
まさかりかついだきんたろう

757 :デフォルトの名無しさん:2010/01/24(日) 01:54:29
Wikipediaにある、これなんですけど…
----------------------------------------------------------------------------------------
>>さまざまな意味において、基盤であるCLIの機能をもっとも反映している言語であるといえる。
>>C#にある組み込み型のほとんどは、CLIフレームワークに実装されている値型と対応している。
>>しかし、C#の言語仕様はコンパイラのコード生成については何も言及していない。
>>つまり、CLRに対応しなければならないとか、共通中間言語 (CIL) などの
>>特定のフォーマットのコードを生成しなければならないとかいうことは述べられていない。
>>そのため、理論的にはC++やFORTRANのように環境依存のマシン語を生成することも可能である。
>>しかし、現在存在するすべてのC#コンパイラはCLIをターゲットにしている。
----------------------------------------------------------------------------------------
MonoとGNUのコンパイラもそうなのですか?

758 :デフォルトの名無しさん:2010/01/24(日) 01:57:31
ちがうよ

759 :デフォルトの名無しさん:2010/01/24(日) 02:02:48
>>758
そうなのですか?

760 :デフォルトの名無しさん:2010/01/24(日) 09:08:03
ネイティブコード吐けるとは知らなかったな。MonoもCLI吐いていたはずだけど。

761 :デフォルトの名無しさん:2010/01/24(日) 09:19:30
Microsoft’s implementation of C# relies on CLI for library and runtime support, other implementations of C# need not
と「マイクロソフトはCLI使ってるけど、別にC#の他の実装ではCLI使う必要は無いよ」と明記されてる。
間違っているとしたら、「しかし、現在存在するすべてのC#コンパイラはCLIをターゲットにしている。」の箇所だよね?

762 :デフォルトの名無しさん:2010/01/24(日) 10:00:44
そうだよ

763 :デフォルトの名無しさん:2010/01/24(日) 10:43:41
しかし、C#は言語仕様がガベージコレクション前提な感じなので
VMなしの構成はありえんと思う

764 :デフォルトの名無しさん:2010/01/24(日) 10:47:49
VMがなきゃGCできないというもんでもないからなぁ。
Boehm GCはネイティブコードと組み合わせられるし、GHCはネイティブコード吐くし。

765 :デフォルトの名無しさん:2010/01/24(日) 12:03:15
MonoでAOT(Ahead-of-Time)コンパイルするとネイティブコード吐くんだね。
詳しい事情わかんないから、誰かWikipedia訂正よろ。

766 :デフォルトの名無しさん:2010/01/24(日) 12:07:16
>>765
JITができるってことはやる気になれば全部できるってことだしねえ

それよりC#のクラスライブラリもやっぱりネイティブじゃなく復元が容易な
.netの中間コードなのかね?

767 :デフォルトの名無しさん:2010/01/24(日) 12:11:59
あともう一つ疑問だったのが完全にイコールではないが
クラスが使えるVC++ってクラスの構造の復元は可能だったの?
実行コードは多分完璧にとまではいかなくても
クラスの大まかな枠組みは復元できそうだけど

768 :デフォルトの名無しさん:2010/01/24(日) 12:23:58
>>766
http://www.atmarkit.co.jp/fdotnet/insiderseye/20080222sourcecode/sourcecode.html

769 :デフォルトの名無しさん:2010/01/24(日) 12:31:18
>>768
どうもです
> マイクロソフトはクラス・ライブラリの難読化を一切行っておらず、
>「.NET逆コンパイラとコードを難読化するDotfuscator」でも紹介して
>いるReflectorを使えば、これまでにも.NET Frameworkのクラス・ラ
>イブラリを逆コンパイルして、そのソースコードをのぞき見ることができた。


770 :デフォルトの名無しさん:2010/01/24(日) 12:35:18
c/c++からc#は元が変態すぎて変換厳しそうだけど
逆にざっくり変換するツールとかないのんかね?

771 :デフォルトの名無しさん:2010/01/24(日) 12:39:16
monoのAOPはngenとやってることはそう変わらなくて、BCLは必要で、
クラスやメンバ名のようなメタ情報はしっかり詰め込まれてる。
.NETのngenはメタ情報は埋め込まれてないが、
ngen前のアセンブリも必要でそっちからメタ情報を取得する。
なのでBCLはオリジナルのアセンブリとngenされたアセンブリの両方が存在する。
オリジナルのほうは当然refrectorで見れる。

772 :デフォルトの名無しさん:2010/01/24(日) 13:36:41
>>767
デバッグ情報があればある程度なんとかなるはず。

773 :デフォルトの名無しさん:2010/01/24(日) 16:11:23
c#でも普通にAAかけたりできるんだな

774 :デフォルトの名無しさん:2010/01/24(日) 16:23:52
C#で、ってのの意味がよくわからんけどそりゃAAかけるのは別に言語依存の技術じゃないだろうと。

775 :デフォルトの名無しさん:2010/01/24(日) 17:26:59
>>766
そんなことしなくても、ソースコードが公開されている。

776 :デフォルトの名無しさん:2010/01/24(日) 17:33:45
ネイティブをはくようにはできるが、
ILGeneratorを使っている場合は、JITなしではその部分は動作しない。

777 :デフォルトの名無しさん:2010/01/24(日) 17:36:46
C#でAAを描くに見えた

778 :デフォルトの名無しさん:2010/01/24(日) 17:37:21
アスキーアートかw

779 :デフォルトの名無しさん:2010/01/24(日) 17:51:47
えっ、ちがうの?(;´д`)

780 :デフォルトの名無しさん:2010/01/24(日) 17:57:25
[DllImport(...)]
extern static void f(int n, ref double a);

static void Main(){
var a=new double[3]{1,2,3};
f(2, ref a[1]);
}

fはn個の要素を持つ配列を受け取る関数とします。
aの部分配列{2,3}をfに渡したいとして、
x86だと上記のようなやり方で一応正しく動作するのですが、
x64だとa[1]の内容が一時的に別のメモリにコピーされ、
fから戻ってきたときにそのメモリからa[1]にコピーされるので、
{2,3}を渡したことになりません。

質問したいのは、x64ではなぜこのような動作になっているのでしょうか。
普通にa全体を固定してa[1]のアドレスを渡してくれればいいのに、
と思うのですが。


781 :デフォルトの名無しさん:2010/01/24(日) 18:15:02
そもそもC#で配列の中身が連続したアドレスに確保される保証なんてあるんだっけ?

782 :デフォルトの名無しさん:2010/01/24(日) 18:17:51
配列で渡せよ。

783 :デフォルトの名無しさん:2010/01/24(日) 18:28:32
参照で渡しても[in, out]属性がないと一方向なんだっけ。

784 :デフォルトの名無しさん:2010/01/24(日) 18:29:53
>>781
少なくともfixedで固定すれば保証されるよ

785 :デフォルトの名無しさん:2010/01/24(日) 18:35:17
>>783
違った、配列でなければrefは[In Out]。配列は[In]。
この場合は添え字をつけたから非配列で[In, Out]になる、
だからマーシャリングしてもおかしくない。


786 :デフォルトの名無しさん:2010/01/24(日) 19:07:49
マーシャリングとは?

787 :デフォルトの名無しさん:2010/01/24(日) 19:25:19
ぐぐれよ。

788 :デフォルトの名無しさん:2010/01/24(日) 20:32:35
ベニー・ザ・ジェット・ユキーデ

789 :デフォルトの名無しさん:2010/01/24(日) 20:54:54
HtmlDocument doc = new HtmlDocument();って宣言したら
型 'System.Windows.Forms.HtmlDocument' のコンストラクタが定義されていません。 (CS0143) - C:\project\nettest\MainForm.cs:228,44
というエラーがでます
開発環境は、SharpDevelop 3.1.1です。
よろしくお願いします。

790 :デフォルトの名無しさん:2010/01/24(日) 21:04:45
エラーの通りです。new でインスタンスを生成することはできません。

791 :デフォルトの名無しさん:2010/01/24(日) 21:10:01
>>789
俺もそこ疑問だった
他のMS製クラスだとコンストラクタの補助情報でるのに
なぜかそれだけでないんだよね

public HtmlDocument( Uri documentLocation, string documentContent);
だそうです。




792 :デフォルトの名無しさん:2010/01/24(日) 21:13:38
それ違うだろ。

793 :デフォルトの名無しさん:2010/01/24(日) 21:16:36
>>789
はいはい、マルチマルチ

794 :デフォルトの名無しさん:2010/01/24(日) 21:17:10
>>787
かわりにぐぐって

795 :デフォルトの名無しさん:2010/01/24(日) 21:17:52
>>794
ぐぐった。

796 :デフォルトの名無しさん:2010/01/24(日) 21:18:59
>>795
で?成果は?

ん?

797 :デフォルトの名無しさん:2010/01/24(日) 21:46:29
>>780
>x64ではなぜこのような動作になっているのでしょうか。
つか寧ろ、なんで 32bit だと動くんだろう。
その宣言だと値型の参照渡しだから、↓の通り Boxing/Unboxing されると思ってたんだが。
ttp://msdn.microsoft.com/ja-jp/library/23acw07k.aspx

798 :デフォルトの名無しさん:2010/01/25(月) 01:56:48
何作ればいいか迷いますね。

799 :デフォルトの名無しさん:2010/01/25(月) 02:22:11
ネタに困ったら、使ったことが無いやつを試すことにしてる。

800 :デフォルトの名無しさん:2010/01/25(月) 06:39:55
実際大抵のものはググると誰か作ってるから困っちゃうよな。

801 :デフォルトの名無しさん:2010/01/26(火) 16:24:00
言語処理系なんかオナニーのネタとしては最適だよ

802 :デフォルトの名無しさん:2010/01/27(水) 17:20:56
作成中のプログラムにアンインストール機能を付けたいのですが、
「自身のexe(を含むフォルダ全部)を削除して終了」ということは可能ですか??

803 :デフォルトの名無しさん:2010/01/27(水) 17:24:54
無理。アンインストールじゃmsiexec.exeにまかせよう

804 :デフォルトの名無しさん:2010/01/27(水) 17:25:53
DOS窓出して消す手もある

805 :デフォルトの名無しさん:2010/01/27(水) 17:28:14
>>803
OS標準の「アプリケーションの追加と削除」の一覧に入るようにするということですか?

>>804
そちらの方法も詳しく教えてください

806 :デフォルトの名無しさん:2010/01/27(水) 17:35:03
>>805
ヒント出したんだからまずググる癖付けろよ

807 :デフォルトの名無しさん:2010/01/27(水) 19:13:12
DOS窓の方は私も分かりません。

808 :デフォルトの名無しさん:2010/01/27(水) 19:51:38
  ∧_,,∧    お夜食にラーメンとお茶いかがですか。
 (´・ω・`) _。_
 /  J つc(__アi! 
 しー-J     旦~  旦~ 旦~ 旦~ 旦~

 ∬____    ∬____    ∬____     ∬____    ∬____     ∬____ 
 \≠/    \≠/     \≠/     \≠/     \≠/     \≠/     
.    ̄    .    ̄     .   ̄     .    ̄    .    ̄     .    ̄   
 味噌ラーメン  醤油ラーメン   豚骨ラーメン  塩ラーメン   チャーシューメン    ねぎラーメン

 ∬____    ∬____    ∬____     ∬____    ∬____     ∬____ 
 \≠/    \≠/     \≠/     \≠/     \≠/     \≠/     
.    ̄    .    ̄     .   ̄     .    ̄    .    ̄     .    ̄   
 サンマーメン にんにくラーメン 和風だしラーメン 五目ラーメン  もやしラーメン  バター醤油ラーメン

809 :デフォルトの名無しさん:2010/01/27(水) 19:57:38
アーメン

810 :デフォルトの名無しさん:2010/01/27(水) 20:32:29
ザーm

811 :デフォルトの名無しさん:2010/01/27(水) 20:50:56
>>807
削除用のbat(js,pl,vbs,rbなんでもいい)ファイルを作成(書き出し)します
System.Diagnostics.Process.Startなどでそれを実行します
実行中のexeは即座に終了します。
時間差で消す事になるのでスクリプトファイルの頭に数秒スリープを置くといいです
スクリプトファイルの作成場所はテンポラリフォルダにしておけば
そのファイル自信もその内消えてくれるでしょう

812 :デフォルトの名無しさん:2010/01/27(水) 21:28:41
それじゃ安全じゃないし、アンインストーラをテンポラリに置くなら、DOS窓使う必要ないじゃないか。

813 :デフォルトの名無しさん:2010/01/27(水) 21:35:08
素直にセットアッププロジェクト作れば
(提供する側にとっては) 簡単でいいじゃないか。
>>805 の
>OS標準の「アプリケーションの追加と削除」の一覧に
も勝手に追加してくれるんだし。

814 :デフォルトの名無しさん:2010/01/27(水) 22:28:31
そもそもナニが問題なのか・・・・

815 :デフォルトの名無しさん:2010/01/27(水) 22:36:38
単にセットアッププロジェクトの作り方知らなかったってことなんじゃないかと。

816 :デフォルトの名無しさん:2010/01/27(水) 22:37:06
DOS窓にコマンド送って自身を終了しておくだけじゃ駄目なの?
cmd.exeに del 自身パス で送り付けておけば削除してくれるでしょ?
確実じゃないかもしれないけど、DOS側でwait入れておけばどうだろう?

817 :デフォルトの名無しさん:2010/01/27(水) 22:47:45
セットアッププロジェクト作っとけば、インストール・アンインストールを全部やってくれる。
ZIP展開だけで配置できるやつなら、ユーザーが自分でフォルダ削除すればいい。
(自身を削除って余計なお世話と言うか、誤操作で意図せず削除しちゃう人が結構居そう)

結局>>815なんじゃね。

818 :デフォルトの名無しさん:2010/01/27(水) 22:58:48
セットアップは嫌われるからな

819 :デフォルトの名無しさん:2010/01/27(水) 23:08:48
それならアンインストール不要なつくりにするべきだろ
フリーソフトなどで初回起動時に勝手にレジストリに書き込んだりするやつがたまにあるけど
作法としては最悪だと思う

820 :デフォルトの名無しさん:2010/01/27(水) 23:17:53
可能ですか?
可能です。
終わり。

あんたら深読みしすぎw

821 :デフォルトの名無しさん:2010/01/27(水) 23:50:43
標準のセットアップ使っててコントロールパネルからアンインストール出来るか、
何も痕跡残さずフォルダ削除のみでアンインスコ出来るやつがいいなぁ。

822 :デフォルトの名無しさん:2010/01/27(水) 23:56:43
>>820
このレベルの質問しかできないやつがその回答だけで済むとでも?
どうせグダグダ聞いてきてムダにスレ消費するだろ

823 :デフォルトの名無しさん:2010/01/27(水) 23:56:52
ランタイム入れとけば、基本的に実行ファイル単体で動くだろ。

824 :デフォルトの名無しさん:2010/01/28(木) 03:02:57
えィ

825 :デフォルトの名無しさん:2010/01/28(木) 07:45:38
悪戯したあと自動消滅するウィルスでも造る気なんだろうか

826 :デフォルトの名無しさん:2010/01/28(木) 07:48:52
>>825
フレームワーク入れないと動かないウィルスとかwwwwww

827 :デフォルトの名無しさん:2010/01/28(木) 08:03:53
  ∧_,,∧    お夜食にラーメンとお茶いかがですか。
 (´・ω・`) _。_
 /  J つc(__アi! 
 しー-J     旦~  旦~ 旦~ 旦~ 旦~

 ∬____    ∬____    ∬____              ∬____     ∬____ 
 \≠/    \≠/     \≠/              \≠/     \≠/     
.    ̄    .    ̄     .   ̄     .        .    ̄     .    ̄   
 味噌ラーメン  醤油ラーメン   豚骨ラーメン          チャーシューメン    ねぎラーメン

 ∬____    ∬____    ∬____     ∬____    ∬____     ∬____ 
 \≠/    \≠/     \≠/     \≠/     \≠/     \≠/     
.    ̄    .    ̄     .   ̄     .    ̄    .    ̄     .    ̄   
 サンマーメン にんにくラーメン 和風だしラーメン 五目ラーメン  もやしラーメン  バター醤油ラーメン

塩ラーメン頂きました。


828 :デフォルトの名無しさん:2010/01/28(木) 08:09:58
  ∧_,,∧    朝ラーメンとお茶いかがですか。
 (´・ω・`) _。_
 /  J つc(__アi! 
 しー-J     旦~  旦~ 旦~ 旦~ 旦~

 ∬____    ∬____    ∬____              ∬____   
 \≠/    \≠/     \≠/              \≠/        
.    ̄    .    ̄     .   ̄     .        .    ̄       
 味噌ラーメン  醤油ラーメン   豚骨ラーメン          チャーシューメン   

 ∬____    ∬____    ∬____     ∬____    ∬____     ∬____ 
 \≠/    \≠/     \≠/     \≠/     \≠/     \≠/     
.    ̄    .    ̄     .   ̄     .    ̄    .    ̄     .    ̄   
 サンマーメン にんにくラーメン 和風だしラーメン 五目ラーメン  もやしラーメン  バター醤油ラーメン


ネギラーメンうめぇ・・・・

829 :デフォルトの名無しさん:2010/01/28(木) 13:50:28
10人分買い出しに来たがお茶が足りないからやめた

830 :デフォルトの名無しさん:2010/01/28(木) 15:51:07
opentkっていうopenglのラッパーを使ってc#で書いたお絵かきソフトがありまして、
win7・64bit環境でx64指定してコンパイルすると、
警告 1 アセンブリの生成 -- 参照アセンブリ 'mscorlib.dll' は異なるプロセッサを対象にしています。
て出るんです。で、ぐぐってみたら、64bitに対応していない部分があるから。実行時エラーが出る。
などがあったんですけど、とりあえずなんかうごいています。でも気色悪いしいつ実行時エラーが
出るかひやひやするので、場所を突き止めて直せる物なら直したいんですけど
この警告だけ場所をいいません。どうすれば場所を突き止められますか?

831 :デフォルトの名無しさん:2010/01/28(木) 16:26:45
んなもんopenglやopentk作ったやつとか知ってるやつに聞けよ
どう考えてもスレ違いだろ

そもそもそのライブラリは64BIT環境で動くことを保証しているのか?
動作環境くらい調べてこい

832 :デフォルトの名無しさん:2010/01/28(木) 17:20:32
AnyCPUでコンパイルすればいいじゃん。

833 :デフォルトの名無しさん:2010/01/28(木) 20:30:22
AnyCPUかx86にしとけばWOW64上で問題なく動くだろ

834 :デフォルトの名無しさん:2010/01/28(木) 22:20:58
何のためにx64指定してるんだ。
x64指定は、言ってみりゃOSがx64環境でしか動きませんという指定だぞ。
理由がなけりゃAnyCPUにしとけ(OSがx64でもx86でもどっちでもネイティブに動く)。
64ネイティブでは動かないんならx86指定にしとけ(OSがx64でもx86でもどっちでも動くがx64環境では32ビットモードであるWOW64上で動く)。


835 :デフォルトの名無しさん:2010/01/28(木) 22:42:54
AnyCPUだとどっちで動いてるのかわかりにくいじゃん


836 :デフォルトの名無しさん:2010/01/28(木) 22:51:37
わからなくていいだろ

837 :デフォルトの名無しさん:2010/01/28(木) 23:01:17
どっちで動いてるかがコンパイル時にわかるわけないじゃん。

838 :デフォルトの名無しさん:2010/01/28(木) 23:02:52
できることなら64bitにも対応してたほうがいいじゃん。


839 :デフォルトの名無しさん:2010/01/28(木) 23:15:35
それがAnyCPUじゃないのか

840 :デフォルトの名無しさん:2010/01/28(木) 23:27:07
わかってないな

841 :デフォルトの名無しさん:2010/01/28(木) 23:27:27
うむ。全然わかっておらん。

842 :デフォルトの名無しさん:2010/01/29(金) 11:34:55
そういえば

C#のEXE→64ビット
C++のDLL→32ビット

でコンパイルされていて、C#アプリからC++DLLを呼び出す場合って
多分勝手に色々な差を吸収してくれるんだろうけど大丈夫なんかな?

843 :rttyfugihoj:2010/01/29(金) 11:49:33
下記のプログラムを関数を用いて実行したいのですが、どのようにすれば良いでしょうか?
回答(できたら簡単な解説)の明記をお願いします。

問題1:入力したプログラムから以下のように出力するプログラムを作成する。
(実行結果例)
文字列を入力: 今日は、晴れです。

今日は、晴れです。
日 す
は で
、 れ
晴 晴
れ 、
で は
す 日
。すでれ晴、は日今

問題2:ファイル入力した漢字データ(全角)を読み込み、行数を数えながら逆から表示するプログラム。
(実行結果例)
(例として次のような C:\test2.txtを入力する)
今日は、晴れです。昨日は、雨で
した。明日は、曇でしょう。明後
日は、快晴でしょうか。 ←の文章を以下のようなプログラムにする。

ファイル名を入力してください:C:\test2.txt

1:で雨、は日昨。すでれ晴、は日今
2:後明。うょしで曇、は日明。した
3:。かうょしで晴快、は日

844 :rttyfugihoj:2010/01/29(金) 11:51:17
問題3:ファイルのデータ(英文)を読み込み、一行毎の文字数(スペースも含む)とワード数を数えるプログラム。
(実行結果例)
(例として次のような C:\test3.txtを入力する)
And friends just can't be found
Like a bridge over troubled water
I will lay me down ←の文章を以下のようなプログラムにする。

ファイル名を入力してください:C:\test3.txt
1:And friends just can't be found
⇒31文字、6ワード
2:Like a bridge over troubled water
⇒33文字、6ワード
3:I will lay me down
⇒18文字、5ワード

問題4:1月1日が金曜日の平年(たとえば2010年)について、月日の入力データから、曜日を求めるプログラム。
(実行結果例)
月を入力してください:9
日を入力してください:15
9月15日は、水曜日です。

以上4問です。どうか回答よろしくお願い致します

845 :デフォルトの名無しさん:2010/01/29(金) 11:56:19
C#の宿題スレで聞け
ここで聞いたら全部LINQになるぞ

846 :デフォルトの名無しさん:2010/01/29(金) 11:57:21
http://oshiete1.nifty.com/qa5629826.html

847 :デフォルトの名無しさん:2010/01/29(金) 11:57:59
全部やってほしいんなら宿題スレいけばいいんじゃないかな?
どこまで自分でやってどこが判らないのかをもうちょっと書くべきだろ

こんなのも自分でできないようなら宿題忘れて怒られた方がいい
4だけ判んないとかならまだマシだろうが

そもそも動作環境は何だ?


848 :デフォルトの名無しさん:2010/01/29(金) 11:59:00
>>846
>学校の課題の答えを全て」を求めているのでしょうか?
はい、そうです。よろしくお願いいたします。

クソワロタ

849 :デフォルトの名無しさん:2010/01/29(金) 13:03:36
さいきんのゆとりは恐ろしいな
問題をネットで調べて回答するならまだましだわ・・・・

宿題でも聞いてるみたいだし

850 :デフォルトの名無しさん:2010/01/29(金) 13:06:49
C言語とC#の区別がつかない奴が単位取っていいのか?

851 :デフォルトの名無しさん:2010/01/29(金) 13:24:36
C#+LINQでループすら明示的に書いてないようなコードを
C言語の課題として提出してみてほしい

852 :デフォルトの名無しさん:2010/01/29(金) 13:29:57
こういうのを見てると大学って無駄に増えすぎたんだなと思うわ。

853 :830:2010/01/29(金) 15:43:10
いや、2GB以上のデータを扱いたかったのでさあ。
なんやかんやしてたら、自分で作ったコントロールがアセンブリ参照できませんとか
新たな敵が現れて、コードをひとつひとつプロジェクトから削除、そして追加とかしてたら
あの警告も消えたりで、わけわからん。orz

854 :デフォルトの名無しさん:2010/01/29(金) 15:48:54
最近肛門から膿んだような臭いがする・・・

855 :デフォルトの名無しさん:2010/01/29(金) 18:01:36
>>842
大丈夫じゃないよ

856 :デフォルトの名無しさん:2010/01/29(金) 18:08:42
学ぶ気がないんだったら、お金払って誰かに頼んだ方がいいよ。

857 :デフォルトの名無しさん:2010/01/29(金) 18:27:36
はげどう

858 :デフォルトの名無しさん:2010/01/30(土) 02:35:40
幾らならやる?
コンサル料
設計費
検査費
ドキュメント費
納品後メールサポート1インシデントあたり

お見積書としてはどのくらい項目いれようかな

859 :デフォルトの名無しさん:2010/01/30(土) 02:45:26
スレ違い

860 :デフォルトの名無しさん:2010/01/30(土) 10:24:46
見積り査定スレとかあったら面白いな



861 :デフォルトの名無しさん:2010/01/30(土) 14:25:57
>>860 はぃ いいだしっぺの法則発動 と言ってみる

862 :デフォルトの名無しさん:2010/01/30(土) 15:36:12
マ板でやれ

863 :デフォルトの名無しさん:2010/01/31(日) 13:57:46
BackgroundWorkerのCancelationPendingのフラグはvolatilついてないみたいなんだけど、何で大丈夫なの?


864 :デフォルトの名無しさん:2010/01/31(日) 14:02:46
ここで祭が開催中だぞ!!
http://bbs.wankuma.com/index.cgi?mode=al2&namber=45896

865 :デフォルトの名無しさん:2010/01/31(日) 14:08:40
ぜんぜん祭りじゃないな。わんくまだし。

866 :デフォルトの名無しさん:2010/01/31(日) 14:13:51
必ずプロパティ経由で呼び出されるわけだからその取得が削除されることはありえないんじゃないの

867 :デフォルトの名無しさん:2010/01/31(日) 14:24:50
最適化によりインライン展開される可能性もあるし、
プロパティになってるからって常に別スレッドからの書き込みが
すぐに読み取れる保証はない。

てのが基本なんだが、マジレスするとBackgroundWorkerがComponent派生で、つまりはMarshalByRefObject派生だから。

MarshalByRefObjectに対する外部からのメンバ呼び出しはインライン展開されることはなく、
またフィールドへのアクセスも専用メソッド経由になる。
また、少なくともCLRでは現状、メソッドコールがあるとメモリ同期が行われる。

これらの理由により、フラグがvolatileでなくても実質問題は発生しない。



868 :デフォルトの名無しさん:2010/01/31(日) 14:53:58
>>864
なげーよw
って祭っつうか基地外が一人喚いてるだけじゃん。


869 :デフォルトの名無しさん:2010/01/31(日) 14:57:37
>>864は当事者のだれかなんだろ

870 :デフォルトの名無しさん:2010/01/31(日) 18:40:20
こんばんは 簡易ブラウザ作成中であります、
ソースを表示させたいのですが、どうすればいいですか

871 :デフォルトの名無しさん:2010/01/31(日) 18:42:10
どうやってソースを取得してんの?

取得した奴をそのまま表示すればいいじゃん。

872 :デフォルトの名無しさん:2010/01/31(日) 19:01:01
オリバーお好み焼きソースのボトルの画像の撮影方法が知りたいとか

873 :デフォルトの名無しさん:2010/01/31(日) 19:08:21
>>871
すいません
ソースをどうやって取得するんですか_

874 :デフォルトの名無しさん:2010/01/31(日) 19:11:13
えぅ?

875 :デフォルトの名無しさん:2010/01/31(日) 19:14:44
関数ありますか?

876 :デフォルトの名無しさん:2010/01/31(日) 19:15:07
えぉ?

877 :デフォルトの名無しさん:2010/01/31(日) 19:17:24
(>Д<;)

878 :デフォルトの名無しさん:2010/01/31(日) 19:23:47
自演だな

879 :デフォルトの名無しさん:2010/01/31(日) 19:24:50
これがゆとり?

ソースの取得方法もわかんなくて、どうやってブラウザなんて作ってんのやら。
ま、WebBrowser貼り付けただけなんだろうけど。

880 :デフォルトの名無しさん:2010/01/31(日) 19:55:35
わんくまってなーに?

881 :デフォルトの名無しさん:2010/01/31(日) 20:20:36
ゆとりってなんですか?wwwwwwwwwwwwwwwwwwww

882 :デフォルトの名無しさん:2010/01/31(日) 20:20:50
>>880
此の世でもっともレベルの高いC#使い。
彼の一言はビルゲイツも参考にする程。

883 :デフォルトの名無しさん:2010/01/31(日) 20:21:18
>>881
>>879がゆとりだってさ

すっごいゆとり
扱いに困っちゃうんだよね^^;;;;
ゆとり

ゆとりm9(^Д^)プギャー

884 :デフォルトの名無しさん:2010/01/31(日) 20:22:32
すごいゆとりでワロタ
WebBrowser貼り付けってお前もな(笑)

885 :デフォルトの名無しさん:2010/01/31(日) 20:23:13
C#使ってる時点でゆとり言語

886 :デフォルトの名無しさん:2010/01/31(日) 20:28:25
また自演か

887 :デフォルトの名無しさん:2010/01/31(日) 20:29:19
大部分の人は、お前みたいに「初めての言語がC#」ってわけじゃないんだがなw

888 :デフォルトの名無しさん:2010/01/31(日) 20:31:44
俺C#が初めてですけど何か?

889 :デフォルトの名無しさん:2010/01/31(日) 20:49:21
最近は多いんじゃない?初めてがC#ってのも。
IDE無料だし一応Win用スタンドアロンのアプリも作れるしで。

890 :デフォルトの名無しさん:2010/01/31(日) 21:26:26
C#が一番最初のプログラムでいいよな

なんか真っ暗なコマンドラインでくだらん文字が出てくるだけのプログラムなんていらんわ

891 :デフォルトの名無しさん:2010/01/31(日) 23:06:49
>>890
それC#やなくてWinFormsや

個人的には金になるならないでいくとC#は個人レベルでは辛いものがある気はする。

892 :デフォルトの名無しさん:2010/01/31(日) 23:11:18
一番金になる言語って何よ

893 :デフォルトの名無しさん:2010/01/31(日) 23:14:28
COBOLかな。

894 :デフォルトの名無しさん:2010/01/31(日) 23:15:40
HTML

895 :デフォルトの名無しさん:2010/01/31(日) 23:27:54
今は多分真面目な話HTMLだろうな。

C#はサーバサイドで動く環境を個人で準備するのが大変だと思うぜ。
Azure がどうなるか次第ってかんじ。

896 :デフォルトの名無しさん:2010/02/03(水) 19:55:11
BinaryFormatterがList<T>をデシリアライズする時、どんな動作をするか解説してるところはないでしょうか?
デシリアライズがシリアライズの5倍くらい時間が掛かってるので、インスタンス復元時に何か要らんことしてるんじゃないかと・・・

897 :デフォルトの名無しさん:2010/02/03(水) 23:52:15
つソース

898 :デフォルトの名無しさん:2010/02/04(木) 00:01:27
うん。ソースレベルでデバッグして、フレームワークの中を覗いてみればいい。

899 :デフォルトの名無しさん:2010/02/04(木) 00:50:00
優勝賞金500万円

http://www.jaist.ac.jp/ICGA-events-2010/olympiad/

1989年にロンドンで第1回目のコンピュータオリンピアードが開催されました。
毎年開催される本イベントでは,コンピュータゲームプレイヤー同士が競技し,世界最高位を決定します。
これまでの優勝者には,Neurogammon(バックギャモン, 1989年), Chinook (チェッカー, 1989年および1990年) そして Tacos(将棋, 2005年, 2006年, 2008年, 2009年)などがあります。
コンピュータオリンピアードは国際コンピュータゲーム協会(ICGA)が主催して実施されています。

競技部門には,アマゾン,バックギャモン,ブリッジ,コンピュータプール,六目並べ,象棋,ドッツアンドボックス,国際ドローツ,囲碁,9路盤囲碁,ヘックス,ハバナ,ラインズオブアクション,
将棋,スラカルタなどがあります。

この他のゲームもコンピュータによる競技会を開催する可能性があります。主催者までコンタクトしてください。
2010年に第15回目となるコンピュータオリンピアードは金沢市内で開催されます。
ICGAとJAISTとの共同イベントとして9月25日から10月2日にかけて金沢市内で開催されます。
各競技の日程は後日決定します。
参加申し込みなどの詳細も後日お知らせ致します。

900 :デフォルトの名無しさん:2010/02/04(木) 19:42:14
NPOIって、xlsx 形式を読めないですよね。
今のおいら的には xls に変換すりゃ事足りるんだけど
素で xlsx を読めるようなライブラリってないですか?
条件としては、ターゲットマシンに Office が入ってなくても使える事。
ファイルを生成したりはしないです。読めればおk。

オリジナルの POI の jar どもを全部 ikvm で dll に変換しようとしたんだけど、挫折・・
XSSF〜クラス群に限ってうまいこと変換できない・・・

# 無いならば・・xlsx って xml を zip で圧縮しただけですよね。暇な時に自分で作ってみようかなあ。

901 :デフォルトの名無しさん:2010/02/04(木) 20:01:36
オヒスも入れずにエクセルファイルを読みたいって
そりゃマイクロソフトが許さなくね?
多分無理に100オプーナ

902 :デフォルトの名無しさん:2010/02/04(木) 20:21:45
んなことあるかい。
http://www.ecma-international.org/publications/standards/Ecma-376.htm

903 :デフォルトの名無しさん:2010/02/04(木) 20:44:30
つソースカツ丼

904 :デフォルトの名無しさん:2010/02/04(木) 20:45:51
>>900
読み取りだけでいいならこれは?
ttp://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=ja

905 :デフォルトの名無しさん:2010/02/04(木) 21:17:04
ファイルを作成せずにStreamを作成し文字列を書き込みたいのですがどうしたらいいんでしょうか?
TextWriteとかを試そうとするとpathを指定するかSystem.IO.Streamを指定しろと言われます。
抽象クラスだからnewできないよって言われます・・・。

906 :デフォルトの名無しさん:2010/02/04(木) 21:17:58
StringStream

907 :デフォルトの名無しさん:2010/02/04(木) 21:19:33
メモリー Stream?
http://msdn.microsoft.com/ja-jp/library/system.io.memorystream%28VS.80%29.aspx

908 :906:2010/02/04(木) 21:19:36
すまんStringWriterやStringReaderとごっちゃになってた
Encodingでバイト配列に変換してMemoryStreamに入れる

909 :デフォルトの名無しさん:2010/02/04(木) 21:22:25
>>907>>908
おおう・・・ありがとうございます

StringStreamで一生懸命ぐぐってもMSDNを見てもC++しか見つからなくって
てんぱってました・・・orz

910 :デフォルトの名無しさん:2010/02/04(木) 23:51:06
>>904
わーい。ありがとう。試してみます。

911 :デフォルトの名無しさん:2010/02/05(金) 00:35:03
ゆとり語
てんぱってました

912 :デフォルトの名無しさん:2010/02/05(金) 01:16:39
次スレは重複スレの使いまわしでおk?

913 :デフォルトの名無しさん:2010/02/05(金) 01:18:15
どれのことだよ

914 :デフォルトの名無しさん:2010/02/05(金) 01:19:11
>>912
ふらっとC#,C♯,C#(初心者用) Part55
http://pc12.2ch.net/test/read.cgi/tech/1265288563/
これの立てそこないです
よければつかってください

915 :デフォルトの名無しさん:2010/02/05(金) 01:19:42
あと70スレほど使ってから考えることだな
ふらっとと違ってこっちは進行遅めだし

916 :デフォルトの名無しさん:2010/02/05(金) 01:20:59
>>913
C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
これのことでしょう

917 :デフォルトの名無しさん:2010/02/05(金) 01:49:57
ファイル操作で指定行を読み込むメソッドがあったら教えてください
でーびーとかえっくすえむえるとかはよくわからないです

918 :デフォルトの名無しさん:2010/02/05(金) 01:58:23
ありません

919 :デフォルトの名無しさん:2010/02/05(金) 02:00:15
>>918
ありがとうございます

920 :デフォルトの名無しさん:2010/02/05(金) 05:11:23
あります

921 :デフォルトの名無しさん:2010/02/05(金) 06:22:37
重複多すぎでワロタ  Go Go ! 

922 :デフォルトの名無しさん:2010/02/05(金) 20:05:06
XMLWriteを使ってXMLを書き出しているのですが
たとえば
<hoge>
<huge>hage</huge>
</hoge>
とあった場合に
<hoge>
<huge>hage</huge>
<huga>haga</huga>
</hoge>
としたい場合はどうしたらいいんでしょうか?
指定行まで読み込んでから追記してみたらだめでした・・・。

923 :デフォルトの名無しさん:2010/02/05(金) 20:45:25
全部読み込んで1から書きこめば?

924 :デフォルトの名無しさん:2010/02/05(金) 20:51:01
XMLDocument.Save()

925 :デフォルトの名無しさん:2010/02/07(日) 00:59:11
なぜか放置されているのでage

926 :質問です:2010/02/07(日) 14:45:28
C#からC(DLL)の関数を呼び出し、さらにその関数の中で、
引数で渡されているC#のメソッドをコールバックとして呼び出したいです。
ソースを以下に示します。C側(DLL)の関数は呼びだすことができ、
その中からC#側のShowMessageも呼べてます。

しかしsbには"TESTTEST"のうち、1文字入っていません。
どうすれば文字列全体を引数として渡せますか?

927 :質問です:2010/02/07(日) 14:46:23
【C# 側】
// ユーザが呼び出すメソッド(開始)
private void load_button_Click(object sender, EventArgs e)
{
....// DLL内メソッド呼び出し
....bool a = TgkMM.TgkCore.TgkCoreInit(ShowMessage);
}

// DLL内から呼ばれるコールバックメソッド
static void ShowMessage(string sb)
{
....MessageBox.Show(sb);
}
----
// DLL呼出用定義
namespace TgkMM
{
....public class TgkCore
....{
........public delegate void CallBackFunction(string msg);
.
........[DllImport("TgkCore.dll")]
........public extern static bool TgkCoreInit(CallBackFunction cb);
....}
}

928 :質問です:2010/02/07(日) 14:47:54
【C 側(DLL)】
bool __stdcall TgkCoreInit(CALLBACKFUNCTION call_back)
{
....call_back(L"TESTTEST");
.
....return result;
}
以上です、よろしくお願いします。

929 :デフォルトの名無しさん:2010/02/07(日) 14:54:44
unicodeでTって0x0050だけどメモリ上はビックエンディアンだっけ?
リトルエンディアンだっけ?

930 :デフォルトの名無しさん:2010/02/07(日) 14:57:06
間違えた
Tは0x0054

931 :デフォルトの名無しさん:2010/02/07(日) 15:03:48
16進ダンプ結果
  元の文字

T

  Shift-JIS
54
  EUC-JP
54
  ISO-2022-JP
54
  UTF-8
54
  UTF-16LE
FF FE 54 00
  UTF-16BE
FE FF 00 54

C#のデフォルトの内部エンコードってなんだっけ?

932 :デフォルトの名無しさん:2010/02/07(日) 15:15:49
>WindowsでいうUnicodeテキストとは,リトルエンディアンのUTF-16です。
http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm

UTF-16LEじゃなくUCS-2(扱いやすさ重視で採用してるらしいのでx86を考えるとLEが妥当か)
とのことなので

メモリ上をみると
C#は\0を最後とか見ないので(たぶん
0x54,0x00,0x45,0x00・・・と送ってるけど
DLL側は昔ながらの\0が文字列の最後と思ってるので
Tだけ送ってくる?

933 :デフォルトの名無しさん:2010/02/07(日) 15:38:21
[DllImport("TgkCore.dll"), CharSet=CharSet.Ansi]
でデリゲートの文字変数も変換されると思う。 


934 :デフォルトの名無しさん:2010/02/07(日) 16:45:43
DLLがL""のUnicode文字返してるんだからCharSet.Unicodeにしないと駄目
CALLBACKFUNCTIONの定義はどうなってることやら

935 :デフォルトの名無しさん:2010/02/07(日) 16:47:22
あ、delegateの方のUnmanagedFunctionPointer属性に付ける>CharSet

936 :質問です:2010/02/07(日) 18:15:38
>>926->>928 の者です、沢山ご回答ありがとうございます。

[DllImport("TgCore.dll", CharSet=CharSet.Unicode)]
をつけてみました、やっぱりダメでした。1文字しか送られません。

C#側で、
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void CallBackFunction(string msg);
としてみました。
どういう意味なのかよくわからないのですが、何も変わりませんでした。

CALLBACKFUNCTIONの定義は以下のようになっています。
typedef void (*CALLBACKFUNCTION)(const WCHAR* name);

いろいろ厄介なのでもう諦めようかと・・・。

937 :デフォルトの名無しさん:2010/02/07(日) 18:17:26
unicodeで送るなって
受け側が多分unicodeに対応してないからおかしくなってるんだから

938 :デフォルトの名無しさん:2010/02/07(日) 18:19:06
C#呼び出し元->C++DLL->C#のコールバック対応する箇所
unicode->S-JIS->unicode
となってるか何かでおかしくなってるんだよ

939 :デフォルトの名無しさん:2010/02/07(日) 18:22:44
unicode->S-JIS
この間は上ででてる
[DllImport("TgkCore.dll"), CharSet=CharSet.Ansi]
で対応して

S-JIS->unicode
これもAnsi?で受けないと

940 :デフォルトの名無しさん:2010/02/07(日) 18:24:04
> C#側で、
> [UnmanagedFunctionPointer(CallingConvention.StdCall)]
> public delegate void CallBackFunction(string msg);

CharSetつってるじゃんかー

941 :デフォルトの名無しさん:2010/02/07(日) 18:24:57
>>940
文字コードについていわれてるのにさっぱり理解できてないよね

942 :デフォルトの名無しさん:2010/02/07(日) 18:30:02
ふと疑問に思ったんだけどC/C++が確保した長さ情報もろくにわからないエリアを
c#にコールバックで渡して大丈夫なのか?

943 :デフォルトの名無しさん:2010/02/07(日) 18:33:39
>>942
stringで受け取るなら\0前までをstringに変換してくれる
マーシャラさんの有り難みを噛みしめろー

944 :デフォルトの名無しさん:2010/02/07(日) 18:35:47
>>936
CALLBACKFUNCTIONの定義に__stdcallが付いていないのに、
CallBackFunctionの定義でStdCallを指定しているのはおかしい。
Cで呼出規約無指定の場合はCallingConvention.Cdecl。

若干、簡略化した上で自分でも試したが、これでうまくいった(TESTTESTの出力に成功した)ぞ。
// C(といよりboolがあるためC++と判断)
// cl test.cpp /Fet.dll /link /DLL
#include <windows.h>
typedef void (*CALLBACKFUNCTION)(const WCHAR* name);
extern "C" bool __declspec(dllexport) __stdcall TgkCoreInit(CALLBACKFUNCTION call_back)
{
call_back(L"TESTTEST"); return true;
}
// csc test.cs
using System;
using System.Runtime.InteropServices;
class c
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet=CharSet.Unicode)]
public delegate void CallBackFunction(string msg);
[DllImport("t.dll", EntryPoint="_TgkCoreInit@4")] // EntryPointは書かずにうくいっているなら不要
public extern static bool TgkCoreInit(CallBackFunction cb);
static void Main()
{
TgkCoreInit(ShowMessage);
}
static void ShowMessage(string sb)
{
Console.WriteLine(sb);
}
}

945 :デフォルトの名無しさん:2010/02/07(日) 18:40:37
>>943
そうなんだ〜

>>944
DLLの方をあわせたのか

946 :質問です:2010/02/07(日) 19:18:08
>>926-928のものです。

>>937様の仰る通り、送り側は"L"をつけないで "TESTTEST" で送ってみたら
うまく行きました!日本語もうまく行きます。
C++→C#に送る際に、S-JIS→Unicode(string)に変換してくれてるんですね。
みなさんありがとうございます。

947 :デフォルトの名無しさん:2010/02/08(月) 03:58:48
リッチテキストボックスで100メガ近くあるデータを扱いたいのだが、データだけはこちらで管理して、残りはお任せということはできないの?
くぐったんだが、方法がわからん…

948 :デフォルトの名無しさん:2010/02/08(月) 05:51:19
なんでそんな馬鹿げた仕様になったんだ・・・

949 :デフォルトの名無しさん:2010/02/08(月) 06:58:21
>>948
EmEditorに対抗するため。
あちらは100メガ近くあるテキストでもまともに扱えるらしい。

950 :デフォルトの名無しさん:2010/02/08(月) 07:47:05
もうさー馬鹿は日曜大工作るだけにしとけよ。家を建てようとするんじゃなくて。

951 :デフォルトの名無しさん:2010/02/08(月) 08:14:39
>>949
めんどくさいから一行ずつデータ保持しておけよ^;^


952 :デフォルトの名無しさん:2010/02/08(月) 09:14:16
性能の良いエディットコントロールはそれだけで売り物になるってことでFA


953 :デフォルトの名無しさん:2010/02/08(月) 09:29:42
自前で描画しないとなー

954 :デフォルトの名無しさん:2010/02/08(月) 10:01:31
マジで軽くて大容量も使えるエディタとなるとC#の仕事じゃないだろ。


955 :デフォルトの名無しさん:2010/02/08(月) 20:14:14
VS2010のテキストエディタはWPFだよ
軽くはないけどそんなに遅くもない

956 :デフォルトの名無しさん:2010/02/08(月) 20:20:07
糞重いせいでリリースを延期しているのだが

957 :デフォルトの名無しさん:2010/02/08(月) 20:21:41
別にWPFじゃなくても根本的に描画を書き直したりしたらそりゃチューニングに時間かかるだろ

958 :デフォルトの名無しさん:2010/02/08(月) 23:34:53
どう屁理屈こねようと糞重いことには変わらない現実

959 :デフォルトの名無しさん:2010/02/08(月) 23:58:40
ロースペック自慢は他でやってくれ

960 :デフォルトの名無しさん:2010/02/09(火) 00:39:01
熟成10年

961 :デフォルトの名無しさん:2010/02/09(火) 09:34:10
何かの処理結果を ArrayList に保持する場合
処理するたびに new して代入するのと
最初に一回だけ new しておいて Clear() してから結果を代入するのと
どちらが望ましいんでしょうか?
結果の件数は数十万件になることもあります

962 :デフォルトの名無しさん:2010/02/09(火) 09:42:03
clearして代入したらArrayListには同じものしか
入らないジャン

963 :デフォルトの名無しさん:2010/02/09(火) 09:43:18
どんなの作ろうとしてるんだ
なんかの処理っていうのは別メソッドで実装してるんだよな?
Clearする必要あるの?戻り値を保持じゃなくてメソッド中で大量データを処理したいの?
つーか何を望んでるの?パフォーマンス?

964 :961:2010/02/09(火) 10:06:02
>>962-963
済みません 説明が不十分でした
処理メソッドは処理の度に new した ArrayList に結果を設定して返し
主メソッドはいくつかの処理メソッドが返却したリストをマージ・ソートして保持します

例えば今20万件保持しているとして、次の処理で30万件返却されたとしますと
主メソッドで都度 new する場合、前の20万件のデータは GC されるまで
メモリを圧迫するのではと気になります。
Clear() すればメモリの無駄は少なくなると考えましたが、よく考えたらこれも
結局は GC 頼みになって同じなのかも・・・ Clear() の処理もコストが掛かることですし
毎回 new で問題ないですかね?

965 :デフォルトの名無しさん:2010/02/09(火) 10:44:28
>>964の文章を理解する気力もなくなってしまった。
これが老いるというやつなのか・・・とほほ

966 :デフォルトの名無しさん:2010/02/09(火) 10:49:24
>>965
俺も(ヽ´ω`)
五回読見返したけど、ギブアップ。

967 :デフォルトの名無しさん:2010/02/09(火) 10:56:11
親のListをnew?子のListをnew?
親子とも最初の一度だけでいいと思うが…
ArrayListなんだし追加していくだけでいいんじゃない?

親←NULL
子←NULL

子呼び出し
子←南下1
子終了
親←親+子
(親←南下1)

子呼び出し
子←南下2
子終了
親←親+子
(親==南下1南下2)

968 :デフォルトの名無しさん:2010/02/09(火) 10:58:07
素でボケてるか

親←NULL

子呼び出し
子←NULL
子←南下1
子終了
親←親+子
(親==南下1)

子呼び出し
子←NULL
子←南下2
子終了
親←親+子
(親==南下1南下2)

969 :デフォルトの名無しさん:2010/02/09(火) 11:04:25
Clearしても.Capacityは変わらないだろうし、
.Capacityを減らしても内部のバッファを小さいのに切り替えるだけで
メモリの回収は結局GCなんじゃないかと思う。

970 :デフォルトの名無しさん:2010/02/09(火) 11:07:41
親ArrayList:子で処理したArrayListをまとめる
子ArrayList:100k超のデータ数を処理する?

子のほうは保持し続ける処理がない限り処理が終わったら勝手に消える
親をnewするのは意味不明

よって何もするな

971 :デフォルトの名無しさん:2010/02/09(火) 11:12:06
できるかできないかは別にして、数十万のオブジェクトを作成してArrayListにいれるっていうのは、このクラスの守備範囲を離れている。

972 :デフォルトの名無しさん:2010/02/09(火) 11:18:39
数十万件を一気にメモリに載せる必要があんのか、と問いたい。

973 :デフォルトの名無しさん:2010/02/09(火) 11:19:49
DB物故抜きしたいんじゃないの?
アホみたいに時間かかると思うけど

974 :デフォルトの名無しさん:2010/02/09(火) 11:19:49
気になりますじゃなくて、調べれば良いじゃないか。
両方試して。
俺らには何万件のデータがどんな容量か分からんのだよ。

975 :デフォルトの名無しさん:2010/02/09(火) 11:30:29
>例えば今20万件保持しているとして、次の処理で30万件返却されたとしますと
>主メソッドで都度 new する場合、前の20万件のデータは GC されるまで
>メモリを圧迫するのではと気になります
この部分が怖いんだが

親で保持してたListを毎回破棄するのか
何の意味があるんだかわからん
自分でArrayListとかマージするとかって書いてるのに…

976 :デフォルトの名無しさん:2010/02/09(火) 11:33:34
保持と一旦受けでしょ。

977 :デフォルトの名無しさん:2010/02/09(火) 11:37:40
tempなんて必要か?

978 :デフォルトの名無しさん:2010/02/09(火) 11:38:01
しらんがなw

979 :デフォルトの名無しさん:2010/02/09(火) 11:52:39
>>964
>今20万件保持している
親の保持List

>次の処理で30万件返却
子の返却値(=親の一時List?)

>主メソッドで都度 new する
親の一時List

>前の20万件のデータは GC されるまで
>メモリを圧迫するのではと気になります。
親の保持Listに突っ込んだ後の親の一時List

子の返却時点で上書きされないか?
add使って追加してるだけってオチ…

980 :デフォルトの名無しさん:2010/02/09(火) 11:54:33
データベースを使うべき課題だな。

981 :デフォルトの名無しさん:2010/02/09(火) 11:54:59
一つ言えることは、このスレはパフォーマンスに関しては結構あてにならないから
実測してみた方が良いと思うよ。

982 :961:2010/02/09(火) 11:56:54
私の説明と能力の不足のせいで、皆様に御迷惑をお掛けしました。
申し訳ありませんでした。
真意をお伝えできなかったので混乱してしまったと思いますが
要点は>>969,971,974であると理解しました。
もうちょっといろいろやってみます。



983 :デフォルトの名無しさん:2010/02/09(火) 11:58:17
>>981
今回に限らず「自分で測定しろよ」ってスタンスのレスがほとんどだったと思うが…

984 :デフォルトの名無しさん:2010/02/09(火) 12:01:13
C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1265283175/

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

985 :デフォルトの名無しさん:2010/02/09(火) 12:04:13
で次スレは>>984上を乗っ取るの?

986 :デフォルトの名無しさん:2010/02/09(火) 12:08:38
ふらっとは立て直されてるし乗っ取りにもならないな

987 :デフォルトの名無しさん:2010/02/09(火) 12:14:07
>>1-5の内容を張ってくるか。次は実質57でいいんだよね?

988 :デフォルトの名無しさん:2010/02/09(火) 12:27:22
流石に1が違うのは混乱しないか

989 :デフォルトの名無しさん:2010/02/09(火) 12:29:21
いや〜、みんな1見ないでC++の質問してくるくらいだから気がつかないよ。


990 :デフォルトの名無しさん:2010/02/09(火) 13:00:34
次スレ

C#, C♯, C#相談室 Part55  (実質Part57)
http://pc12.2ch.net/test/read.cgi/tech/1265283175/58-


991 :デフォルトの名無しさん:2010/02/09(火) 14:53:56
>>989
しらんがなw

992 :デフォルトの名無しさん:2010/02/09(火) 20:52:42
javaでFileWriterクラスのwrite(int)メソッドで書き込んだファイルをC#でそのまま開けるようなメソッドはあるでしょうか?
javaで作ったファイルをバイナリエディタで見てみると、int型で値4232を書き込んだ所がE1 82 88 E1となっていて、
C#でBinaryReaderのReadInt32()メソッドで読み込むと-511147295になってしまう、といった次第で困ってます

993 :デフォルトの名無しさん:2010/02/09(火) 21:03:12
public void write(int c)
単一の文字を書き込みます。

文字として書き込んでるらしいけど本当にそれでいいの?

994 :デフォルトの名無しさん:2010/02/09(火) 21:05:31
>>992
javaの方で正しく書き込めたらまたおいで

995 :992:2010/02/09(火) 21:10:46
>994
今調べたら少し勘違いしていたようですが、javaの方では入出力は問題なく行えてます。
int型の下位16ビットだけを記録しているようで、上位16ビットを使用していなかったので。
同じ変換を行うメソッドはC#には無いんでしょうか?

996 :デフォルトの名無しさん:2010/02/09(火) 21:15:22
Javaはしらんけど

int型で値4232を書き込んだ所がE1 82 88 E1

あまりまじめに調べる気もないけど16bitだけ書いてるにしても連想ができない

8288だけを数字に直しても4232とは程遠いし

997 :992:2010/02/09(火) 21:20:38
やっぱり一般的な変換が行われてるわけではないんですね
Javaの方のファイル作成部分を見直します
失礼しました

998 :デフォルトの名無しさん:2010/02/09(火) 21:20:47
だから引数の型はintだけど意味的にはcharだってば>write(int)

999 :デフォルトの名無しさん:2010/02/09(火) 21:24:54
Java屋じゃないのでJavaが独自にやってるフォーマットの読み書きできますか
といわれてもわかるわけないし

第一その16進数のエンディアンは何とか細かい情報わからねーし

1000 :デフォルトの名無しさん:2010/02/09(火) 21:26:01
ちゃんと計算してないけど、おそらくU+1088(4232)はUTF-8でE1 82 88

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

202 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)