トップページ⇒tech
1001コメント295KB

C♯相談室 Part27

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯2005/11/09(水) 22:55:41

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


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


関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯2005/11/09(水) 22:56:24
過去スレ その1
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
0003名無しさん♯2005/11/09(水) 22:57:01
過去スレ その2
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0004デフォルトの名無しさん2005/11/09(水) 23:01:02
Visual C# Express
http://msdn.microsoft.com/vstudio/express/visualcsharp/
0005デフォルトの名無しさん2005/11/09(水) 23:03:21
乙
0006デフォルトの名無しさん2005/11/09(水) 23:37:27
クラスを内包させる理由がわかりません。
class OuterClass
{
public InnerClass{}
}

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

こういうノリ。
0008デフォルトの名無しさん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/
0009デフォルトの名無しさん2005/11/09(水) 23:54:22
ネストクラスからは外クラスのprivateメンバが見えるというのもある。普通はstaticメンバしか使えないわけだが、
class OuterClass {
    private int id;
    public class InnerClass : OuterClass {
        public int GetId() {
            return id;
        }
    }
}
なんてコードも有り。乱用はできないが。
0010デフォルトの名無しさん2005/11/10(木) 00:02:45
PCのマイクで喋った言葉を録音して再生したいんです。
DirectShowっていうので出来るっぽいんですが、良い資料とかサンプルはありませんか?
0011102005/11/10(木) 00:03:22
C#からDirectShowを使うっていうことです。
0012デフォルトの名無しさん2005/11/10(木) 00:05:12
Managed DirectXの記事ってのはほとんど無いので、C++辺りのDirectXの記事を流用。
0013デフォルトの名無しさん2005/11/10(木) 00:45:44
>>9
そんなんプロパディgetでよくね?
0014デフォルトの名無しさん2005/11/10(木) 00:48:55
俺は9ではないがJavaとの相互運用を考えるようになってからは
プロパティを使いたくなくなった
0015デフォルトの名無しさん2005/11/10(木) 00:59:23
質問です。
皆さんはC#をどうやって勉強したでしょうか?

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


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

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

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

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

ぶっちゃけ継続的にやり続けていくしかないな。どうせどこまでいったって
ずっと勉強し続けなければならんのだから独力で勉強できるようになっと
いたほうがいい。
0024デフォルトの名無しさん2005/11/10(木) 23:41:05
PrinterSettingsの内容を保持して、次回起動時に設定内容を復元したいのですが
XmlSerializerなどではエラーで保存できませんでした
何か良い方法ありませんか?
0025デフォルトの名無しさん2005/11/10(木) 23:43:10
[Serializable] ってのが付いてるだろ
0026デフォルトの名無しさん2005/11/11(金) 00:35:41
DataSetを使って、図書データなどを保存して、検索する。という物を作った場合
100MBのDataSetを使うと、必ずメモリに100MBのデータを読み込んでしまうのでしょうか?
0027デフォルトの名無しさん2005/11/11(金) 03:10:47
なにいってのこのしとは?
0028デフォルトの名無しさん2005/11/11(金) 03:29:04
掲示板で回答もらうのと、テストで組んでみるのってどっちが早いんだろうね。
0029デフォルトの名無しさん2005/11/11(金) 04:57:19
いまVS2005つかってるんですけど、C#の開発にEclipse使ってる人います?
C#の開発に特化する場合でEclipseの使い心地どうなのか知りたいです。
インテリセンスとか、リファクタとか。ぜんぜん知らないんですが、色々な連携するならEclipse、C#だけならVS2005というイメージがあります。
0030デフォルトの名無しさん2005/11/11(金) 05:01:10
自己レス・・・
だめぽ
http://www.atmarkit.co.jp/fdotnet/tools/eclipse/eclipse_04.html
0031デフォルトの名無しさん2005/11/11(金) 09:44:06
>>26
ttp://www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html
これを読めば自ずとわかるようになるよ。DataSetのサイズは検索クエリー次第。
0032デフォルトの名無しさん2005/11/11(金) 11:06:53
今2chブラウザつくってるんだけど、webBrowserを使わずに仮想ブラウザ機能をつくりたいんですよ。
何を使って作るのがベストでしょうか?
0033デフォルトの名無しさん2005/11/11(金) 11:24:28
Control から派生させる
0034デフォルトの名無しさん2005/11/11(金) 11:26:34
仮想ブラウザとやらがどんなのを目指してるのか分からないことにはさっぱりだ。
0035デフォルトの名無しさん2005/11/11(金) 11:28:00
ブラウザコンポーネントを使わない2chブラウザって
OpenJane Doe 以外になんかあったっけ
0036デフォルトの名無しさん2005/11/11(金) 18:11:19
>>32
XAML
0037デフォルトの名無しさん2005/11/11(金) 19:20:18
このスレC#で検索しても出てこないと思ったら・・・
C♯かよ
表記統一しろよ
0038デフォルトの名無しさん2005/11/11(金) 19:22:09
#はスレタイにできねぇんだよ馬鹿
0039デフォルトの名無しさん2005/11/11(金) 19:23:31
プログラム板だけ特別に#付きでスレ立てられるようにしてもらおうぜ
0040デフォルトの名無しさん2005/11/11(金) 19:31:06
#なら立てられるだろ
#だと#で検索しても引っかかんだよ
とか思ったが、#のスレって変なのが多いのな
このまま♯でいいよ(´・ω・`)
0041デフォルトの名無しさん2005/11/11(金) 19:45:44
ハッシュはお門違いだしな
0042デフォルトの名無しさん2005/11/11(金) 20:41:33
http://codezine.jp/res/article/1/2.gif
↑
このダイアログで使われているようなコントロールを使いたいのですが、
これは何というコントロールですか?
0043デフォルトの名無しさん2005/11/11(金) 20:47:43
ListView
0044デフォルトの名無しさん2005/11/11(金) 20:49:22
あとはButtonだな、一応w
0045422005/11/11(金) 20:58:23
>>43-44
ありがとうございます
0046デフォルトの名無しさん2005/11/11(金) 21:08:37
>>45
ユーザ登録すればソースコードをダウンロードできるでしょ
0047デフォルトの名無しさん2005/11/11(金) 22:29:49
>>27-31 ありがとうございます。
データベースは使わずにお手軽に大量データを扱いたい。
検索などが遅いのはよいけど、データのロード(初動)に時間をかけたくない。みたいな感じで何かないかと
微妙な質問でした。
0048デフォルトの名無しさん2005/11/11(金) 23:02:45
Windows2000 IE6.0 ASP.NETでC#でつくってます。

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

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

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

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

0071702005/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/
0072512005/11/12(土) 14:33:54
>>53
初めて知ったよ、ありがとう。
0073デフォルトの名無しさん2005/11/12(土) 15:14:52
c#つかってwindows のDNSサーバの操作ってできますか?
ホストの追加とかその他もろもろ。。
0074デフォルトの名無しさん2005/11/12(土) 15:17:38
# # ナンバー
♯ シャープ
0075デフォルトの名無しさん2005/11/12(土) 15:20:26
コンテキストメニューやらメニューが複数あるアプリケーションでコマンドの管理ってどうやってる?
UserControl1にもメニューとコンテキストメニューがあって
UserControl2にもメニューとコンテキストメニューがあり、一部共通、みたいな
どこかのクラスで管理しておいて、UserControlができるときにコードで割り当てた方がよいのかな
0076デフォルトの名無しさん2005/11/12(土) 15:24:01
>>66
アセンブラはアセンブラの実装以上のことはできない
たとえば昔のアセンブラだとMMXが使えない
0077デフォルトの名無しさん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のネット環境の方が問題あるのでしょうか・・・
0078デフォルトの名無しさん2005/11/12(土) 18:10:12
どう失敗してるのかも分からないのに答えられるわけ無いだろ
ソースがあるんだから例外トラップぐらいしろと
0079デフォルトの名無しさん2005/11/12(土) 19:14:11
基本的な質問なんだけど、
Debug版のexeとRelease版のexeってどう違うの?
サイズとか動作速度とかが違うの?
0080デフォルトの名無しさん2005/11/12(土) 19:16:26
>>79
最適化は、Debug 版はデフォルトでオフ、Release 版はデフォルトで ON になってる。
あと Debug 版にはデバッグ情報が入ってる。実行速度には影響しないけど、これ公開すると痛い人は痛い。
0081デフォルトの名無しさん2005/11/12(土) 19:17:02
痛いとか以前にライセンス違反ですから
0082792005/11/12(土) 19:35:29
レストンクス
配布は基本的にReleaseってことか
0083デフォルトの名無しさん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を食いつぶしてしまいます・・・(´・ω・`)
0084デフォルトの名無しさん2005/11/12(土) 20:45:04
DesignerSerializerを指定しないときの
DesignerSerializerって何が使われるんでしょうか?
(デフォルトって意味で)
0085デフォルトの名無しさん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.
0086デフォルトの名無しさん2005/11/13(日) 03:17:32
読み込んだ8bitBMPファイルのカラーパレットとピクセルデータを
取得したいんですがざっくりとでもいいんでやり方教えてください
0087862005/11/13(日) 03:25:21
BitmapDataというやつでピクセルのインデックス情報は取得できるのですが、
カラーパレットをどう取得していいのか分かりません。
0088482005/11/13(日) 03:31:54
WebProg板というのがあったのでそちらで質問します。失礼しました。
0089862005/11/13(日) 05:15:10
Bitmapの方にPaletteってのがあるのに気づきました。。失礼しました。
0090デフォルトの名無しさん2005/11/13(日) 05:27:11
sn
0091デフォルトの名無しさん2005/11/13(日) 11:07:54
class a{
public static event A B
}
ってやると、

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

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

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

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

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

