[プログラム板] C#, C ..
49:デフォルトの名無しさん
08/06/30 00:24:59
C#の次期バージョンの情報はないんけ?
50:デフォルトの名無しさん
08/06/30 01:04:10
>>49
C# "Future Focus" でググると多少出てくる。
まだMS社員が「こんなアイディア持ってるよ」ってレベルで、
仕様と呼べる段階じゃないけど。
51:デフォルトの名無しさん
08/06/30 08:36:11
言語の仕様をコロコロかえんでください
それより便利なライブラリ提供してくれたほうがうれしいです
52:デフォルトの名無しさん
08/06/30 09:23:37
obsoleteになった仕様って無いんだし変えたわけではないと思うが
53:デフォルトの名無しさん
08/06/30 10:56:32
C#は言語仕様を変えたことはないよね
54:デフォルトの名無しさん
08/06/30 12:17:06
便利なライブラリってどんなの?
四次元ポケットとか?
55:デフォルトの名無しさん
08/06/30 21:34:50
匿名型を入れるコレクションを作ろうと思うと
ダミーの匿名型のオブジェクトをジェネリックメソッドの引数に渡すとか
変態的なことしないといけないのは何とかしてほしい
56:デフォルトの名無しさん
08/06/30 21:46:54
…? 無名型 Array か ToList でええやん
57:デフォルトの名無しさん
08/06/30 21:53:34
>>51
.NET 3.0, 3.5 はライブラリ追加がメインじゃん。
なんか、「Windowsプログラミングの極意」に書いてあった話思い出すな。
「見た目ばかり変えてないで中身改善しろよ」という人に限って、
「電卓、代り映えしないよね」という。
実際には電卓の中身ものすごい変わってるのに。
58:デフォルトの名無しさん
08/06/30 21:56:38
>>55
var list = Enumerable.Range(0, 0).Select(x => new { X = 0.0, Y = 0.0 }).ToList();
我ながら変態的w
59:デフォルトの名無しさん
08/06/30 21:57:27
足したり引いたりが簡単にできるVectorクラスとか?
んあに含まれてるけど、これのためだけに使うのはどうかと思う
ところでxnaってどう読めばいいの?エクセナ?クセナ?んあ?クロスナ?エックス菜?ペケナ?ゼーナ?
60:デフォルトの名無しさん
08/06/30 22:02:42
>>59
3.5 にあるよ、Vector クラス。
System.Windows.Vector と System.Windows.Media.Media3D.Vector3D。
XNA は普通にエックス・エヌ・エー。
61:デフォルトの名無しさん
08/06/30 22:13:35
WPFは3.0だぜ
62:デフォルトの名無しさん
08/06/30 22:17:56
XNA's Not Acronymed
>>59
というか Linq みたいなんは基本的に副作用、状態を途中で変えるの
嫌って書いたほうがよい。足したいなら .Concat(...) で結合。
63:デフォルトの名無しさん
08/06/30 22:20:30
あごめん、足すって binary operator みたいなのか。
64:デフォルトの名無しさん
08/06/30 22:54:37
どう考えても数学でいうベクトルのこと
65:デフォルトの名無しさん
08/07/01 22:57:13
XmlSerializerでシリアライズするとき、
要素にNamespaceを設定すると
<element xmlns="namespace-test">
〜〜〜
</element>
ってなるけど
<test:element xmlns:test="namespace-test">
〜〜〜
</test:element>
ってできない?
66:65
08/07/01 23:24:33
事故解決
シリアライズするクラスのメンバにXmlSerializerNamespaces入れたらできた
67:デフォルトの名無しさん
08/07/03 17:36:23
質問です><
Microsoft.DirectX.AudioVideoPlayback.Videoでビデオを開放するにはどうしたらいいですか?
Openすると前のファイルを開いたまま開いちゃうしDispose()しても開放してくれないです><
68:デフォルトの名無しさん
08/07/04 01:59:39
指定フォルダ中の Word Excell PowerPoint ファイルに
指定したパスワードを掛ける/外す処理を行うにはどうすればよいのでしょうか?
(C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?)
69:デフォルトの名無しさん
08/07/05 03:27:02
URLリンク(www.atmarkit.co.jp)
最近とみに無理やり感が強くなってる気がする…
70:デフォルトの名無しさん
08/07/05 04:34:04
>>69
VBの場合見かけ上プロパティの参照が渡せるように書けるから話がややこしい
71:デフォルトの名無しさん
08/07/05 07:37:09
>>68
開くときはdocuments.openでPasswordDocumentかWritePasswordDocument
あたりのパラメータに渡してやればいいと思うが。
保存時はdocument.passwordを設定して、document.saveでいけるんじゃね?
>C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?
そもそもoffceのオブジェクトにc#からアクセスする方法がわからんというレベルなら、
MSDNで調べてくれ
72:デフォルトの名無しさん
08/07/05 11:55:20
ManagementObjectCollectionのDispose呼ぶとコレクションの内容もDisposeされる?
列挙したそれぞれの要素もDisposeしなきゃだめ?
73:デフォルトの名無しさん
08/07/05 15:00:53
>>69
どうせ書くなら具体的に書けよ。
どうせ自分の感覚に自身がないから誰かが賛同してくれるの待ってるんだろ?w
実に女々しいというか悲しい奴だなあんた。
74:デフォルトの名無しさん
08/07/05 16:17:45
>>69
ネタがないんだろうな。
75:デフォルトの名無しさん
08/07/05 16:23:16
なんで川俣の記事に何かいったらやたら突っかかる奴がでるの?
76:デフォルトの名無しさん
08/07/05 16:25:11
そりゃ川俣の記事に何かいうやつが阿呆ばかりだからだろう。
77:デフォルトの名無しさん
08/07/05 16:27:15
そうなの?
78:デフォルトの名無しさん
08/07/05 16:29:55
getter setter渡すように書き換えるくらいなら変数ひとつ使えばいいのに…
79:デフォルトの名無しさん
08/07/05 20:11:20
小ネタを大げさに記事にするのって川俣の昔からの芸風ですから。
80:デフォルトの名無しさん
08/07/05 20:29:09
そういう奴はたまには技術書や教科書以外の本も読んでその偏向した感覚を
矯正した方がいいんじゃないの?w
別にああいう文体って結構ありがちだと思うぞ。
プログラミングとか工学系の本じゃ珍しいのは確かだが。
っていうかプログラミング系の日本人ライターにありがちなヲタ臭い文体の奴よりずっとましだと思うが。
「幸せになれる」だの意味なく文頭に#付けたりだの、ヲタ系のプログラマ以外一般に誰も使わない
表現や言い回しを好む奴ね。
81:デフォルトの名無しさん
08/07/05 21:04:09
ありがちだけどみんなキモク感じるだけ。
まあ別にそういうもんだと思って読むだけだが。
82:デフォルトの名無しさん
08/07/05 21:43:33
「幸せになれる」系と比べても、「マシ」だとは思えないけどな。
「人類の発展に貢献する」系に比べたら、マシには見えるけど。
83:デフォルトの名無しさん
08/07/05 22:45:02
「みんなキモく」って何を根拠に?
こういう小ネタ面白いと思うけど。
「幸せになれる」って聞くとなんとなく幸せなんだけどw
人の文体がいちいち気になるものなの?
#はメリハリついて分かり易いと思うんだけど。
84:68
08/07/06 00:24:24
>>71
やってみます。ありがとう!
85:デフォルトの名無しさん
08/07/06 20:31:48
C++のDLL(非COM)の関数(WINAPI型)から、
C#のWindowsアプリケーションに
C#からみてobject型の配列(2次元)を渡すとき、
何かいい方法はありませんか?
現状は、C++側の関数のout引数に
*variant型を設定し、C#側からobject型と
してみせて取得しようと思っています。
・・・他にいい方法があれば教えて下さい。
お願いします。
86:デフォルトの名無しさん
08/07/06 20:33:05
GCHandleまわせばいいだろ
87:デフォルトの名無しさん
08/07/06 21:23:47
>>90
「幸せになれる」ってたとえば
「hogeをプロパティにしておけば幸せになれるかもしれない」って奴のことか?
むしろ、自分以外に使う人がいたのがびっくりだが、ヲタとか関係ないだろ?(そもそも自分はヲタじゃないしな)
#を付けるのは確かに一部の人間だろうね。
でも#でコメントアウトするスクリプトや設定ファイルは結構多いから、誰にでも通じるとは思うけどね。
88:デフォルトの名無しさん
08/07/06 21:47:34
統合失調の人?
「自分以外に使う人がいたのがびっくりだが」ってw
「幸せになれる」だの「ごにょごにょする」だの、
ヲタ系プログラマ(ただし本人たちにその自覚は乏しい)しか使わない
独特の言い回しを使う奴っていっぱいいるでしょ。
89:デフォルトの名無しさん
08/07/06 21:49:57
一時期はやったような気がするけど、最近はみないような気もする > 幸せになれる
90:デフォルトの名無しさん
08/07/06 21:51:52
端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
正直消えてなくなてほしいよこういう連中は。
91:デフォルトの名無しさん
08/07/06 21:58:26
PGって略がなんか気になるんだよな。
92:デフォルトの名無しさん
08/07/06 21:58:34
川俣とかある種のオタの典型みたいなもんだしな。
93:デフォルトの名無しさん
08/07/06 22:20:44
特定の職業の連中が変わった言葉遣いをすることなんて世の中いくらでもあるだろ。
土方には土方の方言があるし、医者は医者の言葉を使うだろ。
94:デフォルトの名無しさん
08/07/06 22:29:13
だいじょうぶその読解力?
特定の職業(プログラマ)の言葉遣いを槍玉に挙げているのではない。
ヲタ系の気色の悪い連中の言葉遣いにケチをつけてるんだよ。
95:デフォルトの名無しさん
08/07/06 22:34:12
オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってるから迷惑ってのはいいがかりもいいとこだろ。
メジャーなメディアで「幸せになります」とかいってるPGなんて見たことない。
96:デフォルトの名無しさん
08/07/06 22:37:44
ちゃんと小学校でてるか?
どんな読解力だよ。
>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
>正直消えてなくなてほしいよこういう連中は
どこにも
>オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってる
などという趣旨のことは書いてない。
97:デフォルトの名無しさん
08/07/06 22:39:20
じゃあ、あんたが個人的にキモがってるってだけの話か。
どうでもいい話だね。
98:デフォルトの名無しさん
08/07/06 22:49:16
>>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
世間じゃなかったら、だれに、漫画的なイメージを持たれて「消えてほしい」と思うくらい不愉快に思ってるんだろう。
99:デフォルトの名無しさん
08/07/07 12:21:28
その実装の方が幸せになれる、って頻繁に使わないか?
100:デフォルトの名無しさん
08/07/07 12:25:30
使わないね
101:デフォルトの名無しさん
08/07/07 12:28:10
板違い
102:デフォルトの名無しさん
08/07/07 13:22:48
そっか、俺よく使うわ
103:デフォルトの名無しさん
08/07/07 20:06:34
すみません、質問です。
Visual C# 2005 Express Edition と Visual C# 2008 Express Edition にはどのような違いがあるのでしょうか。
現在のPCのOSが2000でありまして、VC# 2008をインストールすることができないと言われます。
もし両者にそれほどの差異がないのであれば2005を使おうかと思うわけなんですが。
URLリンク(codezine.jp)
は目を通してみました。
C#のバージョンが3.0になっているようなんですが、
URLリンク(ufcpp.net)
のサイトで見る限り、初心者の私がすぐに不便さを感じるようなものでもない気はしました。
後日PCを新しくしたときにXPにする予定なので、その際にVC# 2008を入れたとしても、特に問題はなさそうでしょうか?
それとも、2008で増えた機能というのは初心者でも必須ないし、あった方がよさそうなものですかね。
104:デフォルトの名無しさん
08/07/07 20:10:48
割と前に見たのだが、C#で回転するメニューが実装できるコンポーネントみたいなのがあったはずなのだが
名前が思い出せね 誰か教えてくれ
105:デフォルトの名無しさん
08/07/07 20:13:50
初心者なら2005EEでも使いこなせない程十分な機能があるよ
106:デフォルトの名無しさん
08/07/07 20:15:31
>>103
WPFやLinqが使いたいなら2008かな?あとラムダ式も使えるようになってる。
(ラムダ式ってのはデリゲートを簡単に書くための構文だな。記述法というだけだから必須ではない)
>>104
コントロールを回転・縮小・拡大したいならWPFで出来るよ。
107:デフォルトの名無しさん
08/07/07 20:40:14
>>105-106
どもども、ありがとうございます。
PC買い換えまでは2005でやってみます。
108:デフォルトの名無しさん
08/07/07 21:12:38
>>104
標準ではなくてフリーライブラリだけど、カルーセル?
109:デフォルトの名無しさん
08/07/07 21:23:02
>>106
WPF使うってのもありか
>>108
いや横に回転するのではなくて円形に回転するやつ
URLリンク(www.forest.impress.co.jp)
みたいなのに近い
どこかの会社が無料で出してた気がするのだが
110:デフォルトの名無しさん
08/07/07 21:44:40
前にスラッシュドットで取り上げられてた気がする
WPFでの実装だったと思うけど
111:デフォルトの名無しさん
08/07/07 21:51:13
>>110
あったありがとう
URLリンク(slashdot.jp)
これで安心して眠れる
112:デフォルトの名無しさん
08/07/07 21:54:21
回転するメニューってものの操作性がピンとこないのは
俺の想像力が欠如してるせい?
っていうかうっとうしくないのかなそれw
113:デフォルトの名無しさん
08/07/07 22:58:24
>>112
回転メニューの有用性はスターオーシャンと聖剣伝説で実証済み
テイルズシリーズでも採用されてたっけ?(テイルズはやらないので知らない)
114:デフォルトの名無しさん
08/07/07 23:07:13
リングコマンドはスケーラビリティや情報量が低いため使える範囲はかなり狭い
115:デフォルトの名無しさん
08/07/07 23:26:47
>>113
なんか視野狭窄というか、オレサマ=世界のいわゆる「セカイ系」の人?
君が思ってるほどゲームをやる人種ってのは多くないんだよ。
少なくとも俺はゲームなんてまったくやらない。
そんな一方的にそのスターなんたらを知ってる前提の話をされてもね。
116:デフォルトの名無しさん
08/07/07 23:32:24
無知な上ググる事もできない奴が偉そうに言ったところで
117:デフォルトの名無しさん
08/07/07 23:57:32
リボンとかドッキングとかってSP1で追加されるんだっけ?
いつでるんだっけ?
118:デフォルトの名無しさん
08/07/08 00:07:04
しらないけど来るならWPFじゃね
119:デフォルトの名無しさん
08/07/08 00:14:49
>>117
SP1 で追加されるのは MFC 版。
MFC Feature Pack っていうんだけど、英語版はすでに正式版が出てる。
日本語は VS 2008 SP1 に同梱。
WPF のリボンは年末くらいを目標に作ってるらしい。
ドッキングは不明。
120:デフォルトの名無しさん
08/07/08 00:38:41
>>115
ググれば直ぐ見つかるような有名なゲームだし、最悪分かる人に分かれば良い内容です。
(さすがにSO2とか略したら二酸化硫黄と区別つかないけどなw)
そもそも、「俺の分かる話しかするな」って言われたら…
本「期待値とは物理で言うところの重心です。(期待値も重心も相加平均です)」
A「ああ、なるほど。」
B「物理なんて知るか。この本、腐ってやがる。出版社に文句言おう!」
…なんて事になるからそんな事言う人はいないよね?
121:デフォルトの名無しさん
08/07/08 00:45:15
馬鹿はしょうがないな。
その物理学(学問の最高峰)とゲーム(たかだか「お前」が知ってるだけ)を
並列することになんの疑問も抱かないようなメンタルを「セカイ系」と呼ぶんだよ。
122:デフォルトの名無しさん
08/07/08 00:50:38
↑マジ脳みそ腐ってんじゃね?
123:デフォルトの名無しさん
08/07/08 00:56:08
そんなだからセカイ系とか言われるんだよ
124:デフォルトの名無しさん
08/07/08 00:56:58
>>121
( ゚д゚ ) セカイ系 の検索結果 約 456,000 件中 1 - 10 件目 (0.24 秒)
StarOcean の検索結果 約 3,360,000 件中 1 - 10 件目 (0.28 秒) ( ゚д゚ )
( ゚ д ゚ )
さすがに物理で検索したら136,000,000越えるけど、君の言うセカイ系って何?スイーツ(笑)みたいなやつ?
125:デフォルトの名無しさん
08/07/08 00:57:47
糞スレ
126:デフォルトの名無しさん
08/07/08 01:01:27
釣りだろ
じゃなかったら馬鹿過ぎる
127:113=120=124
08/07/08 01:07:22
sage忘れスマソ
で結局、RingMenuって便利なの?
RingMenuForOSは起動しないし、SDKは相変わらず登録が必要だし…だれか感想求む
128:デフォルトの名無しさん
08/07/08 01:47:32
家庭用ゲーム機のような入力装置に制限のある場合は有効だろうけど、
PCではどうだか。
129:デフォルトの名無しさん
08/07/08 03:43:50
というよりマウスではどうだかだけど、キーボードからなら割合ありな
気がする。使ってないけど聖剣あたりの記憶をたどってみると。
Alt(Win) + Tab みたいなかんじでくるくるみたいな。
130:デフォルトの名無しさん
08/07/08 03:53:14
リングメニューは一番裏まで回すのが面倒くさすぎ。
ポインティングデバイスもアルファベットの刻印されたキーもない環境専用だろ。
131:デフォルトの名無しさん
08/07/08 10:07:02
アイコンの方がダイヤルみたいに回るだけ?
例えば12時にカーソルがあって6時を選択したい時は左右キーでアイコンを回すって感じ?
カーソルの方が動くんだったら下キーで一発だけど。
132:デフォルトの名無しさん
08/07/08 17:21:18
リングメニューってこれ?
URLリンク(www.ringmenu.jp)
133:デフォルトの名無しさん
08/07/08 22:44:36
Compact frameworkで.net Remotingが使えないのですが、RPCをやる方法って他にないですかね?
とりあえず、XML-RPC.netが使えそうなんですが、他に何かいい案は、ないでしょうか。
134:デフォルトの名無しさん
08/07/08 23:25:43
圧縮しなくてもいいので、ファイルをひとつにまとめたい時ってどうすればいいんでしょうか。
Jpegファイルを集めて、先頭に取り出すための情報を詰めて、後でまた戻すといったやり方がしたいんです。
135:デフォルトの名無しさん
08/07/08 23:28:09
>>134
* tar
* 非圧縮zip
136:デフォルトの名無しさん
08/07/08 23:46:34
そもそも書庫ファイルというのはだな、
137:デフォルトの名無しさん
08/07/09 01:40:32
>>134
それをC#で書きたいのか?、ツール使いたいのかハッキリしろ。
もしツールなら、スレチだボケ!
138:デフォルトの名無しさん
08/07/09 12:22:53
C#2008 Express WPFアプリケーション
UserControlから派生した独自コントロールを作ってます。
Disposeが必要なリソースを扱ってるため、Unloadedイベントで後始末を行ってるのですが
明示的に親要素から削除すれば呼ばれるのですが、ウィンドウを閉じた場合には呼ばれませんでした。
ウィンドウを閉じた時にコントロールに通知されるイベントはありませんか?
139:デフォルトの名無しさん
08/07/10 13:00:36
VC#2005Expressを使って下記プログラムを作成しています。
・IMEに文字情報を与えて変換候補の一覧を取得
Imm32.dllをインポートする部分はわかったのですが
ImmGetCandidateList関数に渡す変換候補一覧を格納するバッファの構造体
の定義の仕方などがよくわかりません。
またImmGetCandidateList関数はいきなり使って大丈夫なのでしょうか?
ハンドルとかいろいろ渡すようなのですが・・・
140:139
08/07/10 13:11:45
宿題のほうへいきます。
こちらは無しでお願いします。
141:デフォルトの名無しさん
08/07/10 13:21:48
昔ターミナル作った時にやったな
142:139
08/07/10 13:23:12
C#以前のサンプルは見かけるんですが、C#にどのようにもってくればいいのかわからずorz
143:デフォルトの名無しさん
08/07/10 14:55:21
public class Hhoge<A,B> where A:new(){}
は当然いけるのだけど
public class Hhoge<A,B> where A:new(B){}
ができない(Aの型を、Bが引き数のコンストラクタを持つクラスだけにしたい)
こういう制限ってかけることできないのかな
144:デフォルトの名無しさん
08/07/10 15:03:46
できない
145:143
08/07/10 15:06:43
>>144
ありがとうございます
できない理由とか解説してるページって知りませんか?
146:デフォルトの名無しさん
08/07/10 15:08:45
>>145
理由も何もコンストラクタ制約はnew()以外にないから
147:デフォルトの名無しさん
08/07/10 22:45:42
URLに全角文字を指定する際によく使われる%xx%xx%xxといった形式に
変換する関数とかありますでしょうか?
148:デフォルトの名無しさん
08/07/10 22:47:01
>>147
つURLリンク(www.atmarkit.co.jp)
149:147
08/07/10 23:00:21
>>148
ありがとうございます。
150:デフォルトの名無しさん
08/07/11 02:03:35
label1.Textからlabel2と代入していく場合、
forループ内ではどうやって記述したらいいのでしょうか?
やっぱり事前に配列を作る等の下準備が無いと駄目ですか?
151:デフォルトの名無しさん
08/07/11 03:27:51
あなたの望む仕様がわかりませんがエスパーで答えてみます。
何度も呼ぶ場合は配列を作った方がいいと思います。
foreach (Control c in this.Controls)
{
Label l = c as Label;
if (c == null) continue;
if (l.Name.StartsWith("label") & int.Parse(l.Name.Substring(5)) > 1)
l.Text = Label1.Text;
}
152:デフォルトの名無しさん
08/07/11 03:32:28
上のはcのnullチェックしてもしょうがないな。
てかfor文で書くのか。
for (int i=2; i<=5; i++)
{
Label l = this.Controls.Find("label" + i.ToString(), false)[0] as Label;
l.Text = Label1.Text;
}
153:デフォルトの名無しさん
08/07/11 09:35:33
>>143
コンストラクタでAを作るためのデリゲート(Func<B, A>とか)を受けたらいいんじゃね
154:デフォルトの名無しさん
08/07/11 09:51:10
ASP.NET(C#) でWEBカスタムコントロールを作ろうとしています。
Tableクラスを継承して機能を上乗せして作ろうとしているのですが
カスタムコントロールタグの中にTableRowを入れその中にTableCellをタグで指定することができません。
なんとなくParsistsChild 辺りなのかなと思うのですがいかんせんMSDNの記述が読み取りにくくて・・・・
実現したいのは以下のような記述をデザイン時にタグで入力して
実行時にテーブルとして吐き出す事です。
<CustomTable id="hoge" runat="server">
<TableRow>
<TableCell>
1行1列
</TableCell>
</TableRow>
< /CustomTable>
なにかサンプルとかサイトでも構いませんので情報いただけませんか?
よろしくお願いいたします。
155:デフォルトの名無しさん
08/07/11 11:10:52
あぁぁーハングアップするぅーー
マルチスレッドうまく出来ないーヽ(`Д´)ノウワァァン
156:デフォルトの名無しさん
08/07/11 11:12:21
>>155
つBackGroundControl
157:デフォルトの名無しさん
08/07/11 11:15:45
>>155
デッドロック?
158:デフォルトの名無しさん
08/07/11 11:16:29
BackGroundWorker?
159:デフォルトの名無しさん
08/07/11 11:16:53
>>158
ですよね〜
160:デフォルトの名無しさん
08/07/11 11:32:53
BackGroundWorker!
161:デフォルトの名無しさん
08/07/11 11:46:19
BackgroundWorker!
162:デフォルトの名無しさん
08/07/11 11:47:16
BackgroundFucker!
163:デフォルトの名無しさん
08/07/11 11:49:13
BlackGroundWorker!
164:デフォルトの名無しさん
08/07/11 14:04:13
背景労働者(T_T)
165:デフォルトの名無しさん
08/07/11 15:20:43
最初にButtonClickイベントでRunWorkerAsync()をする。
次にDoWorkで通信待ちをしていて、通信を受け取ったらそのイベントでFormのプロパティ書換えを連続でしたいんだ。
それで、そこからButtonClickイベントでRunWorkerCompletedに移動したいんだ。
それでもって同じButtonClickイベント内でRunWorkerAsync()をしたいんだけど、どうしたらいいのかわからない・・・
buttonClick(){
RunWorkerAsync();
}
DoWork(){
通信メソッド();
}
ChangeValue(){//通信メソッドの受け取ったよevent
}
RunWorkerCompleted(){
}
166:デフォルトの名無しさん
08/07/11 15:28:23
全体に何を言いたいのか何が分からないのか良く分からん
連続でってどういう連続? 移動って何? RunWorkeAsyncが二回出てきてるの?
167:デフォルトの名無しさん
08/07/11 15:35:46
なんだ?
・ボタン押す
・通信データを受け取ることができたら非同期通信完了
・別のボタンで通信完了後の処理を行う
こういうことなんか・・・・?
168:デフォルトの名無しさん
08/07/11 15:48:13
ProcessStartInfoでコンソールがチラッと開くんですが、
これは開いたままにできないんでしょうか。
169:デフォルトの名無しさん
08/07/11 15:54:19
実行するプロセスはcmd.exeにして/kつきで実行すれば?
170:デフォルトの名無しさん
08/07/11 16:11:15
VS2005で任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)の配列における最大値を求めたくて
こんな関数を作りました。
public double Max<T>(T[] src, int offset, int length)
{
double ret = double.MinValue;
int end = offset + length;
for(int i = offset ; i < end; i++)
{
double val = System.Convert.ToDouble(src[i]);
if(val > ret)
ret = val;
}
return ret;
}
で、かなり大きなfloat配列(要素数10万オーダー)をこの関数にかけたら、
この関数が実行される前後でこの関数を動かしているプロセスのLOHが数十MB単位で増殖してしまいます。(perfmonで確認)
forループが怪しそうなんですが、どこでLOHをつかまれるのか見当がつきません。
調べ方が甘いのかもしれませんが、お分かりの方いらっしゃいますか?
171:デフォルトの名無しさん
08/07/11 16:11:44
ありがとうございます。
コンソールはでてるんですが、Argumentsが渡らないんですが、これはどうしたらいいんでしょう。
172:デフォルトの名無しさん
08/07/11 16:16:03
>>170
何で必ずDoubleに変換を・・・・・
173:デフォルトの名無しさん
08/07/11 16:17:05
>>172
関数を使う側でそういう要求があるということで…。
174:デフォルトの名無しさん
08/07/11 16:18:40
>>166-167
ごめんね、よくわからんアマチュアでごめんね
1.ボタン押す
2.任意で終了させるまで同期通信でデータを受け取る
3.最初のボタンで通信完了の処理をして、新しい同期通信を始める
同期通信がいつ終わるかわからんので、
RunWorkerCompleted()を開始できないのです。
175:デフォルトの名無しさん
08/07/11 16:20:27
>>165
別のスレッドでフォームを書き換えるの?それは無理
[STAThread] <-
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
176:デフォルトの名無しさん
08/07/11 16:21:05
>>170
LOHに何があるか、専用のデバッガやプロファイラで調べられなかったっけ?
CLRProfilerやsos.dllを使えばできそうな気がするよ。
177:143
08/07/11 16:24:22
>>153
できたっ
ありがとうありがとう
178:デフォルトの名無しさん
08/07/11 16:27:06
>>176
ちょっとそのあたりのツールを調べてみます。ありがとうございました。
179:デフォルトの名無しさん
08/07/11 16:28:15
>>174
それって最初のボタンのクリックイベントの最初に
非同期通信中だったら非同期通信キャンセルなり終了させるような処理書けばいいのでは?
その完了を待って再度非同期通信を開始すればよいのでは
180:デフォルトの名無しさん
08/07/11 16:30:31
>>175
>別のスレッドでフォームを書き換える
スレッドからフォームのプロパティを書き換えるのではなく、
同期通信のメソッドが通信を受けた時のイベントがあるんです。
そのイベントの中でフォームを弄るので、簡単に言えば、
ButtonClickイベントが起きたら通信メソッドをDispose()出来れば良いんです。
ですが、DoWork()内にButtonClickをどう通知したら良いのかわかりません。
181:デフォルトの名無しさん
08/07/11 16:33:08
>>180
IsBusy
CancelAsync
こんな感じのメソッドとプロパティなかったか?wwww
182:168
08/07/11 16:34:11
FileNameに"/c"パラメータとかつける方法ありませんか。
183:デフォルトの名無しさん
08/07/11 16:40:19
>>179 >>181
ButtonClickイベントの中で
BackgroundWorker.IsBusyでスレッドの使用を確認して、
動いていたらCancelAsyncを呼び出せばRunWorkerCompletedイベントが発生する訳ですね。
よくわかりました、ありがとうございます
184:デフォルトの名無しさん
08/07/11 16:51:07
一応いっとくけどCancelAsync呼んだだけじゃRunWorkerCompletedは発生しないぞ
CancelAsyncの解説読めば分かることだけど
185:デフォルトの名無しさん
08/07/11 17:12:52
object result = type.InvokeMember("test", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new string[1] { "sample" });
ってDLLを動的に呼び出して MyClass1 ってのを返すんだけど
object型のresultをMyClass1にキャストする方法がわからないのだが誰かヒントでも良いから助けて
186:デフォルトの名無しさん
08/07/11 17:17:16
>>185
動的にDLL呼び出しができてキャストできないとか・・・・・
(T)
187:デフォルトの名無しさん
08/07/11 17:23:16
きっと「動的にキャスト」みたいなこと考えてるんだろう
188:デフォルトの名無しさん
08/07/11 18:00:26
MyClass1返すならなんで動的に呼ぶ必要があるんだよ
まあこれはMyClass1が対象のアセンブリに含まれてると仮定した場合だが
MyClass1を静的に参照してるんじゃなきゃキャストなんてできるわけがないぞ
189:デフォルトの名無しさん
08/07/11 18:03:13
解決しました
第三のDLLかましてあげればよかったんですね
190:デフォルトの名無しさん
08/07/11 18:07:32
>>170
>任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)
ならdouble決め打ちでいいんじゃね?
って思うんだが駄目ですか
191:デフォルトの名無しさん
08/07/11 18:15:15
double[]引数にはfloat[]を与えられない
192:デフォルトの名無しさん
08/07/11 18:25:51
つうかキャスト動作が食ってるとかありえないのかな?
何万も回せばコストはでかいと思うんだが
外からは意識しないように内部で分岐させて処理してみればよくねぇか?
この分だとキャストは一回だけで終わりそうな感じがするんだが・・・
193:デフォルトの名無しさん
08/07/11 18:34:48
>>189
第3のDLLのはインターフェイスにしておくと融通が利く。
194:デフォルトの名無しさん
08/07/11 18:44:04
>>170
<T>[]で受けると型が特定されなくてそのままSystem.Convert.ToDoubleが呼ばれる
結果的にもう1つ<T>[]を作っている感じな予感。
float[],double[]で受けると最適化されてSystem.Convert.ToDoubleは呼ばれない。
195:デフォルトの名無しさん
08/07/11 18:48:26
IConvertibleで制約してhoge[i].ToDouble(null)とか
196:デフォルトの名無しさん
08/07/11 18:55:15
>>173
return直前にdoubleにすればいいだろ。
197:デフォルトの名無しさん
08/07/11 18:57:26
Tのままじゃ比較できないじゃん
198:デフォルトの名無しさん
08/07/11 19:00:52
比較はCompareToかな。それよりT.MinValueって使えるのかな
199:デフォルトの名無しさん
08/07/11 19:18:12
lengthがゼロならMinValueを返すのが仕様なら仕方ないが
普通初期値は配列の最初の要素だろ。
T ret = src[offset];
200:デフォルトの名無しさん
08/07/11 19:36:11
総称型の場合Convert.ToDouble(Object)でボクシングが
大量発生してヒープを使いすぎるのはわかるがLOHが使われるのは解せんね。
201:デフォルトの名無しさん
08/07/11 19:55:28
>>170
じつはToArrayでラージオブジェクトヒープを使っているとか言うオチだったり
List<int> arr = ..
double ans = Max(arr.ToArray(), 0, ar.Count);
202:デフォルトの名無しさん
08/07/11 19:58:18
>>199
そうなんだけどT.MinValueが使えるのかが気になった。
Length==0なら例外投げるのが妥当だよね。
203:デフォルトの名無しさん
08/07/11 21:42:05
相談です。
C#3.0(2.0でも可)にて
PDFからオブジェクトの取得をしたいと思っています。
PDFはベクトルデータであることが前提で、ラスタデータは考慮しません。
●抽出
テキストデータは テキスト、フォント、サイズ、座標を取得
画像データは 画像、座標を取得
各データにジャンルを割り当てDBに保存
●復元
テキスト、フォント、サイズ、座標からPDFに復元する。
その座標に画像も存在していれば画像も復元する。
何か良い方法はご存知でしょうか?
204:デフォルトの名無しさん
08/07/11 21:45:08
>>203
本屋でPDFの仕様書を見たことがあるから、amazonで探せばあるんじゃね?
英語なら買うまでもなく、ネットでもありそうだけど。
205:203
08/07/11 23:43:25
>>204
PDF仕様書の英語版はWebで公開されてます。
日本語版の仕様書は本で出てます。
PDFの使用がわかってもC#でPDFを扱う術(COMやSDKなど)がわからないのです。
iText,PDF4NET, PDFLib など様々なものを試していますが、これというものがありません。
画像抽出に関しても、抽出するだけならできるが、座標の取得などは不明だったりします。
206:デフォルトの名無しさん
08/07/12 00:15:58
つかライブラリ使うつもりなら、仕様書まで読む必要ないよ。
207:デフォルトの名無しさん
08/07/13 03:14:35
>>205
そこに挙げてる既存のライブラリで満足できないなら、新しいのを書くしかないだろ。
208:170
08/07/13 08:05:41
170ですが、遅くなって申し訳ありません。まだ解決したとはいえないのですが、>>194っぽい気がしています。
なお、最初に書いた文章が改行大杉と言われたので改行減らしています。読みにくいかもしれません。すみません。
とりあえず
public double Max<T>(T[] src, int offset, int length)
{
double ret;
if(src is float[])
{
float[] srcFloat = src as float[];
int end = offset + length;
for(int i = offset ; i < end; i++)
{
double val = (double)srcFloat[i]
if(val > ret)
ret = val;
}
}
else if(src is double[])
{
(略。明示的キャストをしないこと以外はfloatと同じ)
}
return ret;
}
というようにfloat[]、double[]の型に変換してからキャストするようにするとLOHを食う現象は見られなくなりました。
ただ、今でもキツネにつままれたような気分は抜けないので、もう少し元のコードだと何をやっているか調べてみようと思っています。
>>200で指摘があるように、キャストでヒープを消費するのはわかるんですが、Gen0やGen1ならともかくLOHを食うのは相変わらず解せないので…。
また何かわかったら報告します。ありがとうございました。
209:170
08/07/13 08:07:17
あと、>>208のコードでは対応していませんが、
・キャストは最後に1回やればいい(float、doubleに決め打ちできれば可能)
・Tで受けずに最初からfloat[]、double[]で受けるほうがいい
というのも納得しています。追って対応しようと思います。
ありがとうございました。
210:デフォルトの名無しさん
08/07/13 08:29:38
そうまで限定するならoverloadしたほうが早いような。
211:170
08/07/13 09:29:10
>>210
「Tで受けずに最初からfloat[]、double[]で受けるほうがいい」
はoverloadにすることを考えて書いてました。
212:170
08/07/13 09:31:16
細切れですみません。いずれにしても
>>170のコードだとなぜLOHを侵食する?
という大本の疑問はまだ謎のままなので、
追い追いプロファイラとかで調べてみようと思っています。
213:デフォルトの名無しさん
08/07/13 13:11:43
何かよくわかりませんが、これ↓
やねう企画代表者やねうらお(本名・磯崎元洋)が
・ソフトウェアの不正コピーを行っていた
・労働契約上の違反をしていた
・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、
写真に撮ってアップロードしようとした。
URLリンク(d.hatena.ne.jp)
やねう企画の裏側(競馬の詐欺ソフトの製作現場)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産
URLリンク(www.sia.go.jp)
やねうらおプロフィール
性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。
最終学歴:専門学校卒
主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産
代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』
やねうらお語録
>「ワシのほうが潔癖やと思うんやけどな。
>絶対に違法コピーのソフトしか使わんし。
>たとえば強盗に入ったときに、ちょっとかわいそうになって
>十万円だけ残してったら、おかしいやろ?
>自分の『強盗する』という意思に対して矛盾やろ?
>だからワシは、一個も買ったソフトを使ったことがない!!」
214:デフォルトの名無しさん
08/07/13 13:15:09
コピペ君って馬鹿だな、まで読んだ。
215:デフォルトの名無しさん
08/07/13 13:21:57
最近、やねうらおは弓月(>>213)とか言う真性のキチガイに絡まれている
【自作自演】弓月城太郎氏に関するまとめ【神秘体験】
URLリンク(d.hatena.ne.jp)
216:デフォルトの名無しさん
08/07/13 13:57:02
コピペ君って馬鹿だな、まで読んだ。
217:デフォルトの名無しさん
08/07/13 14:00:45
こっちにまではってやがるw
218:デフォルトの名無しさん
08/07/13 21:54:07
ここまでコピペ
219:デフォルトの名無しさん
08/07/14 11:21:45
何度かここで質問しようとした事があるんだけど、なんでだろう。
書き込みボタン押す直前に閃いて解決してしまう。
220:デフォルトの名無しさん
08/07/14 16:34:41
日記はチラシの裏に
221:デフォルトの名無しさん
08/07/14 16:44:41
やだね
222:デフォルトの名無しさん
08/07/14 17:44:05
じゃあチラシの表でいいや
223:デフォルトの名無しさん
08/07/14 17:45:26
やだね
224:デフォルトの名無しさん
08/07/14 18:46:51
今作ってるプログラムが500行超えた
こんなに長いコード書くの初めて・・・
フォームアプリケーションってめんどいね
225:デフォルトの名無しさん
08/07/14 18:57:13
むしろそんなに大きくないファイルがたくさんできないか?
と思ったら500行か、、、、そりゃテストコード書くんでもなけりゃ
あっというまだべ。
226:デフォルトの名無しさん
08/07/15 12:24:44
データバインドとか使わずに愚直コピーしてるとか?
それでも500ぐらいあっと言う間だろうけど
227:デフォルトの名無しさん
08/07/15 22:48:06
UI絡みは長くなるの仕方なかろう
228:デフォルトの名無しさん
08/07/16 17:14:27
チラシって普通両面に印刷されてるよね。
そういえば昔は片面印刷だったっけ。
229:デフォルトの名無しさん
08/07/16 17:15:27
どことまちがえてるんですか?w
230:デフォルトの名無しさん
08/07/16 22:07:19
マーシャリングについて教えてくれ。
C#からCで書いたDLLのGetImageを呼び、ImageProcデリゲートで画像のデータを受け取りたいんだが、
ImageProcデリゲートの第一引数を何と書いていいか分からない…
【C側】
typedef void (*ImageProc)(unsigned char* pImageBuffer, unsigned int imageSize);
__declspec(dllexport) void GetImage(char* pFileName, ImageProc pImageProc)
{
unsigned char* pImageBuffer = 0; //画像バッファ
unsigned int imageSize = 0; //画像サイズ
//中略:pFileNameの画像を開き、pImageBufferを動的確保し、
//pImageBufferに画像のデータを、imageBufferSizeに画像のサイズを入れる。
pImageProc(pImageBuffer, imageSize);
}
【C#側】
↓???を何と書いていいか分からない…
public delegate void ImageProc(???, UInt32 imageSize);
231:デフォルトの名無しさん
08/07/16 22:16:41
IntPtr
232:デフォルトの名無しさん
08/07/16 22:28:42
string
233:デフォルトの名無しさん
08/07/17 08:51:39
byte[]でいいんじゃね?
推奨できないけどどうしてもというならunsafeつけてbyte*とか
234:デフォルトの名無しさん
08/07/17 11:07:03
正直受け側の実装次第
235:デフォルトの名無しさん
08/07/18 09:35:50
脱線するけどBitmap.LockBitsじゃダメなのか
236:230
08/07/18 11:15:25
>>231で行けました。THX!
【c】
#include <windows.h>
typedef void (CALLBACK* ImageCallBack)(VOID* pImageBuffer, UINT32 imageSize);
【c#】
public delegate void ImageCallBack(IntPtr pImageBuffer, UInt32 imageSize);
public static void ImageCallBackHandler(IntPtr pImageBuffer, UInt32 imageSize)
{
byte[] imageData = new byte[imageSize];
imageData.Initialize();
Marshal.Copy(pImageBuffer, imageData, 0, imageData.Length);
}
237:デフォルトの名無しさん
08/07/18 22:27:57
VisualStdio2005なんですが、使用する.netFrameworkを1.1にして開発に使用する事って可能ですか?
238:デフォルトの名無しさん
08/07/18 22:30:37
いいえ
239:デフォルトの名無しさん
08/07/19 01:03:13
実はできなくもなかったりするんだが、いろいろと面倒なんでお勧めしない。
240:デフォルトの名無しさん
08/07/19 14:35:26
ListViewの詳細表示モードで、ダウンロードの進歩状況を表示するような・・・
例えば、WinnyなどのP2Pソフトによくある横棒グラフに % 表示があるような
ものを表示したいんですが、どのように実装したらいいでしょうか?
とりあえずオーナードローでサブ項目にRectangleで描画したりしてみましたが
あまりにも遅くて実用的ではありません。
もっと効率的な方法があるのでしょうか?
241:デフォルトの名無しさん
08/07/19 14:36:40
それはおそらく実装の方法に問題がある。
そんなに遅くなるはずがない。
242:デフォルトの名無しさん
08/07/19 14:46:42
>>241
いや、それが試しにRectangleの描画処理だけを入れただけのものなんで
ほとんどこれが最少の処理なんですよ
確か、Winnyを作っていた47氏も描画の遅さに悩んでいた記憶があるので
もともとどうやってもある程度の遅さはしょうがないのかもしれませんが
オーナードロー以外にもっと上手い方法があれば教えて頂きたいのですが
243:デフォルトの名無しさん
08/07/19 14:57:24
その部分のコード晒せば今日暇だから改良してみようか
晒せないならしょうがないけど
244:デフォルトの名無しさん
08/07/19 15:13:27
ListViewのDetailモードはバギーだからさもありなん、という気もする。
245:デフォルトの名無しさん
08/07/19 15:21:43
>>243
上記した通り、四角の描画しかしていないんですが
具体的に書きますと
if (e.ColumnIndex == 3) {
e.Graphics.FillRectangle(Brushes.Red, e.Bounds.Left, e.Bounds.Top, percent, e.Bounds.Height);
}
の処理を入れてあるだけの、最小限の物です。
他の余計な処理は一切していません。
246:デフォルトの名無しさん
08/07/19 15:23:38
描画処理が何回呼ばれてるかとか描画に何ms掛かってるかとか調べてみたら
247:デフォルトの名無しさん
08/07/19 16:37:44
>>245
そんなんじゃわからん
普通に軽いのができてしまったぞ
248:デフォルトの名無しさん
08/07/19 17:34:04
ほかの部分が重いんじゃないか?
追加部分をコメントアウトして確認
249:デフォルトの名無しさん
08/07/19 18:43:16
俺のもめちゃ軽い。ちらつきはDoubleBufferedで抑えてみた。
250:デフォルトの名無しさん
08/07/19 19:06:50
追加するときに重いとかいうオチだったり?
251:デフォルトの名無しさん
08/07/19 19:09:28
どうせListViewだし、
0u2007 FIGURE SPACE
0u2588 FULL BLOCK
0u258C LEFT HALF BLOCK
0u2590 RIGHT HALF BLOCK
の手抜きでいいじゃんとか思ってしまう
虫食いなしなら、1/8のまで使えるし
一応こんな感じに
URLリンク(www.imgup.org)
252:デフォルトの名無しさん
08/07/19 19:09:34
実は実行環境が驚くほどプア
253:デフォルトの名無しさん
08/07/19 19:31:09
>>244
ListViewといえばDetailなのにバグ多いよね。
そして改善されない。
254:デフォルトの名無しさん
08/07/19 19:40:35
うわ、疲れて寝てしまった。
>>247
でも、これしか書いてないから他の部分無いんですよ、全く。
>>248
上にも散々書きましたが、他の処理は無いのです。
ListView検証の為にTestListViewというプロジェクトを作って
フォームにListViewを貼り付けただけのプロジェクトなので
描画処理部分以外も、余計な処理が全く無いんですよ。
>>249
やっぱり軽いですか。何で重くなってしまうのか・・・
>>250
動的にデータを追加することは無いです。
>>251
うわ、昔を思い出す処理ですね(w
MSX の SCREEN 1/2 でやっていた時に
そんな感じでゲームのパラメータそんな感じでやってたなぁ
>>252
Pentium-M 1.6GHz なので、それほどプアでも無いと思うのですが。
255:デフォルトの名無しさん
08/07/19 20:46:38
Debugつうオチではない?
256:デフォルトの名無しさん
08/07/19 22:32:15
そんだけのプログラムならうpすればいいのに
257:デフォルトの名無しさん
08/07/19 22:38:16
サブ項目は、一つ一つがリソースを消費するから
数によってはかなり重くなってメモリを消費すると思うが
それとは違う?
258:デフォルトの名無しさん
08/07/19 23:06:06
自分のは10万個とか追加したらスクロールバーでのスクロールははっきり重くなった
マウスホイールでのスクトールは軽いままだけど
259:デフォルトの名無しさん
08/07/19 23:22:24
配列かリストのスライスとかないんでしょうか。
260:デフォルトの名無しさん
08/07/19 23:22:53
自分で作ってください…
261:デフォルトの名無しさん
08/07/19 23:24:17
ちゅうかまず描画の頻度がどの程度なのよ
262:デフォルトの名無しさん
08/07/19 23:28:01
そりゃWM_PAINTとんでくる度だろ
263:デフォルトの名無しさん
08/07/19 23:36:49
オーナードローって言ってるのにねぇ
264:デフォルトの名無しさん
08/07/19 23:41:58
>>254
プロジェクド丸ごとうpしろよ
原因見つけてやるから
265:デフォルトの名無しさん
08/07/19 23:52:00
馬鹿はレスしなくて良いと思うんだ
266:デフォルトの名無しさん
08/07/20 00:02:49
じゃあお前レスすんな
267:デフォルトの名無しさん
08/07/20 00:07:23
オーナニードローのパフォーマンスが悪いのは仕様だと思う。
268:デフォルトの名無しさん
08/07/20 00:10:48
>>267
言いたかっただけだろw
269:デフォルトの名無しさん
08/07/20 00:20:08
俺もやってみたが軽かった
どんな糞コード書けば重くなるんだ?
270:デフォルトの名無しさん
08/07/20 01:09:26
バーの長さをe.SubItem.Textでパーミル指定とかしてみたけど、
10万個の項目でもスムーズに動く。スクロールも無問題
因みに、環境はPemM 1.7GHz/mem 1GB
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4942日前に更新/181 KB
担当:undef