C♯相談室 Part27

このエントリーをはてなブックマークに追加
1名無しさん♯

(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。


過去スレは>>2-5あたり。


関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
2名無しさん♯:2005/11/09(水) 22:56:24
3名無しさん♯:2005/11/09(水) 22:57:01
4デフォルトの名無しさん:2005/11/09(水) 23:01:02
5デフォルトの名無しさん:2005/11/09(水) 23:03:21
6デフォルトの名無しさん:2005/11/09(水) 23:37:27
クラスを内包させる理由がわかりません。
class OuterClass
{
public InnerClass{}
}

ってなぜ内包させるの?
private等でならわかるが・・・
7デフォルトの名無しさん:2005/11/09(水) 23:43:33
>>6
class ListView.Item ...
class TreeView.Item ...

こういうノリ。
8デフォルトの名無しさん:2005/11/09(水) 23:45:24
【狂牛情報】アルツハイマーによる死者が50倍以上に アメリカ

159 - 衆 - 農林水産委員会 - 13号 平成16年04月27日 ○山田委員

エール大学神経病理学科外科部門の研究チームの検討を含め複数の研究で、剖検によりアルツハイマー病
あるいは痴呆症と診断されていた患者の三―一三%が実際はクロイツフェルト・ヤコブ病に罹患していた
ことが判明したとしている。米国では毎年アルツハイマー病と診断される患者が四百万人、痴呆症患者は
数十万人が発生していることから、最も少なく見積もって一万二千人以上のクロイツフェルト・ヤコブ病患者
が検出されず、公式統計に含まれない可能性がある。 注:12万人以上と思われる
                           
実際、アルツハイマー病と診断された死亡患者数は一九七九年には八百五十七例であったものが、
二〇〇〇年には五十倍以上の五万例近くとなった。

159 - 衆 - 農林水産委員会 - 7号 平成16年03月18日 ○松木委員 

記事の中に、アメリカでは、アルツハイマー病あるいは痴呆症と診断される人が年間四百万人いるそう
なんです。複数の研究機関の合同研究によると、このうち三から一三%が実際はヤコブ病であったことが
判明しております。少なく見積もっても十二万人はヤコブ病の公式統計に含まれていない可能性がある。


【狂牛病】米国食肉輸出連合会の米牛肉「安全」パンフを政府調査会座長代理が監修
http://news19.2ch.net/test/read.cgi/newsplus/1129163175/l50

「アルツハイマーや若年性痴呆の中に変異型ヤコブ病患者が」・・米国牛輸入再開に京大医学部教授衝撃的指摘
http://news18.2ch.net/test/read.cgi/dqnplus/1120196765/

【vCJD】牛海綿状脳症(BSE)と同じ病気“日本人発症しやすい”…厚労省研究班
http://news16.2ch.net/test/read.cgi/scienceplus/1088575874/l50

【牛肉】米産牛肉輸入再開で、食品安全委員会、一般からの意見をホームページで募集
http://news19.2ch.net/test/read.cgi/newsplus/1130925735/
9デフォルトの名無しさん:2005/11/09(水) 23:54:22
ネストクラスからは外クラスのprivateメンバが見えるというのもある。普通はstaticメンバしか使えないわけだが、
class OuterClass {
    private int id;
    public class InnerClass : OuterClass {
        public int GetId() {
            return id;
        }
    }
}
なんてコードも有り。乱用はできないが。
10デフォルトの名無しさん:2005/11/10(木) 00:02:45
PCのマイクで喋った言葉を録音して再生したいんです。
DirectShowっていうので出来るっぽいんですが、良い資料とかサンプルはありませんか?
1110:2005/11/10(木) 00:03:22
C#からDirectShowを使うっていうことです。
12デフォルトの名無しさん:2005/11/10(木) 00:05:12
Managed DirectXの記事ってのはほとんど無いので、C++辺りのDirectXの記事を流用。
13デフォルトの名無しさん:2005/11/10(木) 00:45:44
>>9
そんなんプロパディgetでよくね?
14デフォルトの名無しさん:2005/11/10(木) 00:48:55
俺は9ではないがJavaとの相互運用を考えるようになってからは
プロパティを使いたくなくなった
15デフォルトの名無しさん:2005/11/10(木) 00:59:23
質問です。
皆さんはC#をどうやって勉強したでしょうか?

専門学校とか大学で勉強してるのでしょうか?


私は、一から本で勉強してるのですが、自分でちょっとオツムが足りないのかなとへこむほど
なかなか先に進めません。

どっか、学校に行った方がいいのでしょうか・・・・。
16デフォルトの名無しさん:2005/11/10(木) 01:13:35
マジレスすると学校いってもしょうがないと思う。たぶんレベル低い。
できれば知り合いとかにいて色々どんな風にやってるのか見てみるのがいいと思うけど。
とにかく自分で何か作ってみるべし。
17デフォルトの名無しさん:2005/11/10(木) 01:17:45
>>14
getter、setterメソッドを見るとJavaの泥臭い部分を思い出すので素直にプロパティを使ってください。
18デフォルトの名無しさん:2005/11/10(木) 01:31:47
Javaがとっととプロパティサポートすればいいんじゃね?
19デフォルトの名無しさん:2005/11/10(木) 01:34:47
enumが付くくらいだからプロパティが付いてもおかしくないか
20デフォルトの名無しさん:2005/11/10(木) 01:34:48
>>15
作りたいもん作ってりゃ上達する。
21デフォルトの名無しさん:2005/11/10(木) 02:15:08
何も知らずにいきなりC#始めたら、そりゃなかなか理解できんだろうな。
22デフォルトの名無しさん:2005/11/10(木) 02:26:14
そもそも学校でC#とか教えてくれるのでしょうか。

教えてくれる知り合いがいればいいですが、いないですし・・・・。

本読んでやるしかないのかな・・・。
23デフォルトの名無しさん:2005/11/10(木) 06:49:54
>>22
とりあえず貪欲に(C#に限らず)本読みまくってコードを書きまくる。
MSDNをただ読むのもいいな。あれはこれ以上にない参考書だな。
そのとき分からんでも2度目3度目は段々分かるようになるものだ。
人のコード読むのもよし。

ぶっちゃけ継続的にやり続けていくしかないな。どうせどこまでいったって
ずっと勉強し続けなければならんのだから独力で勉強できるようになっと
いたほうがいい。
24デフォルトの名無しさん:2005/11/10(木) 23:41:05
PrinterSettingsの内容を保持して、次回起動時に設定内容を復元したいのですが
XmlSerializerなどではエラーで保存できませんでした
何か良い方法ありませんか?
25デフォルトの名無しさん:2005/11/10(木) 23:43:10
[Serializable] ってのが付いてるだろ
26デフォルトの名無しさん:2005/11/11(金) 00:35:41
DataSetを使って、図書データなどを保存して、検索する。という物を作った場合
100MBのDataSetを使うと、必ずメモリに100MBのデータを読み込んでしまうのでしょうか?
27デフォルトの名無しさん:2005/11/11(金) 03:10:47
なにいってのこのしとは?
28デフォルトの名無しさん:2005/11/11(金) 03:29:04
掲示板で回答もらうのと、テストで組んでみるのってどっちが早いんだろうね。
29デフォルトの名無しさん:2005/11/11(金) 04:57:19
いまVS2005つかってるんですけど、C#の開発にEclipse使ってる人います?
C#の開発に特化する場合でEclipseの使い心地どうなのか知りたいです。
インテリセンスとか、リファクタとか。ぜんぜん知らないんですが、色々な連携するならEclipse、C#だけならVS2005というイメージがあります。
30デフォルトの名無しさん:2005/11/11(金) 05:01:10
31デフォルトの名無しさん:2005/11/11(金) 09:44:06
>>26
ttp://www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html
これを読めば自ずとわかるようになるよ。DataSetのサイズは検索クエリー次第。
32デフォルトの名無しさん:2005/11/11(金) 11:06:53
今2chブラウザつくってるんだけど、webBrowserを使わずに仮想ブラウザ機能をつくりたいんですよ。
何を使って作るのがベストでしょうか?
33デフォルトの名無しさん:2005/11/11(金) 11:24:28
Control から派生させる
34デフォルトの名無しさん:2005/11/11(金) 11:26:34
仮想ブラウザとやらがどんなのを目指してるのか分からないことにはさっぱりだ。
35デフォルトの名無しさん:2005/11/11(金) 11:28:00
ブラウザコンポーネントを使わない2chブラウザって
OpenJane Doe 以外になんかあったっけ
36デフォルトの名無しさん:2005/11/11(金) 18:11:19
>>32
XAML
37デフォルトの名無しさん:2005/11/11(金) 19:20:18
このスレC#で検索しても出てこないと思ったら・・・
C♯かよ
表記統一しろよ
38デフォルトの名無しさん:2005/11/11(金) 19:22:09
#はスレタイにできねぇんだよ馬鹿
39デフォルトの名無しさん:2005/11/11(金) 19:23:31
プログラム板だけ特別に#付きでスレ立てられるようにしてもらおうぜ
40デフォルトの名無しさん:2005/11/11(金) 19:31:06
#なら立てられるだろ
#だと#で検索しても引っかかんだよ
とか思ったが、#のスレって変なのが多いのな
このまま♯でいいよ(´・ω・`)
41デフォルトの名無しさん:2005/11/11(金) 19:45:44
ハッシュはお門違いだしな
42デフォルトの名無しさん:2005/11/11(金) 20:41:33
http://codezine.jp/res/article/1/2.gif

このダイアログで使われているようなコントロールを使いたいのですが、
これは何というコントロールですか?
43デフォルトの名無しさん:2005/11/11(金) 20:47:43
ListView
44デフォルトの名無しさん:2005/11/11(金) 20:49:22
あとはButtonだな、一応w
4542:2005/11/11(金) 20:58:23
>>43-44
ありがとうございます
46デフォルトの名無しさん:2005/11/11(金) 21:08:37
>>45
ユーザ登録すればソースコードをダウンロードできるでしょ
47デフォルトの名無しさん:2005/11/11(金) 22:29:49
>>27-31 ありがとうございます。
データベースは使わずにお手軽に大量データを扱いたい。
検索などが遅いのはよいけど、データのロード(初動)に時間をかけたくない。みたいな感じで何かないかと
微妙な質問でした。
48デフォルトの名無しさん:2005/11/11(金) 23:02:45
Windows2000 IE6.0 ASP.NETでC#でつくってます。

画面にテキストボックスやチェックボックスが縦にいくつか並んでいます。
それをDBに保存するのですが、未チェックや未入力箇所があったら
その箇所が分かるように画面を自動スクロールして該当箇所が分かる
ようにする方法を教えてください。
それか最下部に移動でもかまいません。
現状では更新ボタンを押すとPostBackして必ず画面の最上部に移動してしまいます。
49デフォルトの名無しさん:2005/11/11(金) 23:06:30
上司にC#よりC++の方がいいって言われたんですが、
どうなんでしょうか?
50デフォルトの名無しさん:2005/11/11(金) 23:07:00
状況も分らずこたえられるわけなかんべ
51デフォルトの名無しさん:2005/11/11(金) 23:23:18
>>37
…「#」は「ナンバー」で「♯」が「シャープ」なんだよね…
52デフォルトの名無しさん:2005/11/11(金) 23:30:09
>>25
XmlSerializer使ったらエラーになったので質問しました。
C#2003じゃダメだったけど、試しにC#2005でやったらできました。
53デフォルトの名無しさん:2005/11/11(金) 23:32:54
英語キーボードではシャープを簡単に入力できないから
ナンバーと表記してシャープと読むということらしいぞ
54デフォルトの名無しさん:2005/11/12(土) 00:17:23
Windows FormsでTreeViewとListViewを使ったプログラムランチャーを
(ツリーでグループを作り、リストに項目を並べる)
考えてるんですが、グループをクリックしたら、そのグループに属する
項目をリストに表示、というのが、どうやったらいいのか意外に思いつきません。
ファイルシステム相手なら、FullPathとDirectory.GetFilesでいいんですが
どこかにサンプルとか考え方紹介してるところはないですか?
55デフォルトの名無しさん:2005/11/12(土) 00:23:50
TreeViewItem.Tag にでもぶち込んどけば
56デフォルトの名無しさん:2005/11/12(土) 00:52:37
TreeNodeを派生さてList<T>とかを返すプロパティつける
57デフォルトの名無しさん:2005/11/12(土) 01:31:32
>>50
状況によって
C# > C++
なんてことありえるか?

正直C++で表現できないプログラムはない
58デフォルトの名無しさん:2005/11/12(土) 01:36:51
C++で書こうがチューリングマシンと同レベルのことしか出来ませんよ
59デフォルトの名無しさん:2005/11/12(土) 02:13:03
C++だといろいろ面倒だってことでしょ。
C++のがポータビリティがあって当たり前
60デフォルトの名無しさん:2005/11/12(土) 02:20:09
C++だといろいろ面倒???
意味不明

あなたが使えないだけでは?
61デフォルトの名無しさん:2005/11/12(土) 02:32:47
言語の優劣について語ろうというのなら
「理解が容易である」というのも評価基準になるだろう。
そもそものプログラミング言語の原点はそこなんだから。
62デフォルトの名無しさん:2005/11/12(土) 02:45:16
>>60
面倒です。いろいろと。
63デフォルトの名無しさん:2005/11/12(土) 08:44:17
Microsoft MVP for Visual C#
なんてのはメールの署名に入れている人はアフォ1確でよねw
64デフォルトの名無しさん:2005/11/12(土) 09:00:12
>>57
状況によって
C++ > アセンブラ
なんてことありえるか?

正直アセンブラで表現できないプログラムはない
65デフォルトの名無しさん:2005/11/12(土) 09:07:22
>>64
状況によって
アセンブラ > 機械語
なんてこt(ry
66デフォルトの名無しさん:2005/11/12(土) 09:08:19
アセンブラで出来なくて、機械語で出来ることってあるの?
まあいいや、>>64はうまいな
67デフォルトの名無しさん:2005/11/12(土) 09:13:52
>>66
未だに01で打たないといけない分野もあるんだよ♥
68デフォルトの名無しさん:2005/11/12(土) 09:39:42
状況によって
キーボード > トグルスイッチ
なんて(略)
69デフォルトの名無しさん:2005/11/12(土) 12:22:52
JAVA最強
70デフォルトの名無しさん:2005/11/12(土) 13:57:02
JavaのFindBugs(静的コード分析ツール)に対応する、C#用のツールって
どういったものがあるのでしょうか(商用/非商用問わず)。

7170:2005/11/12(土) 14:18:04
MS製のものとしてはFxCopというものがあるようですね。
http://www.microsoft.com/japan/msdn/library/ja/dnvsent/html/dev.asp
http://www.gotdotnet.com/team/fxcop/
7251:2005/11/12(土) 14:33:54
>>53
初めて知ったよ、ありがとう。
73デフォルトの名無しさん:2005/11/12(土) 15:14:52
c#つかってwindows のDNSサーバの操作ってできますか?
ホストの追加とかその他もろもろ。。
74デフォルトの名無しさん:2005/11/12(土) 15:17:38
# # ナンバー
♯ シャープ
75デフォルトの名無しさん:2005/11/12(土) 15:20:26
コンテキストメニューやらメニューが複数あるアプリケーションでコマンドの管理ってどうやってる?
UserControl1にもメニューとコンテキストメニューがあって
UserControl2にもメニューとコンテキストメニューがあり、一部共通、みたいな
どこかのクラスで管理しておいて、UserControlができるときにコードで割り当てた方がよいのかな
76デフォルトの名無しさん:2005/11/12(土) 15:24:01
>>66
アセンブラはアセンブラの実装以上のことはできない
たとえば昔のアセンブラだとMMXが使えない
77デフォルトの名無しさん:2005/11/12(土) 18:00:23
質問です。

ttp://www.atmarkit.co.jp/fdotnet/special/networkprog/networkprog_01.html

ここにある

ttp://www.atmarkit.co.jp/fdotnet/special/networkprog/TcpFileExchange.zip

このソースを実行してみたのですがconnectに失敗します。
これはPCのネット環境の方が問題あるのでしょうか・・・
78デフォルトの名無しさん:2005/11/12(土) 18:10:12
どう失敗してるのかも分からないのに答えられるわけ無いだろ
ソースがあるんだから例外トラップぐらいしろと
79デフォルトの名無しさん:2005/11/12(土) 19:14:11
基本的な質問なんだけど、
Debug版のexeとRelease版のexeってどう違うの?
サイズとか動作速度とかが違うの?
80デフォルトの名無しさん:2005/11/12(土) 19:16:26
>>79
最適化は、Debug 版はデフォルトでオフ、Release 版はデフォルトで ON になってる。
あと Debug 版にはデバッグ情報が入ってる。実行速度には影響しないけど、これ公開すると痛い人は痛い。
81デフォルトの名無しさん:2005/11/12(土) 19:17:02
痛いとか以前にライセンス違反ですから
8279:2005/11/12(土) 19:35:29
レストンクス
配布は基本的にReleaseってことか
83デフォルトの名無しさん:2005/11/12(土) 20:12:11
hImageSmall = SHGetFileInfo(value, 0, ref shfi,
(uint)Marshal.SizeOf(shfi),
SHGFI_ICON | SHGFI_SMALLICON);
bool ret;
ret=CloseHandle(hImageSmall);
ret=CloseHandle(shfi.hIcon);

で取得したハンドルを開放するにはどうしたらいいんでしょう?CloseHandleで開放しようとしてもfalseで帰ってきてしまい、GDIやUserを食いつぶしてしまいます・・・(´・ω・`)
84デフォルトの名無しさん:2005/11/12(土) 20:45:04
DesignerSerializerを指定しないときの
DesignerSerializerって何が使われるんでしょうか?
(デフォルトって意味で)
85デフォルトの名無しさん:2005/11/12(土) 21:12:55
>>83
ちゃんとMSDN読めよ。

> If SHGetFileInfo returns an icon handle in the hIcon member of
> the SHFILEINFO structure pointed to by psfi, you are responsible for
> freeing it with DestroyIcon when you no longer need it.
86デフォルトの名無しさん:2005/11/13(日) 03:17:32
読み込んだ8bitBMPファイルのカラーパレットとピクセルデータを
取得したいんですがざっくりとでもいいんでやり方教えてください
8786:2005/11/13(日) 03:25:21
BitmapDataというやつでピクセルのインデックス情報は取得できるのですが、
カラーパレットをどう取得していいのか分かりません。
8848:2005/11/13(日) 03:31:54
WebProg板というのがあったのでそちらで質問します。失礼しました。
8986:2005/11/13(日) 05:15:10
Bitmapの方にPaletteってのがあるのに気づきました。。失礼しました。
90デフォルトの名無しさん:2005/11/13(日) 05:27:11
sn
91デフォルトの名無しさん:2005/11/13(日) 11:07:54
class a{
public static event A B
}
ってやると、

a.Bでアクセスできるけど、(new a()).Bではできないのね。
半日悩んだ…
C++のstaticもこんな仕様だっけ?
92デフォルトの名無しさん:2005/11/13(日) 11:47:53
そんな汚らわしい表記無くて結構
93デフォルトの名無しさん:2005/11/13(日) 12:22:26
C++でも無理だろ、そんな表記
94デフォルトの名無しさん:2005/11/13(日) 15:32:45
>>91
インスタンスからstaticメソッド呼べるのを見るとJavaを思い出すよ……
95デフォルトの名無しさん:2005/11/13(日) 16:22:27
C# 3.0 では extension method で同じようなことになってしまうわけだが
96デフォルトの名無しさん:2005/11/13(日) 16:28:12
つかえねぇ。まじでつかえねぇ。
多重継承使えないので内部データ的にツリー構造で管理されるべきWindowがあるんだけど、そのWindowの親を知りたいときに多重継承できれば
class Window:WindowBase,TreeNode{}とやってWindow自体が親のポインタ知れるのに、
できないからしょうがなくWindowに親のポインタセットするとかへんなことしなきゃ何ね。
すごい汚い(´・ω・`)ショボーン
97デフォルトの名無しさん:2005/11/13(日) 16:34:04
>>95
拡張メソッドは自分自身を引数に渡すんだから文脈が違う。
98デフォルトの名無しさん:2005/11/13(日) 17:47:32
パブリック親ポインタプロパティはデフォだね。
99デフォルトの名無しさん:2005/11/13(日) 17:51:17
プロテクティドとパブリックの間のアクセス修飾子がほしいな。確かに。
100デフォルトの名無しさん:2005/11/13(日) 18:17:53
internalなり内部クラスなりがあるじゃないか
101デフォルトの名無しさん:2005/11/13(日) 18:36:24
は?
102デフォルトの名無しさん:2005/11/13(日) 19:46:53
>>96
なぜC++つかわないの?
C#なんてマジ使えないっていうか、ほとんど使われていませんが?
103デフォルトの名無しさん:2005/11/13(日) 19:50:27
>>102
そうか。
104デフォルトの名無しさん:2005/11/13(日) 19:52:37
みんな使ってるというのは開発環境選択の根拠としては弱いよ
105デフォルトの名無しさん:2005/11/13(日) 19:54:47
>>102
ご飯のない民衆にケーキを食べればいいのにといってるようなもんだな。
106デフォルトの名無しさん:2005/11/13(日) 19:59:57
開発環境が、アトリビュートみて、リフレクションしてメソッドを補ってくれるのは便利。
今後、こういう開発が主流になるのかな。
107デフォルトの名無しさん:2005/11/13(日) 20:58:16
VC++ってVB使ってる奴と同じ扱いになるんだろな
108デフォルトの名無しさん:2005/11/13(日) 22:03:19
>>107
Windowsアプリケーション開発においてはな。
109デフォルトの名無しさん:2005/11/13(日) 22:40:46
VC++6は今までの開発環境の中では最強だよ
VB,VC#なんてVC++6と比べたら鼻くそ
110デフォルトの名無しさん:2005/11/13(日) 22:44:57
>>109
C++使えるならC#なんて造作もなく(それこそ流し読み程度で)覚えられる代物なのに
お前は本当にC++使えるのか?
111デフォルトの名無しさん:2005/11/13(日) 22:45:07
変なのが迷い込んで来たな・・
そういうもれもvc7.1使いだが
vc7.1>>超えられない壁>>vc6ですよ
112デフォルトの名無しさん:2005/11/13(日) 22:54:07
vc8>>超えられない壁vc7.1>>超えられない壁>>vc6
113デフォルトの名無しさん:2005/11/13(日) 23:40:11
Lisp>>>>>Java>>C# >vc8>>超えられない壁vc7.1>>超えられない壁>>vc6
114デフォルトの名無しさん:2005/11/13(日) 23:45:15
vc6>>>>越えられない壁>>>>>Lisp
115デフォルトの名無しさん:2005/11/13(日) 23:48:33
低レベルのタイトな部分はVC++でDLL作って
C#でGUI作ってウマーじゃないの?
俺空気読めてない?
116デフォルトの名無しさん:2005/11/14(月) 00:04:35
そこまでするなら全部C++でいいんだよ
あっちだって.NETでいいなら大差ないんだから

>>110
考え方や文化が別物
117デフォルトの名無しさん:2005/11/14(月) 00:04:59
>>115
いや、こいつらは低レベルっていうとファビョる奴らだからw
118デフォルトの名無しさん:2005/11/14(月) 00:10:15
>>115
それをやるにはC#のGUIがもっとさくさく動いてくれないときついんだけど。
GUI以外はそれほど気になるほど遅くないんだけど。
119デフォルトの名無しさん:2005/11/14(月) 00:13:43
結局VB6+VCっていうパターンになるんだな
120デフォルトの名無しさん:2005/11/14(月) 00:34:55
なんねーよw
121デフォルトの名無しさん:2005/11/14(月) 01:24:36
ATL+.Netならオケ
MFCは終了。
122デフォルトの名無しさん:2005/11/14(月) 01:26:22
GEnericsになれるとVCのテンプレートのエラーメッセージの不可解さには泣けてくる。
123デフォルトの名無しさん:2005/11/14(月) 01:41:09
>>122
Genericsもリフレクション使って開発環境がクラスに展開してるのかな?
アセンブリにGenerics情報つけといて、起動時にリフレクションしてるのかな?
どっちだろ。

そう考えると、アトリビュートのシリアライザブルなんかも、起動時にメソッド
足してるんだろうか?
124デフォルトの名無しさん:2005/11/14(月) 08:56:43
型パラメータによって最適化された型を実行時に作成
125デフォルトの名無しさん:2005/11/14(月) 09:43:32
インターネット上に存在する音楽や画像などのデータを保存するには
どのようにしたらいいのですか?
126デフォルトの名無しさん:2005/11/14(月) 09:49:35
馬鹿は WebClient でも使ってろ
127デフォルトの名無しさん:2005/11/14(月) 09:58:10
>>126
解決した
128デフォルトの名無しさん:2005/11/14(月) 18:13:22
馬鹿じゃないけどWebClient使ってる
129デフォルトの名無しさん:2005/11/14(月) 21:46:15
俺も俺も
130デフォルトの名無しさん:2005/11/14(月) 21:54:43
じゃあ俺はFirefoxで保存する。
131デフォルトの名無しさん:2005/11/14(月) 21:57:56
俺はwsock使って直接やってる、これ最強
132デフォルトの名無しさん:2005/11/14(月) 22:21:55
C#っていうか.NET Frameworkで、プロパティシートってありませんか?
OK, キャンセル、適用ボタンとタブコントロールでできているダイアログです。
自作すると適用ボタンの有効化が面倒なのです(全コントロールに変更イベント
ハンドラを追加しないといけないから)
133デフォルトの名無しさん:2005/11/14(月) 22:29:12
>>132
プロパティグリッドならあるが。

というか一回自作すればあとはそれを使いまわせる気がする。
134デフォルトの名無しさん:2005/11/14(月) 22:48:10
RichTextBoxを普通にフォームに貼り付けて使ってます。
フォームのOpacityを0%にして、完全に透明にしつつ、文字の表示だけ不透明にすることって出来ますか?

フォームもRichtextBoxも透明な状態で、デスクトップ画像を背景に、文字だけが浮かんで見えるようにしたいんです。
135デフォルトの名無しさん:2005/11/14(月) 23:01:40
Form.Region で RichTextBox だけ表示されるようにしてから
Form.TransparencyColor に RichTextBox の背景色を指定するとか
136デフォルトの名無しさん:2005/11/15(火) 20:21:51
>>118
GDI+が遅いんじゃないのか?
コントロールの描画コード書いてて思うんだが、DrawImageが物凄いボトルネックになる。
BitBltにしたら、Graphics系→GDI互換ハンドルの変換オーバヘッドで余計に遅くなった orz
もうちょっと速いDrawImageみたいなメソッドはないだろうか…。
137デフォルトの名無しさん:2005/11/15(火) 21:01:17
DrawImageはパラメータの指定の仕方で劇速から劇重まで変化するよなー
138デフォルトの名無しさん:2005/11/15(火) 21:27:26
パラメータっていうか、オーバーロードな。
矩形選択が遅いのは使いづらい。
139デフォルトの名無しさん:2005/11/16(水) 00:38:17
どの指定の仕方が遅いとか早いとかの一覧ってどこかにないんですかねー
140デフォルトの名無しさん:2005/11/16(水) 01:06:08
確かに30個もあるとやる気がうせるな
141デフォルトの名無しさん:2005/11/16(水) 01:12:58
リストクラスのようなもの作ってるんだが、行の移動やスクロールでCPU100%近くいく・・・orz
確かに色々余計なことやってるんだけど、遅すぎ。
142デフォルトの名無しさん:2005/11/16(水) 01:14:11
どこまで効率が悪いリストなんだ
143デフォルトの名無しさん:2005/11/16(水) 01:35:46
・static class
 → VB の標準モジュールと同じ

・LINQ
 → PL/SQL と同じ

あってるかな
144デフォルトの名無しさん:2005/11/16(水) 01:48:51
C#でMSDEとかつか運場合、何で接続するのが早いの?
145デフォルトの名無しさん:2005/11/16(水) 01:58:18
とかってなんだ とかって
146デフォルトの名無しさん:2005/11/16(水) 02:47:43
MSDEとかアクセスとかSQLサーバーのことと思われ
147デフォルトの名無しさん:2005/11/16(水) 03:03:11
>>141
たぶんおまいのほうに問題がある
148141:2005/11/16(水) 03:13:38
んースクロールだと次のような感じにやってるんだけど何が間違い?

ダブルバッファー使用
15行表示していた場合で一行移動するときの残りの14行分をバッファーのビットマップからテンプのビットマップに転送、
それを元のビットマップにずらして転送、画面に転送
ずらしたぶんを内部データから描画。

計3回ビットマップ転送してるのが遅いのか?
149デフォルトの名無しさん:2005/11/16(水) 03:15:11
あるオブジェクトのクローンを作るメソッドは何でしょうか?

Hoge hoge1 = new Hoge();
Hoge hoge2 = hoge1.Copy();

でhoge2を消したり中身を弄ってもhoge1には影響しないようにしたいのですが
150デフォルトの名無しさん:2005/11/16(水) 03:19:35
仮想リストビュー使ってるか?
151141:2005/11/16(水) 03:23:02
>>150
仮想リストビューって何?
152デフォルトの名無しさん:2005/11/16(水) 04:12:30
そのぐらいググレよ・・
153デフォルトの名無しさん:2005/11/16(水) 12:33:56
>>149
System.ObjectにはprotectedメソッドとしてMemberwiseCloneメソッドがある。
一般的には、ICloneableを実装してそれで処理する。
154141:2005/11/16(水) 14:58:25
失礼しました。見てきました。今は全部独自実装してるので仮想リストビューは使っていません。
List<>で管理されるデータを更新に必要な部分だけ参照するようにして表示などを行っています。
ただその表示においてスケーリングなどをサポートするために裏に色々な仕組みを入れているのでかなり遅くなってるとは思います。

155デフォルトの名無しさん:2005/11/16(水) 15:15:27
>>148
取り敢えず、どの処理がネックになってるのかを探すのが先だと思う。

その上で、
・画面からバッファに対してスクロール後の位置に転送。
・バッファに対して、未描画部分を描画。
・バッファから画面に転送。
の方がマシな気がする。

つーか、Win32で言う所のScrollWindowEx()らしきものは無いのかな?
…無さそうね。(涙)
156155:2005/11/16(水) 16:03:27
暇をみて調べてみた。

http://www.atmarkit.co.jp/fdotnet/practprog/wisearch02/wisearch02_01.html
ScrollableControlの機能を使うのがセオリーなのか…。

最悪ScrollWindowExをDllImport(ry
157141:2005/11/16(水) 17:05:08
>>155
ですね。2005express入れたらパフォーマンス関係のツールが消えたのがネックですが。
現在画面のサイズと同サイズのビットマップを作って画面状態を保持しています。
画面からバッファにコピーというのも可能なんですか?そうすると一手間省けますけど、いまいちデータソースとして信用ならない気もしますが。
ScrollableCotrolとかは、現在独自にUI周りをControlなどを使わないで実装してるので使えないです・・・
158155:2005/11/16(水) 17:37:09
>>141
画面をソースにする事は出来ないですね。適当に書いてしまってスマンです。
155は無かった事に…。

やっぱり
http://pinvoke.net/default.aspx/user32.ScrollWindowEx
しか無いような気がします。
159デフォルトの名無しさん:2005/11/16(水) 21:47:25
DllImportは積極的に活用すべき
そうすればmonoを排除できる
160デフォルトの名無しさん:2005/11/16(水) 23:20:08
排除することに何の利点が?
161デフォルトの名無しさん:2005/11/16(水) 23:34:47
気分が晴れる
162デフォルトの名無しさん:2005/11/17(木) 01:39:17
1つのソリューションに17程度のプロジェクトがあるソリューションがあるのですが、
IDEは重いし、エディタも使いづらいのでコマンドラインからメイクしたいんですが、
どうすればいいのでしょうか?
163デフォルトの名無しさん:2005/11/17(木) 01:59:55
MSBuild.exe にソリューションファイルを渡す
164デフォルトの名無しさん:2005/11/17(木) 09:30:57
2005の対応は知らんけど、nantも結構便利だよ。
165デフォルトの名無しさん:2005/11/17(木) 20:26:39
>>162
VS2003なら

devenv solution.sln /build Release

だっけかな
166デフォルトの名無しさん:2005/11/17(木) 21:06:20
メモリ容量よりも大きなファイルの暗号化に対応するため、
ファイルをメモリに10MBずつ読み込んで暗号化処理して、
それをHDに書き込んでから次の10MBを読み込むようにしたいのですが、
どのようにすればその機能を実現できますか?
167デフォルトの名無しさん:2005/11/17(木) 21:07:39
気合で
168デフォルトの名無しさん:2005/11/17(木) 21:11:13
1.ファイルをメモリに10MB読み込む
2.暗号化処理
3.HDに書き込む
4.1に戻る
169デフォルトの名無しさん:2005/11/17(木) 21:22:51
つか.NETなら暗号化にCryptoStream使うのが自然だし、
それなら読み込み・書き込み・Flushを繰り返していけば良いじゃん
170デフォルトの名無しさん:2005/11/17(木) 22:21:51
System.Diagnostics.Debug.WriteLine("スタート!");
で出力ウィンドウに出力されない

なにか設定が必要ですか???
171デフォルトの名無しさん:2005/11/17(木) 22:34:25
>>170
Debugビルドじゃないと表示されないけど、大丈夫?
172デフォルトの名無しさん:2005/11/17(木) 22:36:27
>>170
Output をリダイレクトする設定にしてないんじゃね?
173デフォルトの名無しさん:2005/11/17(木) 22:39:58
>>172
Output をリダイレクトする設定とは
どこを確認すればいいですか?
174デフォルトの名無しさん:2005/11/17(木) 22:53:07
設定ダイアログを全部見直せ
175デフォルトの名無しさん:2005/11/17(木) 23:11:48
解決しました
176デフォルトの名無しさん:2005/11/18(金) 01:10:40
C#は画面周りをGDI使うようにすれば少しは早くなるんか?誰か試した人居る?
177デフォルトの名無しさん:2005/11/18(金) 01:12:02
>>176
使う関数による
178デフォルトの名無しさん:2005/11/18(金) 01:15:15
>>176
Windows Forms 2.0で
GDI+→GDIになった
179デフォルトの名無しさん:2005/11/18(金) 01:16:52
>>178
なじぇ
180デフォルトの名無しさん:2005/11/18(金) 07:38:56
その方が速いからだろ?
一応一括で切り替えられる
DrawingはGDI+のままだぞ
181デフォルトの名無しさん:2005/11/18(金) 09:35:21
ということはあまりきにしないでつかっててもGDIの速度を得られてるっていうこと?
182デフォルトの名無しさん:2005/11/18(金) 09:39:12
DataTableに一行ずつ行を追加していくと
追加した順番にDataTableに格納されるのでしょうか?

 あいうえお
 かきくけこ
 さしすせそ

つまり,DataTable型の変数tableにあ行から順に追加した場合
table[2][1]でアクセスすれば「し」が取得できることは保障されるのでしょうか?
183デフォルトの名無しさん:2005/11/18(金) 09:48:59
保証はされない 実装依存
184デフォルトの名無しさん:2005/11/18(金) 16:33:39
初心者、質問お願いします。

「普通、変数は プライベートに設定して、パブリックのプロパティーや関数で変数を使う」と読んだのですが、
プロパティーや関数で外のクラスから変数を知ったり、変えたり出来るなら、変数はパブリックにしても問題ないと思うのですが、なぜ変数はプライベートにするのですか?
185デフォルトの名無しさん:2005/11/18(金) 16:35:47
しばらく使ってたらわかる
186デフォルトの名無しさん:2005/11/18(金) 17:09:12
getXXX、setXXX方式だとセッタ読んでるとこだけ検索とかできるけどプロパティだと見つけづらくない?
VS2005だとgetの方にカーソル合わせて呼び出してるとこ一覧とか出せるのかな?
187デフォルトの名無しさん:2005/11/18(金) 17:17:56
>>184
例えば、縦・横・面積を持つクラスがある場合、クラスに変数として
int height, width, area ;
とか宣言して、プロパティに
int Height { get { return height ; } set { height = value ; area = width * height ; }}
とか書くと、privateにする意味がわかると思う。

このように変数の値を変更することによって、クラスの状態が変わる場合に、
変数はprivateで宣言し直接操作できないようにし、プロパティへのアクセスで
値の変更に伴う処理を行うことで便利。

変数の値の変更に処理が伴わないのであれば、publicでint Height とか宣言してても
かまわないし効率はいいと思うが、オブジェクト指向厨とかがいちいち突っ込んでくる場合がある。
その場合は、「オブジェクト指向って何?」とかいってわからない不利をしたり、
説明されても、「難しくてわからん」といって、あまり相手をしないほうがコーディングは進む。
188デフォルトの名無しさん:2005/11/18(金) 17:21:53
> 効率はいいと思うが
JITコンパイルされる時にインライン展開されるので効率は変わらないはずでは。
189デフォルトの名無しさん:2005/11/18(金) 17:27:46
>>184
双方向データバインディングとか使うとありがたみがわかるかも

public string Name {
    get { 
        return name;
    }
    set {
        name = value;
        if (NameChanged != null) {
            NameChanged(this, EventArgs.Empty);
        }
    }    
}
190デフォルトの名無しさん:2005/11/18(金) 17:44:00
>>188
コーディング量です。
191デフォルトの名無しさん:2005/11/18(金) 18:00:53
>>189

「双方向データバインディング」ググったけど検索結果0でしたが、SET で if を使えばありがたみがわかるということですね。

ありがと
192デフォルトの名無しさん:2005/11/18(金) 18:07:02
>>186
「シンボルの検索」(ALT+F12)でプロパティ名を入れてみそ。
193デフォルトの名無しさん:2005/11/18(金) 18:07:44
>>187

set { height = value ; area = width * height ; }}

Height のプロパティーで area もセットできるとは知りませんでした。 いや〜、勉強になります。
194デフォルトの名無しさん:2005/11/18(金) 20:57:30
PanelなどのダブルバファリングをOnにするのは相変わらず継承しないとだめなんですかね?
ダブルバファリングをOnにするためだけに継承するのにちょっと抵抗あるんですけど
そんなもんですか?
2.0でDoubleBufferedっていうプロパティがあって期待したのに・・
195デフォルトの名無しさん:2005/11/18(金) 21:22:59
アプリケーションのいろいろな設定を行うためにダイアログを利用すると思いますが
ダイアログで設定した内容をメイン側と、どういう風にやり取りをするのでしょうか?

設定内容とデータ構造はどのようにしますか?
196デフォルトの名無しさん:2005/11/18(金) 21:42:26
>>195
まずFormに設定内容のためのpublicなプロパティを持たせるだろ

インスタンスのプロパティに初期値を突っ込んでからShowDialogする
FormのLoadでコントロールにプロパティの内容を表示したりバインドしたりする
プロパティへの代入時にやっといてもいい
ShowDialogの戻りがCancelだったらなにもしない
OKだったらインスタンスをDisposeする前にプロパティから入力値を取り出す

データ構造は、ファイル名だけくらいならstringでいいし、フォント設定なら
Fontだし、DBのレコード編集ならDataRowそのまま渡してもいいだろうし
ほかのマスターでコンボを作らなきゃいかんならそのDataTableを渡せばいいし
雑多な値が複数あるなら構造体やクラスを作るとか。

System.Windows.FormsのなんちゃらDialogクラスが参考になるかと。
197デフォルトの名無しさん:2005/11/18(金) 22:51:33
インデクサ市ね
・・・C#最強厨が、インデクサ、インデクサってウルサイ
ただの演算子のオーバーロードじゃないのか?
なんで、あんなに拘るのだ・・・あいつは
198デフォルトの名無しさん:2005/11/18(金) 23:11:03
インデクサって、VBの既定のプロパティが引数取るものオンリーになったものってことだよね?
199デフォルトの名無しさん:2005/11/18(金) 23:13:53
引数を取らないデフォルトプロパティってどんなだ?
200デフォルトの名無しさん:2005/11/18(金) 23:38:20
>>197
[] 演算子のオーバーロードに見えるけど、
実際はインデックス付きのプロパティ。
201デフォルトの名無しさん:2005/11/18(金) 23:46:07
むしろメソッドとプロパティの中間。
202デフォルトの名無しさん:2005/11/19(土) 00:30:17
メソパティ
203デフォルトの名無しさん:2005/11/19(土) 00:36:28
ソレダ!
204デフォルトの名無しさん:2005/11/19(土) 01:08:08
プロパティも結局はメソッドだし
205デフォルトの名無しさん:2005/11/19(土) 01:15:53
>>204
そんなもんこのスレの住人なら誰でも知ってる。
今してる話はインデクサの性質についてであって内部的な話じゃない。
206デフォルトの名無しさん:2005/11/19(土) 01:25:42
引数付きプロパティがないからインデクサをつけただけなんじゃね
207デフォルトの名無しさん:2005/11/19(土) 01:39:35
class X {
  public X this [X x] {
    get { return x; }
  }
}
x = x[x[x[x[x[x[x[x[x]]]]]]]]]]]]]];
208デフォルトの名無しさん:2005/11/19(土) 01:50:56
インデクサはいらない機能なんじゃないかなと思ってきた
コレクション関係のクラスではあってもいいけど
209デフォルトの名無しさん:2005/11/19(土) 01:57:57
クリスタルレポートを使用した帳票をPDF形式にして
WEBアプリを作成しています。
ただ、ディプロイメントを作成して、
開発環境の入っていないところにインストールしてみたところ、
下記のような例外が発生して、
帳票の表示ができませんでした。

ErrorID : LoadingReportFailed,
スタックトレース :
CrystalDecisions.CrystalReports.Engine.LoadSaveReportException: レポートのロードに失敗しました。 at .I(String , EngineExceptionErrorID ) at
.E(String , Int32 ) at
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String
reportName, OpenReportMethod openMethod, Int16 parentJob) at
CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName,
OpenReportMethod openMethod, Int16 parentJob) at
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(Object
value) at EfpCustomer.FrmReportVies.Page_Load(Object sender, EventArgs e)

ディプロイメントは、
WEBディプロイメントではく、
Windowsディプロイメントとして作成して、
vbsにてIISに仮想ディレクトリとして登録するようにしてあります。
WEBディプロイメントにて作成して、IISのWEBサーバのディレクトリに
インストールした際には、帳票の表示もできるのですが、
Windowsディプロイメントとして作成して、仮想ディレクトリとして追加すると
上記のようなエラーになってしまいます。

ディレクトリのアクセス権限の問題かと思い、
IISのワーカプロセスアカウントや、インターネットゲストアカウント、
ASPNETアカウントをアクセス権限に追加してもだめでした。

なにかご存知でしたらお願いいたします。
210デフォルトの名無しさん:2005/11/19(土) 08:42:28
Exceptionの一覧はどこで見れるか教えてください。
211デフォルトの名無しさん:2005/11/19(土) 12:25:04
MenuItem item = new MenuItem(menuName[i]);
item.Index = Convert.ToInt32(menuIndex[i]);
item.Click += new EventHandler(this.AddMenuItem_Click);
this.mainMenu.Items.Add(item);

これをフォームロード時に行いたいのですが、
なぜかインデックスが適用されません
どうしてこうなるのですか?
ちなみにmenuNameとmenuIndexは文字列型で
ファイル読み込みによって取得します
212デフォルトの名無しさん:2005/11/19(土) 12:36:42
Addしてからじゃないと無理じゃないかな
213デフォルトの名無しさん:2005/11/19(土) 12:40:30
>>210
.NET Reflector (VS2005 でもできたような) で、
System.Exception の派生クラスを見ればOK。
214211:2005/11/19(土) 13:07:12
>>212
解決しました
ありがとです
215デフォルトの名無しさん:2005/11/19(土) 16:09:52
2.0でなんかImeModeプロパティってATOKとかで動作してますか?
マイナーなJapanistなんて使ってると上手く動かない
まあしょうがないけど
216デフォルトの名無しさん:2005/11/19(土) 17:05:11
>>199
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet12/vb6tonet12_01.html
VB6.0の機能。
これのせいで、set文なんてものが必要だったわけだが、
.netで既定のプロパティと一緒に廃止された。
217デフォルトの名無しさん:2005/11/19(土) 17:46:07
>>216
ADOのレコードセットがそれ使ってますね。
ADO.Rs.Fields.Item(0) を ADO.Rs(0) とかけるのがそれ。
218デフォルトの名無しさん:2005/11/19(土) 18:55:48
2.0SDKをインストールすれば、1.1のSDKってもう要らないの?
219デフォルトの名無しさん:2005/11/19(土) 21:47:33
質問です。
Windowsアプリケーションを作成しているのですが、
各フォームで使い回すインスタンスをどのように共有していいかわかりません。
ASP.NETでの、HttpSessionState#Addのようなことを行いたいのですが。。。
220デフォルトの名無しさん:2005/11/19(土) 21:48:37
めしどこか頼む
221デフォルトの名無しさん:2005/11/19(土) 21:54:30
static
222デフォルトの名無しさん:2005/11/20(日) 01:16:43
signleton
223デフォルトの名無しさん:2005/11/20(日) 02:16:18
>>218
1.1で開発することがないなら要らない。
224デフォルトの名無しさん:2005/11/20(日) 02:32:51
開発なんてたいそうなことは必要ありません。
ただお遊び程度のものが作れれば十分です。
225デフォルトの名無しさん:2005/11/20(日) 02:42:50
1.1の実行環境で動作するものを2.0のSDKで作ることはできないの?
226デフォルトの名無しさん:2005/11/20(日) 02:47:52
そりゃ、SDKのバージョンが違うんだから基本的には作れないだろ。
227デフォルトの名無しさん:2005/11/20(日) 02:55:34
>>225
基本的にはどころか、まったくできません。
228デフォルトの名無しさん:2005/11/20(日) 03:01:24
なんで?wwww
229デフォルトの名無しさん:2005/11/20(日) 03:03:01
>>225
How to create Framework 1.1 assembly using VS2005
http://weblogs.asp.net/israelio/archive/2005/06/08/410811.aspx
230デフォルトの名無しさん:2005/11/20(日) 03:03:01
だってDirectXなら新しい奴で古いバージョンの開発できるじゃん
231デフォルトの名無しさん:2005/11/20(日) 03:03:36
csc.exeも各種dllも実行環境の方に存在するから、別にSDKが無くても実行環境さえあれば作れるよ。
232デフォルトの名無しさん:2005/11/20(日) 03:39:11
DirectXなんて糞は舐めたことないので分からん
233デフォルトの名無しさん:2005/11/20(日) 03:41:54
んじゃ黙ってろよクズが
234デフォルトの名無しさん:2005/11/20(日) 10:03:43
はい
235デフォルトの名無しさん:2005/11/20(日) 11:58:22
C#ジェネリクスとテンプレート両方実装してくれりゃいいのに・・・
クラス制約のせいでできないことが多いぞゴラァ
236デフォルトの名無しさん:2005/11/20(日) 12:35:32
たとえば?
237デフォルトの名無しさん:2005/11/20(日) 14:57:24
>>235
ジェネリクスとテンプレートを理解できていないんですねw
238デフォルトの名無しさん:2005/11/20(日) 15:01:44
っていうか、同じじゃん
言い方が違うだけでしょ

インスタンスとオブジェクトみたいなもん
239デフォルトの名無しさん:2005/11/20(日) 15:20:18
>>238 ぜんぜん違う。

ところでマルチスレッドのデッドロックもしくはそれに近い状態を検知することはできないだろうか?
今DiagosticsのなかのProcessThreadで状態を見てるんだけれどどこでどこが待ってるのかがわかりません。
そのスレッドのコールスタックなどを引っ張ってこれれば何とかなると思うんですが、どうでしょう?
240デフォルトの名無しさん:2005/11/20(日) 16:15:58
>>239

そんなことも知らなくて・・・
























hw
241デフォルトの名無しさん:2005/11/20(日) 17:01:26
>>239はC++あがりのバカ
242デフォルトの名無しさん:2005/11/20(日) 17:08:05
渋木宏明
↑こいつ、マジうぜー

Microsoft MVP for Visual C#
ってなんだよ。w
243デフォルトの名無しさん:2005/11/20(日) 17:09:10
僻み乙
244デフォルトの名無しさん:2005/11/20(日) 17:10:30
>>242
氏ね
お前がうざい
245デフォルトの名無しさん:2005/11/20(日) 17:24:36
>>241
デバッグ時だったらコールスタックとか持ってこれるだろうが。
こいつこそ.NET -> 何も触れないと脊髄反射してる池沼
246デフォルトの名無しさん:2005/11/20(日) 21:02:52
ある画像BMPの一部、例えば(0,0),(50,50)を透明な青で透かしたいのですが、
どういった画像処理のテクニックを使えばいいのでしょうか?
247デフォルトの名無しさん:2005/11/20(日) 21:04:44
>>246
アルファブレンディングしたいの?
248デフォルトの名無しさん:2005/11/20(日) 21:14:27
>>247
WindowsXPでフォルダ内のファイルをマウスでドラックアンドドロップで選択しようとすると
薄い青色で矩形がでますよね。しかもファイル名はもちろん見えます
このような、感じです。
249デフォルトの名無しさん:2005/11/20(日) 21:17:02
素直にαブレンディングしたいと言いなさい。
250デフォルトの名無しさん:2005/11/20(日) 22:30:08
だったら素直に教えろや
251デフォルトの名無しさん:2005/11/20(日) 22:34:31
Color.FromArgb → Graphics.DrawRectangle
252デフォルトの名無しさん:2005/11/20(日) 22:35:38
わろすわろす
253デフォルトの名無しさん:2005/11/20(日) 22:37:14
C#で他のアプリを操作するアプリを開発しています。
主にSendMessageを使って行っていて
テキストボックスやラベルに関してはデータの取得/設定が出来るのですが
ListViewコントロールから文字列を取得することに躓いております。

LVITEM構造体に対してLVM_GETITEMを行えばよいのだと思いますが、
lParamに入れたLVITEM構造体が、うまくターゲットのアプリに届かないようです。
Spy++で確認すると、値がセットした値と全然違っています。

同じように、他のアプリケーションからAPIを用いて
他プロセスのリストビューから値を取得する方法が書かれたページor方法がありますでしょうか。
よろしくお願いします。
254253:2005/11/20(日) 22:38:23
[DllImport("user32.dll")]
public static extern IntPtr SendMessage (IntPtr hWnd , int msg , IntPtr wp, ref LVITEM lv);

public struct LVITEM
{
public int mask;
public int iItem;
public int iSubItem;
public int state;
public int stateMask;
public byte[] pszText;
public int cchTextMax;
public int iImage;
public int lParam;
public int iIndent;
}

Win32API.LVITEM pitem = new Win32API.LVITEM();
pitem.mask = 1;
pitem.iItem = 0;
pitem.iSubItem = 2;
pitem.state = 0;
pitem.stateMask = 0;
pitem.pszText = new byte[1024];
pitem.cchTextMax = 1024;
pitem.iImage = 0;
pitem.lParam = 0;
pitem.iIndent = 0;

Win32API.SendMessage(list, Win32API.LVM_GETITEM, IntPtr.Zero, ref pitem);
255デフォルトの名無しさん:2005/11/20(日) 22:38:50
随分と特殊な用例を探してるんだな。
256デフォルトの名無しさん:2005/11/20(日) 22:40:23
データバインディングの仕組みをちゃんと解説してるサイトないですかね。

public Rectangle Rect
{ get{} set{} }

private void Load(object sender, EventArgs args)
{
this.DataBindings.Add("DesktopBounds", this, "Rect");
}

このコードで起動時にウィンドウサイズがRectになるんだけど、
リサイズしてもRectに値が反映されなくて謎。
特定のプロパティだとデータバインディングが機能しないとかあるの?
257253:2005/11/20(日) 22:42:06
labelから文字列取得とテキストボックスに文字列設定or取得は出来たのだけど
ListViewへうまくメッセージが伝わらないのです。。
lParamのLVITEM構造体、構造体だからダメくさい感じなのだけど。
同じことやってる人。。。いなさそうだなあ。
258デフォルトの名無しさん:2005/11/20(日) 22:44:29
>>257
とりあえず構造体レイアウト属性を。話はそれからだと思う。
259デフォルトの名無しさん:2005/11/20(日) 22:47:40
俺は前、MSNメッセンジャーに曲名を送信するプログラムをC#で作ったことがあったんだが。[StructLayout(LayoutKind.Sequential)]
構造体を送るなら、

[StructLayout(LayoutKind.Sequential)]
public struct LVITEM

だろ
260253:2005/11/20(日) 22:48:02
>>258
ああ、ごめんなさい、消して試していたのだけど、以下でもダメでした。。
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
public struct LVITEM
{
public int mask;
public int iItem;
public int iSubItem;
public int state;
public int stateMask;
public byte[] pszText;
public int cchTextMax;
public int iImage;
public int lParam;
public int iIndent;
}
261デフォルトの名無しさん:2005/11/20(日) 22:48:11
編集ミスで変になった&
かぶった


[StructLayout(LayoutKind.Sequential)]
これを構造体宣言の前につけるべし
262デフォルトの名無しさん:2005/11/20(日) 22:48:28
あいかわらず、レベル低いな
263デフォルトの名無しさん:2005/11/20(日) 22:54:02
この場合フィールドにマーシャリングが入る余地がないから別にStructLayoutは要らないよ。
structならデフォルトでLayoutKind.Sequentialだし。

で、別プロセスのメモリ空間を見るにはそれなりに手順が必要。
VirtualAllocEx&WriteProcessMemory&ReadProcessMemory(NT系)、
またはCreateFileMapping&MapViewOfFile(9x系)辺りを使うことになる。
264253:2005/11/20(日) 22:57:27
>>263
なるほど、共有メモリ使うしかないかあ。
実はラベルから値を取得するとき
SendMessageでWM_GETTEXTを使ってlParamにbyte[]をつっこんだだけで
文字列取得出来てしまったのですよね。
VirtualAllocEx使わなくても出来るかなあと思ったのだけどやっぱり甘いかー。
265デフォルトの名無しさん:2005/11/20(日) 23:07:04
ttp://hongliang.seesaa.net/article/8466042.html
こんなのを見つけた。
266デフォルトの名無しさん:2005/11/20(日) 23:19:06
bomb
267デフォルトの名無しさん:2005/11/20(日) 23:19:10
>>264
古いコントロールは互換性維持のためそういうことができる。
基本的には対象のプロセスのメモリを確保してそのメモリのアドレスを渡さないといけない。
268253:2005/11/20(日) 23:27:38
>>265
これ使うと楽に出来るのかなー。

>>267
なるほど。納得。
ありがとうございました!
269デフォルトの名無しさん:2005/11/20(日) 23:43:07
>>256
内部でプロパティ名changedってイベントを
Refelectionで探してデータ同期をとる

currencyManager取得して強制Updateしても駄目?
270デフォルトの名無しさん:2005/11/21(月) 02:14:04
初心者なんすけんど
もちっと、敷居低いと子
紹介してけんろ
271デフォルトの名無しさん:2005/11/21(月) 02:36:10
>>270
ふらっと
272デフォルトの名無しさん:2005/11/21(月) 10:12:59
>>183
レス遅れて申し訳ありません
有難うございます

実装依存ですか・・・
つまり自前で行の順番を格納する列を作って置くということでしょうか?

調べてみましたらDataTableのSelectメソッドが引数なしの場合に

>メソッドが主キーの順に (主キーがない場合は追加された順に) 現在の行を返します。

と有ったのでこれを使用したいと思います

だけど,主キーが無い場合は追加された順ということなので
行削除しない限り,結局追加した順番に入ってるんじゃないかと邪推してしまう私
273デフォルトの名無しさん:2005/11/21(月) 12:15:49
>>256
というか、同期されるのはValidatingイベントの後。
フォーカスが外れないと駄目だよ。
274デフォルトの名無しさん:2005/11/21(月) 14:19:08
DoEventだね。VBなら。
275デフォルトの名無しさん:2005/11/21(月) 16:57:17
saveFileDialogでファイルを保存する際
保存したいファイル名がtest.txtの場合
保存先フォルダに

test.xml
test2.mp3

というファイルが存在すると
teと入力したときにポップアップ(?)のように
test.xmlとtest2.mp3が候補のように表示されますが
この表示をしないようにするにはどうすればよいのでしょうか?
276デフォルトの名無しさん:2005/11/21(月) 17:23:46
SaveFileDialog使う限り無理。
277デフォルトの名無しさん:2005/11/21(月) 17:25:22
>>276
そうですか orz

アリガトウございました
278デフォルトの名無しさん:2005/11/21(月) 18:48:59
private readonly DateTime DATETIME_MEIJI = new DateTime(1868, 9, 8);

これをクラスフィールドにして、メソッド内でthis.DATETIME_MEIJI と書くのは
VS2005βだと問題ないのですが、VS2003の場合だとエラーになります。

記述的にはVS2003の場合でも問題が無いように思うのですが、何故でしょうか?
279278:2005/11/21(月) 18:53:37
ちなみにエラーは以下のとおりです。

>キーワード this はスタティック プロパティ、スタティック メソッド、またはスタティック フィールド初期化子で無効です。
280デフォルトの名無しさん:2005/11/21(月) 19:21:43
>>278
普通に通るぞ。
staticでもつけてんじゃないの?
281278:2005/11/21(月) 19:31:53
>>280
今新しいアプリケーションのプロジェクト作って
試してみましたらできました。

エラーが起きるのはライブラリのプロジェクト
なのですが、アプリケーションとライブラリとでは
違うのでしょうか。ライブラリだとstaticにしないとダメ
でしょうか?

282デフォルトの名無しさん:2005/11/21(月) 19:33:05
いや何の関係もないし。

まあそもそも値の意味的にstaticの方が好ましそうだけど。
283デフォルトの名無しさん:2005/11/21(月) 19:39:27
関係ねーよ。
「その使ってるメソッドとやらのほうにstatic」つけてるんじゃないか
っていってる
エラーメッセージ読めよそもそも
284278:2005/11/21(月) 21:03:56
ありがとうございます。

確かに使用しているメソッドにはstaticがついています。
以下のようです。

private readonly DateTime DATETIME_MEIJI = new DateTime(1868, 9, 8);
public static string GetGengou()

2005ですと、問題なくthis.DATETIME_MEIJIで使用できるのですが、
そのソースをそのまま2003にコピペしても使用できません。

2003と2005の違いでしょうか。。。

285デフォルトの名無しさん:2005/11/21(月) 21:15:08
部分的なソースをコピペするんじゃなくて
クラス全体のソースをコピペしてみろよ
286デフォルトの名無しさん:2005/11/21(月) 21:22:20
>284
そもそもstaticメソッドからはthisにアクセスできない。
287デフォルトの名無しさん:2005/11/21(月) 23:49:05
Formに3つのPictureBoxと1つのListBoxを配置しているのですが、
これらのコントロールへの操作やUpdateの処理をすべてFormに
書いてしまい、Formだけで4000行程度になっています。

あまりにもダサイのでご助言ねがいます。
C#でDocument/Viewはどうすればいいのでしょうか?
288デフォルトの名無しさん:2005/11/21(月) 23:52:54
それだけじゃ、LogicとViewでクラスを分けろ。としか
PictureBox3とListBox1つ程度で4k行くなんて何やってるんでしょう
289デフォルトの名無しさん:2005/11/22(火) 00:00:31
具体的なことは勘弁ください。
基本的には画像のマッチングや分析を行っています。
ViewクラスにPictureBoxとListBoxのインスタンスを持たせて
ViewのインスタンスをFormに持たせる感じですかね?
290デフォルトの名無しさん:2005/11/22(火) 00:03:19
分けるのはコントロールじゃなくてマッチングや分析のロジックだろ
291デフォルトの名無しさん:2005/11/22(火) 00:04:04
画像のマッチングや分析を別クラスでやればいいじゃん
292デフォルトの名無しさん:2005/11/22(火) 00:14:59
そう。
データの処理は別のクラスにし、
できれば Windows Forms との依存性をなくす。
画面は結果を表示するだけにする。
そうすればいろいろあとあとよさげ
293デフォルトの名無しさん:2005/11/22(火) 00:34:41
コントロール5個ぐらいに依存があって
Aを更新するとAの値によってB,C,Dが更新されるとか

やたらコントロールの値を参照する必要がある場合
どう分ければいいでしょうか

Gridの行数分1行ごとに処理して関連するコントロールに値設定とか

参照する項目多いとうまく分離しきれない
294デフォルトの名無しさん:2005/11/22(火) 00:38:09
DataBindingすればよくね?
295デフォルトの名無しさん:2005/11/22(火) 00:38:59
イベント使うのもいくね?
296デフォルトの名無しさん:2005/11/22(火) 01:00:12
たとえばあるイベントが起きたときの処理が3行で記述できても
外だしにすべき?
297デフォルトの名無しさん:2005/11/22(火) 01:03:02
すべき
298デフォルトの名無しさん:2005/11/22(火) 01:09:48
すみません質問です
TextBoxに同一の内容の行が有った場合、一方を削除したいのですが
以下だと完全に削除出来ず(二行同じ内容の行が残る)うまくいかないのです
御指導お願い致します

string tmp = TargetTextBox.Text;
string[] lines = tmp.Split(new char[] { '\n' });

for (uint i = 0; i < lines.Length - 1; i++){
     for (uint j = i + 1; j < lines.Length; j++){
          if (lines[i].Equals(lines[j]))
              lines[j] = "";
    }
}
StringBuilder sb = new StringBuilder();
for (uint i = 0; i < lines.Length; i++){
    if (lines[i].Length > 0){
        sb.Append(lines[i]);
        sb.Append("\n");
    }
}
TargetTextBox.Text = sb.ToString();
299デフォルトの名無しさん:2005/11/22(火) 02:05:22
>>298
ロジック的にかなり無駄があるわけだが

tmp.Split(new char[] { '\n' });
=> tmp.Split(new char[] { '\r', '\n'});

sb.Append("\n");
=> sb.Append("\r\n");
300デフォルトの名無しさん:2005/11/22(火) 02:11:03
>>299
> tmp.Split(new char[] { '\n' });
> => tmp.Split(new char[] { '\r', '\n'});

=> TargetTextBox.Lines
とかな
301デフォルトの名無しさん:2005/11/22(火) 02:11:07
なにはともあれgeneric
302デフォルトの名無しさん:2005/11/22(火) 02:20:47
2.0に移行している人はまだ半分もいないんじゃないかと
303デフォルトの名無しさん:2005/11/22(火) 02:26:19
二言目にはgeneric なんてアフォですか?

小さなサンプルプログラムしか作ったことがない人がいいそうなことですねw
数万行、数十万行程度の中規模以上のプロジェクトなんかではよほどの
知識がないとtempleteは工数アップにしかならん。
304デフォルトの名無しさん:2005/11/22(火) 02:28:15
スマートポインタもコンテナの類も使わなかったのか 大変そうだな
305デフォルトの名無しさん:2005/11/22(火) 02:40:44
スマートポインタなんて業務でつかうひといるのか?
バグだらけで使い物にならん
306デフォルトの名無しさん:2005/11/22(火) 02:44:25
>>299-304

なんだかお恥ずかしい限りで、精進致します
有難う御座いました
307デフォルトの名無しさん:2005/11/22(火) 03:01:59
数十万行の大規模プロジェクトにテンプレートはいらんのじゃ。ウッキー
308デフォルトの名無しさん:2005/11/22(火) 03:15:01
憐れなスレだな(笑)
309デフォルトの名無しさん:2005/11/22(火) 03:27:32
>>303
なんか作るのもつまらなそうだな。
310デフォルトの名無しさん:2005/11/22(火) 03:54:55
大規模ってのはそれだけソースに触れる人間も多くなるからな。
そういうプロジェクトはユーザー数の多いCで書くのが一番。
もしくはVB6。
311デフォルトの名無しさん:2005/11/22(火) 07:31:16
VBは30過ぎのおっさんが使ってろよ
312デフォルトの名無しさん:2005/11/22(火) 07:37:49
言われなくても使われてます
313デフォルトの名無しさん:2005/11/22(火) 07:42:05
で、なんでGenericで工数アップなの?
めちゃ工数削減だと思うんだけど。
XmlSerialize楽だし
314デフォルトの名無しさん:2005/11/22(火) 08:20:40
C++/CLI刷れにも書いてきたんですが、メインにC#つかてる人の意見も利きたくてやってきました。
C++/CLIとC#の速度差ってどんなものでしょ?大雑把で(・∀・)イイ!!です。
いまC#で一つ作ってるんだけど、もっさりしすぎ。ある程度使い分ければ速くなるのかどうか・・・
特に気にしてるのはコレクション周りと画面周りですが。
315278:2005/11/22(火) 09:14:15
>>286
遅れましたが、ありがとう。
316デフォルトの名無しさん:2005/11/22(火) 09:32:56
C++/CLIで.netのクラスを使うのなら速度変わらんだろ
.netのクラスを使うことがないのならC++/CLIのメリットもなかろう
317314:2005/11/22(火) 09:58:28
>>316
ですかのう・・・
318デフォルトの名無しさん:2005/11/22(火) 12:06:40
最終的に同じコードにコンパイルされるんだから
速度差がある分けない。
毎回 Dispose する分逆に遅くなったりしてな
319デフォルトの名無しさん:2005/11/22(火) 12:42:03
C++/CLIってメリットあんのか?
320デフォルトの名無しさん:2005/11/22(火) 13:20:21
>>319
P/Invokeで明示定義がそもそもいらん、C++で書いたコードはそのまま使える、
マーシャリングがちょっと賢い…etc
ラッパーかくんなら最強でそ。Managed DirectXもMC++じゃなかったか?
321デフォルトの名無しさん:2005/11/22(火) 16:27:40
あるEXEが任意のフォルダにあるDLLをレイトバインドでロードするんですが
DLL側で自分がどのフォルダにあるか取得する方法はありますか?
Environment.CurrentDirectoryだと
EXEのパスが帰ってきたorz
322デフォルトの名無しさん:2005/11/22(火) 16:33:53
>>321
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
323323:2005/11/22(火) 16:39:20
うおおおできた!
サンクス!
324デフォルトの名無しさん:2005/11/22(火) 20:48:15
323 :323:2005/11/22(火) 16:39:20
うおおおできた!
サンクス!
325デフォルトの名無しさん:2005/11/22(火) 21:56:12
ZIPファイルをアップロード指定させて、実際のアップロードは、ZIPファイルの中身としたい。
ダウンロードは、対象ファイルをZIPファイルに圧縮させてからダウンロードを行いたい。

こういうことって、どうやっったらいいですか?
326デフォルトの名無しさん:2005/11/22(火) 21:59:20
ASP.NETなのかどうなのかぐらい書けと。
327デフォルトの名無しさん:2005/11/22(火) 22:06:01
すいません。C#です。
328デフォルトの名無しさん:2005/11/22(火) 22:07:02
はいはいワロスワロス
329デフォルトの名無しさん:2005/11/22(火) 22:08:48
頑張ってサーバから作ってください
330デフォルトの名無しさん:2005/11/22(火) 22:25:13
>325
J#のクラスにZIPを処理するのがあったと思うよ。
331デフォルトの名無しさん:2005/11/23(水) 00:01:50
クラス内にpublicにクラスを書く必要性ってなにがあるの?
332デフォルトの名無しさん:2005/11/23(水) 00:03:42
気分と、あとはログ読み返せ
333デフォルトの名無しさん:2005/11/23(水) 00:07:41
>>331
privateなメンバにアクセスさせたい時。
334デフォルトの名無しさん:2005/11/23(水) 01:02:08
だったら、publicなメンバにすればいいじゃねーの
335デフォルトの名無しさん:2005/11/23(水) 01:06:30
関係ないクラスからも見えちゃうじゃん
336デフォルトの名無しさん:2005/11/23(水) 01:17:44
C#って、yahooとかでうまく検索できないね
なぜか2ページ目にいくと、c言語の検索になる
337デフォルトの名無しさん:2005/11/23(水) 01:27:29
っていうか、#や.NETって単語やめてほしいよね
Webで検索する際面倒だよね

338デフォルトの名無しさん:2005/11/23(水) 01:28:56
>>336
ならないよ。quoteしろ
339デフォルトの名無しさん:2005/11/23(水) 01:37:54
すいません。
表示されるMessageBoxを常に手前に表示させることはできるのでしょうか?
340デフォルトの名無しさん:2005/11/23(水) 01:38:16
<Microsoft> - Google Search
http://www.google.com/microsoft
341デフォルトの名無しさん:2005/11/23(水) 01:42:34
>>339
System.Windows.Forms.MessageBox を使う場合には無理じゃないかな
Windows API の MessageBox を直に使うのなら MB_TOPMOST
342デフォルトの名無しさん:2005/11/23(水) 01:48:08
>>341
早速のご回答ありがとうございます。
やはりそうですか・・・・。
System.Windows.Formsのメンバをしらみつぶしに探しても
それらしきものは見当たりませんでした。

ありがとうございました。
343デフォルトの名無しさん:2005/11/23(水) 02:51:12
>>338
なってんじゃんw
quoteしなきゃなんねんだろ?
344デフォルトの名無しさん:2005/11/23(水) 03:13:53
>>343
あ?"C#に関するドキュメントが上手く検索されない"と解釈したんだが。しかし、どうやら違ったようだな
345デフォルトの名無しさん:2005/11/23(水) 06:24:25
>>330

できました!ありがとうございました。
346デフォルトの名無しさん:2005/11/23(水) 08:44:25
C#関連の物を検索するときは "System.Windows.Forms" とか付ければ
347デフォルトの名無しさん:2005/11/23(水) 13:17:30
C#でmemset相当の機能って何?
foreach(byte b in buf){
  b = 0;
}
348デフォルトの名無しさん:2005/11/23(水) 13:19:16
byte配列ならClearでいけるだろう
349デフォルトの名無しさん:2005/11/23(水) 13:32:53
ありがとう。Array.Clearか。
Bufferにも付けてほしいもんだな。
350デフォルトの名無しさん:2005/11/23(水) 17:53:34
ADO.NetのDataSetのDataTable、AとBの
結合したデータを取得したいときは、どうするんですか?

351デフォルトの名無しさん:2005/11/23(水) 18:04:17
そういうSQLをデータベースに投げる
352デフォルトの名無しさん:2005/11/23(水) 18:58:05
DataTableのAまたはBの値が更新されたときは
一度Updateしたから、SQLを投げなきゃだめですね。
頻繁にデータが更新されるときは、面倒ですね。orz
353デフォルトの名無しさん:2005/11/23(水) 19:03:18
351です。
誤:Updateしたから
正:Updateしてから
です。

何度もDataSetをUpdateしなければならないって
DataSetは非接続って売りの意味がないってことですかねぇ。
354デフォルトの名無しさん:2005/11/23(水) 19:05:19
使い方が変なだけだろ。
355デフォルトの名無しさん:2005/11/23(水) 19:12:36
>>354
でも、ありがちな処理だと思うけど。
356350:2005/11/23(水) 19:40:43
どうもありがち^^
357デフォルトの名無しさん:2005/11/23(水) 20:35:43
PointF[]からPointに変換したいのですが、なんかいい方法ないですか?

今は
ループ回して
point = new Point((int)pointf.X , (int)pointf.Y);
ってやってます。
358デフォルトの名無しさん:2005/11/23(水) 22:22:43
Point構造体のstaticメソッドに
359デフォルトの名無しさん:2005/11/24(木) 16:17:59
C#でMainが始まるまでに実行されるルーチンを書くことってできますか?
C++とかだとグローバルインスタンス定義することでそのコンストラクタとかに記述可能だったんですが。
360デフォルトの名無しさん:2005/11/24(木) 16:25:02
>>359
静的コンストラクタを使えば可能

class Class1
{
    static Class1()
    {
        Console.WriteLine("Class1");
    }
    [STAThread]
    static void Main(string[] args)
    {
        Console.WriteLine("Class1.Main");
    }
}
361デフォルトの名無しさん:2005/11/24(木) 16:38:07
>>360
別のクラスだとMainより先に実行されるかどうか保障されないんでは。
362デフォルトの名無しさん:2005/11/24(木) 16:58:47
ドキュメントエクスプローラーの使い方がわからんです・・・
リフレクションで派生クラスを列挙する仕組みないかと思って
"reflection enumerate derived"を検索ワ−ドに入れたんですが、enumerateしか乗ってないページとか山ほど引っかかる・・・orz
363デフォルトの名無しさん:2005/11/24(木) 17:04:30
コンストラクタの書き方で

public TheClass(int left, int right)
{

}

public TheClass(int left)
{
 TheClass(left, 10);
}

異なる引数のコンストラクタで、2つめのコンストラクタから
1つめのコンストラクタを呼び出したいのですが、上記のような
書き方だとエラーになります。
どのように書けばいいですか
364デフォルトの名無しさん:2005/11/24(木) 17:16:59
public TheClass(int left) : this(left, 10)
{
}

365デフォルトの名無しさん:2005/11/24(木) 17:32:36
新しいウィンドウでブラウザを起動するにはどうしたら良いですか?

Process.Start("http://www.yahoo.co.jp.:80");

これだと既に開いているブラウザウィンドウを使って指定ページを表示してしまうので、
なんとか新しいウィンドウでページを開くようにしたいのですが・・・
366デフォルトの名無しさん:2005/11/24(木) 19:24:41
C#でプロセスマネージャ(タスクマネージャのプロセス)ぽいのをつくりたいんだけど、
C#で他のプロセスを意図的に終了させたりすることできまっす?

ちなみに、終了させたいのは、非ウィンドウアプリなので
そういったものを終了させる場合うまい方法あったら教えて欲しいです。
367デフォルトの名無しさん:2005/11/24(木) 19:29:50
>>365
それIE側の設定によるんだよね…詳細設定の
「ショートカットを起動するためにウィンドウを再利用する」
ってのにチェックが入ってるかどうか。

うーん。こんなんどう?
Type t = Type.GetTypeFromProgID("InternetExplorer.Application");
object ie = Activator.CreateInstance(t);
t.InvokeMember("Navigate", BindingFlags.InvokeMethod, null, ie,
 new object[]{ "http://www.yahoo.co.jp:80" });
t.InvokeMember("Visible", BindingFlags.SetProperty, null, ie, new object[] { true });

でもこれでいいのかなぁ…COMはよーわからん。
368デフォルトの名無しさん:2005/11/24(木) 20:02:20
>>366
列挙は
EnumProcesses か System.Diagnostics.Process.GetProcesses
終了は
TerminateProcess か System.Diagnostics.Process.Kill
369デフォルトの名無しさん:2005/11/24(木) 20:21:07
プログラムにnetstatコマンドで表示されるような情報を取得させたいんですが
C#で特定のポートに接続しているIPを調べる方法ってありますか?
370デフォルトの名無しさん:2005/11/24(木) 22:13:46
C#でってことなら、iphlpapi.dllでもいいのかな
371369:2005/11/24(木) 23:32:40
>>370
iphlpapi.dllでググッたら解決しました
ありがとうございました
372365:2005/11/24(木) 23:39:39
>>367
レスありがとうです
参考にさせて頂きます
373デフォルトの名無しさん:2005/11/25(金) 00:47:17
C#でつくったアプリってなんでメモリ食いまくりなの?
ちょっとしたものでも10Mなんてすぐ超えちゃうし・・・

374デフォルトの名無しさん:2005/11/25(金) 00:50:15
>>373
つり? くま〜AA(略
375デフォルトの名無しさん:2005/11/25(金) 00:59:50
>>373
普通のアプリの2〜3倍は食うのは確かだがそこまで気にならないよ。
アプリ起動するとリリースモードで動かしてもWorkingSetで20Mぐらいいくな
376デフォルトの名無しさん:2005/11/25(金) 02:03:01
最近知ったが

Process process = Process.GetCurrentProcess();
process.MaxWorkingSet = process.MaxWorkingSet;
process.MinWorkingSet = process.MinWorkingSet;

ってやると2M位まで減るよ。
ttp://d.hatena.ne.jp/Kazzz/20051025/p1
ここね。その後とんでもないことになるが
377376:2005/11/25(金) 02:06:17
これはWindowsの仕様としか言いようがないんじゃないかな。
FireFoxも同じ問題で頭抱えてるみたいだし。
実際それだけメモリが使用されているわけではない。
378デフォルトの名無しさん:2005/11/25(金) 02:19:17
「とんでもないこと」を詳しく
379デフォルトの名無しさん:2005/11/25(金) 02:53:19
スワップが発生しまくります。
380デフォルトの名無しさん:2005/11/25(金) 03:01:45
コマンドラインのParserやCsvのReaderはC#2.0でも標準装備されていないんでしょうか?
381デフォルトの名無しさん:2005/11/25(金) 09:47:20
382デフォルトの名無しさん:2005/11/25(金) 09:55:47
>>380
ない。どっちも方言多いし。
383デフォルトの名無しさん:2005/11/25(金) 11:25:32
監視スレッドなるものを作っているんだけど
1秒ごとに監視っていうにしたいんよ。
C++みたいにSleepってC#ではみあたらないんだけど、処理をしばらくとめてる関数ってあるー?

てか、While( )でなんか設定できるのかな。。。1秒にいっかいループ実行ってかんじで

while(true)
{
//監視処理
 
 Sleep(1000); <---こんなかんじなことがしたいん

}
384デフォルトの名無しさん:2005/11/25(金) 11:28:41
>>383
System.Threading.Thread.Sleep()
385デフォルトの名無しさん:2005/11/25(金) 11:30:45
>>384
あ、それでいいのね。
ありがとうです!
386デフォルトの名無しさん:2005/11/25(金) 11:36:08
タイマ使えば良くね?
387デフォルトの名無しさん:2005/11/25(金) 11:37:05
まあ普通はタイマだろうね
388デフォルトの名無しさん:2005/11/25(金) 11:39:01
>>380
CSVってデータソースをCSVにすればADO.NETでアクセスできない?(やったことないけど)
389384:2005/11/25(金) 11:43:20
むむむ、タイマのがいいのですか。

あと、呼び出し側からスレッドを終了させるのって可能でしょうか。
みたところ、Suspendしかないので、、中断と終了ってちゃいますよね?
いきなり終了されたらメモリリークとかしちゃうとおもうから、スレッドの終了は自殺以外ありえないのかな?
390デフォルトの名無しさん:2005/11/25(金) 11:52:17
>>389
Abort()

イベントとかつかったらいいんじゃね。
391デフォルトの名無しさん:2005/11/25(金) 11:53:27
AbortだがAbortは非推奨
392デフォルトの名無しさん:2005/11/25(金) 12:00:34
タイマーならEnableをせっていすればええやん
393デフォルトの名無しさん:2005/11/25(金) 17:09:23
>>382
つRFC4180
394デフォルトの名無しさん:2005/11/25(金) 20:13:10
>389
AutoResetEventで終了してくれって知らせて、自殺してもらう。
395デフォルトの名無しさん:2005/11/26(土) 00:03:33
>>389
タイマがいいともかぎらん。
プロセスの最終的なリカバリにタイムアウトなんかを使う場合は、
Threadクラスで起こしたスレッドでループさせた方がいいと思う。
396デフォルトの名無しさん:2005/11/26(土) 00:14:29
>>382,393
どもです。
メンドイなぁ
CsvをStreamで読めてライセンス的に改変おkとかないかなぁ
CommandLineはMicrosoftのサンプルのどこかにサポートクラスとしてソースが入ってたような
気がしたんだけど、どこだったかな・・
397デフォルトの名無しさん:2005/11/26(土) 00:33:33
PrintPreviewDialog を ShowDialog() で開いたときに
本体以外にも数秒だけ小さいウィンドウが表示されますが、
アレを中央に表示するにはどうしたら良いですか?
本体は中央に表示されるのにアレだけがなぜか左上に表示されてしまいます
398デフォルトの名無しさん:2005/11/26(土) 01:56:14
ColorDialogをShowDialogするとダサイダイアログが表示されます.
VS2003のプロパティで表示されるようなカコイイダイアログはどうすれば
いいの?
399デフォルトの名無しさん:2005/11/26(土) 02:01:05
ColorDialogはOSたんの機能を使ってるだけだからなあ
400デフォルトの名無しさん:2005/11/26(土) 08:10:04
Microsoft MVP for Visual C#

だってw
401デフォルトの名無しさん:2005/11/26(土) 08:46:36
>>396
MSが提供してるLogParser2.2じゃ駄目なの?
日本語版もあるし、CSVに対してSQL使えるし。
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

あとは、俺は ttp://www.heikniemi.net/jhlib/ にあるライブラリを改変して使ってる。
402デフォルトの名無しさん:2005/11/26(土) 10:29:15
>>401
ありがとうございます。
LogParser,JHLib落としました。
ちょっとしたCSVのためにCOMで使うのは厳しそうですが、いろいろ遊べそう
JHLibかなり使えそうですねsimply freeですし
ところで改変というと、何か問題とかありましたか?
403401:2005/11/26(土) 10:46:22
>>402
>ところで改変というと、何か問題とかありましたか?

いや、機能的に問題は無いと思います。
少なくても、今まで使ってて問題は出てないです。

改変というか、ネームスペースをシステムに合わせて変えたりといったその程度です。
404デフォルトの名無しさん:2005/11/26(土) 12:58:18
オブジェクト指向でMVCというのは一般的ですか?
405デフォルトの名無しさん:2005/11/26(土) 13:14:39
別に
406デフォルトの名無しさん:2005/11/26(土) 13:39:55
>>404
Javaでは一般的
C#ではマイナー
407デフォルトの名無しさん:2005/11/26(土) 13:43:01
>>406
そうなんですか。
そうすると、C#で一般的なものとは何になるんですか?
408デフォルトの名無しさん:2005/11/26(土) 14:32:29
>>407
ViewとModel(Data)を分ける考え方はC#でも普通にするし、広い意味でのMVCは使ってますよ。
WebFormやWinFormを使うとControllerをほとんど意識しないからMVCとは呼ばないだけ。
というより、今はMVCといったらJSPのモデル2MVCかその派生物をさすことが多いので、
.NETではMVCという言葉を使わないことが一般的。
409デフォルトの名無しさん:2005/11/26(土) 14:59:55
>>408
ありがとうございます。
.NETではFormクラス内でViewとControlerが
一体化しているということですね(違うかな・・)
410デフォルトの名無しさん:2005/11/26(土) 15:01:45
System.Windows.Forms.TreeView で、あるノードだけ文字を強調したくて
nd.NodeFont = new Font("MS UI Gothic", ndFontSize, FontStyle.Bold);
としたら、そのノードのラベル文字列の右端が欠けて表示されなくなってしまいました。
TreeNode.Bounds は read only だし、TreeView.Refresh() しても一向考慮される気配なし。
どうしたらいいの?
411デフォルトの名無しさん:2005/11/26(土) 16:32:16
> メモ   ノードのフォントが TreeView コントロールの Font プロパティで
> 設定されている値よりも大きい場合、ツリー ノード ラベルのテキストはクリップされます。

だそうだから、TreeViewのフォントをFontStyle.Boldにして、
TreeNode.NodeFontを軒並みFontStyle.Regularにすればいいんじゃない?
412デフォルトの名無しさん:2005/11/26(土) 16:46:05
>411
ホントだ、出来ました!!

個別にスタイルにあったクリッピング領域を設定できないなら、全体の設定でスタイルを指定しておいて、改めて個別の設定で不要なフラグを落としておく…逆転の発想力が素晴らしいです。

ありがとうございます。
413デフォルトの名無しさん:2005/11/26(土) 18:01:48
DataSetのExpressionにおいて、別のRowの値や
メンバ変数を式の変数として利用したいのですがどのように実現できますか?
414デフォルトの名無しさん:2005/11/26(土) 19:22:59
>>409
ModelとViewの考え方は常に頭においておいたほうがイイ
VC#やVBはポトペタ環境が欠点。
VC6みたいに初心者を排除してくれる環境がよかった。

415初心者:2005/11/26(土) 19:41:07
>>414
・゚・(ノД`)・゚・。
漏れみたいに、いきなりVSでポトペタをやらずに、
http://www.amazon.co.jp/exec/obidos/ASIN/4891002972/qid=1116471063/sr=1-13/ref=sr_1_2_13/249-4591512-2976331
これ読みながら、ちゃんと勉強しているやつだっているんだぞ!
初心者に謝れ、初心者に(ry
416デフォルトの名無しさん:2005/11/26(土) 21:51:53
漏れも初心者だけどexpressが出るまでポトペタバージンだった。
いままでエディタでコーディング
つーか初心者ほど手書きの方がいい希ガス
417デフォルトの名無しさん:2005/11/26(土) 22:45:18
ある程度組めるなら、ポトペタはウザくてGUI構築以外では使わんと思う。
というかポトペタはそのための機能だ。
418デフォルトの名無しさん:2005/11/26(土) 22:57:03
>>416
実際そうだよな。
俺もVisualStudio買うかどうかは
SDKで試してから決めたし。
419デフォルトの名無しさん:2005/11/26(土) 23:42:30
ごめん空気読めてないけど
ぽとぺたってなに?
420デフォルトの名無しさん:2005/11/26(土) 23:44:11
PageSetupDialog の余白設定が乱れるバグへの良い対処法ってないですか?
宇宙仮面のサイトに載っている対処法を使っているのですが、
それだと僅かに乱れてしまうので気になっております
例えば 10 に設定した余白が次に開いた時には 9.9 になってしまいます
421デフォルトの名無しさん:2005/11/27(日) 00:28:57
>>419
ぽとり、ぺたり
422デフォルトの名無しさん:2005/11/27(日) 00:45:33
なんで2.0のSDKドキュメントにはSystem.Mediaとか載ってないの?
WinFxのほう見ろってこと?
423デフォルトの名無しさん:2005/11/27(日) 00:52:53
一応載っているようだが?
メンバ一覧ぐらいしか情報はないけど。
424デフォルトの名無しさん:2005/11/27(日) 02:02:39
長文失礼

ポトペタを作ってる側から言わせてもらえば

プロパティいじってコード書かないでいいようにしとけば
バグも生まれんし、コンポーネント指向で再利用性ありだし

ポトペタを作るところまでいけば、VisualStudioのすばらしさ
をもっとわかってもらえると思うが

JavaもJSFでポトペタになるし
MVCはもちろん大事だが
.NETでのCはイベントモデルなわけで

イベント捕らえてM部分は実装してねって
コンポーネント作ってる

エディタ、デザイナ、CodeDomあたりまで押さえると
また変わった見え方してくると思うんだが
425デフォルトの名無しさん:2005/11/27(日) 02:21:18
的外れな長文乙
426デフォルトの名無しさん:2005/11/27(日) 02:44:13
コンテキストメニューにショートカットキー設定するのっておかしいかな?
427デフォルトの名無しさん:2005/11/27(日) 02:59:40
別におかしくはないのでは?
428デフォルトの名無しさん:2005/11/27(日) 03:01:08
レストンクス
あまり見掛けないので気になったんだ
429デフォルトの名無しさん:2005/11/27(日) 03:18:08
CollectionBaseクラスってIListインターフェイスを実装してるのに
なんでAddメソッドとかが公開されてないんですか?
つーかどうすればインターフェイスのメンバを公開しないようにできるんですか?
430デフォルトの名無しさん:2005/11/27(日) 03:20:20
インターフェイスの明示的実装
Addとか公開したら継承クラスでいじりにくくなるからかな
431デフォルトの名無しさん:2005/11/27(日) 03:25:22
>>430

おおっ、できました、ありがとうございます。
432デフォルトの名無しさん:2005/11/27(日) 03:41:31
On〜〜〜メソッドで型の検証を行うのは
IListオブジェクトとしてAddメソッド等を呼び出された時のためだったんですね。
433デフォルトの名無しさん:2005/11/27(日) 04:31:39
イベントについて教えてください。

たとえば、イベントControl.PaintはControl.OnPaintが発生させますよね
ではControl.OnPaint は誰が呼び出すのでしょう?

おそらく、FrameworkがWM_PAINTを捕まえて呼び出すんでしょうけど、
どこにそういったソースがあるのでしょう?

Reflectorをつかって、探しているんですがみつかりません。
434デフォルトの名無しさん:2005/11/27(日) 04:48:58
メッセージを処理するのはWndProcメソッド。
435デフォルトの名無しさん:2005/11/27(日) 12:29:06
ポトペタすばらし
Component継承するだけでプロパティ設定楽になるんでいい感じ
436デフォルトの名無しさん:2005/11/27(日) 13:17:10
仕組みがわかってから使う分には.NETのコンポーネントは良い。
437デフォルトの名無しさん:2005/11/27(日) 13:19:47
ずっとVS使わないで開発してきたんだが、
やっぱ統合環境あったほうが楽だよね・・・。
2005は買おうと思ってるんだが。
438デフォルトの名無しさん:2005/11/27(日) 13:23:50
IDEあっての.NETだと俺は思う
439デフォルトの名無しさん:2005/11/27(日) 13:30:14
そうは思わないが、IDEの価値は十分に高いと思う
440デフォルトの名無しさん:2005/11/27(日) 18:13:55
そうか?
エディタ使いづらい。

秀丸とコマンドラインで十分だろ?

すくなくとも、10万前後払う価値はない
441デフォルトの名無しさん:2005/11/27(日) 18:16:40
> 秀丸とコマンドラインで十分だろ?
優秀な人なんですね(^^;
442デフォルトの名無しさん:2005/11/27(日) 18:56:43
優秀な人は使うツールの選択も優秀。
>>440の秀丸はとんでもなくカスタマイズされてるに違いない
インテリセンスとかコードスニペットとか楽すぎ。もうVS2005から離れられない・・
443デフォルトの名無しさん:2005/11/27(日) 19:23:45
秀丸とコマンドラインで十分です
444デフォルトの名無しさん:2005/11/27(日) 19:24:05
秀丸でプログラミングってw
445デフォルトの名無しさん:2005/11/27(日) 19:44:11
プログラミング以外で秀丸をなにつかうの?

446デフォルトの名無しさん:2005/11/27(日) 19:46:50
秀丸で2ch
447デフォルトの名無しさん:2005/11/27(日) 19:48:09
道具を馬鹿にする香具師はたいしたプログラム書けないのが多い
448デフォルトの名無しさん:2005/11/27(日) 19:54:11
盛り上がっているところ恐縮ですが、質問です。
ファイルを開くダイアログにプレビュー機能をつけたいのですが
どうすればいいのですか?
449デフォルトの名無しさん:2005/11/27(日) 20:04:35
つければいいじゃん
450デフォルトの名無しさん:2005/11/27(日) 20:17:14
OpenFileDialogを使う限りは無理。
頑張って自作。
コモンダイアログの拡張はめんどくさい。
451デフォルトの名無しさん:2005/11/27(日) 21:06:05
BinarySearchに
value の次に大きい要素のインデックスのビットごとの補数です
とあります。
どういう意味ですか?
452デフォルトの名無しさん:2005/11/27(日) 21:11:02
ビットごとの補数で調べれ
453デフォルトの名無しさん:2005/11/27(日) 21:29:40
矢田
454デフォルトの名無しさん:2005/11/28(月) 01:54:52
参照の参照を渡すには?
455デフォルトの名無しさん:2005/11/28(月) 02:13:30
ref
456デフォルトの名無しさん:2005/11/28(月) 04:44:21
URL文字列の中から一番最後の部分だけを取り出す方法を教えてください。
http://www.yahoo.co.jp/ABC/DEF.html
だったら DEF.html だけを抜き出したいです。
457デフォルトの名無しさん:2005/11/28(月) 06:08:29
Split('/')
Uri.Segments
458デフォルトの名無しさん:2005/11/28(月) 06:51:57
Path.GetFileNameなんかもあり
string.LastIndex/Substringとか
459デフォルトの名無しさん:2005/11/28(月) 07:19:03
初心者なんだけど、
[^/]+$
って正規表現を一番に思いついちゃった...orz
460デフォルトの名無しさん:2005/11/28(月) 07:41:22
だうと
461デフォルトの名無しさん:2005/11/28(月) 13:40:11
>>426
↓マイクロソフトのガイドラインの@nifty訳
>しかしながら、空間の効率および読みやすさを増強するように、
>近道メニューにショートカットキーを含まないようにしてください。

だそうで、これに従えばおかしいというか一般的ではないってことかと。
EmEditorなんかは付ける派だっけ?
462デフォルトの名無しさん:2005/11/28(月) 14:27:45
クラス内で宣言された、
かなり大きめなジャグ配列を今後使用することがないため、破棄したいと考えています。
クラスなどであれば、Dispose()が使えるのですが、
ジャグ配列の場合はどのようにしてリソース開放してあげれば良いのでしょうか?

500MB以上を扱う配列なもので、不要になったら破棄しておきたいのですが・・・

System.GC.Collect();
を実行する方法しかないのかと迷っています。
463デフォルトの名無しさん:2005/11/28(月) 14:49:30
明示的にやるのならそれしかないよ。別にする必要もないけど。
しかし500MBねぇ。
464462:2005/11/28(月) 15:01:15
>>463
やっぱり、その方法しかないのですね。

数百枚の画像を同時に解析し、かつ速度も重要視するプログラムなため、
一枚ずつファイルから読み込んで・・・という訳にもいかず、
一気にどがーっと読み込んで、どがーっと解析するという力業なのです。
(1GBのメモリでは、すぐに食いつぶされてしまってデバッグどころではないというのが痛すぎ・・・)

GCやるかどうかは、実際に速度など比較して決めたいと思います。
ありがとうございました。
465デフォルトの名無しさん:2005/11/28(月) 15:04:07
同時じゃないと駄目なのか?
非同期で読み込みながら解析していくって手もあるぞ。
466462:2005/11/28(月) 15:15:41
>>465
確かに、
画像読込 → 画像解析
という処理だけでだったら、非同期読込、同時に解析が望ましいですね。

実際のところ、ファイル読込時の速度はどうでもよく、画像解析部の速度が重要なのです。
(自分が非同期スレッドをうまく使いこなせていないというところもあってw)

というわけで、画像解析部の速度評価ができるように、
全てメモリ格納後に解析する手法を取っています。
速度評価する際には、2GBを搭載したハイスペックマシンでやりますので、大丈夫でしょう・・・たぶん。

「あるもの全部使え!!」というスタンスなのに、GC.Collect()しようとしている自分に今、すごく矛盾を感じました・・・^^;
467デフォルトの名無しさん:2005/11/28(月) 16:52:03
2chに連投するブログラムを作ったのですが、不思議なことが起こりました。
Windowsフォームを使ったフロントエンドでいろいろ設定して、実際に書き込みを行うプログラムを起動する仕組みにしてるんですが

・書き込みを行うプログラムをシングルスレッドにして、プログラムを多数起動する
・書き込みを行うプログラムをマルチスレッドにして、プログラムを1つ起動する

作る前は後者のほうが2chへの書き込み速度が速いと思ってたのですが
実際には前者のほうが書き込み速度が速いのです。

こういうものなんでしょうか?



ちなみに、連投する目的は、いわゆる「最速1000」です。
468デフォルトの名無しさん:2005/11/28(月) 17:02:15
同期を取ろうとしている部分があるんじゃないか?
と、ちょー適当に予想
469デフォルトの名無しさん:2005/11/28(月) 19:00:27
ンリューションって何?
470デフォルトの名無しさん:2005/11/28(月) 19:51:01
>>464
VC++6+MFCでやっとけ
そういった処理はC#では無理
471456:2005/11/28(月) 20:37:11
>>457-459
いろいろやり方あるんですね。GetFileNameが簡単そうだったので
これでやってできました。ありがとうございます。
472デフォルトの名無しさん:2005/11/28(月) 21:29:03
>>467
プログラミングに関係無いところで突っ込むが、
普通にアク禁されるかと。
473467:2005/11/28(月) 21:38:30
>>468
スレッドを作るクラスのフィールドは、1つしかなくて、スレッドを起動する前に値をいじったらもう
書き換えはしないんですけよ…

>>472
■ root ★ 公認、第1回最速1000大会の開催について Part4
http://ex14.2ch.net/test/read.cgi/news4vip/1133012356/
474デフォルトの名無しさん:2005/11/28(月) 22:35:58
複数のFormを表示するアプリケーションで
現在インスタンス化されて表示されているFormを全て取得するには
どのようにすればよいのでしょうか?
475デフォルトの名無しさん:2005/11/28(月) 22:36:44
MDIにする。
476デフォルトの名無しさん:2005/11/28(月) 22:48:03
>>475
Thx

MDI以外では無理なのでしょうか?
477デフォルトの名無しさん:2005/11/28(月) 22:52:41
Singletonなフォームの管理クラスでも作ればどうだ
478デフォルトの名無しさん:2005/11/28(月) 23:02:24
>>477
有り難うございます
検討してみます
479デフォルトの名無しさん:2005/11/28(月) 23:06:27
というか、Form間の通信とかどうしてるんだ?
480デフォルトの名無しさん:2005/11/29(火) 00:33:44
C#って本当に業務で使われているのかな?

私の部署ではVC一本ですね

481デフォルトの名無しさん:2005/11/29(火) 00:36:45
クライアントアプリしか作ってないところではそうかもな
482デフォルトの名無しさん:2005/11/29(火) 01:00:42
>>480
使われてないならこのスレの書き込みはなんなんだ?
483デフォルトの名無しさん:2005/11/29(火) 01:11:43
まぁ、C#は昔のVBみたいな存在じゃね?

VC++できて一人前、VC使えない香具師がVB

みたいな

今でもVC++で商品としてのアプリを書いたことがない香具師は
C++プログラマとしては使えないな
484デフォルトの名無しさん:2005/11/29(火) 01:16:59
> 商品としてのアプリを書いたこと
部分的にコード書くなら超初心者にでもできるわけだが、
アプリを書く、ってのは具体的に何を言ってる?

業務用アプリ全体を一人で書く奴はいないし、フリーウェア
の話をしてんのか?
485デフォルトの名無しさん:2005/11/29(火) 01:21:58
パッケージ製品だろ
486デフォルトの名無しさん:2005/11/29(火) 01:28:36
1スレに1度は出るな>>480の話。
2スレに1度ぐらいの割合で出てくるメモリの話とあわせていい加減聞き飽きたな。
487デフォルトの名無しさん:2005/11/29(火) 01:33:00
メモリの話も1スレに1度ぐらい出てるような希ガス
488デフォルトの名無しさん:2005/11/29(火) 01:35:35
そうか釣りだったのか!!!??
489デフォルトの名無しさん:2005/11/29(火) 01:41:32
>>484
そんなことはない。

具体的な商品名は明かせないが、パソコンショップで数千円程度で販売している
アプリの大半はプログラム自体は1人、2人程度で書くのが普通だよ。
490デフォルトの名無しさん:2005/11/29(火) 01:49:45
質問

あるクラスHogeに

public Hoge(int i,int j) : this(i,j){}

ってどういう意味?
491デフォルトの名無しさん:2005/11/29(火) 01:56:35
レッツ・スタックオーバーフロー って意味
492デフォルトの名無しさん:2005/11/29(火) 02:06:04
これ、どう思う?

●C#を教えてください 時給7千円
http://page8.auctions.yahoo.co.jp/jp/auction/h31325742
493デフォルトの名無しさん:2005/11/29(火) 02:10:40
地雷の予感しかしない。

>●C#を教えてください 時給7千円●
(中略)
>●概要
>・2時間くらいC#について教えて下さい。
>・1時間につき5000円支払います(即日払い)。交通費も支給。
(中略)
>●落札について
>・10円で入札下さい。
494デフォルトの名無しさん:2005/11/29(火) 03:02:06
どうせ宿題やってくれとかだろ
495デフォルトの名無しさん:2005/11/29(火) 03:04:23
> パソコンショップで数千円程度
パソコンショップをVectorというなら解るが・・・
その手の商品が最近は小売店でも売ってるってことね
496デフォルトの名無しさん:2005/11/29(火) 03:06:13
> 時給7千円
> 1時間につき5000円支払います

お か し い だ ろ
497デフォルトの名無しさん:2005/11/29(火) 03:58:51
>評価: 非常に良い落札者です。 評価者:*******

>★お手軽!★メイド服★宴会・パーティー用衣装★黒色★ (終了日時:2005年 10月 23日 23時 17分)
>コメント : 迅速な応対で、気持ちの良いお取引が出来ました。ありがとうございまし
>た。またの機会がございましたら、よろしくお願い申し上げます。 (評価日時 :2005年 10月 25日 17時 52分)


(ノ∀`)アチャー
498デフォルトの名無しさん:2005/11/29(火) 04:25:00
業務用アプリ全体を一人で書いてましたがなにか?
499デフォルトの名無しさん:2005/11/29(火) 05:53:42
メイド服着て模造刀振り回されたら怖すぎ。
500デフォルトの名無しさん:2005/11/29(火) 17:37:08
>●落札について
>・10円で入札下さい。
セコイ・・・つか、規約違反だろw
>また、こちらが組んだ
>プログラムのどこに問題があるか指摘して下さい。
君自身が問題
501デフォルトの名無しさん:2005/11/29(火) 20:26:34
RichTextBox を使って簡単なテキストエディタを作ったのですが、
英文を入力した時になぜかフォントが Arial になってしまいます。
普段は等幅の MS ゴシックの 12pt を利用しております。
バグというほどのものではないですが、一々フォントを直すのが面倒なので
どうにかならないかと思っております。
解決策を知りませんか?
502デフォルトの名無しさん:2005/11/29(火) 20:30:52
503デフォルトの名無しさん:2005/11/29(火) 20:38:37
なるほどバグでしたか。
ありがとうございした。
504デフォルトの名無しさん:2005/11/29(火) 20:52:20
Outlookでテキスト形式のメールを書くときでも同じ状況になるよな
505デフォルトの名無しさん:2005/11/29(火) 21:18:26
RichTextBoxはお勉強用なので
506デフォルトの名無しさん:2005/11/29(火) 22:33:13
507デフォルトの名無しさん:2005/11/29(火) 22:37:08
くんなww
508デフォルトの名無しさん:2005/11/29(火) 22:46:27
実行中に不透明度(Opacity)を変更すると描画が異常に重くなるのは何故?
例えば、メニュークリックイベントで
this.Opacity = 0.50;
とかやるとフォームの移動の時とかにチカチカなるんだけど・・・
509デフォルトの名無しさん:2005/11/29(火) 22:49:16
なぜもなにも。そんなもんとしか。
描画の手間が何倍にもなるんだから。
510デフォルトの名無しさん:2005/11/29(火) 22:55:08
上の方の人と同じくリッチテキストボックスコントロールについて質問なんですが、
こいつのコンテキストメニューに文字列検索機能を追加したいんですが、
どうやれば追加できますか?
もしかして追加でコモンダイアログとかがあるんですか?
ダイアログの外見はCTRL+Fの検索と同じような感じにしたいんで
511デフォルトの名無しさん:2005/11/29(火) 23:13:20
検索ダイアログはコモンダイアログとしてWindowsが提供してるけど、.NETのライブラリには入ってない。
「コモンダイアログ 検索」で調べれば検索ダイアログの使い方が見つかるだろうから、
そいつを.NETに移植することになる。
//CodeProjectとか漁れば見つかりそうな気もする。

検索そのものはRichTextBoxならFindメソッドがあるだろ
512デフォルトの名無しさん:2005/11/29(火) 23:24:07
>>511
ありがトン
助かったっす
513デフォルトの名無しさん:2005/11/30(水) 00:27:39
C#というか.NETというかWindowsの問題かもしれませんが、スレッドのプライオリティってちゃんと働いてます?
たしかNTの実装はひとつでも上位のプライオリティを持つ稼動スレッドがあったら下位のスレッドは永遠に待たされるってはずだと思うんですが、どうも下位のスレッドが動いているときにUIの処理にもたつきが出ます。
まだ、IOなどで処理が絡んでると子もあるかもしれないんですが、なんかスレッドの動作も影響してるような・・・
514デフォルトの名無しさん:2005/11/30(水) 01:04:16
正直まだ.NETのライブラリの動作に安定をもとめちゃだめ
515デフォルトの名無しさん:2005/11/30(水) 01:05:09
>>513
>ひとつでも上位のプライオリティを持つ稼動スレッドがあったら下位のスレッドは永遠に待たされるってはずだと
んな馬鹿な。
516デフォルトの名無しさん:2005/11/30(水) 01:05:42
Windowsでそのへんつつくのはどうかと思う。
ちゃんとしたリアルタイムOS使ったら?
517デフォルトの名無しさん:2005/11/30(水) 01:09:24
>>513
とりあえずC++で検証してみれば?
518デフォルトの名無しさん:2005/11/30(水) 01:39:29
今のWindowsって、確か疑似マルチスレッドOSなんじゃないのかな。
タスクマネージャ→プロセス→優先度の設定なんて項目あるじゃん。
ってことは、少なくともユーザプロセスの、スレッド管理はプロセス管理の下部構造
であって、あるプロセスのタイムスライスをその同居スレッドが食い合う構造なんじゃないのかな。

つまり、あるワーカースレッドの優先度を上げると、プライマリスレッドの使えるタイムスライスが
減る。ただし、タイムスライスの割り当てアルゴリズムがある程度臨機応変に動いているから
スレッドを増やすと処理速度が上がる。
519513:2005/11/30(水) 01:41:07
>>515
いや本当。Unixは下位のスレッドがあった場合にも、ある割合でそちらに処理が実行されるが、NTは上位のスレッドのタスクがある限り下位のスレッドには遷移しないはず。
通常はCPUを独占するスレッドがあまりない&あってもその他のスレッドが同じプライオリティを持ってるので処理が割り当てられるため普通のスレッド処理と期待する動作がおこなわれてるってはず。
520デフォルトの名無しさん:2005/11/30(水) 01:42:02
卒研でEWSやらSunやらIndigoやらWinやら使ってシミュレータ書いてた漏れの
モナニー解釈だけどね。
521デフォルトの名無しさん:2005/11/30(水) 01:43:21
>>519
> いや本当。
> 下位のスレッドには遷移しないはず。

もうちょっと根拠だそうよ
522デフォルトの名無しさん:2005/11/30(水) 01:44:32
>>519
win2kでは最大4分待ちって聞いたことある。
NTも必ずタイムスライスが回ってくるけど、数十分に1回とかだと聞いたことがある。
レジストリで変えられるとか言うはなしだったけど。
523デフォルトの名無しさん:2005/11/30(水) 01:48:10
やっぱり商用UNIXじゃないと。
524デフォルトの名無しさん:2005/11/30(水) 01:50:53
>>519
UNIXにマルチスレッドの定義はなかったと思うけど…
Pスレッドのことか?
プライオリティの低いスレッドが割り込めないのは単純割り込み方式
だけど、さすがにそんな教科書実装してないと思うよ。
スケジューリングやってるはず。 でなきゃ割り込みでいいじゃんになる。
525513:2005/11/30(水) 01:52:02
526デフォルトの名無しさん:2005/11/30(水) 02:07:01
>>525
とりあえずぐぐった先を読んだ限りでは、
クォンタム期間は独占されるがそうでなければプライオリティが低いのも実行可能としか読めないが。

P低が実行>P高がスケジューリング>P高がレディ、P低のクォンタムを中断>P高実行>
P高のクォンタム終了>P低の中断したクォンタム再開
527デフォルトの名無しさん:2005/11/30(水) 02:12:27
スケジューリング時に全てのスレッドにタイムスライスが割り当てられるわけでしょ?
で、スケジュール通りに動くけど、プライオリティの高いスレッドが実行可能状態に入ると
そっちが優先されると。

プライオリティの高いスレッドが、”他のスレッド実行中に実行可能状態に入る”のは、
該他のスレッドが明示的に状態遷移させるか、ハードウェアからの割り込みぐらいだろうから、
ずっと該他のスレッドがタイムスライスを食われたままで、与えられないってことには
ならないんでないの?
528デフォルトの名無しさん:2005/11/30(水) 02:16:41
それより、Win2kから、onPaintイベントの大半が、カーネル側の担当になったでしょ。
あのイベントって誰がどのタイミングで処理してるんだろうね?
プライマリスレッドはやってないだろうし。
529513:2005/11/30(水) 02:21:51
今見直したらAdvancedWindows 1stEditon P65にも優先度の高いスレッドがひとつでもある場合には下位のスレッドに処理は割り当てられないと書いてあった。
>>526
例だとプライオリティ18のスレッドが一つだけでクォンタムを使い切ったとしてもプライオリティ18のレディキューの最後=最初に移動されるだけでまた実行されるとしか書いてなくないですか?
>>527
普通に今のスレッドのプライオリティをあげれば普通のスレッドより高いプライオリティになる。
530デフォルトの名無しさん:2005/11/30(水) 02:26:12
>>529
ありえへん解釈や。
スケジューリングの意味がまったくなくなってる。
531513:2005/11/30(水) 02:29:47
>>530
なんで?AdvancedWindowsの記述ともマッチするよね?
532デフォルトの名無しさん:2005/11/30(水) 02:33:52
文理解釈はおいといて、次の処理を、その優先度の高いスレッドのルーチンにいれてみそ。

System.Windows.Forms.Application.DoEvents()
533513:2005/11/30(水) 02:37:34
>>532
いや、今下位のスレッドがバックグラウンドでずっとループ処理のようなものをしてるんだけれど、GUIに影響ないはずなのになんか応答が悪いのでスケジューリングに勘違いあったかなと。
534デフォルトの名無しさん:2005/11/30(水) 02:39:46
>>533
だ・か・ら、
プロセスのタイムスライスが食われてるんじゃないのか?
プロセスわけるか、サービスとして作成すれば解決するだろう。
535513:2005/11/30(水) 02:44:04
>>534
常に仕事しているのはプライオリティ下位のスレッド。タイムスライスが食われないはずなのにもたつくから理由がわからないでいる。
いわれてるのは普通に忙しいスレッドがある場合の話では?
536デフォルトの名無しさん:2005/11/30(水) 02:47:59
テキストボックスまたはリッチテキストボックスで以下の2つの機能を
実現したいんですが、どうすれば実現できますか?
1.Ctrlキーを押しながらの数箇所選択
2.ドラッグ&ドロップで文字列移動
537デフォルトの名無しさん:2005/11/30(水) 02:52:23
さぁ。
漏れは「常に」処理があれば、それだけで重いし、処理を分離する根拠になると思うけど。
ひょっとするとスケジューラはバックグランド処理だとみて、そのプロセスのターンアラウンド
下げるかもね。 その方がオーバーヘッド減りそうだし。
わかってると思うけど、プロセスの優先度はリアルタイム以上にあげないように。
538デフォルトの名無しさん:2005/11/30(水) 02:58:42
>>536
System.Windows.Forms.Control
から派生する。
539513:2005/11/30(水) 02:59:20
>>537
だからプライオリティ低ければ、CPU100%食う処理でもすくなくてもNTでは通常の処理に影響しない(スレッド遷移のオーバーヘッドを除く)ということだとおもうんですけど?
"重い"といってる意味がわからないんですけど?SETIも同じような実装してますよね?あれも常に100%食ってるけれど通常のアプリは普通に動く。
論点がずれてると思うんですけれど。自分は今下位のプライオリティのスレッドの処理が上位のスレッドに影響するのかの話(規定の動作だとしないはず)の話をしてるんですが。
540デフォルトの名無しさん:2005/11/30(水) 03:08:43
別チラシで頼むよ
541デフォルトの名無しさん:2005/11/30(水) 03:26:21
>>539
クレーム付いたので最終レス。
少なくとも疑似マルチスレッドOSなら影響する。以上。
542513:2005/11/30(水) 03:32:44
終了します。失礼しました。
543デフォルトの名無しさん:2005/11/30(水) 05:20:37
一プロセス内で数スレッド作って切り替えの様子みてると
スパーク系ソラリスは頻繁に切り替わったけど
NTはあまりスレッド切り替えしないね。
544デフォルトの名無しさん:2005/11/30(水) 05:40:29
ヲタハケーン
545デフォルトの名無しさん:2005/11/30(水) 05:42:16
シングルCPUのマシンで実行した場合と
マルチCPU(含マルチコア)のマシンで実行した場合で違うよ
546デフォルトの名無しさん:2005/11/30(水) 10:35:52
DataSetにDataTable1とDataTable2が追加されていて
Relationが張ってるときに、
DataTable1.Select()のソート順にDataTable2のフィールドを
指定することはできますか?
それともコードでDataTable1にソートしたいColumnを追加
してデータをコピーしないといけないのでしょうか?
よろしくお願いします。
547デフォルトの名無しさん:2005/11/30(水) 10:39:29
548デフォルトの名無しさん:2005/11/30(水) 11:29:29
質問。
&と&&って何がちがうんですか?
処理の結果はかわらないと思うだけど。
後 | と || も。
549デフォルトの名無しさん:2005/11/30(水) 11:36:23
前の式で判断の結果が明らかなときに後の式を判断するかどうか。
static bool IsTrue() {
    Console.WriteLine("True.");
    return true;
}
static void Main() {
    if (IsTrue() | IsTrue())
        Console.WriteLine("bitwise-or");
    if (IsTrue() || IsTrue())
        Console.WriteLine("or");
}
550デフォルトの名無しさん:2005/11/30(水) 11:48:49
あふぉがあふぉにれすするすれ
551デフォルトの名無しさん:2005/11/30(水) 11:55:18
ビット演算子と論理演算子じゃないの?
552デフォルトの名無しさん:2005/11/30(水) 12:43:18
>>548
まず試してみろヴォケ
553デフォルトの名無しさん:2005/11/30(水) 14:04:06
機能を一つ追加した程度でもバージョンアップしても良いの?
こないだ自分用のツール作ったんだけどさ、
毎日のように新しい機能とか思いつくんだよ
だからさ、毎日のようにマイナーバージョンが増えていくんだ
数日に一回ぐらいにするべきかな?
554デフォルトの名無しさん:2005/11/30(水) 14:16:41
自分用なら好きにしろよ
555デフォルトの名無しさん:2005/11/30(水) 14:25:27
>>553
バージョン管理をする目的は何?
それが明確になれば答えは出るんじゃない?
556デフォルトの名無しさん:2005/11/30(水) 14:36:02
>>547
そんなのです!
どうもありがとう!
557553:2005/11/30(水) 14:39:49
>>554
今は自分用だが我ながら出来が良いのでいずれ誰かにあげるかもしれん

>>555
ん?ってことは機能が違うならマイナーアップして良いってこと?
558デフォルトの名無しさん:2005/11/30(水) 14:49:15
>>557
何を気にしているのかわからんが、バージョン番号の付け方に決まりなど無い。
よって>>554
559デフォルトの名無しさん:2005/11/30(水) 16:06:12
>>548
ショートサーキット
560デフォルトの名無しさん:2005/11/30(水) 16:24:31
>>553
ならバージョン管理でも導入して、適当なところでtag付けておけ
そうすりゃ自分用と配布用にある程度分けられるだろ
561501:2005/11/30(水) 16:39:11
RichTextBox について再び同じような内容で質問です。
>>502 氏のリンク先に書かれたソースコードを適用したところ、
一時的には強制フォント変更の問題が解決したように思えたのですが、
別ダイアログを使って文字列検索を行うため HideSelection を false にしたところ、
なぜか再び Arial 地獄が復活しました。
理由は完全に不明です(ググってみても分かりません)。
この問題について何か情報は無いですか?
ちなみに、「検索ダイアログ.ShowDialog(this)」の直前で false にして
直後に true に戻す作戦は試しましたが駄目でした。
この文字列検索機能を諦めるべきでしょうか?
完全な解決ではないですが、 OpenJane の検索のように一件検索するごとに
ダイアログを閉じる方法もあります。
しかし、せっかく IE の検索ダイアログ並みの検索ダイアログを作成したので、
可能であれば使いたいと考えているのですが……
562デフォルトの名無しさん:2005/11/30(水) 16:42:27
ハンドルが作り直されたからだろ
HideSelectionの変更のためにはウィンドウスタイルを変更せにゃならんはず
メッセージ送りなおせば?
563501&561:2005/11/30(水) 16:58:51
どの部分でメッセージを送れば良いですか?
まだまだ初心者なもので、API とかメッセージとかよく分からないです。
ところで、プロパティのオーバライドってできましたっけ?
できるようであれば、そこの get や set のところでメッセージ送信して、
それから return super.HideSelection とかやれば良さそうな気がするのですが……
(メッセージ送信の方法はコンストラクタでやっているのと同じで良いんですよね?)
564501&561&563:2005/11/30(水) 17:12:06
訳が分からなくなってきたので、
一件ごとの検索で妥協することにしました。
565デフォルトの名無しさん:2005/11/30(水) 17:12:50
ハンドルが変わるたびに送りなおす必要があるのなら、
HandleCreatedイベントでやらせとけばいいんじゃね
566デフォルトの名無しさん:2005/11/30(水) 17:25:14
>>565
ありがとうございます!
さっそく
this.HandleCreated += (ry
でやってみました!
そしたら成功しました!
大感謝であります!
567デフォルトの名無しさん:2005/11/30(水) 18:11:53
VBからC#に乗り換えたんだけど、ドキュメント読みながら
ふむふむこうやるんだ!なぁーんだ簡単!うわすげぇ!ウハハハハwww
と楽しみながらやっております。以上
568567:2005/11/30(水) 18:15:13
特に感動したのは、VBのモジュールは知ってたがクラスが何の役に立つのか
さっぱりわからなかったので、C#使った瞬間こういうことなんだ!!!と興奮した。
最初は “静的” という言葉がナンなのかわからなくて困ってたけど。
あとVBではできなかったマルチスレッドに感動しました。
もうドゥーイベンツでごまかすのは おさらば だと思うと涙が出そうです。
569デフォルトの名無しさん:2005/11/30(水) 19:28:32
VBでもマルチスレッドできるよ?
VB6じゃできんけど。
570デフォルトの名無しさん:2005/11/30(水) 19:40:11
C#で避けゲーみたいなの作ってるんだが
難しいな・・・

なにをどうすればいいかさっぱりだ
571デフォルトの名無しさん:2005/11/30(水) 20:14:08
PrintPreviewDialogでさ、「プレビューを生成しています。」って小画面表示されるよね?
あれをセンターに表示したいんだけど、どうしたらできる?
572デフォルトの名無しさん:2005/11/30(水) 21:39:37
継承によって機能拡張はできるけど、その逆ってできないの?
つまりクラスなどの機能縮小ね
コントロールとか無駄な部分が多くてリソースが勿体無い
573デフォルトの名無しさん:2005/11/30(水) 21:42:10
そういう設計自体が好まれて無いよ。
574デフォルトの名無しさん:2005/11/30(水) 21:50:19
>>572
というか常識的に考えてさ、Controlクラスが場合によってControlとして
振舞ってくれなかったら悪夢だろ。Streamクラスみたいにそういうのを
想定しているならまだしも。
ちなみに継承は「拡張」じゃない。「特化」や「限定」だ。
575デフォルトの名無しさん:2005/11/30(水) 21:57:45
拡張でもいいんじゃないか? java だと extends だし。
576デフォルトの名無しさん:2005/11/30(水) 22:07:33
機能面から見ると拡張でもよさそうだね。
機能縮小というか隠すだけなら包含と委譲でいけるが、ほんとに削り落とすとなるとなさそうだな。
577デフォルトの名無しさん:2005/11/30(水) 22:13:56
>>572
俺としては、Windows Formsを無視したオリジナルな
軽量ウィンドウライブラリを構築することをお勧めする。
Win32のちょっとしたラッパでいい。
出来上がったら俺が使ってやる。
578デフォルトの名無しさん:2005/11/30(水) 22:24:25
MFCでもつかっとけ
579デフォルトの名無しさん:2005/11/30(水) 22:34:54
プロパティが30個ほどある、設定を保持しておくためだけのクラスがあります。
プロパティは読み書き可能なんですが、そのインスタンスから、
同じプロパティで、すべてのプロパティが読み取り専用なクラスを作りたいんですが、
どんなやり方がありますかね?

設定を一度設定ファイルから読み込んだらもう変更したくないんですが
580デフォルトの名無しさん:2005/11/30(水) 22:36:36
>>579
> 設定を一度設定ファイルから読み込んだらもう変更したくないんですが
読み書き可能なクラスを作る必要があるのか?
581デフォルトの名無しさん:2005/11/30(水) 22:37:42
>>579
逆転の発想なら、get のみのアクセサを持つクラスを継承して set/get 両方を持つクラスを作る。
正攻法なら、読み取り専用のクラスの set アクセサを使ったら例外飛ばすようにする。
582デフォルトの名無しさん:2005/11/30(水) 22:39:54
>>580
うう、すみません説明不足でした。

XmlSerializerは、プロパティ(またはフィールド)が読み書き可能じゃないと使えないようなんです。
できればBinaryFormatterやSoapFormatterは使いたくないんですが、
あと独自の設定ファイルも使いたくないんですが(大量のプロパティを延々設定していくメソッドを作るのはなんか変)

あきらめるしかないでしょうか
583デフォルトの名無しさん:2005/11/30(水) 22:40:42
>>581
ありがとうございます
上を試して見ます
584デフォルトの名無しさん:2005/11/30(水) 23:06:21
ねぇXMLってあんまり使われてないん?
ここでいうのも何なんだがどのXMLすれもほとんど更新されてへん。使い始めたばかりでいろいろと聞きたいことあるんだけど・・・
585デフォルトの名無しさん:2005/11/30(水) 23:09:08
聞かれりゃ答える
XMLスレはすぐ落ちるので見に行かなくなったが
586デフォルトの名無しさん:2005/11/30(水) 23:09:18
自分のパソコンの中をxmlで検索してみれば?
587デフォルトの名無しさん:2005/11/30(水) 23:51:32
俺のなかではRSSとかAtomとかオモスレー
588584:2005/12/01(木) 00:10:55
>>585
お言葉に甘えて。
クラスにあたるようなものをXMLSchemaで定義して、それにあわしてちょっと複雑な設定ファイルを作りたいんだけど、
その場合、クラスのようなものをcomplexTypeで定義、その中でメンバに当たるようなものをattributeもしくはelementで表現。
elementとかは基本的にはsequenceで列挙、その中で候補が複数あるものにはchoiceを使い、
値には正規表現でバリバリにチェックという感じで委員でしょうか?
589デフォルトの名無しさん:2005/12/01(木) 00:33:17
XMLは重杉でオンラインでは使えん。
VS2005でも3〜4倍程度の高速化だし、使えるかどうか微妙。
590デフォルトの名無しさん:2005/12/01(木) 00:39:23
オンラインとはどんなことを想定して言ってるの?
Webサービスは全部Xmlメッセージだと思われ?

VS2005で3〜4倍高速化したとはほんと?
普通にうれしいんですが
591デフォルトの名無しさん:2005/12/01(木) 00:40:03
>>588
答えるとは言ったがそれはスレ違いじゃね?
.NETの標準的なクラスのXML Schemaが知りたいならxsd.exeを使えば雰囲気はつかめると思う
592デフォルトの名無しさん:2005/12/01(木) 01:53:50
>>591
だよね。どっかコミュ探します。
593デフォルトの名無しさん:2005/12/01(木) 18:01:33
リッチテキストボックスにファイルなどを貼り付けるにはどうしたらいいですか?
昔VB6か何かで同コントロール使ったときには簡単にできた気がするのですが、
C#でのやり方は知らないので、知っていたら教えてください
594593:2005/12/01(木) 18:06:26
かなり説明不足でした
要するにコピペしたときにアイコンが表示されるものとされないものがあるので、
これをすべて表示できるようにするにはどうしたらいいのかってことです
595デフォルトの名無しさん:2005/12/01(木) 18:37:07
.Net2.0とSharpDevelop2使ってます。
System.Windows.Forms.ListViewでサブアイテムに画像を表示させたくて調べた結果オーナードローしか手がないようで挑戦しました。

派生クラスをつくって、
this.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.ListViewDrawSubItem);
this.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler(this.ListViewDrawColumnHeader);
を追加して、e.DrawBackground()で背景を描いてから、ListViewDrawSubItemの中では画像を表示したいカラム以外ならe.DrawText()、画像のカラムならm_imglist.Draw(e.Graphics,...)、こんな感じで描画は成功しました。

でも問題が1つ。
項目をクリックして選択行を変えただけで、表示されてる全ての行の全てのカラムにいちいち再描画イベントが飛んできてしまうので、チカチカして重いんです。
オーナードローを使わないで普通に使ったときのListViewの動作は、選択行を変えたときは選択が消える行と選択される行だけが表示更新されているのでチカチカしませんし軽いです。
同じ動作にしたいんですが、再描画を行う必要があるのかないのかイベントプロシージャ内で判別する方法がわかりません。

なにかいい方法ないでしょうか。
596デフォルトの名無しさん:2005/12/01(木) 20:59:40
ん〜、試した限り元選択行と新選択行しか再描画してないようだけど。.NET2.0正式版。
597デフォルトの名無しさん:2005/12/01(木) 22:29:31
うう…そちらの環境では元選択行と新選択行しか再描画しませんか。

ListViewを継承したクラスでOwnerDraw=trueにして、5個カラムをつくり、画面上に4行見えている状態で選択行と違う行を1回だけクリックしたときの挙動をListViewDrawSubItemの先頭にデバッグ出力を入れて試してみました。
見事に表示行全てしかも2回も呼ばれるようです。(涙
---
2005/12/01 22:23:08 column=0item=0
2005/12/01 22:23:08 column=1item=0
2005/12/01 22:23:08 column=2item=0
2005/12/01 22:23:08 column=3item=0
2005/12/01 22:23:08 column=4item=0
(略)
2005/12/01 22:23:09 column=2item=2
2005/12/01 22:23:09 column=3item=2
2005/12/01 22:23:09 column=4item=2
2005/12/01 22:23:09 column=0item=0
2005/12/01 22:23:09 column=1item=0
2005/12/01 22:23:09 column=2item=0
2005/12/01 22:23:09 column=3item=0
2005/12/01 22:23:09 column=4item=0
(略)
2005/12/01 22:23:09 column=0item=3
2005/12/01 22:23:09 column=1item=3
2005/12/01 22:23:09 column=2item=3
2005/12/01 22:23:09 column=3item=3
2005/12/01 22:23:09 column=4item=3
598デフォルトの名無しさん:2005/12/01(木) 22:43:15
.Net2.0SDK正式版(日本語のSDKはまだのはずなので英語版)+SharpDevelop2(corsavyの最新版)です。
599デフォルトの名無しさん:2005/12/01(木) 23:28:35
.NET Frameworkのソースを読んでいるのですが
System.Windows.Forms.TabControl.OnDrawItem(DrawItemEventArgs)
を呼んでいる個所が見つけれません。

ご存知のかたいませんか?
600デフォルトの名無しさん:2005/12/01(木) 23:29:53
WndProcの周辺でないの?
601デフォルトの名無しさん:2005/12/02(金) 00:34:53
System.Windows.Forms.TabControl.WndProc(Message&)
System.Windows.Forms.TabControl.WmReflectDrawItem(Message&)
System.Windows.Forms.TabControl.OnDrawItem(DrawItemEventArgs)
602デフォルトの名無しさん:2005/12/02(金) 00:37:36
>>597
WndProcで、base.WndProcを呼ぶ前に
 作成していた場合RegionをDispose&HrgnをDeleteObject
 CreateRectRgn関数&GetUpdateRgn関数で更新リージョン取得
 Region.FromHrgnでRegion作成

OnDrawSubItem or DrawSubItemで
 e.Bounds.Locationが上で作ったRegionのIsVisibleでない場合処理中止

これでどう?
603デフォルトの名無しさん:2005/12/02(金) 00:50:24
ぜんぜん関係ないけど
ArrayListよりList<>の方が
キャストなしでも10%くらい速いんだね。

604デフォルトの名無しさん:2005/12/02(金) 00:56:02
値型ならボックス、アンボックスが起こらない分はやいだろうね

参照型でも速い?
605デフォルトの名無しさん:2005/12/02(金) 01:07:58
Windowsフォームの特定の範囲だけ印刷する事は出来るのでしょうか?
606デフォルトの名無しさん:2005/12/02(金) 01:12:18
>>601
そこまでは誰でもわかります。

TabControl.DrawItem イベント のヘルプに
「OwnerDrawFixed に設定されている場合に、タブが描画されたときに発生します。」
とあるのですが、これがどこに記述してるのかが知りたいのです。
607デフォルトの名無しさん:2005/12/02(金) 01:32:48
すいません、ものすごく基本的な質問かもしれませんが…

DLLファイルってあるじゃないですか。
これって多くがC++で制作されているのかな?
そうするとC#上でC++で制作されたDLLファイルを扱うことが出来ないの?
608デフォルトの名無しさん:2005/12/02(金) 01:34:47
日本語が崩壊してるな。
普通のC++が出力するDLLとC#など.NET向きのコンパイラが出力するDLLは別物。
609デフォルトの名無しさん:2005/12/02(金) 01:38:13
>>607 これとか?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html

んで質問、
C#で、C++の順列を生成する<algorithm> next_permutationに当たるものって有りますか?
610デフォルトの名無しさん:2005/12/02(金) 01:39:21
すいません、端子RESのプログラムは何で再生すればいいのでしょうか
お願いします、教えてください。
611デフォルトの名無しさん:2005/12/02(金) 01:42:25
解読:

すいません、拡張子resのファイルは何で編集すればいいのでしょうか
お願いします、教えてください。

でOK?
612デフォルトの名無しさん:2005/12/02(金) 01:43:09
エディタ
613デフォルトの名無しさん:2005/12/02(金) 01:46:23
>>606
>そこまでは誰でもわかります。
誰でもわかるならもうちょっと考えろよ

オーナードローだからWM_DRAWITEMが怪しいとは思えないのかね

WM_DRAWITEM が飛んできたときに
WndProcでWmReflectDrawItemが呼ばれる

>これがどこに記述してるのかが知りたいのです。
よってWndProc

最初っからしりたいこと書いてよ
小出しにされてもわからへんがな

614デフォルトの名無しさん:2005/12/02(金) 01:48:34
>>609
標準ライブラリには無いねー。
なんかCombinationクラスならサンプルがあるみたいだけど。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/mth_lexicograp.asp
615デフォルトの名無しさん:2005/12/02(金) 01:51:40
>>611
ええっと、拡張子がresのプログラム?を落としたんですが再生の仕方がわからないんです。
616デフォルトの名無しさん:2005/12/02(金) 01:53:52
僕も分かりません><
617デフォルトの名無しさん:2005/12/02(金) 01:56:18
>>614 dクス、ありがとう
618デフォルトの名無しさん:2005/12/02(金) 01:57:33
>>613
WmReflectDrawItemが呼ばれる条件にはOwnerDrawFixed に設定されているのと記述はありません.
Msgが0x202Bなら無条件でWmReflectDrawItemが呼ばれます.

つか0x202Bがなんなのかが分からないんです。
619デフォルトの名無しさん:2005/12/02(金) 02:02:59
……メッセージのこと知らないのか?
Windowsを勉強してこいとしか言いようが無いが
620デフォルトの名無しさん:2005/12/02(金) 02:04:50
0x202Bは
WM_REFLECT + WM_DRAWITEM
621デフォルトの名無しさん:2005/12/02(金) 02:05:20
じゃあ0x202Bはどんなメッセージ?
WM_DRAWITEM ではありませんよw
622デフォルトの名無しさん:2005/12/02(金) 02:06:18
惜しい、30秒
623デフォルトの名無しさん:2005/12/02(金) 02:13:51
PSDKからhファイルだけ抜いてどっかにおいといて
デスクトップ検索。これお勧め
624607:2005/12/02(金) 02:15:13
>普通のC++が出力するDLLとC#など.NET向きのコンパイラが出力するDLLは別物。
そうなんですか。

ネットで公開されているファイルなどを利用出来るのなら便利だと思ったのですが。
625デフォルトの名無しさん:2005/12/02(金) 02:16:01
誰でもわかるのに
メッセージ一つ調べられんのかよ

最初っから
TabControl.DrawItem イベント のヘルプに
「OwnerDrawFixed に設定されている場合に、タブが描画されたときに発生します。」
とあるのですが
メッセージが0x202Bのときに発生するようですが
0x202Bって何ですかって聞け
626デフォルトの名無しさん:2005/12/02(金) 02:18:02
じゃあ、メッセージ0x202Bを投げてる人は誰ですか?

Windowsですか?
627デフォルトの名無しさん:2005/12/02(金) 02:23:44
REFLECT_NOTIFICATIONS

WM_REFLECT (WM_USER+0x1c00)

あたりを調べろ

もう十分付き合ってやっただろw
628デフォルトの名無しさん:2005/12/02(金) 02:25:56
てか613がずばり答えいってんジャン

釣りか?
629595:2005/12/02(金) 13:15:29
595です。解決できますた。
やっぱり、イベントハンドラ内で描画すべきかどうか判断する必要があって、それをしないで描画していたので何度も表示更新されてました。
e.Status または e.ItemStatus がそれです。

ところが、単一選択を指定している場合、 HideSelection が true/false に関わらず Selected の bit は常にどの行でも立っているという謎の仕様のようです。
これであのあと、一晩ハマリました。Focused なら選択行だけが真になっているのでソチラを採用しました。

あと、コントロールの Focused が false のときにも選択行をハイライトしたかったので、コントロールの SelectedItemChenged もトラップして選択行が変わるたびに自分で行番号を憶えるようにして全て解決できました。

同じとこでハマル人のために、ご参考までに〜〜

630デフォルトの名無しさん:2005/12/02(金) 15:08:38
ハッシュテーブルに入れたオブジェクトは
ハッシュテーブルから削除すればGCの対象になるのでしょうか?
それとも何かしらのオブジェクトの破棄をしないとメモリリークの原因となってしまうのでしょうか?
631デフォルトの名無しさん:2005/12/02(金) 15:30:41
>>630
前者
632デフォルトの名無しさん:2005/12/02(金) 15:36:01
>>631
Thx!
これで一歩前へ進めます
633デフォルトの名無しさん:2005/12/02(金) 20:19:17
windowクラス名を固定することはできないんでしょうか?
634デフォルトの名無しさん:2005/12/02(金) 21:32:08
keyの相手は2つある場合のデータ保存方法、取得方法を教えて下さい。

key   data1   data2
1     a      b
2     c      d

というように
key=1を指定したらaとbを取得でき
key=2を指定したらcとdを取得するということをしたいです。
ハッシュを使うとdata1だけなら取得できることは調べて
分かったのですが、data1とdata2の2つを取得する方法がわかりません。
635デフォルトの名無しさん:2005/12/02(金) 21:33:42
つSortedDictionary<int,Pair<Data1Type,Data2Type>>
Pairはそれらしいの自分で実装のこと
636デフォルトの名無しさん:2005/12/02(金) 21:35:56
データ構造が不明だが、data1とdata2を持つクラスを作ってHashtableに格納するとか?
それともNamedValueCollectionみたいなのを求めてるのか?
637デフォルトの名無しさん:2005/12/02(金) 23:38:55
hash.Add(1, new object[]{a,b});
hash.add(2, new object[]{c,d});

object[] arr = (object[])hash[1];
638デフォルトの名無しさん:2005/12/02(金) 23:46:35
HashTableを2つ使えば解決w。つーかC#関係なくね?
639デフォルトの名無しさん:2005/12/02(金) 23:50:24
>>638
そんな蛸な設計してる部下いたら作り直させる。
640デフォルトの名無しさん:2005/12/02(金) 23:58:39
いいんだよ
動きさえすれば
641デフォルトの名無しさん:2005/12/03(土) 00:29:20
Listより、Hashtableを使ったほうがよい(速い)場合の要素数って15くらい?
642デフォルトの名無しさん:2005/12/03(土) 00:31:51
標準のHybridDictionaryでは要素数10でListとHashtableを切り替えるな
643デフォルトの名無しさん:2005/12/03(土) 00:34:44
Dictionary<T> って Add した順序が保存されている気がするけど
ひょっとして ListDictionary と同じ実装なわけ?
644デフォルトの名無しさん:2005/12/03(土) 00:35:47
Thx
じゃ、Hashtableを2つ使えばよさげって場合はなかなかなさそうですな
645デフォルトの名無しさん:2005/12/03(土) 02:35:40
リッチテキストでのD&D機能が成功しない……
ちょこっとテキストを楽に移動させたいだけなんだけどなー
なのになんでこんなに苦労せにゃいかんのだ
646デフォルトの名無しさん:2005/12/03(土) 11:19:07
>>624
だから利用出来るってば。>>609参照
[DllImport("hoge.dll")]
extern static int Hoge();
みたいな感じ。
647デフォルトの名無しさん:2005/12/03(土) 11:58:07
CrystalReportを使って帳票を作っています
レポートビューワで表示したときに複数の帳票を一つのビューワで出したいと思っているのですが、メインレポートのタブの横に新しいタブを追加する方法がよくわかりません。
新しいタブを追加し、別のレポートを出力する方法を教えてください
648595:2005/12/03(土) 20:14:37
クラス classA の配列を返すメソッドを書きたいんですが、どうやって classA の配列を返したらいいかがわかりません。

そのメソッドの中では、与えられた条件を元に、1つずつ classA のインスタンスを new しています。
つくられるインスタンスの数は、条件によってまちまちで、予め予測できません。
classA[]ary;
classA obj = new classA();
array.Add(obj);
のように次々追加して、
return ary;
のように返すことができるかと思って調べたんですが、できないようです。どうやったら配列をつくって返すことができるでしょうか。
649デフォルトの名無しさん:2005/12/03(土) 20:23:28
List ary
ary.add(new A);
A[] a=new A[ary.Count]
ary.CopyTo(a);
650デフォルトの名無しさん:2005/12/03(土) 20:26:46
>>649
というか何言語だそれは

ArrayList/List<classA>使えば良いよ
配列にするにはToArray
651デフォルトの名無しさん:2005/12/03(土) 21:09:36
重たくならんか?
652595:2005/12/03(土) 21:21:12
>>650
ArrayListを使ってToArray()でobject型の配列として返すことができるのを確かめました。
あとは classA[] として返す方法ですが List<classA> の方がその説明だと思いますので調べてみます。
>>649
Listを使ったらできるということですよね。調べてみます。

ありがとうございますー!!
653デフォルトの名無しさん:2005/12/03(土) 21:23:16
ArrayList.ToArrayのオーバーロード見れ
654デフォルトの名無しさん:2005/12/03(土) 22:08:15
C#のイディオム集。みたいなのどこかにありませんか?
655デフォルトの名無しさん:2005/12/03(土) 22:26:02
MSDN
656595:2005/12/04(日) 00:02:38
>>653
> ArrayList.ToArrayのオーバーロード見れ
うは…見落としてました!!(泣)
(classA[])list.ToArray(typeof(classA)); で動作しました。

蛇足ですがちょっとひっかかったところを…ListArray に1つも要素を追加せずに
return (classA[])list.ToArray(typeof(classA));
された戻り値を classA[]l=foo(); のように受け取った場合、 l は null とはならないようです。
要素0件かのチェックは l.Length プロパティでうまくいきました。
657デフォルトの名無しさん:2005/12/04(日) 02:20:27
なんでICollectionにToArrayがないんじゃ。
658デフォルトの名無しさん:2005/12/04(日) 03:24:40
>>657
string[] strs = (string[])new ArrayList(collection).ToArray(typeof(string[]));
659デフォルトの名無しさん:2005/12/04(日) 03:26:31
typeof(string)な。

ていうか素直にCopyToしとけ。
660デフォルトの名無しさん:2005/12/04(日) 10:35:16
ここは extension method の出番だな
661デフォルトの名無しさん:2005/12/04(日) 11:04:34
複数のスレッドから同じ変数を読み込む場合は、それぞれ別の変数を
読み込むより効率が悪いのでしょうか?
662デフォルトの名無しさん:2005/12/04(日) 11:25:41
volatile をつければ効率は落ちるだろうが
効率よりも確実な同期を気にすべきだろ
663デフォルトの名無しさん:2005/12/04(日) 11:31:30
yieldをつかったイテレータ実装動いてるんだがなんとなくしっくり来ない・・・
664デフォルトの名無しさん:2005/12/04(日) 11:36:29
RebarDotNet.dllというのを使ってツールバーを作ろうと思うのですが、
Bandにボタンとかコンボボックスとかを複数設置するには
どうしたら出来るでしょうか?
665デフォルトの名無しさん:2005/12/04(日) 11:36:59
コンパイルした奴を逆コンパイルして見れ
666デフォルトの名無しさん:2005/12/04(日) 11:37:29
665 -> 663
667ToolStrip推奨委員会:2005/12/04(日) 11:54:59
>>664
ToolStripでいいじゃん
668デフォルトの名無しさん:2005/12/04(日) 11:57:20
>>662
ありがとうございます。勉強になりました。
669ToolStrip推奨委員会:2005/12/04(日) 12:00:55
>>664
つーかPanelおいてその上に配置したら?
670デフォルトの名無しさん:2005/12/04(日) 14:03:30
Typeで型情報を管理してるのよく見るけど
毎回GetType()で済ませたら何かまずいの?
671デフォルトの名無しさん:2005/12/04(日) 14:06:17
意味がわからん
672デフォルトの名無しさん:2005/12/04(日) 14:22:04
勉強がたらん
673デフォルトの名無しさん:2005/12/04(日) 14:33:18
Typeに基づいてキャストしたいんだけど、それらしいのが見つかりません・・・
こんな感じにしたいんだけどできるんでしょうか?

Dog dog;
Bird bird;
Type birdType=bird.GetType();
//check the type of target animal is same type or not.
Bird tmpBird=birdType.Cast(dog);
例が蛸なのはおいといてください・・・
674デフォルトの名無しさん:2005/12/04(日) 14:37:00
Typeを使うってことは普通、動的にしか型が分からないってこと。
キャストってのは静的に型が分かってないとできないこと。
例えばその例なら
> Bird tmpBird=birdType.Cast(dog);
で結局Birdにキャストするんだから、(Bird)docと書いても変わらないわけで。

as演算でもやってれば。
675デフォルトの名無しさん:2005/12/04(日) 14:40:04
if( dog.CanFly )
 Bird tmpBird =(Bird)dog;
676デフォルトの名無しさん:2005/12/04(日) 14:49:40
飛べるのが鳥だけと思うなよ
677デフォルトの名無しさん:2005/12/04(日) 15:34:26
鳥とペンギンの関係と「飛ぶ」という振る舞いについては良くある話だな。
678デフォルトの名無しさん:2005/12/04(日) 15:38:05
こうだな!

try
{
 if( dog is Bird )
 {
  Bird tmpBird =(Bird)dog;
  tmpBird.Fly();
 }
}
catch(NotSupportedException e)
{
}
679デフォルトの名無しさん:2005/12/04(日) 16:40:36
誤爆?
680デフォルトの名無しさん:2005/12/04(日) 16:53:18
質問です。
unmanaged API に渡すために、バイト配列へのポインタをDWORDとして取得したいのですが
どのようにすればよいのでしょうか。
681デフォルトの名無しさん:2005/12/04(日) 16:58:02
ポインタはDWORDじゃないが。
基本的に普通に配列として渡せばマーシャラが勝手にやってくれるけど?
Win32なら問題も無かろうし。
あと関数が配列の要素を変更する場合Out属性もつける必要がある。
682680:2005/12/04(日) 17:21:51
>>681 レスどうもです。
UInt32を引数としてとるデリゲートを通して呼び出しているので、
配列をそのまま渡すわけにはいかないんです。
683デフォルトの名無しさん:2005/12/04(日) 17:26:36
情報を後から出すなと

そのデリゲートも書き換えればいいが、そういうわけにもいかない場合は
・unsafeでfixedしてポインタからIntPtr生成
・GCHandle&GCHandleType.Pinnedで固定してAddrOfPinnedObject
でそのIntPtrをToInt32

……まて、デリゲートってことはコールバックか。
場合によっちゃ固定で難しいこともあるぞ。
684680:2005/12/04(日) 17:27:52
・・失礼しました。
デリゲートのほうをUInt32→byte[]にしたらうまくいきました。
すれ汚しすみません。
>>681 >>683 多謝
685デフォルトの名無しさん:2005/12/04(日) 19:28:00
キャストよりasを使えよ
686デフォルトの名無しさん:2005/12/04(日) 20:23:15
ものすごい馬鹿な質問なんですが、

System.Web;

って標準でインストールされているんでしょうか?
using System.Web;
してもそんな名前空間は存在しないって怒られるんですが・・
687デフォルトの名無しさん:2005/12/04(日) 20:25:16
プロジェクトの参照設定に入ってる?
688デフォルトの名無しさん:2005/12/04(日) 20:27:27
usingと参照設定は別物だぞ
usingは単に名前空間をコード内で省略して書けるってだけ
689686:2005/12/04(日) 21:10:56
>>687 688
サンクスです。
プロジェクトー>参照の追加
でうまくいきました
690デフォルトの名無しさん:2005/12/04(日) 23:55:33
DrawImageの遅さに嫌気さしてgdi32を直接コールするプログラム書いてます
デバイスコンテキスト作成するたびにGDIリソースってのを消費するらしいですがコレって何でしょうか・・・
DC作りすぎるとやっぱりマズイのかな・・・
リソースを消費を抑えるテクニック等のアドバイスお願いします。。。
691デフォルトの名無しさん:2005/12/04(日) 23:58:09
嘘つけ、DrawImageよりおまいのWIN32生コールのほうがはやいことは
絶対無い
692デフォルトの名無しさん:2005/12/04(日) 23:59:15
作ったものを削除すればいい
どうでもいいがGDIとBitmapクラスも大概相性悪いよな
693690:2005/12/05(月) 00:20:36
>>691
32ビットの640*480ビットマップを連続転送させるプログラムでテストしたところDrawImage:BitBltで2倍近いパフォーマンスが出ましたけど・・・
テストの仕方が不味かったですかね・・・orz

>>692
デバイスコンテキストは描画時のみ作成して、描画後は解放するのが流儀なのでしょうか?
現在のプログラムでは20個弱程度のDCを常時保持している状態です。
大きいビットマップを作成して複数のビットマップをチップとして扱うことでリソース消費を抑えられたらなーとか考えてました・・・
694デフォルトの名無しさん:2005/12/05(月) 00:57:19
>>693
一回C言語でWin32APIを使った描画を勉強してみるといい。
695デフォルトの名無しさん:2005/12/05(月) 01:41:54
C#に限った話じゃないんだが、お舞らログ出力ってどうしてる?
できればコンフィグなどで出力するログをスイッチしたいんだけど、実行時に毎回通るところにif(ほにゃらら〜
って書くのがなんかやなんだが。
696デフォルトの名無しさん:2005/12/05(月) 01:55:12
つ[ Strategyパターン ]
697デフォルトの名無しさん:2005/12/05(月) 02:27:47
C丼とはC♯のことですか?
698デフォルトの名無しさん:2005/12/05(月) 02:30:12
>>697
たぶんそうだろうね。
699デフォルトの名無しさん:2005/12/05(月) 02:42:46
>>696 Strategyなんかにしたらif(ほにゃらら よりも遅くなるだろうがゴラァ
700デフォルトの名無しさん:2005/12/05(月) 03:59:51
ConditionalAttribute
701デフォルトの名無しさん:2005/12/05(月) 05:04:30
syslog
702デフォルトの名無しさん:2005/12/05(月) 07:43:55
log4netなり
Logging Application Blockなり使えば?
703デフォルトの名無しさん:2005/12/05(月) 17:49:30
using StackAsterisk.NetDefineSet.HeaderDefine;
に失敗します。どういう事ですか。これは。
704デフォルトの名無しさん:2005/12/05(月) 17:58:07
StackAsterisk.NetDefineSet.HeaderDefineに該当するページが見つかりませんでした。

検索のヒント
キーワードに誤字・脱字がないか確かめてください。
違うキーワードを使ってみてください。
より一般的な言葉を使ってみてください。
--------------------------------------------------------------------------------
c2005 Google
705デフォルトの名無しさん:2005/12/05(月) 18:21:09
706デフォルトの名無しさん:2005/12/05(月) 18:38:09
そのサイトの同じ作者のほかのソースから持って来い
とは言えまるで応用力もなさそうだから>>703にできるかどうかは知らないけど
707デフォルトの名無しさん:2005/12/05(月) 18:53:04
類似したソースは見つかりませんでした
708デフォルトの名無しさん:2005/12/05(月) 19:16:04
もういいです
709デフォルトの名無しさん:2005/12/05(月) 21:14:09
C#のソースを配布したいのですが、.csファイルの他にどのファイルを公開すればよいのでしょうか?
プロジェクトのフォルダの中身を全て公開すればよさそうなんですが、
.suoファイルなどの中に個人情報が含まれていないか心配です。
710デフォルトの名無しさん:2005/12/05(月) 21:30:26
*.suo, obj, bin\Debug, *.pdb あたりを消せばいいと思う
711デフォルトの名無しさん:2005/12/05(月) 21:43:25
.suoと.userは要らない。
.csprojは参照dllを追加してるとdllのパスに
ローカルの相対パスかネットワークドライブなら絶対パスが入るので注意。
あとVSSを使ってるなら.csprojと.slnにその情報が残ったと思う。
712デフォルトの名無しさん:2005/12/05(月) 21:49:25
ここまでの話を総合すると、.csだけでいいってことだ。
713デフォルトの名無しさん:2005/12/06(火) 00:37:47
>>710-712
ありがとうございます
.csだけ公開することにしました
714デフォルトの名無しさん:2005/12/06(火) 00:39:24
本当に感謝の気持ちがあるならURL貼れ
715デフォルトの名無しさん:2005/12/06(火) 00:40:41
プロジェクトファイルやソリューションファイルがないとビルドする時に困る
716デフォルトの名無しさん:2005/12/06(火) 00:49:00
csc.exeにも慣れとけ
717デフォルトの名無しさん:2005/12/06(火) 01:09:50
もう MSBuild から離れられない
718467:2005/12/06(火) 08:33:48
原因が分かりました。
2chへの接続はHttpWebRequest/HttpWebResponseを使ってたのですが
どうも1つのプロセスからは1つのサーバーにセッションを2つしか作れないようです。

・書き込みを行うプログラムをシングルスレッドにして、プログラムを多数起動する

だとセッションが大量に生成されるので、速かったようです。
これは自分でTcpClientを使って書かなきゃいけない予感。
719デフォルトの名無しさん:2005/12/06(火) 09:36:03
>718
コネクション数の制限ってhttpの仕様。
720デフォルトの名無しさん:2005/12/06(火) 10:53:21
>>719
HTTPの仕様っつーか、クライアント側とサーバ側のそのぞれの設定だろ?

>>718
maxConnectionとApp.configあたりでぐぐったら?
721デフォルトの名無しさん:2005/12/06(火) 12:12:25
722デフォルトの名無しさん:2005/12/06(火) 12:21:06
サーバの負荷とか考えたことあるのか
723デフォルトの名無しさん:2005/12/06(火) 12:58:09
719 名前: デフォルトの名無しさん [sage] 投稿日: 2005/12/06(火) 09:36:03
>718
コネクション数の制限ってhttpの仕様。

722 名前: デフォルトの名無しさん [sage] 投稿日: 2005/12/06(火) 12:21:06
サーバの負荷とか考えたことあるのか
724デフォルトの名無しさん:2005/12/06(火) 13:28:29
>>718
このあたりのおまじないもやって置くとよいかもしれない。

System.Net.ServicePointManager.DefaultConnectionLimit = 10;
System.Net.ServicePointManager.MaxServicePointIdleTime = 10;
System.Net.ServicePointManager.Expect100Continue = false;

なんでこんな制限というか設定値があるかというと、RPCの際に
なるべくHTTP 1.1 を使って接続を使いまわすため。
725デフォルトの名無しさん:2005/12/06(火) 14:14:26
PerformanceCounterで値とろうとしてるんだけどNextValueだけで160-180msecかかってる・・・orz
遅すぎ。パフォーマンスカウンターはどうやってるんだ?
テストコード
PerformanceCounter p = new PerformanceCounter(
"Thread", "% Processor Time", Process.GetCurrentProcess().ProcessName + ".vshost/0", true);
while (true) {
Debug.WriteLine("begin-" + Environment.TickCount.ToString());
float val = p.NextValue();
Debug.WriteLine("end-" + Environment.TickCount.ToString());
}

726デフォルトの名無しさん:2005/12/06(火) 16:03:21
>>721
>なんでこんな制限かけてるんだろう?
RFCで定められているガイドラインですよ。

ttp://support.microsoft.com/kb/183110/ja
>HTTP 1.1 の仕様 (RFC2616) で接続数 2 が上限と定められているためです。

ttp://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec8.1.4
>持続的接続を使用するクライアントは、サーバへ維持する同時接続の数を制限すべきである。
>シングルユーザクライアントは、どんなサーバやプロクシへも 2 接続より多く維持すべきではない。

出来るからといって接続数を増やすのはマナー違反かと思います。
727デフォルトの名無しさん:2005/12/06(火) 16:16:29
こんなフォームを作りたいんですけど
(1)タイトルバーはアイコンなし、×ボタンだけ
(2)サイズ可変
(3)右下にサイズ変更グリップ

最近のコモンダイアログって、(1)〜(3)全部備えているじゃないですか。
真似したいんですがうまくいかないんです。

FormBorderStyle.Sizableだと(1)が出来ないので、FixedDialogに
SetWindowLongして(1)と(2)は出来たのですが、(3)が
分かりません。どうしたらいいでしょう?
728デフォルトの名無しさん:2005/12/06(火) 16:23:16
FormBorderStyle.SizableToolWindowでいいんじゃねぇの
729467:2005/12/06(火) 16:43:34
HTTP1.1の件は知っておりますが、そういう制限はアプリの製作者で実装するもので、
クラスライブラリ側で制限がかかってたとは思いもしませんでした。

>>720
>>721
>>724
ありがとうございます。おかげでTcpClientを使わなくてもよさそうです。
730デフォルトの名無しさん:2005/12/06(火) 16:48:50
vb6から乗り換えを考えてるのですがC#のメリット、デメリットはなんですか?
731デフォルトの名無しさん:2005/12/06(火) 16:54:31
言語のメリットねぇ。
Cライクのすっきりした文法とか。
732デフォルトの名無しさん:2005/12/06(火) 16:59:50
vbの文法をキモく感じないなら、まあ乗り換えなくてもいいんじゃないかなあ。
733デフォルトの名無しさん:2005/12/06(火) 17:14:09
>>730
.NET1.1 では、 VB.NET では不可能で、C#では可能なことがいくつかあった。
.NET2.0 では、 VBがかなり機能追加されたはず。
734デフォルトの名無しさん:2005/12/06(火) 17:15:57
>>727
.net 2.0ならFormBorderStyle.Sizableで全部できた希ガス
ShowIcon = false
MinimizeBox = false;
MuximizeBox = false;
こんな感じで
735デフォルトの名無しさん:2005/12/06(火) 17:59:30
C#でBASICのインタプリタもどきを作ろうとしてるんだけど、
C#で普通にWindowsアプリを作ると、初期化した後はウィンドウにイベントが来るまで何も出来ないと思うんだけど、
テキストファイルに書いてあるコードを休みなく順次実行するにはどうしたらいいんだろう?
マルチスレッドにするか、timerに1msごとにイベントを発生させてそれごとに1行ずつ進めていくぐらいしか思いつかないんだけど。
736725:2005/12/06(火) 18:19:45
すいません。こんなに遅いのが自分の環境だけなのか誰か試してもらえませんか?
後自分が何か勘違いしてるようであれば指摘してもらえると助かります。
737デフォルトの名無しさん:2005/12/06(火) 18:55:18
Process.GetCurrentProcess().ProcessName + "/0"
これなら?
738デフォルトの名無しさん:2005/12/06(火) 18:59:50
>>725
同じコードをもう一度実行するとどうなりますか?
739725:2005/12/06(火) 19:04:49
>>737
いまデバッグ用に同じプロセスを見ているので.vshostをつけないとプロセスが見つけられないのでつけてます。
>>738
繰り返しても同じですね。

今さがしたHP参考にmanagementObject使ってみてもいるんですが、これはこれで取れてる情報の値の意味がよくわからんです・・・UserModeTimeがユーザーモードの値なんだろうけど、どの期間のどんな値なのか・・・orz
参考URL
http://www.technewsgroups.net/group/microsoft.public.dotnet.general/topic9.aspx
740デフォルトの名無しさん:2005/12/06(火) 19:15:14
http://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/study/csharp/exercise.html#ex_console1
上記のサイトに、

class Sample
{
void Main()
{
Console.Write("岩永信之");
}
}

というのが載っていたのですが、コンパイルが


hhh.cs(5,5): error CS0246: 型または名前空間名 'Console'
が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってくだ
さい。

とエラーが出て通りません。どこがいけないのですか?
バージョンが新しくなって、昔通っていていたコンパイルも今では通らなく
なったということでしょうか?

他のところに間違って投稿して、マルチポストっぽくなってしまったのですが、
どうかよろしくお願いします。
741デフォルトの名無しさん:2005/12/06(火) 19:17:05
先頭に using System;
742デフォルトの名無しさん:2005/12/06(火) 19:59:14
>>735
・全部一気にに実行する(プログラムが終わるまでメッセージ受け付けない)
・マルチスレッド
743740:2005/12/06(火) 20:25:43
すみません。先頭に using System; を付けてみたのですが、

error CS5001: プログラム 'hhh.exe' のエントリ ポイントが定義されていません。

とエラーが出ます。やはり>>740にあるプログラムはnamespaceなど、
多くのものが省略された解答であるとみるべきでしょうか?
744デフォルトの名無しさん:2005/12/06(火) 20:30:25
>>743
Main の前に static 付けれ
745デフォルトの名無しさん:2005/12/06(火) 20:32:11
staticも抜けてるな
下の方のサンプルにはちゃんと書いてるのに
746デフォルトの名無しさん:2005/12/06(火) 20:33:25
おぉ、うまくいきました。
using System;

class Sample
{
static void Main()
{
Console.Write("Hello! World!");
}
}

これが一番簡単な形なんですね! やっと一歩踏み出せました。
>>744ありがとうございます
747デフォルトの名無しさん:2005/12/06(火) 20:37:50
>>745samも
748デフォルトの名無しさん:2005/12/06(火) 22:39:53
>>725
begin-559578
end-559609
begin-559609
end-559625
begin-559625
end-559625
begin-559625
end-559625
begin-559625
end-559640
……
初回がちょっと遅いけど、それ以降は1回のループあたり5msくらいか。
749725:2005/12/06(火) 22:48:46
>>748
まじっすか・・・orz
3G相当アスロンなのに・・・
750デフォルトの名無しさん:2005/12/06(火) 23:31:33
ある文字列が適切な正規表現であるか判別するには
コンストラクタでArgumentExceptionをキャッチするしかないんですか?
IsValidみたいなのないの?
751デフォルトの名無しさん:2005/12/06(火) 23:56:48
Hashtableについて教えてくれ

key : ushort
value : ArrayList

Hashtable hs = new Hashtable();
hs[0] = new ArrayList();

foreach(ArraList ar in hs.Keys){}

でビルドできるが、ArraList ar でエラーがでます。
なにか問題でも?
752デフォルトの名無しさん:2005/12/06(火) 23:58:45
keyはushortなんだろ?
Valuesか、Keysいらないんじゃないの?
753デフォルトの名無しさん:2005/12/07(水) 00:02:43
>>752
レス多謝です。
気づきました。ありがとう
754デフォルトの名無しさん:2005/12/07(水) 00:14:43
VC#2005βをダウンロードして使ってるんだけど、
保存したり、プロパティ変更したりすると、PCが
勝手に再起動するんですが・・・
どうもPCと相性が悪い
755デフォルトの名無しさん:2005/12/07(水) 00:16:27
うちもファイルIOが発生する処理?
ビルド・リビルドとかするといきなり再起動する場合が・・
756デフォルトの名無しさん:2005/12/07(水) 04:43:54
>>754
それってまずハードを疑うなぁ。電源容量足りてる&安定してる?
757デフォルトの名無しさん:2005/12/07(水) 09:27:07
dotfuscator
なんて読むの?
ドットファスケータ???
758デフォルトの名無しさん:2005/12/07(水) 10:35:34
>>757
元の単語 obfuscator がオブファスケータ(難読化する。先頭にアクセント。)で、
それと同じ感じでドットファルケータでいいと思う。
759デフォルトの名無しさん:2005/12/07(水) 22:35:19
>>680で質問させてもらった者ですが、もう一度質問させてください。

アンマネージド API を呼び出す場合に、
データの先頭アドレスを表すポインタ(IntPtr) を、 構造体の参照を引数としてとる関数に
データのコピーを伴わずに直接渡す方法はありませんか?
今度の場合は関数の宣言を変えることはあまりしたくありません。
構造体に一度格納してから渡す方法もあると思いますが、処理速度を考えるとこれもあまりしたくありません。
書き忘れていましたが、環境は .NET Framework 2.0 beta2 です。
760デフォルトの名無しさん:2005/12/07(水) 22:59:44
ref Hogeの代わりにIntPtrを引数に取るオーバーロード書けば良いだろ
761759:2005/12/07(水) 23:24:21
>>760
今はとりあえずそうしているのですが、このような引数が複数あった場合、
2^n 通りのオーバーロードを書かなくてはならないことになります。
それが関数の宣言を変えたくないと言った意味です。
そのため将来を考え、もっとスマートな方法はないかと思い質問しました。
確かに現状ではあまり問題はないのですが。
762デフォルトの名無しさん:2005/12/07(水) 23:30:50
両方で表現しなきゃならないのが3つより多いなんてあるのか……?
つかそんなコードC#で書くな。
763デフォルトの名無しさん:2005/12/07(水) 23:43:58
C++みたくメソッドの実装はクラスの外に書けないんですか?
2000行もあるようなクラスだとエクスプローラがなきゃ読む気しねーw
764デフォルトの名無しさん:2005/12/07(水) 23:46:28
2000行もあるクラスを書くなってのが基本姿勢じゃないか
C# 2.0はpartialキーワードでクラスを複数のソースに分けられる
765デフォルトの名無しさん:2005/12/07(水) 23:55:12
>>763
わざわざ糞コードを書きにくい仕様にしてあるのにお前ときたら……
766759:2005/12/08(木) 00:01:51
>>762
そうですね・・・
正直2通りでも気持ち悪いくらいですが、他に代替手段がないのなら仕方ないですね

>>763
IDEのアウトランを使えばヘッダファイルに近い表示にできるかと。
Ctrl-M O => 定義のみ表示
Ctrl-M L => 元に戻す
767デフォルトの名無しさん:2005/12/08(木) 10:15:36
>>728
SizableToolWindowですとタイトルバーが細いので・・・
768デフォルトの名無しさん:2005/12/08(木) 10:21:19
しまた>>734読んでない
2.0はShowIconてのがあるんですか。まだ1.1なんで(´・ω・`)ショボーンです。
769デフォルトの名無しさん:2005/12/08(木) 10:27:56
ログにXmlファイルを使っていて、
それをDataSetにロードして更新しているのですが
更新を随時ファイルに反映するためにはXmlファイルをWriteXmlで再び全て書き込むしかないですか?

AcceptChangesでXmlファイルが変更されるようにできないですか?
770デフォルトの名無しさん:2005/12/08(木) 11:09:00
C#のプロジェクトファイルから、Class図を生成する
VS.NETの機能か、それに順ずるソフト教えてください。
771デフォルトの名無しさん:2005/12/08(木) 11:38:49
>>770
一応、Doxygen + graphvizでドキュメント + クラス図は作ってくれる
あとは、あまり使ったことないけど、フリーの奴なら幾つか知ってる。

UMLEditor
http://www.codeproject.com/miscctrl/umleditor.asp

Pocket UML
http://www.codeproject.com/macro/pocketuml.asp

Netron Graph Libraryのデモプログラムのサンプル
http://netron.sourceforge.net/wp/?page_id=31

SDE for Visual Studio .NET等の有償ツールのCommunity Editionとかで間に合うならそれでもいいかも。
http://www.visual-paradigm.com/product/sde/vs/index.jsp

そういや、VS2005にもダイアグラム作成機能が付いてたな……。
772デフォルトの名無しさん:2005/12/08(木) 14:24:41
>>768
formのIcon= null;にすればいいじゃん
773デフォルトの名無しさん:2005/12/08(木) 14:25:48
デフォルトでnullだぜ
デフォルトアイコンが表示されるがな
774デフォルトの名無しさん:2005/12/08(木) 15:23:55
>>771
ありがとうございます。
ひととおり見てみます。
775デフォルトの名無しさん:2005/12/08(木) 19:07:17
プロパティのsetに、ArgumentExceptionやその派生例外を投げるコードを書くのって変?
776デフォルトの名無しさん:2005/12/08(木) 19:10:29
場違いだったらごめんなさい。
「Visual Studio .NET 2003」Windowsアプリを始めて作ります。
言語は、C#で作ってます。

サーバー上のMySQLからデータを取得して表示させたりしたいのですが、
そもそもDBへの接続の仕方が解りません。
一応、MySQLのODBCはインストールしてあります。

どなたかアドバイス頂けないでしょうか。

ちなみに私は、Windowsアプリの開発は始めてであり、
今まで、PHP+MySQLでの開発をメインに行ってました。
PHP+MySQL開発歴は、3年ぐらいになります。
Windowsアプリ開発歴は、1ヶ月も満たないです。

Googleに聞いてもSQL Serverの事例ばっかで
なかなか参考になるページがありませんでした。

MySQL接続に関して、参考になるページがご存知でしたら
そちらも合わせて宜しくお願い致します。
777デフォルトの名無しさん:2005/12/08(木) 19:11:45
>>775
確かにちょっと気持ち悪さもあるが、妥当だろう。
むしろそのためのプロパティ。
778デフォルトの名無しさん:2005/12/08(木) 19:23:19
C#で書かれたテキストエディタコンポーネントがあれば教えて下さい。

C#で書いているアプリケーションで、キーワード強調とインテリセンス機能をもったテキストエディタを用意する必要が出てきて、カスタマイズの必要もあるのでコンポーネントのソースを探してるんですが見つかりません。
DelphiならSynEditやTEditなど山ほど検索できたので、C#にコンバートできるか調べましたが唯一できそうなのがDeluxという商用ソフトのみで6万円以上するので諦めました。
逆方向ならBorlandが無償配布してるんですが…。

インテリセンスやキーワードハイライトは自分でなんとか実装します。
エディタコンポーネントとして最低限の機能のソースでもどこかにないでしょうか??
ゼロからテキストエディタコンポーネントをC#で書く方法、特にキャレットを出して日本語を入力したりカーソルを動かしてテキストを選択したり検索したりさせる方法や、そもそもコントロールをゼロから自作する方法がさっぱりわからないので…。
779デフォルトの名無しさん:2005/12/08(木) 19:23:19
>>776
ADO.NET標準のOdbcClientやOleDbClientからODBCを使うより
専用の.NET プロバイダーを使ったほうがいいかもしれない。
ぐぐったらこんなのがあった。
http://crlab.com/mysqlnet/
780デフォルトの名無しさん:2005/12/08(木) 20:56:26
テキストエディタコンポーネントなんてみたときねーなw
781デフォルトの名無しさん:2005/12/08(木) 21:21:58
>>778
SharpDevelopという.netのIDEがあってそれにインテリセンスも
キーワード強調も実装されている。ただし、オープンソースで
ライセンスは知らない。
782デフォルトの名無しさん:2005/12/08(木) 21:31:35
>>778
そのくらいなら自分で実装してもたいした事ないだろ?
783778:2005/12/08(木) 21:45:32
>>781
ありがとうございます。SharpDevelopのソース見てみます。
コントロールをつくったことがなくC#でコントロール自作の方法を解説されているサイトもみつからずでしたので、
SharpDevelopほど大規模なIDEからそれだけを頼りに読み取れるか自信がなくてためらっていました。
やるしかなさそうですね。あたってくだけてきますー(汗
784デフォルトの名無しさん:2005/12/08(木) 22:59:47
>>783
SourceForge(JP)でみたことあるが今メンテしてるな・・・
785デフォルトの名無しさん:2005/12/08(木) 23:35:12
C#.NETでクラスライブラリ(DLL)を作成したものをVB6で使用する
方法はありますか。
開発ツールは.NET2003です。
786デフォルトの名無しさん:2005/12/08(木) 23:39:28
は?
787778:2005/12/08(木) 23:55:30
>>784
おぉ…!!メンテ後思いしたりしたときには、名前教えていただけたら…。(^o^;

ちなみに SharpDevelop のエディタを参考に根性でゼロからコンポーネントをつくりはじめています。
現在キャレットを点滅させることができるようになりました。
結構難しかったです…。

(独自コンポ作成のポイント)
・独自コンポーネントは、System.Windows.Forms.UserControl から派生させる。
・キャレットは、コントロールがフォーカスを貰ったときに生成して、フォーカスを失ったら破棄する。
・コントロールがフォーカスを貰う・失うイベントは GotFocus,LostFocus イベントハンドラを使う。
・ただし、GotFocus,LostFocus は、コントロールのイベント一覧に表示されない(隠蔽されている)ので、手作業で追加するしかない。(ここでハマリました…。(;;)

コントロールの上に貼り付けたPanelのLeave,Enterイベントでキャレット処理を入れてもFocus来ないんですよね、なぜか。
788778:2005/12/08(木) 23:57:00
あ…大事なことを忘れてました。

・キャレットはC#というか.Net自身では処理できない。WIN32APIを呼ぶしかない。
ここでもはまってました。(^^;
789デフォルトの名無しさん:2005/12/08(木) 23:57:27
>>779

>>776 の質問者です。
ありがとうございます。
早速インストールしてみました。
左側のツールボックスに「MySQL Direct」なる項目が出てきました。

さらに質問があるのですが、「mySqlConnection」と言うのをFormに追加して
追加した「mySqlConnection」をダブルクリックすると、
「mySqlConnection Editor: mySqlConnection」と言う子ウィンドウが立ち上がり、
そこには接続の為のユーザー名、パスワード、ホスト名などを入れる項目が
あり、ホスト名の所に自クライアント以外のIPアドレス(192.168.0.100)を記述したのですが、
「Test Connection」で、なぜか「Access denied for user: '[email protected]' (Using password: YES)」
となってしまいます。。

192.168.0.10はPCのアドレスです。

192.168.0.100以外にホスト名や他ネットワークのIPを試しに入れてみたいのですが、
それでも上記のエラーが出てしまいます。考える原因として何が考えられますでしょうか?
(ローカル環境でしか使えないのでしょうか…)

宜しくお願い致します。
790デフォルトの名無しさん:2005/12/09(金) 00:23:45
KeyDownイベントで初めて押された時のみを捕獲するにはどうすればいいですか?
WM_KEYDOWNであれば lParam を見ればリピートカウントがわかったんですが、
KeyEventArgsにはそのようなプロパティはないようです。
791デフォルトの名無しさん:2005/12/09(金) 00:43:37
OpenFileDialogのHookProcに手を全く入れられないのをどうにか
なりませんかね。
792デフォルトの名無しさん:2005/12/09(金) 00:44:00
KeyDownじゃ判断できない。
ProcessCmdKeyとかWndProcとかでWM_KEYDOWN捕まえるしかないね。
793デフォルトの名無しさん:2005/12/09(金) 00:59:00
どうにもならない
794デフォルトの名無しさん:2005/12/09(金) 01:21:02
>>778
インテリセンスやキーワードハイライトは自分で実装するんなら
TextBox拡張するだけじゃないのか?
795デフォルトの名無しさん:2005/12/09(金) 01:40:38
TextBoxじゃ強調表示できないだろ。
796デフォルトの名無しさん:2005/12/09(金) 01:41:54
ちょっとお聞きしますけど、ここにおられるC#プログラマさんたちはどういうスタンスでC#をお使いになっておられますか?
C#でプログラミングを始めたという方は少ないと思うんです。
おそらくはC++かJavaのどちらかからの移行あるいはそれとの併用という形で利用されている方が多いだろうと思います。
それでどうしてC#を使うのかということを聞いてみたいんですけど。
例えばJavaよりよさそうだからとか、C#で出来ないところだけ、C++でやるとか。
ちなみに自分はJavaをやっております。
C#は市販の説明書を読んで、評価版をいじったみた程度なんですが、.NETさえ普及すればJavaよりいいなという感じでした。
今のところ、JavaのC#に対する優位性というのはMS社勢ゆえの将来性とC++との連携だと思うんです。
しかし自分はJavaでプログラミングを始めた人ですから、C++は勉強したことがないです。
C#を最大限にいかすにはやはりC++の知識もいるでしょうから、今のところは遊び以上では手が出ないというところです。
797デフォルトの名無しさん:2005/12/09(金) 01:47:47
3行に要約しろよ
798デフォルトの名無しさん:2005/12/09(金) 01:49:28
わかりました。では…
あなたのC#に対するスタンスを教えて下さい。
例)Javaから移行・C++と併用…
799デフォルトの名無しさん:2005/12/09(金) 01:50:49
友達に相談したらC#を奨められたので、初めてのプログラミングはC#だ
まあHTMLでJavaScriptを弄ってたんで全くの初めてって訳ではないが
800デフォルトの名無しさん:2005/12/09(金) 02:15:15
>>798
用途:趣味
状態:C++と併用
理由:Windows特有の内容はC♯の方がやりやすいことが色々と多いから。
    C++/CLIがそれなりになったらまた考える。
801778:2005/12/09(金) 02:23:17
>>794
あーなるほど…。要件をもう少しきちんと書くと、

・キーワード強調表示、
・インテリセンス、
・強調表示でもおかしくならない無限回数Undo/Redo、
・タブや改行コードは画像で表示、

RichTextBox とか TextBox のコンポ拡張で、文書サイズが数MB
あっても速度的問題もなく上記がひととおりクリアできるんなら、
その方が確かに楽なんですが、Code Project 等で見つかった事例
だとハイライト処理が重かったり、改行コード等を画像で表示
する方法が見つからなかったりで、全部の要件を拡張で満たす
のはどうも無理っぽい気がして、スクラッチしかないかなぁと。(^^;

TextBox の拡張でなんとかできるもんなんでしょうか?
802デフォルトの名無しさん:2005/12/09(金) 02:25:13
TextboxbaseでOnPaintで強調表示でどうにかならんの?
803790:2005/12/09(金) 02:38:07
>>792
そうなんですか。必要のない情報ではないと思うんですけどねえ・・・orz
どうもありがとうございました。
804デフォルトの名無しさん:2005/12/09(金) 03:49:08
C#ではキーボードの(ローな)I/Oイベントは拾えないんだね。
Win32使わないとコンソールのスクラッチはできなさそうだ。
無理しても、IMEの動きが捕まえられないんじゃないかな。
805デフォルトの名無しさん:2005/12/09(金) 12:20:44

東京エ業大学は学生の質は全国最低レベルなのに教師の厳しさは全国最高レベルです
フリーター、ひきこもり、ホームレス、犯罪者、精神病患者、の輩出率は非常に高いらしい

↓↓↓証拠↓↓↓

84 名前: エリート街道さん [sage] 投稿日: 2005/10/22(土) 22:37:10

http://www.sanspo.com/sokuho/1022sokuho008.html

ニート状態の卒業生を救え−。中央大や法政大など大学・短大42校が
連携し、卒業生のうち、仕事に就かず職業訓練なども受けていないニートや、
フリーター生活者たちのための就職支援事業に乗り出した。ニート・フリーター
対策でこれほど多くの学校機関が連携する事業は珍しく、関係者は成果を
注目している。

(途中省略)

なお東京エ業大学はこの件に関して
「就職が出来ない学生および職を失った卒業生は東京エ業大学の恥である。
我々がすることは何も無い」
とのコメントを残している。

85 名前: エリート街道さん [sage] 投稿日: 2005/10/22(土) 22:39:16
>>84
すげー
流石東エ大
鬼だ(wwwww
806デフォルトの名無しさん:2005/12/09(金) 13:13:13
恥だったらなんとかしろよ。
807デフォルトの名無しさん:2005/12/09(金) 13:35:48
>>801
今sourceforge探してみたがなくなってた・・・
MinaEditorって言う奴だったんだが、
Googleにキャッシュだけ残っててWikiは死んでた。
808デフォルトの名無しさん:2005/12/09(金) 15:14:33
初めてカキコします。無作法な点はお許し下さい。
本題ですがピクチャーボックスオブジェクト内にテキストを描画したいのです。
具体的に言いますと、グリッドを引いたピクチャーボックスオブジェクト内に
数字を1,2,3,4・・・31と1ヶ月分の数字をグリッド内に描画させ
たいのですが、どなたかご教示願います。
当方はJavaはかじった事があるのですがC#は初めてなもので、勝手が分からん
のです。
809デフォルトの名無しさん:2005/12/09(金) 16:07:14
まずはCreateGraphicsでググるんだ。
810デフォルトの名無しさん:2005/12/09(金) 17:09:06
>>808
何がやりたいのかよくわからんけど、
カレンダーの独自コントロールを作りたいならPanelあたりのクラスを拡張した方がいいんじゃないか?
811デフォルトの名無しさん:2005/12/09(金) 20:06:12
>>801
あ、SharpDevelopでも1.xは日本語で強調表示するとバグでキャレットが
ズレるから気を付けてね。パッチを出している有志がいらっしゃるけど。
812デフォルトの名無しさん:2005/12/09(金) 20:21:52
Scintillaはどう? http://www.scintilla.org/
.netにもポーティングされてた気がする。
813デフォルトの名無しさん:2005/12/09(金) 22:10:42
C# のプログラムから Java のプラグラムを起動するにはどうしたら良いですか?
Process.Start() を使えば良いのでしょうか?
良い場合はどのように使えばよいのでしょうか?
できれば javaw の方で起動したいのですが・・・
814デフォルトの名無しさん:2005/12/09(金) 22:20:56
javaw のプロセスを開始させるのに Process.Start 以外の何を使えというんだ。
815デフォルトの名無しさん:2005/12/09(金) 23:04:28
ListViewコントロールに文字列全体が表示されるように列の幅を調節してくれる機能はありますか?
816デフォルトの名無しさん:2005/12/09(金) 23:37:31
Process.Start(@"C:\Java\jdk1.5.0_05\bin\javaw.exe", @"クラスファイルのパス");

これでやってみましたが、なぜか起動できませんでした。
main class が見つからないとかメッセージが出てそれでおしまい。
コマンドプロンプトからは正常に起動できるのに・・・
817デフォルトの名無しさん:2005/12/09(金) 23:39:20
作業フォルダかな?
818デフォルトの名無しさん:2005/12/09(金) 23:49:18
javaw は知らんが java はクラスファイル名じゃなくてクラス名を引数に取ったはずじゃ
819デフォルトの名無しさん:2005/12/09(金) 23:56:46
Java の場合、クラスファイル名=クラス名なので問題ないはずなのですが・・・
820デフォルトの名無しさん:2005/12/10(土) 00:03:42
>>819
いいや。ちがうね。『 class Sample 』 のファイル名は 『 Sample.class 』 だよ。
821デフォルトの名無しさん:2005/12/10(土) 00:42:09
Process.Start の直前でクラスファイルのあるフォルダのパスを
カレントディレクトリにすることで起動に成功しました。
つまり、

Environment.CurrentDirectory = @"クラスファイルのあるフォルダのパス";
Process.Start(@"省略\javaw.exe", "クラス名");

です。
ありがとうございました。
822デフォルトの名無しさん:2005/12/10(土) 00:43:34
>>808
PictureBoxを継承してOnPaintオーバライドするとか
PictureBox pictBox.Paint += PaintText;
private void PaintText(object sender, PaintEventArgs e){
e.Graphics.DrawString("1",10,10);
}
みたいな感じで上書きできないかな

ラベルの高さを10未満にしたいのですがデザイナが許してくれません。
どのあたりをいじればよいのでしょうか?
デザイナ上でスマートタグの定義を追加したいのですが。参考となるサイトがあれば教えてください。
vs2005b2を使用しています。
823デフォルトの名無しさん:2005/12/10(土) 00:47:16
オーバライドってなんですか?
824デフォルトの名無しさん:2005/12/10(土) 00:51:09
それはさすがにググろうよ
825デフォルトの名無しさん:2005/12/10(土) 00:51:55
826デフォルトの名無しさん:2005/12/10(土) 01:00:34
SystemInformation.Networkで自分で見に行くことはできるのですが
Networkが使用不可能になったというイベントって取得できますか?
827デフォルトの名無しさん:2005/12/10(土) 01:13:17
ダブルバッファーでちょっとスクロールしたいんだが。サイズ100,100のウィンドウで5だけ下にスクロールすると思いねぇ。
ダブルバッファー用のbmp(1), その更にバッファー(2),Form(3)とあるとして、
1からずらして2に転送2から3,1に転送して計3回ビットマップ転送してるんですが、おそす。
もちっとナイスな方法内でしょうか・・・
828デフォルトの名無しさん:2005/12/10(土) 01:19:34
ダブルバッファOnなパネルに描画してずらす
829デフォルトの名無しさん:2005/12/10(土) 01:21:12
うっぁ。俺今までSDK使ってなかった…
830デフォルトの名無しさん:2005/12/10(土) 01:25:33
>>828
ダブルなバッファーにはどこから描画するの?パネルから?
831デフォルトの名無しさん:2005/12/10(土) 02:01:13
ダブルバッファって、一方を転送しつつ、他方を描画するから高速なんでねーの?
832デフォルトの名無しさん:2005/12/10(土) 02:19:30
パネルから
パネルを継承してOnPaint
コンストラクタではDoubleBuffered = true;@2.0
833778:2005/12/10(土) 02:31:21
>>784,807
プロジェクト名dクス〜〜、もう消えてたんですね。(;;
道は遠いけど、自作進めてます。
IMEもUndo/Redoもまだ無理ですけど、ASCII文字ならとりあえずエディタとして
最低限動くようになりまちた。

>>811
キャレットずれますね。全角と半角の空白文字(スペース)が同じ行に
混在するとダメみたいです。#develop Wiki の日本語対応版上書きした
#dev本体のエディタで再現してるので今後に期待??

>>812
ありがとうございます。とりあえず見てみましたが .Net port は
今のところ発見できず。

探しながら開発続けていってみます。
壁は IME からの文字入力、 Undo/Redo、選択処理の実装、折り返し処理
あたりか??


834デフォルトの名無しさん:2005/12/10(土) 02:40:24
>>826
.NET2.0のMicrosoft.VisualBasic.Devices.NetworkにNetworkAvailabilityChangedイベントがある。
そのまま使うのがいや/使えないなら、これをildasmで調べてみたら
835デフォルトの名無しさん:2005/12/10(土) 03:43:10
動的なメニューの作成をしたいと思っています。
現在は、
MenuItem menuItem = menu.MenuItems.Add("");
menuItem.Tag = (object)"dummy_item";
menu.Popup += new EventHandler(FillDummyMenu);
のようにダミー項目を追加し、FillDummyMenuで
ダミー項目の位置にいろいろ追加するようにしているんですが、
そうするとメニューそのものが恒久的に変更されてしまうため
二回目以降にメニューを表示したときにうまく動作しません。
どなたか解決策をお教え願います。
836デフォルトの名無しさん:2005/12/10(土) 04:26:45
スレッドをSuspendして
そのままAbortすると
うまく殺してくれないみたいなんです

自分のコードが悪いのか
そういう仕様なのかがわかりません

だれかご教示お願いします
837デフォルトの名無しさん:2005/12/10(土) 11:08:47
メニューアイテムをクローンする
838デフォルトの名無しさん:2005/12/10(土) 12:01:44
C# でコントロール配列を実現したい場合、

this.buttons[0] = this.button1;
this.buttons[1] = this.button2;
this.buttons[2] = this.button3;
for(int i = 0; i < this.buttons.length; I++)
{
  this.buttons[i].Tag = i;
}
(中略)
private void buttons_Click(Object sender, EventArgs e)
{

}
839デフォルトの名無しさん:2005/12/10(土) 12:04:47
間違えて途中で送ってしまいました。

private void buttons_Click(Object sender, EventArgs e)
{
  switch(Convert.ToInt32(((Button)sender).Tag))

}
840デフォルトの名無しさん:2005/12/10(土) 12:08:12
なぜか途中で送信されるのですが・・・
専ブラの問題かな?・・・

switch(Convert.ToInt32(((Button)sender).Tag))
{
  case 0:
    //button1 の処理
    break;
  case 1:
    //button2 の処理
    break;
  case 2:
    //button3 の処理
    break;
  default:
    break;
}


というふうにしているのですが、
結構面倒なので、他に効率的な方法はありませんか?
841デフォルトの名無しさん:2005/12/10(土) 12:25:06
>>840
効率的かどうかはともかく、俺なら
Control[] buttons = new Control[] { // 略};

private void buttons_Click(Object sender, EventArgs e) {
int index = Array.IndexOf(buttons, sender, 0, buttons,Length);
switch(index)
{
case 0:
break;
case 1:
break;
case 2:
break;
default:
break;
}

みたいに書くかな・・・
senderにイベントを起こしたオブジェクトが入っている保証なんかどこにもないからお勧めは出来ないけどね
842デフォルトの名無しさん:2005/12/10(土) 13:11:27
ありがとうございます。
参考にさせていただきます。
843デフォルトの名無しさん:2005/12/10(土) 15:34:09
>>841
>senderにイベントを起こしたオブジェクトが入っている保証なんかどこにもない
そうなんですか?
そのことについて書かれたドキュメントとかあったら教えてもらえませんか?
844デフォルトの名無しさん:2005/12/10(土) 15:38:30
841じゃないけど
buttons_Click(null, null);
で呼べばええのちがうか
845デフォルトの名無しさん:2005/12/10(土) 17:08:52
PictureBoxのImageプロパティにセットした画像の再描画を
禁止したいのですが、何か方法ありますか?
Image=nullにすると、今度は背景色で再描画され、やはり困ってます。
846デフォルトの名無しさん:2005/12/10(土) 18:57:34
>>845
頑張ってください!
847デフォルトの名無しさん:2005/12/10(土) 21:31:55
C♯の型にulongとかushortとかありますが、なんでbyteだけubyteじゃなくて
sbyteなんですか?
848デフォルトの名無しさん:2005/12/10(土) 21:38:12
慣習
849デフォルトの名無しさん:2005/12/10(土) 22:16:52
ushortはunsigned shortの事で、符号なし。
sbyteはsigned byteの事で、符号あり。
byteは符号なし変数。
850デフォルトの名無しさん:2005/12/10(土) 22:33:45
C/C++ではgotoに同一関数内での
ブロックのスコープは存在しなかったように思うのですが、

class GotoTest {
 static void Main() {
  goto cs_err;
  {
   cs_err:
   System.Console.Write("error");
  }
 }
}

このブロックの外からは見えないという規約、どこら辺が役に立っているの
でしょうか? 詳しくわからない僕には、あまり意味のあるものと思えないです。
851デフォルトの名無しさん:2005/12/10(土) 22:36:59
規約じゃなくて、仮想マシンで動作する上での制約のような希ガス
852デフォルトの名無しさん:2005/12/10(土) 22:37:56
ついでに言うけど、スタックの深い方へ goto するのって、そんなに価値のあるものだとは思えない。
853デフォルトの名無しさん:2005/12/11(日) 00:25:35
>>851
その根拠をもう少し詳しくお教え願えないでしょうか?
ttp://wisdom.sakura.ne.jp/programming/cs/cs13.html
に規約と記述してあったのですが、制約となるとそうせざるを得ない理由が存在
するんですよね…

また、>>852では、「スタックの深い方へ」とあるのですが、これはどういう事ですか?
スタックの深い方とかで検索をかけてみたのですがよくわかりませんでした。
もしかして、プログラムコードの一行一行を指しているのですか
854デフォルトの名無しさん:2005/12/11(日) 00:54:21
んげ、悪い。適当言ってた。

……コードブロック、コンパイル後はスコープとか全然関係ないやん。
コードブロック内に goto 出来ないのは、VM じゃなくて C# 側の制約……っていうか規約な罠 orz
855デフォルトの名無しさん:2005/12/11(日) 01:18:21
大体、そんなのが可能なのなら
goto inner;
for (int i = 0; i < 3; i++) {
  inner:
   Console.WriteLine(i);
}
さあどうする。
856デフォルトの名無しさん:2005/12/11(日) 01:48:46
>>854
そうなのですか。レスありがとうございました!
>>855
なるほど! それはエラーにすべきですね。C++の方でもエラーになったです。気付かなかった。
わかりやすい例題サンクスです!
857デフォルトの名無しさん:2005/12/11(日) 02:57:19
C#で、Webアプリケーションを開発しています。
ボタン押下後に、CSVファイルを作成し、そのファイルをダウンロードさせます。
しかし、Response.Close()後、どのボタンを押下してもサーバー処理を行いません。(submitされません。)
Javaの場合はボタン押下時J、avaバッチを起動してダウンロードさせますが、C#の場合はどうすればよろしいでしょうか?
858デフォルトの名無しさん:2005/12/11(日) 03:56:19
どなたか >>835 がわかる方いませんか?
859デフォルトの名無しさん:2005/12/11(日) 04:21:42
>>858
835がどんなのを意図してるのか分からん
そもそも何故ダミーを作るんだ? 直接新しいアイテムを作ってAddしちゃいかんのか?
860デフォルトの名無しさん:2005/12/11(日) 04:49:46
>>859
そうでしたか、すみません。
簡単にいうと「お気に入り」とか「最近使ったファイル」みたいなのを
イメージしてもらえるとわかりやすいと思うんですが、
つまりメニューの外枠はアプリケーションの初期化時に作って、
メニューの内容を表示しなければいけない時に中身を追加する、
という感じにしたいと思っています。

861デフォルトの名無しさん:2005/12/11(日) 04:56:30
外枠って何? それを作るとどうなるの? 作らないとどう問題があるの?
862デフォルトの名無しさん:2005/12/11(日) 05:07:08
ダミーのメニュー項目を目印に置き換えるつもりが
一度置き換えると目印を見失ってしまって追加できないので困る、ってことだろうか。

もう少しわかりやすく。
でも俺はもう寝る。
863デフォルトの名無しさん:2005/12/11(日) 05:28:12
>>862
そういうことです。
説明が下手ですみません。

具体例で説明すると、初期化時に
 [ファイル]
 [編集]
 [お気に入り]          // menu
   [お気に入りに追加...]   // menuItem
   [-]              // セパレータ
   [dummy_item]       // menuItem

っていう感じに作っておいて、

[お気に入り] の Popup イベントを捕獲して、そこで子アイテムの中から [dummy_item] を探し出し、
[dummy_item] を削除してからその位置にお気に入りのアイテムを追加していくという感じです。
ところがこれではご指摘のように [dummy_item] を削除する必要があるので、
2度目以降うまく動作しません。
864デフォルトの名無しさん:2005/12/11(日) 06:46:06
>>863
なんでダミーがいるのかさっぱりわからんのだが。
セパレータ探してその後ろを毎回入れ替えたらすむんじゃないの?
つか、固定の部分もあわせて作り直したらいい気がする。
865デフォルトの名無しさん:2005/12/11(日) 12:25:39
パフォーマンス重視のソフトを作ってて、いろいろ実験してるんですが
あるメソッドの実行時間を測りたくて、次のような感じでやってます。

DateTime before = DateTime.Now;
HogeMethod();//計測したいメソッド
DateTime after = DateTime.Now;
TimeSpan time = after - before;
Console.WriteLine(time.TotalMilliseconds.ToString());

ところが、いろんなメソッドに何回かやってみても、全く同じ値になったり、
キリがいい数字になったりと、ちょっと変な気がします。
なにか間違っているのでしょうか?

以下、取得できた時間です
[46.875ms]
[62.5ms]
[156.25ms]
[203.125ms]
[656.25ms]
[671.875ms]
[31.25ms]
[15.625ms]
[31.25ms]
[78.125ms]
[171.875ms]
[375ms]
[359.375ms]
[109.375ms]
[171.875ms]
[93.75ms]
[171.875ms]
866デフォルトの名無しさん:2005/12/11(日) 12:52:56
分解能の限界。
高性能にやるならWin32APIのQueryPerformanceCounter使う。
867デフォルトの名無しさん:2005/12/11(日) 15:36:20
ここって、webアプリ作ってる人間少ないのね
868デフォルトの名無しさん:2005/12/11(日) 15:54:57
>>864
なるべく柔軟な作りにしたいと思ってるので、例えば
[お気に入り]
   [お気に入りに追加...]
   [-]
   [お気に入りをすべて削除]
   [-]
   [以下をすべてタブで開く]
   [dummy_item]
のような構造に対応するために、ダミーは必要です。
しかしどちらにしろ入れ替えは必要なので、根本的な問題ではないです。

と書いてるうちに自己解決しました。
MenuItem に Visible プロパティがあったので、
[お気に入り]
   [お気に入りに追加...]
   [-]
   [お気に入りをすべて削除]
   [-]
   [以下をすべてタブで開く]
   [dummy_item_begin]
   [dummy_item_end]
としたうえでダミーの Visible を false にし、毎回その間の項目を入れ替えるということをしたら
うまくいきました。
お騒がせしてすみません。どうもありがとうございました。
869デフォルトの名無しさん:2005/12/11(日) 15:58:43
>>867
根拠は?
870デフォルトの名無しさん:2005/12/11(日) 16:00:12
ログを読む限りwebに関する質問に答えられる人が少ない気がする。
windowsアプリなら食いつきいいのに。
871デフォルトの名無しさん:2005/12/11(日) 16:23:53
872デフォルトの名無しさん:2005/12/11(日) 16:50:43
C#でフルスクリーンのゲームを作りたい場合はどうしたらいいですか?
873デフォルトの名無しさん:2005/12/11(日) 16:56:49
>>868
それって柔軟?いびつに見えるんだけど。
ダミー以外の部分は固定なんでしょ?この固定部分を入れ替えられるようなつくりにすればいいんじゃないの?

お気に入り以下に追加するMenuItemの並びをテンプレートから作れるようにしたいんだよね?
テンプレート部分をMenuItemツリー構造に頼るのって変な感じ。
874デフォルトの名無しさん:2005/12/11(日) 17:26:08
>>873
すいません、固定部分を入れ替えるっていうのがどういう意味かわからないです。

テンプレートというのは固定部分の意味ですよね。
>>835 では固定部分も動的に作っていますが、ダミーを使った方法なら
固定部分はリソースで定義して必要な部分だけ動的に作るということも可能だと思います。
将来的にはそうするつもりです。
875デフォルトの名無しさん:2005/12/11(日) 17:43:52
はい。
876デフォルトの名無しさん:2005/12/11(日) 17:56:07
なんでダミー項目を作ることに拘るんだろう。
877873:2005/12/11(日) 17:57:13
言葉足らず過ぎてすまん。

>>874
>テンプレートというのは固定部分の意味ですよね。
違う。固定部分と、可変部分の位置をセットでテンプレートと言ってるつもりだった。
>>863の絵そのもの。これを適当な形で保持する。

で、それをMenuItemなんて実装側に依存した形にしたら、固定部分に動的な部分を
作らなきゃいけなくなったら困りそうじゃない?って思ったわけ。

もともとの>>863の絵を上の行から読んで対応するMenuItemを追加するような
つくりにしたほうがよさそうじゃない?
これなら固定部分は>>863の絵を書き換えるだけで入れ替えられるし。

また言葉が足りてない気もするが、わかんなかったら読み飛ばしておいておくれ。
878デフォルトの名無しさん:2005/12/11(日) 19:14:53
>>40
これならどうだ?

#
&#35;
879デフォルトの名無しさん:2005/12/11(日) 19:56:20
>>872
悪いことは言わん
絶対止めとけ。
書けないことはないが、絶対にC++で書いときゃよかったって思うぞ
880デフォルトの名無しさん:2005/12/11(日) 21:03:02
hashtableに複数のキーa,bを持たせたいと考えています。
文字列であればa+区切り文字+bのように連結してひとつのキーとして
扱えば楽だと思ったのですが、このような実装は好ましくないでしょうか?
同じことやったこと人いますか。
881デフォルトの名無しさん:2005/12/11(日) 21:04:50
俺なら素直にハッシュテーブルにハッシュテーブル入れるぞ
882デフォルトの名無しさん:2005/12/11(日) 21:10:19
>>880
その「キー」なるものを、他でもユニークなID(識別子)として
使いまわす気ならそれでも良いと思う。

単に疎でない二次元の連想配列が使いたいだけなら、
ハッシュのハッシュの方が良いと思うけど。
883デフォルトの名無しさん:2005/12/11(日) 21:18:04
ハッシュのハッシュのほうが文字列以外にも対応できるしよさそうですね。
感謝です。
884デフォルトの名無しさん:2005/12/11(日) 21:27:57
ディクショナリのZetaOSとかZetaOSのリストとかよく作るんだが、
毎回
if(!_dic.TryGetValue(key,out value){
List<Hoge> list=new List<Hoge>();
_dic.Add(key,list);
}
とかやってるんでヌルポです。微妙にメソッド違うんでGenerics化もできず。もっとエレガントな方法ないでしょうか?
885デフォルトの名無しさん:2005/12/11(日) 21:28:55
なんか知らんが誤変換してる・・・orz
一行目:ディショナリのディクショナリとかディクショナリのリストとかよく作るんだが
886デフォルトの名無しさん:2005/12/11(日) 21:34:02
どんな誤変換だそれは。
887デフォルトの名無しさん:2005/12/11(日) 21:47:19
>>844
キー⇒リストっていうコレクションなら、
C++でいうところのMultiMap で代用できないだろうか。
C# でどう MultiMap を実装するかはまた別の話として。
888デフォルトの名無しさん:2005/12/11(日) 21:51:17
MultiMapないんで
C#では
Dictionary<object, ICollection>使ってればいいんじゃないの?
889デフォルトの名無しさん:2005/12/11(日) 22:41:41
>>870
Webアプリ作ろうとするとIIS使わざるを得ないからなぁ
ライセンスやら何やらで意外に敷居が高いと思う
個人的にはmono+apacheに期待してるけど、こっちは技術面で敷居が高い・・・
890デフォルトの名無しさん:2005/12/11(日) 22:46:10
>>879
C#使おうがC++使おうがAPIだけでやるなら、どっちにしても後悔しそうな悪寒
おとなしくDirectX使った方が幸せになれるはず
891デフォルトの名無しさん:2005/12/11(日) 22:53:13
すくなくともC#がC++より有利ではないことに疑問を挟む余地はない
892デフォルトの名無しさん:2005/12/11(日) 23:11:23
つ 生産性
893デフォルトの名無しさん:2005/12/11(日) 23:26:08
using System;
using System.Security.Cryptography;

class Class1 {

    const int dataLength = 400*1024*1024;
    [STAThread]
    static void Main(string[] args){
        byte[] inputData = new byte[dataLength];
        HashAlgorithm provider1 = new MD5CryptoServiceProvider();

        Console.WriteLine("data is null? {0}", inputData == null);

        try{ provider1.ComputeHash(inputData);}
        catch(NullReferenceException ex){ Console.WriteLine(ex); }
        Console.WriteLine("メソッド終了1");
        provider1.Clear();

        HashAlgorithm provider2 = new FastHash.MD5FastHash();

        Console.WriteLine("メソッド終了2");
    }
}

こんな単純なプログラムなんですが、
なぜか provider1.ComputeHash(inputData); の内部でNullReferenceExceptionが投げられます。
894893:2005/12/11(日) 23:26:17

スタックトレース
at System.Security.Cryptography.MD5CryptoServiceProvider._HashData(IntPtr hHash, Byte[] rgbData, Int32 ibStart, Int32 cbSize)
at System.Security.Cryptography.MD5CryptoServiceProvider.HashCore(Byte[] rgb, Int32 ibStart, Int32 cbSize)
at System.Security.Cryptography.HashAlgorithm.ComputeHash(Byte[] buffer)
at FastHash.Test.Class2.Main(String[] args) in D:\●●●●\class2.cs:line 14


HashAlgorithm provider1 = new MD5CryptoServiceProvider(); を
HashAlgorithm provider1 = new SHA1CryptoServiceProvider(); にしてもなりますが、
HashAlgorithm provider1 = new SHA1Managed(); にしても発生しません。


dataLengthを800MBとかにすると、当然OutOfmemoryExceptionが発生します。
dataLengthを10MBとかにすると例外が発生しません。

そして一番不思議なのは、
HashAlgorithm provider2 = new FastHash.MD5FastHash(); をコメントアウトすると例外が発生しません。

FastHash.MD5FastHashクラスは、自分が作った、fasthash.dll(http://hp.vector.co.jp/authors/VA033110/fasthashdll.htm
を使用してMD5を計算するクラスです。

質問なんですが、一見全然関係ないように見える HashAlgorithm provider2 = new FastHash.MD5FastHash(); という文の有り無しで、なぜその前の byte[]配列がnullになってしまうんでしょうか?
895デフォルトの名無しさん:2005/12/11(日) 23:32:19
とりあえず、

>dataLengthを800MBとかにすると、当然OutOfmemoryExceptionが発生します。 
>dataLengthを10MBとかにすると例外が発生しません。

に気付け。『メモリが足りませんよ例外』 が出ているんだ。
896デフォルトの名無しさん:2005/12/11(日) 23:32:51
って悪い。『当然』 の2文字が目に入ってなかったなアハハハハ。
897デフォルトの名無しさん:2005/12/12(月) 00:10:55
ILのレベルで何か違いはあるのかな
898デフォルトの名無しさん:2005/12/12(月) 00:11:46
ぬるれはP/Invokeに失敗した時全てに発生するよ
バッファがnullだったから例外が起きたんじゃ無いと思う
***CryptoServiceProviderクラスはWindowsの暗号化機能に依存しているから、Windows内部で何らかの例外が起きたんだと
fasthash.dllと競合するような部分があったんじゃ?
899デフォルトの名無しさん:2005/12/12(月) 00:14:06
893がFastHash.MD5FastHashの中身を教えてくれないから適当に自分で実装してみたけど再現しない
900デフォルトの名無しさん:2005/12/12(月) 00:18:00
で、800MBでぬるりが投げられた
これはFastHashの記述の有無に無関係に発生
901893:2005/12/12(月) 00:20:20
>>897
ILレベルですか…何と何の違いを調べればいいですか?

>>898
なるほど
すると、fasthash.dllを利用する限りどうしようもないんですかねえ?
それとも fasthash.dllの利用の仕方次第でなんとかなるんですかね

>>899
すみません、
「なぜ呼び出されていないコードに存在で、別のコードに例外が発生するのか」を、とりあえず考えていたのと、
ちょっと長くなってしまうんで省略しました。
902893:2005/12/12(月) 00:21:46
>>900
そうですか…
自分の環境だと、 FastHashの記述無しだと先にOutOfMemoryExceptionが発生してしまうんで
分からなかったです
903デフォルトの名無しさん:2005/12/12(月) 00:28:40
先にFastHash.MD5FastHashを呼んだりComputeHashさせたりしたらどうなるんだ?
904デフォルトの名無しさん:2005/12/12(月) 00:34:24
>>901
>「なぜ呼び出されていないコードに存在で、別のコードに例外が発生するのか」

呼び出す前にもメモリ上に何かがロードされて、
それで状況が変わるんじゃない?
905893:2005/12/12(月) 00:41:55
情報を小出しにしてしまった感じで申し訳ありません。

ちょっと気になって、常駐アプリなどを切りまくって、メモリを開けたところ、
FastHash.MD5FastHashの記述なしでもdataLengthが700MBぐらいで、ComputeHashでNullReferenceExceptionが発生するようになりました。
FastHashは関係ないようですね・・・
new FastHash.MD5FastHash() の有無で、300MBぐらい差が出るんですが、 FastHash.MD5FastHashクラスを使わないで、
このコードで直接fasthash.dllの関数を呼び出すと、200MBの差は出ないようです。

ということは、自分が作ったFastHash.MD5FastHashクラスが原因で300MBの差が起きているようです。



>>903
先に new FastHash.MD5FastHash(); を呼んだところ、結果は同じでした。

>>904
そうなんですかねえ。ううむ。




FastHash.MD5FastHashクラスを収めたソースファイルです
http://kashiwazaki.dyndns.ws/files/ppfx00005.zip
906デフォルトの名無しさん:2005/12/12(月) 00:45:24
800Mとか、巨大データなら分割してチビチビ計算させるのが普通ではないの?

907893:2005/12/12(月) 01:00:01
>>906
それはもちろんです。

.NETのライブラリのメソッドに、nullでない引数を渡してNullReferenceExceptionが発生するなんて初めての経験でして、
気になってしまったです。
908デフォルトの名無しさん:2005/12/12(月) 01:20:55
>>907
.Net のライブラリの中にはWin32のAPIを簡単にラップしただけのモノが結構有ります。
ネイティブ側でWindowsの0xc0000005例外が投げられるとNullReferenceExceptionになります。
他の例としては例えばGDI+をラップしたGraphicsで多く発生します。

他のどんな例外がどんなExceptionにマッピングされてるのかは知りません。
どこかに資料あるのかな。
909デフォルトの名無しさん:2005/12/12(月) 04:39:39
>>880
class Pair<T1,T2> {
 T1 a;
 T2 b;
 public override GetHashCode() {
  return a.GetHashCode() ^ b.GetHashCode();
 }
}
910デフォルトの名無しさん:2005/12/12(月) 06:58:07
Invalidate+Updateをすると負荷が高くなってしまうのですが、
回避する策は有るのでしょうか?

private void pictureBox1_MouseMove(object sender, MouseEventArgs e) {
Graphics g = Graphics.FromHwnd(pictureBox1.Handle);//これは一時バッファ
if (w!=0){
// g.DrawRectangle(new Pen(Color.Red, 1), new Rectangle(x, y, w, h));//これで代用できない?
pictureBox1.Invalidate(new System.Drawing.Rectangle(x, y, w, h));
pictureBox1.Update();
}
w = moving_image.Width;h = moving_image.Height;
g.DrawImage(moving_image, x = e.X - w / 2, y = e.Y - h / 2, w, h); }

//初期化コード(Form_Load)
moving_image = (Bitmap)Bitmap.FromFile("image.png");
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.FillRectangle(Brushes.Red, this.pictureBox1.ClientRectangle);
//フィールド
System.Drawing.Bitmap moving_image;int x, y, w, h;
911デフォルトの名無しさん:2005/12/12(月) 07:40:32
InvalidateしたらUpdateする必要ないんじゃ?
912デフォルトの名無しさん:2005/12/12(月) 14:09:53
>>911
Control.Refresh()
913デフォルトの名無しさん:2005/12/12(月) 14:54:03
タスクマネージャーとかで、プロセスを終了させられた時に、
終了させられた事を受け取る事ってできますか?
ちなみに、通知をうけとりたいのは、コンソールアプリです。
914デフォルトの名無しさん:2005/12/12(月) 15:17:35
コンソールアプリならTerminateProcess呼ぶだけだろうから無理じゃないかな
915913:2005/12/12(月) 15:35:54
>>914
むむむ、、、そうなんですか。。。
となると、見えないウィンドウとかつくって、処理しないとだめなんですかねぇ。。。;;
916デフォルトの名無しさん:2005/12/12(月) 15:58:39
System.Threading 辺りにあるのを使えばできるかも
917910:2005/12/12(月) 17:58:30
>>911
ちらついてだめでした。
>>912
それは全体を描画するので倍以上負荷がかかってしまいました。

BitBlt使うのと比べてだいぶ遅くなってるんだけど、なんか根本的に間違えてるんかな...
918デフォルトの名無しさん:2005/12/12(月) 18:08:18
>>917
>BitBlt使うのと比べてだいぶ遅くなってるんだけど、なんか根本的に間違えてるんかな...

そういうコトやるときにはPictureBoxは使わないのが吉。
自前コントロールか、ただのPanelで処理するのが良いよ。

それからコントロールに直に描画するときには Graphics.FromHwnd じゃなくて
XXX.CreateGraphics() ね。あとGraphicsの Dispose とかちゃんとやってる?
なんだかとても不安なコードだけど。
919デフォルトの名無しさん:2005/12/12(月) 18:14:01
プロセスツリーで
親を殺したら、子供まで死ぬようにつくりたいんだけど、
C#でできるのかな?

ProcessExplorerなるものがあるのでwindowsでできるとはおもうのだけど
920デフォルトの名無しさん:2005/12/12(月) 18:57:24
普通にProcessクラスを使って起動すれば自動的に親子関係になるはずだが
それともタスクマネージャのプロセスツリーの終了をシミュレートしたいってこと?
921デフォルトの名無しさん:2005/12/12(月) 19:50:35
VS2003でリビルドすると一々クラスエクスプローラのツリーが
閉じてしまうのですが、そういう仕様?

まじうぜー
922910:2005/12/12(月) 20:03:55
>>918
Panelにしたら劇的に速くなりました。
こちらでInvalidateを使うとちらつくので、PictureBoxはバッファリングがあったのかも...
ほんと助かりました。ありがとうございます。

private void panel1_MouseMove(object sender, MouseEventArgs e){
using (Graphics g = panel1.CreateGraphics()){
if (w != 0) {
g.DrawImage(this.erase_image, (new System.Drawing.Rectangle(x, y, w, h)));
}
w = moving_image.Width; h = moving_image.Height;
g.DrawImage(moving_image, x = e.X - w / 2, y = e.Y - h / 2, w, h); } }

private void panel1_Paint(object sender, PaintEventArgs e){
e.Graphics.DrawImage(mem_image,new Point(0,0));}
923デフォルトの名無しさん:2005/12/12(月) 22:17:49
レベルの低い質問ですみません。
int[] iValue = { 1 , 2 , 4 , 8 };
int[] iValule = new int[] { 1 , 2 , 4 , 8 };
この二つって何か違うんでしょうか?
924デフォルトの名無しさん:2005/12/12(月) 22:20:22
>>923
上は下の省略形。初期化するときだけ。
925デフォルトの名無しさん:2005/12/12(月) 22:31:05
>>924
なるほど。これからは上を戸惑いなく使いたいと思います。
ありがとうございました。
926デフォルトの名無しさん:2005/12/12(月) 22:50:37
3.0だと初期化式が他にもいろいろと簡略化されるお
927デフォルトの名無しさん:2005/12/13(火) 00:03:15
3.0はいつでるんだ?
928デフォルトの名無しさん:2005/12/13(火) 00:06:14
頼むから、Formにすべての処理を書かないでくれ・・・
929デフォルトの名無しさん:2005/12/13(火) 00:39:30
>>928
クラス ライブラリを作れないVB.NET StandardやWeb Matrixが
存在することが元凶のような気もする。
930デフォルトの名無しさん:2005/12/13(火) 00:43:53
Formに全部書いちゃう人はクラスライブラリの作成機能があっても
モデルの分離はおこなわんだろ
931デフォルトの名無しさん:2005/12/13(火) 01:01:36
そういうやつに限って、呼び出しのオーバーヘッドがどうこうなんていうんだよな
932デフォルトの名無しさん:2005/12/13(火) 01:25:35
Formでポップアップウィンドウ作ろうとしてます。
ま、作るだけなら簡単だ何だけど、表示したときにフォーカスがそのウィンドウにいかないようにしたい。
ちなみにHelpProviderとかじゃだめです。
そのポップアップフォームにWebBrowserControl貼り付けたいので。
なんか良い方法ないかな。
933デフォルトの名無しさん:2005/12/13(火) 01:28:47
>>932
APIのShowWindowで表示させる
934デフォルトの名無しさん:2005/12/13(火) 01:40:30
C#で仮想OSを起動するようなアプリって書けます?

VMwareみたいなのを作りたいです。
935デフォルトの名無しさん:2005/12/13(火) 01:46:02
お前にゃ無理
936デフォルトの名無しさん:2005/12/13(火) 01:54:59
それしかいえんのかhw
937デフォルトの名無しさん:2005/12/13(火) 02:27:49
C#で株式売買するようなアプリって書けます?

富士通みたいなのを作りたいです。
938デフォルトの名無しさん:2005/12/13(火) 02:37:49
COBOLがお勧めです
939デフォルトの名無しさん:2005/12/13(火) 04:43:27
金融、株式といえばCOBOLだからね。
940デフォルトの名無しさん:2005/12/13(火) 06:52:09
Javaでもいいんじゃね?
941デフォルトの名無しさん:2005/12/13(火) 09:12:32
アンマネージリソースなんだが、ファイルとかソケット接続とかは明示的に開放できなきゃ不味いと思うんだが
メモリはよほど大きな容量でない限り明示的な開放は不要と思うのは俺だけ?

Disposeメソッドを実装しなくたって、デストラクタをきちんとしておけばいいと思う。
デストラクタをきちんと実装することで、アンマネージメモリがGCの対象になるし。
942デフォルトの名無しさん:2005/12/13(火) 11:01:36
n?
943919:2005/12/13(火) 12:51:28
>>920
そうです。子供とか子孫までいっきにkill Treeしたいんですけど、、、
944デフォルトの名無しさん:2005/12/13(火) 13:43:34
>>933
ちなみにForm.Show()とShowWindow()って、等価と見ていいんでしょうか。
945デフォルトの名無しさん:2005/12/13(火) 13:55:55
>>944
全然
946デフォルトの名無しさん:2005/12/13(火) 14:12:20
>>943
.NETのライブラリには親プロセス/子プロセスを調べる手段は無いみたいだね。
とりあえずCreateToolhelp32Snapshot関数を使って親プロセスは調べられる。
ほかにも何か手段があるかもしれない。
947943:2005/12/13(火) 15:12:23
>>946
NtQuerySystemInformationなんてつかおうかな〜とおもったけど、
あぶないっすかねぇ。。

CreateToolhelp32Snapshotで試してみます!
948デフォルトの名無しさん:2005/12/13(火) 16:21:57
InputStreamから文字列をMemoryStreamに読み込むときに
定石みたいなものはありますか?
良いサンプルとかが見つけられなくて・・
949デフォルトの名無しさん:2005/12/13(火) 16:40:42
>>948
定石と言われても。MemoryStreamじゃなくてFileStreamかもしれないし。
byte[]を確保してRead/WriteをReadの返り値が0以上の間繰り返すだけだし。
バッファサイズはネットワークでは4KB-8KB辺りが経験的に一番いいぞ。
950デフォルトの名無しさん:2005/12/13(火) 17:21:29
>>949
ありがとうございます。
その辺りで問題があるようだったので調べてる最中だったんだけど、
やり方してました。もっと違うやり方もあるのかどうかと思い・・

元の文章でJavaと混同してInputStreamって書いてしまったけど
何らか(FileStreamとか)のStreamからMemoryStreamに読み込むって意味です。

で、問題を突き詰めていったところ
書き込み部分じゃなくて、書き込んだ後、
MemoryStream.GetBuffer() の部分での問題みたい。

framework2.0で仕様が変わった部分で
http://msdn2.microsoft.com/en-us/library/system.io.memorystream.getbuffer.aspx
書いてあるのだけど、MemoryStreamに256バイト以下の文字列が
書き込まれている場合はGetBufferの戻す長さが256バイトになるらしい

その場合、代わりにToArray()を使うよう書いてあるけど
それで副作用ないかどうかこれから調べます。
何かその辺りのことご存知でしたら教えてください。
951デフォルトの名無しさん:2005/12/13(火) 17:30:55
というか元々MemoryStreamをbyte[]にするにはToArrayを使うべきなんだが。
別に副作用ないし。
952デフォルトの名無しさん:2005/12/13(火) 22:10:51
静的コンストラクタの存在意義は何ですか?
class Hoge {
  public static int test1 = 1;
  public static int test2 = 1;
      :
      :
とやっていくのと、どこか違ったり便利であったりする部分はありますでしょうか?
953デフォルトの名無しさん:2005/12/13(火) 22:20:58
>>952
時々あるのよ。メンバの初期化以外の動作を行わせたいことが。
954デフォルトの名無しさん:2005/12/13(火) 22:27:58
C#の存在意義は何ですか?
955デフォルトの名無しさん:2005/12/13(火) 22:29:40
>>952
初期化に if文使ったり、switch文使ったりできる。
956デフォルトの名無しさん:2005/12/13(火) 22:32:02
Unix系のOSにはsendfile関数があるんだけど、Win31APIには似たようなの無いのかねえ
957デフォルトの名無しさん:2005/12/13(火) 22:32:32
static readonly のフィールドに.App.configの値を入れたりとか。
958デフォルトの名無しさん:2005/12/13(火) 22:33:04
>>956
そもそもWin31APIがない。
959デフォルトの名無しさん:2005/12/13(火) 22:33:06
>>956
TransmitFileのことか?C#にはあったっけ・・・?
960デフォルトの名無しさん:2005/12/13(火) 23:41:12
あとの1はどこに落としてきた?
961デフォルトの名無しさん:2005/12/14(水) 00:06:45
>>953,955,957
納得! ありがとうございました。
962デフォルトの名無しさん:2005/12/14(水) 00:42:30
C++で
int i;
int& I = i;

はC#ではどうかくの?
963デフォルトの名無しさん:2005/12/14(水) 00:45:30
書けない
964デフォルトの名無しさん:2005/12/14(水) 01:10:02
書かない
965デフォルトの名無しさん:2005/12/14(水) 01:14:24
書かさない
966デフォルトの名無しさん:2005/12/14(水) 01:48:57
unsafeと書かせてくれないのか?
967デフォルトの名無しさん:2005/12/14(水) 02:57:26
2005でキャレット周りAPIラップしなくてよくなってたりしない?
968名無しさん♯:2005/12/14(水) 07:49:13
次スレですよ。( ゚д゚)ノ
http://pc8.2ch.net/test/read.cgi/tech/1134514022/l50
969デフォルトの名無しさん:2005/12/14(水) 08:19:03
C#でJavaでいうところのJakarta Commonsみたいなフリーの汎用ライブラリとかってありますか?
それとも標準でそれくらいカバーしてるのかな?
970デフォルトの名無しさん:2005/12/14(水) 08:20:51
>>969
ない。現状は俺様ライブラリが乱立だろうな。
971デフォルトの名無しさん:2005/12/14(水) 08:30:53
俺様ドッキングウィンドウ&ツールバー&フルカスタマイズ可能あるけど、さらしたらいる?
972デフォルトの名無しさん:2005/12/14(水) 09:07:24
>>963
つかえねーな > C#
973デフォルトの名無しさん:2005/12/14(水) 09:36:04
>>958
まあまて。Windows3.1のことかもしれん。
974944:2005/12/14(水) 09:39:04
>>945
ごめん、全然どっちなんだか全然分かりません。最近の言葉の乱れのせいで。
どっち?
975デフォルトの名無しさん:2005/12/14(水) 09:58:00
>>974
Show と ShowWindow の引数が全然違うのに
等価だと抜かすお前の頭は全然(ry
976デフォルトの名無しさん:2005/12/14(水) 12:11:57
>>969

Enterprise Library
977デフォルトの名無しさん:2005/12/14(水) 12:20:13
.Net2.0 の HScrollBar,VScrollBarの使い方なのですが。
m_hbar.SmallChange = 15;
m_hbar.LargeChange = 15*2;
m_hbar.Minimum = 0;
m_hbar.Maximum = (15 * 100) + m_hbar.LargeChange;
として ScrollEventHandler,ValueChanged のイベントハンドラを
フックして変更されかたをみたんですが、スクロールバーのつまみを
つまんで少しずつスクロールさせたときの値の変化がなぜか1刻みです。
SmallChange = 15 になっているかデバッグ表示させて確かめたのですが
確かに15になっているのに1ずつ値が増減します。

なんとかならないでしょうか。orz
978デフォルトの名無しさん:2005/12/14(水) 12:21:27
MFC使うと幸せになれるよ
979デフォルトの名無しさん:2005/12/14(水) 13:28:13
>>977
SmallChangeは
> ユーザーが方向キーの 1 つを押すと、またはスクロール バー ボタンの 1 つをクリックすると、
> Value プロパティは SmallChange プロパティに設定されている値に従って変更されます。
であってドラッグによる移動量は規定していない。
980974:2005/12/14(水) 14:45:03
>>975
ごめん、全然どっちなんだか全然分かりません。最近の言葉の乱れのせいで。
どっち?
981デフォルトの名無しさん:2005/12/14(水) 16:25:10
>>971
自作したの?すごいなあ。できればうpお願いします。
982977:2005/12/14(水) 16:26:46
>>979
紹介ありがとうございます。
うへ…そうするとつまみを少しずつ動かしたときの移動量ってどこで設定できるんでしょうね?(汗
MFCならdeltaという設定があって確かそれで設定できたと思うのですが…。
983デフォルトの名無しさん:2005/12/14(水) 21:03:11
>>971
そんな誰もつくれるようなものよく晒そうとできるなw
984デフォルトの名無しさん:2005/12/14(水) 21:15:21
>>983
まともに実装されてるアプリ見たことないが?
985デフォルトの名無しさん:2005/12/14(水) 21:28:23
>>984
Visual Studio
986984:2005/12/14(水) 21:49:32
すまね。商用じゃなくて。つか売ってるライブラリ使わないで。
987デフォルトの名無しさん:2005/12/14(水) 22:10:43
御託並べてないでさらせよ
988デフォルトの名無しさん:2005/12/14(水) 22:23:07
>>987
素直にほしいって言えば?
989デフォルトの名無しさん:2005/12/14(水) 22:34:24
いらね
990デフォルトの名無しさん:2005/12/14(水) 22:40:05
くれ。かすだったら捨てる。
991デフォルトの名無しさん:2005/12/14(水) 22:42:59
すんげぇほしい

992デフォルトの名無しさん:2005/12/14(水) 23:39:39
面白そうだからクレ。
993デフォルトの名無しさん:2005/12/15(木) 00:26:37
ほしぃ
994デフォルトの名無しさん:2005/12/15(木) 00:26:52
いらね
995デフォルトの名無しさん:2005/12/15(木) 00:47:16
(゚听)ヤラネ
996デフォルトの名無しさん:2005/12/15(木) 01:27:22
ほすぃ
997デフォルトの名無しさん:2005/12/15(木) 01:29:30
(゚听)イラネ
998デフォルトの名無しさん:2005/12/15(木) 01:32:14
>>995
ちょっと待てw
999デフォルトの名無しさん:2005/12/15(木) 02:20:35
梅梅
1000デフォルトの名無しさん:2005/12/15(木) 02:21:15
MSDN2 日本語版
ttp://msdn2.microsoft.com/ja-jp/library/ms123401(ja-jp,MSDN.10).aspx
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。