・LINQ
 → PL/SQL と同じ

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

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

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

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

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

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

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

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

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

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

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

devenv solution.sln /build Release

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

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

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

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

「普通、変数は プライベートに設定して、パブリックのプロパティーや関数で変数を使う」と読んだのですが、
プロパティーや関数で外のクラスから変数を知ったり、変えたり出来るなら、変数はパブリックにしても問題ないと思うのですが、なぜ変数はプライベートにするのですか?
0185デフォルトの名無しさん2005/11/18(金) 16:35:47
しばらく使ってたらわかる
0186デフォルトの名無しさん2005/11/18(金) 17:09:12
getXXX、setXXX方式だとセッタ読んでるとこだけ検索とかできるけどプロパティだと見つけづらくない?
VS2005だとgetの方にカーソル合わせて呼び出してるとこ一覧とか出せるのかな?
0187デフォルトの名無しさん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 とか宣言してても
かまわないし効率はいいと思うが、オブジェクト指向厨とかがいちいち突っ込んでくる場合がある。
その場合は、「オブジェクト指向って何?」とかいってわからない不利をしたり、
説明されても、「難しくてわからん」といって、あまり相手をしないほうがコーディングは進む。
0188デフォルトの名無しさん2005/11/18(金) 17:21:53
> 効率はいいと思うが
JITコンパイルされる時にインライン展開されるので効率は変わらないはずでは。
0189デフォルトの名無しさん2005/11/18(金) 17:27:46
>>184
双方向データバインディングとか使うとありがたみがわかるかも

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

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

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

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

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

設定内容とデータ構造はどのようにしますか?
0196デフォルトの名無しさん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クラスが参考になるかと。
0197デフォルトの名無しさん2005/11/18(金) 22:51:33
インデクサ市ね
・・・C#最強厨が、インデクサ、インデクサってウルサイ
ただの演算子のオーバーロードじゃないのか?
なんで、あんなに拘るのだ・・・あいつは
0198デフォルトの名無しさん2005/11/18(金) 23:11:03
インデクサって、VBの既定のプロパティが引数取るものオンリーになったものってことだよね?
0199デフォルトの名無しさん2005/11/18(金) 23:13:53
引数を取らないデフォルトプロパティってどんなだ?
0200デフォルトの名無しさん2005/11/18(金) 23:38:20
>>197
[] 演算子のオーバーロードに見えるけど、
実際はインデックス付きのプロパティ。
0201デフォルトの名無しさん2005/11/18(金) 23:46:07
むしろメソッドとプロパティの中間。
0202デフォルトの名無しさん2005/11/19(土) 00:30:17
メソパティ
0203デフォルトの名無しさん2005/11/19(土) 00:36:28
ソレダ!
0204デフォルトの名無しさん2005/11/19(土) 01:08:08
プロパティも結局はメソッドだし
0205デフォルトの名無しさん2005/11/19(土) 01:15:53
>>204
そんなもんこのスレの住人なら誰でも知ってる。
今してる話はインデクサの性質についてであって内部的な話じゃない。
0206デフォルトの名無しさん2005/11/19(土) 01:25:42
引数付きプロパティがないからインデクサをつけただけなんじゃね
0207デフォルトの名無しさん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]]]]]]]]]]]]]];
0208デフォルトの名無しさん2005/11/19(土) 01:50:56
インデクサはいらない機能なんじゃないかなと思ってきた
コレクション関係のクラスではあってもいいけど
0209デフォルトの名無しさん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アカウントをアクセス権限に追加してもだめでした。

なにかご存知でしたらお願いいたします。
0210デフォルトの名無しさん2005/11/19(土) 08:42:28
Exceptionの一覧はどこで見れるか教えてください。
0211デフォルトの名無しさん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は文字列型で
ファイル読み込みによって取得します
0212デフォルトの名無しさん2005/11/19(土) 12:36:42
Addしてからじゃないと無理じゃないかな
0213デフォルトの名無しさん2005/11/19(土) 12:40:30
>>210
.NET Reflector (VS2005 でもできたような) で、
System.Exception の派生クラスを見ればOK。
02142112005/11/19(土) 13:07:12
>>212
解決しました
ありがとです
0215デフォルトの名無しさん2005/11/19(土) 16:09:52
2.0でなんかImeModeプロパティってATOKとかで動作してますか?
マイナーなJapanistなんて使ってると上手く動かない
まあしょうがないけど
0216デフォルトの名無しさん2005/11/19(土) 17:05:11
>>199
つ http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet12/vb6tonet12_01.html
VB6.0の機能。
これのせいで、set文なんてものが必要だったわけだが、
.netで既定のプロパティと一緒に廃止された。
0217デフォルトの名無しさん2005/11/19(土) 17:46:07
>>216
ADOのレコードセットがそれ使ってますね。
ADO.Rs.Fields.Item(0) を ADO.Rs(0) とかけるのがそれ。
0218デフォルトの名無しさん2005/11/19(土) 18:55:48
2.0SDKをインストールすれば、1.1のSDKってもう要らないの?
0219デフォルトの名無しさん2005/11/19(土) 21:47:33
質問です。
Windowsアプリケーションを作成しているのですが、
各フォームで使い回すインスタンスをどのように共有していいかわかりません。
ASP.NETでの、HttpSessionState#Addのようなことを行いたいのですが。。。
0220デフォルトの名無しさん2005/11/19(土) 21:48:37
めしどこか頼む
0221デフォルトの名無しさん2005/11/19(土) 21:54:30
static
0222デフォルトの名無しさん2005/11/20(日) 01:16:43
signleton
0223デフォルトの名無しさん2005/11/20(日) 02:16:18
>>218
1.1で開発することがないなら要らない。
0224デフォルトの名無しさん2005/11/20(日) 02:32:51
開発なんてたいそうなことは必要ありません。
ただお遊び程度のものが作れれば十分です。
0225デフォルトの名無しさん2005/11/20(日) 02:42:50
1.1の実行環境で動作するものを2.0のSDKで作ることはできないの?
0226デフォルトの名無しさん2005/11/20(日) 02:47:52
そりゃ、SDKのバージョンが違うんだから基本的には作れないだろ。
0227デフォルトの名無しさん2005/11/20(日) 02:55:34
>>225
基本的にはどころか、まったくできません。
0228デフォルトの名無しさん2005/11/20(日) 03:01:24
なんで?wwww
0229デフォルトの名無しさん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
0230デフォルトの名無しさん2005/11/20(日) 03:03:01
だってDirectXなら新しい奴で古いバージョンの開発できるじゃん
0231デフォルトの名無しさん2005/11/20(日) 03:03:36
csc.exeも各種dllも実行環境の方に存在するから、別にSDKが無くても実行環境さえあれば作れるよ。
0232デフォルトの名無しさん2005/11/20(日) 03:39:11
DirectXなんて糞は舐めたことないので分からん
0233デフォルトの名無しさん2005/11/20(日) 03:41:54
んじゃ黙ってろよクズが
0234デフォルトの名無しさん2005/11/20(日) 10:03:43
はい
0235デフォルトの名無しさん2005/11/20(日) 11:58:22
C#ジェネリクスとテンプレート両方実装してくれりゃいいのに・・・
クラス制約のせいでできないことが多いぞゴラァ
0236デフォルトの名無しさん2005/11/20(日) 12:35:32
たとえば?
0237デフォルトの名無しさん2005/11/20(日) 14:57:24
>>235
ジェネリクスとテンプレートを理解できていないんですねw
0238デフォルトの名無しさん2005/11/20(日) 15:01:44
っていうか、同じじゃん
言い方が違うだけでしょ

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

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

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
























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

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

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

同じように、他のアプリケーションからAPIを用いて
他プロセスのリストビューから値を取得する方法が書かれたページor方法がありますでしょうか。
よろしくお願いします。
02542532005/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);
0255デフォルトの名無しさん2005/11/20(日) 22:38:50
随分と特殊な用例を探してるんだな。
0256デフォルトの名無しさん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に値が反映されなくて謎。
特定のプロパティだとデータバインディングが機能しないとかあるの?
02572532005/11/20(日) 22:42:06
labelから文字列取得とテキストボックスに文字列設定or取得は出来たのだけど
ListViewへうまくメッセージが伝わらないのです。。
lParamのLVITEM構造体、構造体だからダメくさい感じなのだけど。
同じことやってる人。。。いなさそうだなあ。
0258デフォルトの名無しさん2005/11/20(日) 22:44:29
>>257
とりあえず構造体レイアウト属性を。話はそれからだと思う。
0259デフォルトの名無しさん2005/11/20(日) 22:47:40
俺は前、MSNメッセンジャーに曲名を送信するプログラムをC#で作ったことがあったんだが。[StructLayout(LayoutKind.Sequential)]
構造体を送るなら、

[StructLayout(LayoutKind.Sequential)]
public struct LVITEM

だろ
02602532005/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;
}
0261デフォルトの名無しさん2005/11/20(日) 22:48:11
編集ミスで変になった&
かぶった


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

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

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

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

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

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

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

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

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

test.xml
test2.mp3

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

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

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

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

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

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

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

まあそもそも値の意味的にstaticの方が好ましそうだけど。
0283デフォルトの名無しさん2005/11/21(月) 19:39:27
関係ねーよ。
「その使ってるメソッドとやらのほうにstatic」つけてるんじゃないか
っていってる
エラーメッセージ読めよそもそも
02842782005/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の違いでしょうか。。。

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

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

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

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

参照する項目多いとうまく分離しきれない
0294デフォルトの名無しさん2005/11/22(火) 00:38:09
DataBindingすればよくね?
0295デフォルトの名無しさん2005/11/22(火) 00:38:59
イベント使うのもいくね?
0296デフォルトの名無しさん2005/11/22(火) 01:00:12
たとえばあるイベントが起きたときの処理が3行で記述できても
外だしにすべき?
0297デフォルトの名無しさん2005/11/22(火) 01:03:02
すべき
0298デフォルトの名無しさん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();
0299デフォルトの名無しさん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");
0300デフォルトの名無しさん2005/11/22(火) 02:11:03
>>299
> tmp.Split(new char[] { '\n' });
> => tmp.Split(new char[] { '\r', '\n'});

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

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

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

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

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

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

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

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

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

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

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

public TheClass(int left, int right)
{

}

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

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

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

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

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

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

0374デフォルトの名無しさん2005/11/25(金) 00:50:15
>>373
つり? くま〜AA(略
0375デフォルトの名無しさん2005/11/25(金) 00:59:50
>>373
普通のアプリの2〜3倍は食うのは確かだがそこまで気にならないよ。
アプリ起動するとリリースモードで動かしてもWorkingSetで20Mぐらいいくな
0376デフォルトの名無しさん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
ここね。その後とんでもないことになるが
03773762005/11/25(金) 02:06:17
これはWindowsの仕様としか言いようがないんじゃないかな。
FireFoxも同じ問題で頭抱えてるみたいだし。
実際それだけメモリが使用されているわけではない。
0378デフォルトの名無しさん2005/11/25(金) 02:19:17
「とんでもないこと」を詳しく
0379デフォルトの名無しさん2005/11/25(金) 02:53:19
スワップが発生しまくります。
0380デフォルトの名無しさん2005/11/25(金) 03:01:45
コマンドラインのParserやCsvのReaderはC#2.0でも標準装備されていないんでしょうか?
0381デフォルトの名無しさん2005/11/25(金) 09:47:20
>>373
http://www.itwriting.com/dotnetmem.php

激しくFAQ
0382デフォルトの名無しさん2005/11/25(金) 09:55:47
>>380
ない。どっちも方言多いし。
0383デフォルトの名無しさん2005/11/25(金) 11:25:32
監視スレッドなるものを作っているんだけど
1秒ごとに監視っていうにしたいんよ。
C++みたいにSleepってC#ではみあたらないんだけど、処理をしばらくとめてる関数ってあるー?

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

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

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

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

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

だってw
0401デフォルトの名無しさん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/ にあるライブラリを改変して使ってる。
0402デフォルトの名無しさん2005/11/26(土) 10:29:15
>>401
ありがとうございます。
LogParser,JHLib落としました。
ちょっとしたCSVのためにCOMで使うのは厳しそうですが、いろいろ遊べそう
JHLibかなり使えそうですねsimply freeですし
ところで改変というと、何か問題とかありましたか?
04034012005/11/26(土) 10:46:22
>>402
>ところで改変というと、何か問題とかありましたか?

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

改変というか、ネームスペースをシステムに合わせて変えたりといったその程度です。
0404デフォルトの名無しさん2005/11/26(土) 12:58:18
オブジェクト指向でMVCというのは一般的ですか?
0405デフォルトの名無しさん2005/11/26(土) 13:14:39
別に
0406デフォルトの名無しさん2005/11/26(土) 13:39:55
>>404
Javaでは一般的
C#ではマイナー
0407デフォルトの名無しさん2005/11/26(土) 13:43:01
>>406
そうなんですか。
そうすると、C#で一般的なものとは何になるんですか?
0408デフォルトの名無しさん2005/11/26(土) 14:32:29
>>407
ViewとModel(Data)を分ける考え方はC#でも普通にするし、広い意味でのMVCは使ってますよ。
WebFormやWinFormを使うとControllerをほとんど意識しないからMVCとは呼ばないだけ。
というより、今はMVCといったらJSPのモデル2MVCかその派生物をさすことが多いので、
.NETではMVCという言葉を使わないことが一般的。
0409デフォルトの名無しさん2005/11/26(土) 14:59:55
>>408
ありがとうございます。
.NETではFormクラス内でViewとControlerが
一体化しているということですね(違うかな・・)
0410デフォルトの名無しさん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() しても一向考慮される気配なし。
どうしたらいいの?
0411デフォルトの名無しさん2005/11/26(土) 16:32:16
> メモ   ノードのフォントが TreeView コントロールの Font プロパティで
> 設定されている値よりも大きい場合、ツリー ノード ラベルのテキストはクリップされます。

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

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

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

0415初心者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
0416デフォルトの名無しさん2005/11/26(土) 21:51:53
漏れも初心者だけどexpressが出るまでポトペタバージンだった。
いままでエディタでコーディング
つーか初心者ほど手書きの方がいい希ガス
0417デフォルトの名無しさん2005/11/26(土) 22:45:18
ある程度組めるなら、ポトペタはウザくてGUI構築以外では使わんと思う。
というかポトペタはそのための機能だ。
0418デフォルトの名無しさん2005/11/26(土) 22:57:03
>>416
実際そうだよな。
俺もVisualStudio買うかどうかは
SDKで試してから決めたし。
0419デフォルトの名無しさん2005/11/26(土) 23:42:30
ごめん空気読めてないけど
ぽとぺたってなに?
0420デフォルトの名無しさん2005/11/26(土) 23:44:11
PageSetupDialog の余白設定が乱れるバグへの良い対処法ってないですか?
宇宙仮面のサイトに載っている対処法を使っているのですが、
それだと僅かに乱れてしまうので気になっております
例えば 10 に設定した余白が次に開いた時には 9.9 になってしまいます
0421デフォルトの名無しさん2005/11/27(日) 00:28:57
>>419
ぽとり、ぺたり
0422デフォルトの名無しさん2005/11/27(日) 00:45:33
なんで2.0のSDKドキュメントにはSystem.Mediaとか載ってないの?
WinFxのほう見ろってこと?
0423デフォルトの名無しさん2005/11/27(日) 00:52:53
一応載っているようだが?
メンバ一覧ぐらいしか情報はないけど。
0424デフォルトの名無しさん2005/11/27(日) 02:02:39
長文失礼

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

みたいな

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

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

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

あるクラスHogeに

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

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

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

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

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

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


(ノ∀`)アチャー
0498デフォルトの名無しさん2005/11/29(火) 04:25:00
業務用アプリ全体を一人で書いてましたがなにか?
0499デフォルトの名無しさん2005/11/29(火) 05:53:42
メイド服着て模造刀振り回されたら怖すぎ。
0500デフォルトの名無しさん2005/11/29(火) 17:37:08
>●落札について
>・10円で入札下さい。
セコイ・・・つか、規約違反だろw
>また、こちらが組んだ
>プログラムのどこに問題があるか指摘して下さい。
君自身が問題
0501デフォルトの名無しさん2005/11/29(火) 20:26:34
RichTextBox を使って簡単なテキストエディタを作ったのですが、
英文を入力した時になぜかフォントが Arial になってしまいます。
普段は等幅の MS ゴシックの 12pt を利用しております。
バグというほどのものではないですが、一々フォントを直すのが面倒なので
どうにかならないかと思っております。
解決策を知りませんか?
0502デフォルトの名無しさん2005/11/29(火) 20:30:52
まあバグだ。
ttp://groups.google.co.jp/group/microsoft.public.jp.dotnet.vsnet/browse_thread/thread/45779ced7d052b2e?hl=ja&lr=&ie=UTF-8&oe=UTF-8&c2coff=1&seekm=uguC%23FyMDHA.2788%40TK2MSFTNGP10.phx.gbl&frame=off
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11440&forum=7
0503デフォルトの名無しさん2005/11/29(火) 20:38:37
なるほどバグでしたか。
ありがとうございした。
0504デフォルトの名無しさん2005/11/29(火) 20:52:20
Outlookでテキスト形式のメールを書くときでも同じ状況になるよな
0505デフォルトの名無しさん2005/11/29(火) 21:18:26
RichTextBoxはお勉強用なので
0506デフォルトの名無しさん2005/11/29(火) 22:33:13
http://pc8.2ch.net/test/read.cgi/prog/1101291903/314

さらしAGE
0507デフォルトの名無しさん2005/11/29(火) 22:37:08
くんなww
0508デフォルトの名無しさん2005/11/29(火) 22:46:27
実行中に不透明度(Opacity)を変更すると描画が異常に重くなるのは何故?
例えば、メニュークリックイベントで
this.Opacity = 0.50;
とかやるとフォームの移動の時とかにチカチカなるんだけど・・・
0509デフォルトの名無しさん2005/11/29(火) 22:49:16
なぜもなにも。そんなもんとしか。
描画の手間が何倍にもなるんだから。
0510デフォルトの名無しさん2005/11/29(火) 22:55:08
上の方の人と同じくリッチテキストボックスコントロールについて質問なんですが、
こいつのコンテキストメニューに文字列検索機能を追加したいんですが、
どうやれば追加できますか?
もしかして追加でコモンダイアログとかがあるんですか?
ダイアログの外見はCTRL+Fの検索と同じような感じにしたいんで
0511デフォルトの名無しさん2005/11/29(火) 23:13:20
検索ダイアログはコモンダイアログとしてWindowsが提供してるけど、.NETのライブラリには入ってない。
「コモンダイアログ 検索」で調べれば検索ダイアログの使い方が見つかるだろうから、
そいつを.NETに移植することになる。
//CodeProjectとか漁れば見つかりそうな気もする。

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

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

もうちょっと根拠だそうよ
0522デフォルトの名無しさん2005/11/30(水) 01:44:32
>>519
win2kでは最大4分待ちって聞いたことある。
NTも必ずタイムスライスが回ってくるけど、数十分に1回とかだと聞いたことがある。
レジストリで変えられるとか言うはなしだったけど。
0523デフォルトの名無しさん2005/11/30(水) 01:48:10
やっぱり商用UNIXじゃないと。
0524デフォルトの名無しさん2005/11/30(水) 01:50:53
>>519
UNIXにマルチスレッドの定義はなかったと思うけど…
Pスレッドのことか?
プライオリティの低いスレッドが割り込めないのは単純割り込み方式
だけど、さすがにそんな教科書実装してないと思うよ。
スケジューリングやってるはず。 でなきゃ割り込みでいいじゃんになる。
05255132005/11/30(水) 01:52:02
>>521
from AdvancedWindows
あとぐぐったらこれもあった
http://72.14.203.104/search?q=cache:2B1Y24GJozQJ:www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/win2kprocess_5.html+Unix+NT+%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%80%80%E3%83%97%E3%83%A9%E3%82%A4%E3%82%AA%E3%83%AA%E3%83%86%E3%82%A3&hl=ja&client=opera
0526デフォルトの名無しさん2005/11/30(水) 02:07:01
>>525
とりあえずぐぐった先を読んだ限りでは、
クォンタム期間は独占されるがそうでなければプライオリティが低いのも実行可能としか読めないが。

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

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

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

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

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

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

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

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

VS2005で3〜4倍高速化したとはほんと?
普通にうれしいんですが
0591デフォルトの名無しさん2005/12/01(木) 00:40:03
>>588
答えるとは言ったがそれはスレ違いじゃね?
.NETの標準的なクラスのXML Schemaが知りたいならxsd.exeを使えば雰囲気はつかめると思う
0592デフォルトの名無しさん2005/12/01(木) 01:53:50
>>591
だよね。どっかコミュ探します。
0593デフォルトの名無しさん2005/12/01(木) 18:01:33
リッチテキストボックスにファイルなどを貼り付けるにはどうしたらいいですか?
昔VB6か何かで同コントロール使ったときには簡単にできた気がするのですが、
C#でのやり方は知らないので、知っていたら教えてください
05945932005/12/01(木) 18:06:26
かなり説明不足でした
要するにコピペしたときにアイコンが表示されるものとされないものがあるので、
これをすべて表示できるようにするにはどうしたらいいのかってことです
0595デフォルトの名無しさん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の動作は、選択行を変えたときは選択が消える行と選択される行だけが表示更新されているのでチカチカしませんし軽いです。
同じ動作にしたいんですが、再描画を行う必要があるのかないのかイベントプロシージャ内で判別する方法がわかりません。

なにかいい方法ないでしょうか。
0596デフォルトの名無しさん2005/12/01(木) 20:59:40
ん〜、試した限り元選択行と新選択行しか再描画してないようだけど。.NET2.0正式版。
0597デフォルトの名無しさん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
0598デフォルトの名無しさん2005/12/01(木) 22:43:15
.Net2.0SDK正式版(日本語のSDKはまだのはずなので英語版)+SharpDevelop2(corsavyの最新版)です。
0599デフォルトの名無しさん2005/12/01(木) 23:28:35
.NET Frameworkのソースを読んでいるのですが
System.Windows.Forms.TabControl.OnDrawItem(DrawItemEventArgs)
を呼んでいる個所が見つけれません。

ご存知のかたいませんか?
0600デフォルトの名無しさん2005/12/01(木) 23:29:53
WndProcの周辺でないの?
0601デフォルトの名無しさん2005/12/02(金) 00:34:53
System.Windows.Forms.TabControl.WndProc(Message&)
System.Windows.Forms.TabControl.WmReflectDrawItem(Message&)
System.Windows.Forms.TabControl.OnDrawItem(DrawItemEventArgs)
0602デフォルトの名無しさん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でない場合処理中止

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

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

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

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

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

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

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

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

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

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

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

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

0614デフォルトの名無しさん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
0615デフォルトの名無しさん2005/12/02(金) 01:51:40
>>611
ええっと、拡張子がresのプログラム?を落としたんですが再生の仕方がわからないんです。
0616デフォルトの名無しさん2005/12/02(金) 01:53:52
僕も分かりません><
0617デフォルトの名無しさん2005/12/02(金) 01:56:18
>>614 �dクス、ありがとう
0618デフォルトの名無しさん2005/12/02(金) 01:57:33
>>613
WmReflectDrawItemが呼ばれる条件にはOwnerDrawFixed に設定されているのと記述はありません.
Msgが0x202Bなら無条件でWmReflectDrawItemが呼ばれます.

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

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

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

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

WM_REFLECT (WM_USER+0x1c00)

あたりを調べろ

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

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

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

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

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

0630デフォルトの名無しさん2005/12/02(金) 15:08:38
ハッシュテーブルに入れたオブジェクトは
ハッシュテーブルから削除すればGCの対象になるのでしょうか?
それとも何かしらのオブジェクトの破棄をしないとメモリリークの原因となってしまうのでしょうか?
0631デフォルトの名無しさん2005/12/02(金) 15:30:41
>>630
前者
0632デフォルトの名無しさん2005/12/02(金) 15:36:01
>>631
Thx!
これで一歩前へ進めます
0633デフォルトの名無しさん2005/12/02(金) 20:19:17
windowクラス名を固定することはできないんでしょうか?
0634デフォルトの名無しさん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つを取得する方法がわかりません。
0635デフォルトの名無しさん2005/12/02(金) 21:33:42
つSortedDictionary<int,Pair<Data1Type,Data2Type>>
Pairはそれらしいの自分で実装のこと
0636デフォルトの名無しさん2005/12/02(金) 21:35:56
データ構造が不明だが、data1とdata2を持つクラスを作ってHashtableに格納するとか?
それともNamedValueCollectionみたいなのを求めてるのか?
0637デフォルトの名無しさん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];
0638デフォルトの名無しさん2005/12/02(金) 23:46:35
HashTableを2つ使えば解決w。つーかC#関係なくね?
0639デフォルトの名無しさん2005/12/02(金) 23:50:24
>>638
そんな蛸な設計してる部下いたら作り直させる。
0640デフォルトの名無しさん2005/12/02(金) 23:58:39
いいんだよ
動きさえすれば
0641デフォルトの名無しさん2005/12/03(土) 00:29:20
Listより、Hashtableを使ったほうがよい(速い)場合の要素数って15くらい?
0642デフォルトの名無しさん2005/12/03(土) 00:31:51
標準のHybridDictionaryでは要素数10でListとHashtableを切り替えるな
0643デフォルトの名無しさん2005/12/03(土) 00:34:44
Dictionary<T> って Add した順序が保存されている気がするけど
ひょっとして ListDictionary と同じ実装なわけ?
0644デフォルトの名無しさん2005/12/03(土) 00:35:47
Thx
じゃ、Hashtableを2つ使えばよさげって場合はなかなかなさそうですな
0645デフォルトの名無しさん2005/12/03(土) 02:35:40
リッチテキストでのD&D機能が成功しない……
ちょこっとテキストを楽に移動させたいだけなんだけどなー
なのになんでこんなに苦労せにゃいかんのだ
0646デフォルトの名無しさん2005/12/03(土) 11:19:07
>>624
だから利用出来るってば。>>609参照
[DllImport("hoge.dll")]
extern static int Hoge();
みたいな感じ。
0647デフォルトの名無しさん2005/12/03(土) 11:58:07
CrystalReportを使って帳票を作っています
レポートビューワで表示したときに複数の帳票を一つのビューワで出したいと思っているのですが、メインレポートのタブの横に新しいタブを追加する方法がよくわかりません。
新しいタブを追加し、別のレポートを出力する方法を教えてください
06485952005/12/03(土) 20:14:37
クラス classA の配列を返すメソッドを書きたいんですが、どうやって classA の配列を返したらいいかがわかりません。

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

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

ありがとうございますー!!
0653デフォルトの名無しさん2005/12/03(土) 21:23:16
ArrayList.ToArrayのオーバーロード見れ
0654デフォルトの名無しさん2005/12/03(土) 22:08:15
C#のイディオム集。みたいなのどこかにありませんか?
0655デフォルトの名無しさん2005/12/03(土) 22:26:02
MSDN
06565952005/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 プロパティでうまくいきました。
0657デフォルトの名無しさん2005/12/04(日) 02:20:27
なんでICollectionにToArrayがないんじゃ。
0658デフォルトの名無しさん2005/12/04(日) 03:24:40
>>657
string[] strs = (string[])new ArrayList(collection).ToArray(typeof(string[]));
0659デフォルトの名無しさん2005/12/04(日) 03:26:31
typeof(string)な。

ていうか素直にCopyToしとけ。
0660デフォルトの名無しさん2005/12/04(日) 10:35:16
ここは extension method の出番だな
0661デフォルトの名無しさん2005/12/04(日) 11:04:34
複数のスレッドから同じ変数を読み込む場合は、それぞれ別の変数を
読み込むより効率が悪いのでしょうか?
0662デフォルトの名無しさん2005/12/04(日) 11:25:41
volatile をつければ効率は落ちるだろうが
効率よりも確実な同期を気にすべきだろ
0663デフォルトの名無しさん2005/12/04(日) 11:31:30
yieldをつかったイテレータ実装動いてるんだがなんとなくしっくり来ない・・・
0664デフォルトの名無しさん2005/12/04(日) 11:36:29
RebarDotNet.dllというのを使ってツールバーを作ろうと思うのですが、
Bandにボタンとかコンボボックスとかを複数設置するには
どうしたら出来るでしょうか?
0665デフォルトの名無しさん2005/12/04(日) 11:36:59
コンパイルした奴を逆コンパイルして見れ
0666デフォルトの名無しさん2005/12/04(日) 11:37:29
665 -> 663
0667ToolStrip推奨委員会2005/12/04(日) 11:54:59
>>664
ToolStripでいいじゃん
0668デフォルトの名無しさん2005/12/04(日) 11:57:20
>>662
ありがとうございます。勉強になりました。
0669ToolStrip推奨委員会2005/12/04(日) 12:00:55
>>664
つーかPanelおいてその上に配置したら?
0670デフォルトの名無しさん2005/12/04(日) 14:03:30
Typeで型情報を管理してるのよく見るけど
毎回GetType()で済ませたら何かまずいの?
0671デフォルトの名無しさん2005/12/04(日) 14:06:17
意味がわからん
0672デフォルトの名無しさん2005/12/04(日) 14:22:04
勉強がたらん
0673デフォルトの名無しさん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);
例が蛸なのはおいといてください・・・
0674デフォルトの名無しさん2005/12/04(日) 14:37:00
Typeを使うってことは普通、動的にしか型が分からないってこと。
キャストってのは静的に型が分かってないとできないこと。
例えばその例なら
> Bird tmpBird=birdType.Cast(dog);
で結局Birdにキャストするんだから、(Bird)docと書いても変わらないわけで。

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

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

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

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

System.Web;

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

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

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

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

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

>>718
maxConnectionとApp.configあたりでぐぐったら?
0721デフォルトの名無しさん2005/12/06(火) 12:12:25
718じゃないけど
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpgenref/html/gngrfaddelementforconnectionmanagement.asp
か?
なんでこんな制限かけてるんだろう?
0722デフォルトの名無しさん2005/12/06(火) 12:21:06
サーバの負荷とか考えたことあるのか
0723デフォルトの名無しさん2005/12/06(火) 12:58:09
719 名前: デフォルトの名無しさん [sage] 投稿日: 2005/12/06(火) 09:36:03
>718
コネクション数の制限ってhttpの仕様。

722 名前: デフォルトの名無しさん [sage] 投稿日: 2005/12/06(火) 12:21:06
サーバの負荷とか考えたことあるのか
0724デフォルトの名無しさん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 を使って接続を使いまわすため。
0725デフォルトの名無しさん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());
}

0726デフォルトの名無しさん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 接続より多く維持すべきではない。

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

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

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

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

今さがしたHP参考にmanagementObject使ってみてもいるんですが、これはこれで取れてる情報の値の意味がよくわからんです・・・UserModeTimeがユーザーモードの値なんだろうけど、どの期間のどんな値なのか・・・orz
参考URL
http://www.technewsgroups.net/group/microsoft.public.dotnet.general/topic9.aspx
0740デフォルトの名無しさん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'
が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってくだ
さい。

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

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

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

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

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

これが一番簡単な形なんですね! やっと一歩踏み出せました。
>>744ありがとうございます
0747デフォルトの名無しさん2005/12/06(火) 20:37:50
>>745samも
0748デフォルトの名無しさん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くらいか。
07497252005/12/06(火) 22:48:46
>>748
まじっすか・・・orz
3G相当アスロンなのに・・・
0750デフォルトの名無しさん2005/12/06(火) 23:31:33
ある文字列が適切な正規表現であるか判別するには
コンストラクタでArgumentExceptionをキャッチするしかないんですか?
IsValidみたいなのないの?
0751デフォルトの名無しさん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 でエラーがでます。
なにか問題でも?
0752デフォルトの名無しさん2005/12/06(火) 23:58:45
keyはushortなんだろ?
Valuesか、Keysいらないんじゃないの?
0753デフォルトの名無しさん2005/12/07(水) 00:02:43
>>752
レス多謝です。
気づきました。ありがとう
0754デフォルトの名無しさん2005/12/07(水) 00:14:43
VC#2005βをダウンロードして使ってるんだけど、
保存したり、プロパティ変更したりすると、PCが
勝手に再起動するんですが・・・
どうもPCと相性が悪い
0755デフォルトの名無しさん2005/12/07(水) 00:16:27
うちもファイルIOが発生する処理?
ビルド・リビルドとかするといきなり再起動する場合が・・
0756デフォルトの名無しさん2005/12/07(水) 04:43:54
>>754
それってまずハードを疑うなぁ。電源容量足りてる&安定してる?
0757デフォルトの名無しさん2005/12/07(水) 09:27:07
dotfuscator
なんて読むの?
ドットファスケータ???
0758デフォルトの名無しさん2005/12/07(水) 10:35:34
>>757
元の単語 obfuscator がオブファスケータ(難読化する。先頭にアクセント。)で、
それと同じ感じでドットファルケータでいいと思う。
0759デフォルトの名無しさん2005/12/07(水) 22:35:19
>>680で質問させてもらった者ですが、もう一度質問させてください。

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

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

AcceptChangesでXmlファイルが変更されるようにできないですか?
0770デフォルトの名無しさん2005/12/08(木) 11:09:00
C#のプロジェクトファイルから、Class図を生成する
VS.NETの機能か、それに順ずるソフト教えてください。
0771デフォルトの名無しさん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にもダイアグラム作成機能が付いてたな……。
0772デフォルトの名無しさん2005/12/08(木) 14:24:41
>>768
formのIcon= null;にすればいいじゃん
0773デフォルトの名無しさん2005/12/08(木) 14:25:48
デフォルトでnullだぜ
デフォルトアイコンが表示されるがな
0774デフォルトの名無しさん2005/12/08(木) 15:23:55
>>771
ありがとうございます。
ひととおり見てみます。
0775デフォルトの名無しさん2005/12/08(木) 19:07:17
プロパティのsetに、ArgumentExceptionやその派生例外を投げるコードを書くのって変?
0776デフォルトの名無しさん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接続に関して、参考になるページがご存知でしたら
そちらも合わせて宜しくお願い致します。
0777デフォルトの名無しさん2005/12/08(木) 19:11:45
>>775
確かにちょっと気持ち悪さもあるが、妥当だろう。
むしろそのためのプロパティ。
0778デフォルトの名無しさん2005/12/08(木) 19:23:19
C#で書かれたテキストエディタコンポーネントがあれば教えて下さい。

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

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

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

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

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

・キャレットはC#というか.Net自身では処理できない。WIN32APIを呼ぶしかない。
ここでもはまってました。(^^;
0789デフォルトの名無しさん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を試しに入れてみたいのですが、
それでも上記のエラーが出てしまいます。考える原因として何が考えられますでしょうか?
(ローカル環境でしか使えないのでしょうか…)

宜しくお願い致します。
0790デフォルトの名無しさん2005/12/09(金) 00:23:45
KeyDownイベントで初めて押された時のみを捕獲するにはどうすればいいですか?
WM_KEYDOWNであれば lParam を見ればリピートカウントがわかったんですが、
KeyEventArgsにはそのようなプロパティはないようです。
0791デフォルトの名無しさん2005/12/09(金) 00:43:37
OpenFileDialogのHookProcに手を全く入れられないのをどうにか
なりませんかね。
0792デフォルトの名無しさん2005/12/09(金) 00:44:00
KeyDownじゃ判断できない。
ProcessCmdKeyとかWndProcとかでWM_KEYDOWN捕まえるしかないね。
0793デフォルトの名無しさん2005/12/09(金) 00:59:00
どうにもならない
0794デフォルトの名無しさん2005/12/09(金) 01:21:02
>>778
インテリセンスやキーワードハイライトは自分で実装するんなら
TextBox拡張するだけじゃないのか?
0795デフォルトの名無しさん2005/12/09(金) 01:40:38
TextBoxじゃ強調表示できないだろ。
0796デフォルトの名無しさん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++の知識もいるでしょうから、今のところは遊び以上では手が出ないというところです。
0797デフォルトの名無しさん2005/12/09(金) 01:47:47
3行に要約しろよ
0798デフォルトの名無しさん2005/12/09(金) 01:49:28
わかりました。では…
あなたのC#に対するスタンスを教えて下さい。
例)Javaから移行・C++と併用…
0799デフォルトの名無しさん2005/12/09(金) 01:50:49
友達に相談したらC#を奨められたので、初めてのプログラミングはC#だ
まあHTMLでJavaScriptを弄ってたんで全くの初めてって訳ではないが
0800デフォルトの名無しさん2005/12/09(金) 02:15:15
>>798
用途:趣味
状態:C++と併用
理由:Windows特有の内容はC♯の方がやりやすいことが色々と多いから。
    C++/CLIがそれなりになったらまた考える。
08017782005/12/09(金) 02:23:17
>>794
あーなるほど…。要件をもう少しきちんと書くと、

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

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

TextBox の拡張でなんとかできるもんなんでしょうか?
0802デフォルトの名無しさん2005/12/09(金) 02:25:13
TextboxbaseでOnPaintで強調表示でどうにかならんの?
08037902005/12/09(金) 02:38:07
>>792
そうなんですか。必要のない情報ではないと思うんですけどねえ・・・orz
どうもありがとうございました。
0804デフォルトの名無しさん2005/12/09(金) 03:49:08
C#ではキーボードの(ローな)I/Oイベントは拾えないんだね。
Win32使わないとコンソールのスクラッチはできなさそうだ。
無理しても、IMEの動きが捕まえられないんじゃないかな。
0805デフォルトの名無しさん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
0806デフォルトの名無しさん2005/12/09(金) 13:13:13
恥だったらなんとかしろよ。
0807デフォルトの名無しさん2005/12/09(金) 13:35:48
>>801
今sourceforge探してみたがなくなってた・・・
MinaEditorって言う奴だったんだが、
Googleにキャッシュだけ残っててWikiは死んでた。
0808デフォルトの名無しさん2005/12/09(金) 15:14:33
初めてカキコします。無作法な点はお許し下さい。
本題ですがピクチャーボックスオブジェクト内にテキストを描画したいのです。
具体的に言いますと、グリッドを引いたピクチャーボックスオブジェクト内に
数字を1,2,3,4・・・31と1ヶ月分の数字をグリッド内に描画させ
たいのですが、どなたかご教示願います。
当方はJavaはかじった事があるのですがC#は初めてなもので、勝手が分からん
のです。
0809デフォルトの名無しさん2005/12/09(金) 16:07:14
まずはCreateGraphicsでググるんだ。
0810デフォルトの名無しさん2005/12/09(金) 17:09:06
>>808
何がやりたいのかよくわからんけど、
カレンダーの独自コントロールを作りたいならPanelあたりのクラスを拡張した方がいいんじゃないか?
0811デフォルトの名無しさん2005/12/09(金) 20:06:12
>>801
あ、SharpDevelopでも1.xは日本語で強調表示するとバグでキャレットが
ズレるから気を付けてね。パッチを出している有志がいらっしゃるけど。
0812デフォルトの名無しさん2005/12/09(金) 20:21:52
Scintillaはどう? http://www.scintilla.org/
.netにもポーティングされてた気がする。
0813デフォルトの名無しさん2005/12/09(金) 22:10:42
C# のプログラムから Java のプラグラムを起動するにはどうしたら良いですか?
Process.Start() を使えば良いのでしょうか?
良い場合はどのように使えばよいのでしょうか?
できれば javaw の方で起動したいのですが・・・
0814デフォルトの名無しさん2005/12/09(金) 22:20:56
javaw のプロセスを開始させるのに Process.Start 以外の何を使えというんだ。
0815デフォルトの名無しさん2005/12/09(金) 23:04:28
ListViewコントロールに文字列全体が表示されるように列の幅を調節してくれる機能はありますか?
0816デフォルトの名無しさん2005/12/09(金) 23:37:31
Process.Start(@"C:\Java\jdk1.5.0_05\bin\javaw.exe", @"クラスファイルのパス");

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

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

です。
ありがとうございました。
0822デフォルトの名無しさん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を使用しています。
0823デフォルトの名無しさん2005/12/10(土) 00:47:16
オーバライドってなんですか?
0824デフォルトの名無しさん2005/12/10(土) 00:51:09
それはさすがにググろうよ
0825デフォルトの名無しさん2005/12/10(土) 00:51:55
>>823
とりあえずどうぞ
ttp://2next.net/swf/R3_temp.swf?inputStr=%83I%81%5B%83o%83%89%83C%83h%82%C1%82%C4%82%C8%82%F1%82%C5%82%B7%82%A9%81H
0826デフォルトの名無しさん2005/12/10(土) 01:00:34
SystemInformation.Networkで自分で見に行くことはできるのですが
Networkが使用不可能になったというイベントって取得できますか?
0827デフォルトの名無しさん2005/12/10(土) 01:13:17
ダブルバッファーでちょっとスクロールしたいんだが。サイズ100,100のウィンドウで5だけ下にスクロールすると思いねぇ。
ダブルバッファー用のbmp(1), その更にバッファー(2),Form(3)とあるとして、
1からずらして2に転送2から3,1に転送して計3回ビットマップ転送してるんですが、おそす。
もちっとナイスな方法内でしょうか・・・
0828デフォルトの名無しさん2005/12/10(土) 01:19:34
ダブルバッファOnなパネルに描画してずらす
0829デフォルトの名無しさん2005/12/10(土) 01:21:12
うっぁ。俺今までSDK使ってなかった…
0830デフォルトの名無しさん2005/12/10(土) 01:25:33
>>828
ダブルなバッファーにはどこから描画するの?パネルから?
0831デフォルトの名無しさん2005/12/10(土) 02:01:13
ダブルバッファって、一方を転送しつつ、他方を描画するから高速なんでねーの?
0832デフォルトの名無しさん2005/12/10(土) 02:19:30
パネルから
パネルを継承してOnPaint
コンストラクタではDoubleBuffered = true;@2.0
08337782005/12/10(土) 02:31:21
>>784,807
プロジェクト名�dクス〜〜、もう消えてたんですね。(;;
道は遠いけど、自作進めてます。
IMEもUndo/Redoもまだ無理ですけど、ASCII文字ならとりあえずエディタとして
最低限動くようになりまちた。

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

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

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


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

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

だれかご教示お願いします
0837デフォルトの名無しさん2005/12/10(土) 11:08:47
メニューアイテムをクローンする
0838デフォルトの名無しさん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)
{

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

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

}
0840デフォルトの名無しさん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;
}


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

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

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

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

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

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

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

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

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

[お気に入り] の Popup イベントを捕獲して、そこで子アイテムの中から [dummy_item] を探し出し、
[dummy_item] を削除してからその位置にお気に入りのアイテムを追加していくという感じです。
ところがこれではご指摘のように [dummy_item] を削除する必要があるので、
2度目以降うまく動作しません。
0864デフォルトの名無しさん2005/12/11(日) 06:46:06
>>863
なんでダミーがいるのかさっぱりわからんのだが。
セパレータ探してその後ろを毎回入れ替えたらすむんじゃないの?
つか、固定の部分もあわせて作り直したらいい気がする。
0865デフォルトの名無しさん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]
0866デフォルトの名無しさん2005/12/11(日) 12:52:56
分解能の限界。
高性能にやるならWin32APIのQueryPerformanceCounter使う。
0867デフォルトの名無しさん2005/12/11(日) 15:36:20
ここって、webアプリ作ってる人間少ないのね
0868デフォルトの名無しさん2005/12/11(日) 15:54:57
>>864
なるべく柔軟な作りにしたいと思ってるので、例えば
[お気に入り]
   [お気に入りに追加...]
   [-]
   [お気に入りをすべて削除]
   [-]
   [以下をすべてタブで開く]
   [dummy_item]
のような構造に対応するために、ダミーは必要です。
しかしどちらにしろ入れ替えは必要なので、根本的な問題ではないです。

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

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

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

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

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

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

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

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

単に疎でない二次元の連想配列が使いたいだけなら、
ハッシュのハッシュの方が良いと思うけど。
0883デフォルトの名無しさん2005/12/11(日) 21:18:04
ハッシュのハッシュのほうが文字列以外にも対応できるしよさそうですね。
感謝です。
0884デフォルトの名無しさん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化もできず。もっとエレガントな方法ないでしょうか?
0885デフォルトの名無しさん2005/12/11(日) 21:28:55
なんか知らんが誤変換してる・・・orz
一行目:ディショナリのディクショナリとかディクショナリのリストとかよく作るんだが
0886デフォルトの名無しさん2005/12/11(日) 21:34:02
どんな誤変換だそれは。
0887デフォルトの名無しさん2005/12/11(日) 21:47:19
>>844
キー⇒リストっていうコレクションなら、
C++でいうところのMultiMap で代用できないだろうか。
C# でどう MultiMap を実装するかはまた別の話として。
0888デフォルトの名無しさん2005/12/11(日) 21:51:17
MultiMapないんで
C#では
Dictionary<object, ICollection>使ってればいいんじゃないの?
0889デフォルトの名無しさん2005/12/11(日) 22:41:41
>>870
Webアプリ作ろうとするとIIS使わざるを得ないからなぁ
ライセンスやら何やらで意外に敷居が高いと思う
個人的にはmono+apacheに期待してるけど、こっちは技術面で敷居が高い・・・
0890デフォルトの名無しさん2005/12/11(日) 22:46:10
>>879
C#使おうがC++使おうがAPIだけでやるなら、どっちにしても後悔しそうな悪寒
おとなしくDirectX使った方が幸せになれるはず
0891デフォルトの名無しさん2005/12/11(日) 22:53:13
すくなくともC#がC++より有利ではないことに疑問を挟む余地はない
0892デフォルトの名無しさん2005/12/11(日) 23:11:23
つ 生産性
0893デフォルトの名無しさん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が投げられます。
08948932005/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になってしまうんでしょうか?
0895デフォルトの名無しさん2005/12/11(日) 23:32:19
とりあえず、

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

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

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

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

呼び出す前にもメモリ上に何かがロードされて、
それで状況が変わるんじゃない?
09058932005/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
0906デフォルトの名無しさん2005/12/12(月) 00:45:24
800Mとか、巨大データなら分割してチビチビ計算させるのが普通ではないの?

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

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

他のどんな例外がどんなExceptionにマッピングされてるのかは知りません。
どこかに資料あるのかな。
0909デフォルトの名無しさん2005/12/12(月) 04:39:39
>>880
class Pair<T1,T2> {
 T1 a;
 T2 b;
 public override GetHashCode() {
  return a.GetHashCode() ^ b.GetHashCode();
 }
}
0910デフォルトの名無しさん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;
0911デフォルトの名無しさん2005/12/12(月) 07:40:32
InvalidateしたらUpdateする必要ないんじゃ?
0912デフォルトの名無しさん2005/12/12(月) 14:09:53
>>911
Control.Refresh()
0913デフォルトの名無しさん2005/12/12(月) 14:54:03
タスクマネージャーとかで、プロセスを終了させられた時に、
終了させられた事を受け取る事ってできますか?
ちなみに、通知をうけとりたいのは、コンソールアプリです。
0914デフォルトの名無しさん2005/12/12(月) 15:17:35
コンソールアプリならTerminateProcess呼ぶだけだろうから無理じゃないかな
09159132005/12/12(月) 15:35:54
>>914
むむむ、、、そうなんですか。。。
となると、見えないウィンドウとかつくって、処理しないとだめなんですかねぇ。。。;;
0916デフォルトの名無しさん2005/12/12(月) 15:58:39
System.Threading 辺りにあるのを使えばできるかも
09179102005/12/12(月) 17:58:30
>>911
ちらついてだめでした。
>>912
それは全体を描画するので倍以上負荷がかかってしまいました。

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

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

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

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

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

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

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

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

CreateToolhelp32Snapshotで試してみます!
0948デフォルトの名無しさん2005/12/13(火) 16:21:57
InputStreamから文字列をMemoryStreamに読み込むときに
定石みたいなものはありますか?
良いサンプルとかが見つけられなくて・・
0949デフォルトの名無しさん2005/12/13(火) 16:40:42
>>948
定石と言われても。MemoryStreamじゃなくてFileStreamかもしれないし。
byte[]を確保してRead/WriteをReadの返り値が0以上の間繰り返すだけだし。
バッファサイズはネットワークでは4KB-8KB辺りが経験的に一番いいぞ。
0950デフォルトの名無しさん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()を使うよう書いてあるけど
それで副作用ないかどうかこれから調べます。
何かその辺りのことご存知でしたら教えてください。
0951デフォルトの名無しさん2005/12/13(火) 17:30:55
というか元々MemoryStreamをbyte[]にするにはToArrayを使うべきなんだが。
別に副作用ないし。
0952デフォルトの名無しさん2005/12/13(火) 22:10:51
静的コンストラクタの存在意義は何ですか?
class Hoge {
  public static int test1 = 1;
  public static int test2 = 1;
      :
      :
とやっていくのと、どこか違ったり便利であったりする部分はありますでしょうか?
0953デフォルトの名無しさん2005/12/13(火) 22:20:58
>>952
時々あるのよ。メンバの初期化以外の動作を行わせたいことが。
0954デフォルトの名無しさん2005/12/13(火) 22:27:58
C#の存在意義は何ですか?
0955デフォルトの名無しさん2005/12/13(火) 22:29:40
>>952
初期化に if文使ったり、switch文使ったりできる。
0956デフォルトの名無しさん2005/12/13(火) 22:32:02
Unix系のOSにはsendfile関数があるんだけど、Win31APIには似たようなの無いのかねえ
0957デフォルトの名無しさん2005/12/13(火) 22:32:32
static readonly のフィールドに.App.configの値を入れたりとか。
0958デフォルトの名無しさん2005/12/13(火) 22:33:04
>>956
そもそもWin31APIがない。
0959デフォルトの名無しさん2005/12/13(火) 22:33:06
>>956
TransmitFileのことか?C#にはあったっけ・・・?
0960デフォルトの名無しさん2005/12/13(火) 23:41:12
あとの1はどこに落としてきた?
0961デフォルトの名無しさん2005/12/14(水) 00:06:45
>>953,955,957
納得! ありがとうございました。
0962デフォルトの名無しさん2005/12/14(水) 00:42:30
C++で
int i;
int& I = i;

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

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

0992デフォルトの名無しさん2005/12/14(水) 23:39:39
面白そうだからクレ。
0993デフォルトの名無しさん2005/12/15(木) 00:26:37
ほしぃ
0994デフォルトの名無しさん2005/12/15(木) 00:26:52
いらね
0995デフォルトの名無しさん2005/12/15(木) 00:47:16
(゚�听)ヤラネ
0996デフォルトの名無しさん2005/12/15(木) 01:27:22
ほすぃ
0997デフォルトの名無しさん2005/12/15(木) 01:29:30
(゚�听)イラネ
0998デフォルトの名無しさん2005/12/15(木) 01:32:14
>>995
ちょっと待てw
0999デフォルトの名無しさん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
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。