[プログラム板] C#, C♯, C#相談室 Part47

このエントリーをはてなブックマークに追加
1名無しぃ♯
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part46
http://pc11.2ch.net/test/read.cgi/tech/1208791919/

その他テンプレ>>2-5くらい
2名無しぃ♯:2008/06/21(土) 17:52:16
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

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

MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx

pinvoke.net: the interop wiki!
http://pinvoke.net/
3名無しぃ♯:2008/06/21(土) 17:53:07
@IT Insider.NET
ttp://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
ttp://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
ttp://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
ttp://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
ttp://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
ttp://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
ttp://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
ttp://dobon.net/vb/dotnet/
4デフォルトの名無しさん:2008/06/21(土) 17:54:26
立てた……んだが致命的にスレタイトル間違った……orz
スマンかった 次のスレはちゃんと頭のゴミ消しといてくれ
5デフォルトの名無しさん:2008/06/21(土) 17:59:55
これはwwそれはともかく>>1
6デフォルトの名無しさん:2008/06/21(土) 18:33:49
>>1 おつ、マ板になってないからぜんぜんOK!
7デフォルトの名無しさん:2008/06/21(土) 18:44:15
スレタイがうんこ…
8デフォルトの名無しさん:2008/06/21(土) 20:28:04
>>4
これくらい致命的じゃ無いな
次立てる事があれば気をつけてくれ

9デフォルトの名無しさん:2008/06/22(日) 00:13:20
スレタイだけでどの板に立ってるか分かるぜ
10デフォルトの名無しさん:2008/06/22(日) 00:19:04
1000なら次はこれになる
[プログラマー板] C#, C♯, C#相談室 Part48
11デフォルトの名無しさん:2008/06/22(日) 07:31:06
スレタイ噴いたww
笑いをくれた>>1乙www
12デフォルトの名無しさん:2008/06/22(日) 12:39:41
VS C#でデバッグ終了時に20秒ほど待たされるのはなぜ?対処方法ありませんか?
13デフォルトの名無しさん:2008/06/22(日) 12:43:13
気になるほど待たされたことは無い。
PCのスペックの問題か、プログラムの内容の問題と思われ。
14デフォルトの名無しさん:2008/06/22(日) 12:55:15
スタートページを開いているとデバッグ終了時に待たされるかな
15デフォルトの名無しさん:2008/06/22(日) 13:01:38
>>14
それだ!まさにそれだった。天ぷら物だ
16デフォルトの名無しさん:2008/06/22(日) 13:27:08
参考になった
17デフォルトの名無しさん:2008/06/22(日) 22:29:30
RichTextBoxではなくTextBoxで
特定の文字に色もしくは特定の文字に背景色を設定することは
不可能ですか?
不可能な場合、自作コントロールだと思うのですが、
どのように作っていくのが良いですか?
18デフォルトの名無しさん:2008/06/22(日) 23:16:43
なんでそんなにRichTextBoxがいやなんだよw
19デフォルトの名無しさん:2008/06/22(日) 23:33:25
はい。あの独特のスクロールが嫌なんです。
TextBoxだとホイールとかなり同期して動いてくれますが、
RichTextBoxのあの遅いスクロールが今回のモノによろしくなくて。。。

TextBoxばりのスクロールにする方法があれば、解決です。
20デフォルトの名無しさん:2008/06/23(月) 01:47:31
いいとこどりすればいい
21デフォルトの名無しさん:2008/06/24(火) 00:28:08
いいとこどりとは?
22デフォルトの名無しさん:2008/06/24(火) 21:16:23
立地にしてスクロールだけなんとかすりゃいい
23デフォルトの名無しさん:2008/06/24(火) 22:47:16
http://nijibox.ohflip.com/futabafiles/001/src/sa26951.txt
3a-2b+ -1d= 7
2b+2c+ d= 5
a-2b-3c-2d=-1
b+2c+ d= 6
という行列を解くプログラムを作りたいのですがエラーが出てうまくいきません
どなたか間違えの指摘などをお願いできないでしょうか?
解き方はピポット選択で前進消去法です、お願いします。
24デフォルトの名無しさん:2008/06/24(火) 22:53:03
Cはスレ違い
2523:2008/06/24(火) 22:53:54
・・・(汗
指摘ありですノシ
26デフォルトの名無しさん:2008/06/26(木) 09:58:48
すごくマニアックなDBMSを使ってるんだけど、ODBCとADO用のプロバイダしか用意してない。
これをOLEでつなぐことってできるの?ちなみにODBC-OLEブリッジは、使えなかった(例外が出る)。
27デフォルトの名無しさん:2008/06/26(木) 12:01:01
.NET + DirectXという構成を64bit環境で使いたいのですが、Managed DirectXは
32bitしか対応していないとのことで困っています。

下のサイトで対応方法のヒントらしき情報は見つけたのですが、
すでに出来上がってるラッパーライブラリ等はないでしょうか?
http://d.hatena.ne.jp/NyaRuRu/20061130/p1
28デフォルトの名無しさん:2008/06/26(木) 12:17:53
SlimDXを64bit用に再コンパイルしたらって意見が海外の掲示板にあるな
29デフォルトの名無しさん:2008/06/26(木) 15:12:42
C#から動的にCOMのVTable Orderを取得する方法を御教授ください。

IUnknownを例とすると、下記のように表示するプログラムを作りたい
のですが、まったく方法がわかりません。

QueryInterface 0
AddRef 1
  ・
  ・
30デフォルトの名無しさん:2008/06/26(木) 18:20:47
typelibがあるならそれから引っ張り出すしかない。

interface IWksImagingServer : IDispatch {
  [id(0x00000001), propget, helpstring("property ImagingServicesInterface")]
  HRESULT ImagingServicesInterface([out, retval] unsigned long* pVal);

もしid(0x00000001)のことだったら、それはDispach IDだから動的に取れる。
IDispachを実装してないI/Fには当然そんなものはない。
31デフォルトの名無しさん:2008/06/27(金) 13:15:03
C#でNクィーンを作る方法を教えてください。
ぐぐってもほとんどjavaやCばかりで・・・・
32デフォルトの名無しさん:2008/06/27(金) 13:15:26
応用しろ
33デフォルトの名無しさん:2008/06/27(金) 13:16:54
BOINCでもやれ
34デフォルトの名無しさん:2008/06/27(金) 15:57:29
いくら考えてもさっぱり分かりません。
どなたかNクィーンの勉強にいいサイトは知りませんでしょうか?
35デフォルトの名無しさん:2008/06/27(金) 16:00:56
どうしたいのかまるで伝わらないのでエスパーでも呼べ
36デフォルトの名無しさん:2008/06/27(金) 16:24:49
>>1
>Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/


このスレでは2008でなく2005推奨なの?
37デフォルトの名無しさん:2008/06/27(金) 16:42:06
>>34
まず、C#でNクイーンを解くプログラムを作りたいと => これはおk
で、現状の理解度について

・アルゴリズム(解法)を理解していない
  => スレ違いだから理解してから出直せ

・アルゴリズムを理解したうえで、C#での記述の仕方が分からない
  => 分からない箇所を具体的に書け

>>36
どれが推奨とかは多分ないはず
ただ、環境を明示しない質問は自動的に最新版(VS2008、.NET3.5、C#3.0)とみなされるが
38デフォルトの名無しさん:2008/06/27(金) 22:19:29
>>36
変更忘れてるだけでしょ
Express入れるんだったら特に理由がなければ迷わず2008
C#な人って新しもの好きが多いし
39デフォルトの名無しさん:2008/06/27(金) 22:26:40
リンク先はどうせ2008だしなー
40デフォルトの名無しさん:2008/06/27(金) 22:52:58
すっかりラムダ中毒で () => がないと生きていけない体に
41デフォルトの名無しさん:2008/06/27(金) 22:58:38
() => _| ̄|○
こうですか?わかりません(><)
42デフォルトの名無しさん:2008/06/27(金) 23:07:36
ラムダなぁ・・・
エディットコンティニューと中からのyieldさえあれば神だったんだが。
43デフォルトの名無しさん:2008/06/28(土) 10:57:14
yieldは大量のコードを生成するから手軽に使われたくないんだろうな
44デフォルトの名無しさん:2008/06/28(土) 11:11:21
どこかの記事で中の人が
クロージャ内で yield 書けるようにしとけばよかったって言ってた気が。
45デフォルトの名無しさん:2008/06/28(土) 11:48:49
今からでも変えてくれ
46デフォルトの名無しさん:2008/06/28(土) 12:12:05
まだ C# 4.0 はプレビュー版すら出てないからなぁ。
今までの感じから言って、プレビュー版が出てからですら
正式版まで1・2年かかるから、
今、「次で対応します」と言っても、だいぶ先の話になる。
47デフォルトの名無しさん:2008/06/28(土) 12:35:44
そこでC#3.5ですよっと

C#4.0はどんなのになるんだろ
48デフォルトの名無しさん:2008/06/29(日) 07:55:50
そこでF#ですよ
49デフォルトの名無しさん:2008/06/30(月) 00:24:59
C#の次期バージョンの情報はないんけ?
50デフォルトの名無しさん:2008/06/30(月) 01:04:10
>>49
C# "Future Focus" でググると多少出てくる。

まだMS社員が「こんなアイディア持ってるよ」ってレベルで、
仕様と呼べる段階じゃないけど。
51デフォルトの名無しさん:2008/06/30(月) 08:36:11
言語の仕様をコロコロかえんでください
それより便利なライブラリ提供してくれたほうがうれしいです
52デフォルトの名無しさん:2008/06/30(月) 09:23:37
obsoleteになった仕様って無いんだし変えたわけではないと思うが
53デフォルトの名無しさん:2008/06/30(月) 10:56:32
C#は言語仕様を変えたことはないよね
54デフォルトの名無しさん:2008/06/30(月) 12:17:06
便利なライブラリってどんなの?
四次元ポケットとか?
55デフォルトの名無しさん:2008/06/30(月) 21:34:50
匿名型を入れるコレクションを作ろうと思うと
ダミーの匿名型のオブジェクトをジェネリックメソッドの引数に渡すとか
変態的なことしないといけないのは何とかしてほしい
56デフォルトの名無しさん:2008/06/30(月) 21:46:54
…? 無名型 Array か ToList でええやん
57デフォルトの名無しさん:2008/06/30(月) 21:53:34
>>51
.NET 3.0, 3.5 はライブラリ追加がメインじゃん。

なんか、「Windowsプログラミングの極意」に書いてあった話思い出すな。
「見た目ばかり変えてないで中身改善しろよ」という人に限って、
「電卓、代り映えしないよね」という。
実際には電卓の中身ものすごい変わってるのに。
58デフォルトの名無しさん:2008/06/30(月) 21:56:38
>>55
var list = Enumerable.Range(0, 0).Select(x => new { X = 0.0, Y = 0.0 }).ToList();

我ながら変態的w
59デフォルトの名無しさん:2008/06/30(月) 21:57:27
足したり引いたりが簡単にできるVectorクラスとか?
んあに含まれてるけど、これのためだけに使うのはどうかと思う

ところでxnaってどう読めばいいの?エクセナ?クセナ?んあ?クロスナ?エックス菜?ペケナ?ゼーナ?
60デフォルトの名無しさん:2008/06/30(月) 22:02:42
>>59
3.5 にあるよ、Vector クラス。
System.Windows.Vector と System.Windows.Media.Media3D.Vector3D。

XNA は普通にエックス・エヌ・エー。
61デフォルトの名無しさん:2008/06/30(月) 22:13:35
WPFは3.0だぜ
62デフォルトの名無しさん:2008/06/30(月) 22:17:56
XNA's Not Acronymed

>>59
というか Linq みたいなんは基本的に副作用、状態を途中で変えるの
嫌って書いたほうがよい。足したいなら .Concat(...) で結合。
63デフォルトの名無しさん:2008/06/30(月) 22:20:30
あごめん、足すって binary operator みたいなのか。
64デフォルトの名無しさん:2008/06/30(月) 22:54:37
どう考えても数学でいうベクトルのこと
65デフォルトの名無しさん:2008/07/01(火) 22:57:13
XmlSerializerでシリアライズするとき、
要素にNamespaceを設定すると

<element xmlns="namespace-test">
〜〜〜
</element>

ってなるけど

<test:element xmlns:test="namespace-test">
〜〜〜
</test:element>

ってできない?
6665:2008/07/01(火) 23:24:33
事故解決

シリアライズするクラスのメンバにXmlSerializerNamespaces入れたらできた
67デフォルトの名無しさん:2008/07/03(木) 17:36:23
質問です><
Microsoft.DirectX.AudioVideoPlayback.Videoでビデオを開放するにはどうしたらいいですか?
Openすると前のファイルを開いたまま開いちゃうしDispose()しても開放してくれないです><
68デフォルトの名無しさん:2008/07/04(金) 01:59:39
指定フォルダ中の Word Excell PowerPoint ファイルに
指定したパスワードを掛ける/外す処理を行うにはどうすればよいのでしょうか?

(C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?)
69デフォルトの名無しさん:2008/07/05(土) 03:27:02
ttp://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_04/csharp30_04_01.html
最近とみに無理やり感が強くなってる気がする…
70デフォルトの名無しさん:2008/07/05(土) 04:34:04
>>69
VBの場合見かけ上プロパティの参照が渡せるように書けるから話がややこしい
71デフォルトの名無しさん:2008/07/05(土) 07:37:09
>>68

開くときはdocuments.openでPasswordDocumentかWritePasswordDocument
あたりのパラメータに渡してやればいいと思うが。
保存時はdocument.passwordを設定して、document.saveでいけるんじゃね?

>C# や .NET で MS OFFICE ファイルを操作できると思っているのですが、無理でしょうか?
そもそもoffceのオブジェクトにc#からアクセスする方法がわからんというレベルなら、
MSDNで調べてくれ
72デフォルトの名無しさん:2008/07/05(土) 11:55:20
ManagementObjectCollectionのDispose呼ぶとコレクションの内容もDisposeされる?
列挙したそれぞれの要素もDisposeしなきゃだめ?
73デフォルトの名無しさん:2008/07/05(土) 15:00:53
>>69
どうせ書くなら具体的に書けよ。

どうせ自分の感覚に自身がないから誰かが賛同してくれるの待ってるんだろ?w
実に女々しいというか悲しい奴だなあんた。
74デフォルトの名無しさん:2008/07/05(土) 16:17:45
>>69
ネタがないんだろうな。
75デフォルトの名無しさん:2008/07/05(土) 16:23:16
なんで川俣の記事に何かいったらやたら突っかかる奴がでるの?
76デフォルトの名無しさん:2008/07/05(土) 16:25:11
そりゃ川俣の記事に何かいうやつが阿呆ばかりだからだろう。
77デフォルトの名無しさん:2008/07/05(土) 16:27:15
そうなの?
78デフォルトの名無しさん:2008/07/05(土) 16:29:55
getter setter渡すように書き換えるくらいなら変数ひとつ使えばいいのに…
79デフォルトの名無しさん:2008/07/05(土) 20:11:20
小ネタを大げさに記事にするのって川俣の昔からの芸風ですから。
80デフォルトの名無しさん:2008/07/05(土) 20:29:09
そういう奴はたまには技術書や教科書以外の本も読んでその偏向した感覚を
矯正した方がいいんじゃないの?w

別にああいう文体って結構ありがちだと思うぞ。
プログラミングとか工学系の本じゃ珍しいのは確かだが。

っていうかプログラミング系の日本人ライターにありがちなヲタ臭い文体の奴よりずっとましだと思うが。
「幸せになれる」だの意味なく文頭に#付けたりだの、ヲタ系のプログラマ以外一般に誰も使わない
表現や言い回しを好む奴ね。
81デフォルトの名無しさん:2008/07/05(土) 21:04:09
ありがちだけどみんなキモク感じるだけ。
まあ別にそういうもんだと思って読むだけだが。
82デフォルトの名無しさん:2008/07/05(土) 21:43:33
「幸せになれる」系と比べても、「マシ」だとは思えないけどな。
「人類の発展に貢献する」系に比べたら、マシには見えるけど。
83デフォルトの名無しさん:2008/07/05(土) 22:45:02
「みんなキモく」って何を根拠に?
こういう小ネタ面白いと思うけど。
「幸せになれる」って聞くとなんとなく幸せなんだけどw
人の文体がいちいち気になるものなの?
#はメリハリついて分かり易いと思うんだけど。
8468:2008/07/06(日) 00:24:24
>>71

やってみます。ありがとう!
85デフォルトの名無しさん:2008/07/06(日) 20:31:48
C++のDLL(非COM)の関数(WINAPI型)から、
C#のWindowsアプリケーションに
C#からみてobject型の配列(2次元)を渡すとき、
何かいい方法はありませんか?

 現状は、C++側の関数のout引数に
*variant型を設定し、C#側からobject型と
してみせて取得しようと思っています。
・・・他にいい方法があれば教えて下さい。
お願いします。
86デフォルトの名無しさん:2008/07/06(日) 20:33:05
GCHandleまわせばいいだろ
87デフォルトの名無しさん:2008/07/06(日) 21:23:47
>>90
「幸せになれる」ってたとえば
「hogeをプロパティにしておけば幸せになれるかもしれない」って奴のことか?
むしろ、自分以外に使う人がいたのがびっくりだが、ヲタとか関係ないだろ?(そもそも自分はヲタじゃないしな)

#を付けるのは確かに一部の人間だろうね。
でも#でコメントアウトするスクリプトや設定ファイルは結構多いから、誰にでも通じるとは思うけどね。

88デフォルトの名無しさん:2008/07/06(日) 21:47:34
統合失調の人?
「自分以外に使う人がいたのがびっくりだが」ってw

「幸せになれる」だの「ごにょごにょする」だの、
ヲタ系プログラマ(ただし本人たちにその自覚は乏しい)しか使わない
独特の言い回しを使う奴っていっぱいいるでしょ。
89デフォルトの名無しさん:2008/07/06(日) 21:49:57
一時期はやったような気がするけど、最近はみないような気もする > 幸せになれる
90デフォルトの名無しさん:2008/07/06(日) 21:51:52
端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
正直消えてなくなてほしいよこういう連中は。
91デフォルトの名無しさん:2008/07/06(日) 21:58:26
PGって略がなんか気になるんだよな。
92デフォルトの名無しさん:2008/07/06(日) 21:58:34
川俣とかある種のオタの典型みたいなもんだしな。
93デフォルトの名無しさん:2008/07/06(日) 22:20:44
特定の職業の連中が変わった言葉遣いをすることなんて世の中いくらでもあるだろ。

土方には土方の方言があるし、医者は医者の言葉を使うだろ。
94デフォルトの名無しさん:2008/07/06(日) 22:29:13
だいじょうぶその読解力?
特定の職業(プログラマ)の言葉遣いを槍玉に挙げているのではない。
ヲタ系の気色の悪い連中の言葉遣いにケチをつけてるんだよ。
95デフォルトの名無しさん:2008/07/06(日) 22:34:12
オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってるから迷惑ってのはいいがかりもいいとこだろ。
メジャーなメディアで「幸せになります」とかいってるPGなんて見たことない。
96デフォルトの名無しさん:2008/07/06(日) 22:37:44
ちゃんと小学校でてるか?
どんな読解力だよ。

>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、
>正直消えてなくなてほしいよこういう連中は

どこにも
>オタPGの言葉遣いが、世間のPG像のステレオタイプになってるってる

などという趣旨のことは書いてない。
97デフォルトの名無しさん:2008/07/06(日) 22:39:20
じゃあ、あんたが個人的にキモがってるってだけの話か。
どうでもいい話だね。
98デフォルトの名無しさん:2008/07/06(日) 22:49:16
>>端的に気持ち悪いし、PGのマンガ的なステロタイプを作ってるのはこいつらなわけで、

世間じゃなかったら、だれに、漫画的なイメージを持たれて「消えてほしい」と思うくらい不愉快に思ってるんだろう。
99デフォルトの名無しさん:2008/07/07(月) 12:21:28
その実装の方が幸せになれる、って頻繁に使わないか?
100デフォルトの名無しさん:2008/07/07(月) 12:25:30
使わないね
101デフォルトの名無しさん:2008/07/07(月) 12:28:10
板違い
102デフォルトの名無しさん:2008/07/07(月) 13:22:48
そっか、俺よく使うわ
103デフォルトの名無しさん:2008/07/07(月) 20:06:34
すみません、質問です。

Visual C# 2005 Express Edition と Visual C# 2008 Express Edition にはどのような違いがあるのでしょうか。
現在のPCのOSが2000でありまして、VC# 2008をインストールすることができないと言われます。
もし両者にそれほどの差異がないのであれば2005を使おうかと思うわけなんですが。

http://codezine.jp/a/article/aid/2184.aspx?p=1

は目を通してみました。
C#のバージョンが3.0になっているようなんですが、

http://ufcpp.net/study/csharp/

のサイトで見る限り、初心者の私がすぐに不便さを感じるようなものでもない気はしました。
後日PCを新しくしたときにXPにする予定なので、その際にVC# 2008を入れたとしても、特に問題はなさそうでしょうか?
それとも、2008で増えた機能というのは初心者でも必須ないし、あった方がよさそうなものですかね。
104デフォルトの名無しさん:2008/07/07(月) 20:10:48
割と前に見たのだが、C#で回転するメニューが実装できるコンポーネントみたいなのがあったはずなのだが
名前が思い出せね 誰か教えてくれ
105デフォルトの名無しさん:2008/07/07(月) 20:13:50
初心者なら2005EEでも使いこなせない程十分な機能があるよ
106デフォルトの名無しさん:2008/07/07(月) 20:15:31
>>103
WPFやLinqが使いたいなら2008かな?あとラムダ式も使えるようになってる。
(ラムダ式ってのはデリゲートを簡単に書くための構文だな。記述法というだけだから必須ではない)


>>104
コントロールを回転・縮小・拡大したいならWPFで出来るよ。
107デフォルトの名無しさん:2008/07/07(月) 20:40:14
>>105-106

どもども、ありがとうございます。
PC買い換えまでは2005でやってみます。
108デフォルトの名無しさん:2008/07/07(月) 21:12:38
>>104
標準ではなくてフリーライブラリだけど、カルーセル?
109デフォルトの名無しさん:2008/07/07(月) 21:23:02
>>106
WPF使うってのもありか
>>108
いや横に回転するのではなくて円形に回転するやつ
http://www.forest.impress.co.jp/article/2004/09/30/sklaunch.html
みたいなのに近い
どこかの会社が無料で出してた気がするのだが
110デフォルトの名無しさん:2008/07/07(月) 21:44:40
前にスラッシュドットで取り上げられてた気がする
WPFでの実装だったと思うけど
111デフォルトの名無しさん:2008/07/07(月) 21:51:13
>>110
あったありがとう
http://slashdot.jp/developers/article.pl?sid=08/03/18/0948257&threshold=-1
これで安心して眠れる
112デフォルトの名無しさん:2008/07/07(月) 21:54:21
回転するメニューってものの操作性がピンとこないのは
俺の想像力が欠如してるせい?

っていうかうっとうしくないのかなそれw
113デフォルトの名無しさん:2008/07/07(月) 22:58:24
>>112
回転メニューの有用性はスターオーシャンと聖剣伝説で実証済み
テイルズシリーズでも採用されてたっけ?(テイルズはやらないので知らない)
114デフォルトの名無しさん:2008/07/07(月) 23:07:13
リングコマンドはスケーラビリティや情報量が低いため使える範囲はかなり狭い
115デフォルトの名無しさん:2008/07/07(月) 23:26:47
>>113
なんか視野狭窄というか、オレサマ=世界のいわゆる「セカイ系」の人?
君が思ってるほどゲームをやる人種ってのは多くないんだよ。
少なくとも俺はゲームなんてまったくやらない。
そんな一方的にそのスターなんたらを知ってる前提の話をされてもね。
116デフォルトの名無しさん:2008/07/07(月) 23:32:24
無知な上ググる事もできない奴が偉そうに言ったところで
117デフォルトの名無しさん:2008/07/07(月) 23:57:32
リボンとかドッキングとかってSP1で追加されるんだっけ?
いつでるんだっけ?
118デフォルトの名無しさん:2008/07/08(火) 00:07:04
しらないけど来るならWPFじゃね
119デフォルトの名無しさん:2008/07/08(火) 00:14:49
>>117
SP1 で追加されるのは MFC 版。

MFC Feature Pack っていうんだけど、英語版はすでに正式版が出てる。
日本語は VS 2008 SP1 に同梱。

WPF のリボンは年末くらいを目標に作ってるらしい。
ドッキングは不明。
120デフォルトの名無しさん:2008/07/08(火) 00:38:41
>>115
ググれば直ぐ見つかるような有名なゲームだし、最悪分かる人に分かれば良い内容です。
(さすがにSO2とか略したら二酸化硫黄と区別つかないけどなw)

そもそも、「俺の分かる話しかするな」って言われたら…
本「期待値とは物理で言うところの重心です。(期待値も重心も相加平均です)」
A「ああ、なるほど。」
B「物理なんて知るか。この本、腐ってやがる。出版社に文句言おう!」
…なんて事になるからそんな事言う人はいないよね?
121デフォルトの名無しさん:2008/07/08(火) 00:45:15
馬鹿はしょうがないな。
その物理学(学問の最高峰)とゲーム(たかだか「お前」が知ってるだけ)を
並列することになんの疑問も抱かないようなメンタルを「セカイ系」と呼ぶんだよ。
122デフォルトの名無しさん:2008/07/08(火) 00:50:38
↑マジ脳みそ腐ってんじゃね?
123デフォルトの名無しさん:2008/07/08(火) 00:56:08
そんなだからセカイ系とか言われるんだよ
124デフォルトの名無しさん:2008/07/08(火) 00:56:58
>>121
(  ゚д゚ )  セカイ系  の検索結果 約 456,000 件中 1 - 10 件目 (0.24 秒)
StarOcean の検索結果 約 3,360,000 件中 1 - 10 件目 (0.28 秒)  ( ゚д゚ )
( ゚ д ゚ )

さすがに物理で検索したら136,000,000越えるけど、君の言うセカイ系って何?スイーツ(笑)みたいなやつ?
125デフォルトの名無しさん:2008/07/08(火) 00:57:47
糞スレ
126デフォルトの名無しさん:2008/07/08(火) 01:01:27
釣りだろ
じゃなかったら馬鹿過ぎる
127113=120=124:2008/07/08(火) 01:07:22
sage忘れスマソ

で結局、RingMenuって便利なの?
RingMenuForOSは起動しないし、SDKは相変わらず登録が必要だし…だれか感想求む
128デフォルトの名無しさん:2008/07/08(火) 01:47:32
家庭用ゲーム機のような入力装置に制限のある場合は有効だろうけど、
PCではどうだか。
129デフォルトの名無しさん:2008/07/08(火) 03:43:50
というよりマウスではどうだかだけど、キーボードからなら割合ありな
気がする。使ってないけど聖剣あたりの記憶をたどってみると。

Alt(Win) + Tab みたいなかんじでくるくるみたいな。
130デフォルトの名無しさん:2008/07/08(火) 03:53:14
リングメニューは一番裏まで回すのが面倒くさすぎ。
ポインティングデバイスもアルファベットの刻印されたキーもない環境専用だろ。
131デフォルトの名無しさん:2008/07/08(火) 10:07:02
アイコンの方がダイヤルみたいに回るだけ?
例えば12時にカーソルがあって6時を選択したい時は左右キーでアイコンを回すって感じ?
カーソルの方が動くんだったら下キーで一発だけど。
132デフォルトの名無しさん:2008/07/08(火) 17:21:18
リングメニューってこれ?
ttp://www.ringmenu.jp/demonstration.aspx
133デフォルトの名無しさん:2008/07/08(火) 22:44:36
Compact frameworkで.net Remotingが使えないのですが、RPCをやる方法って他にないですかね?
とりあえず、XML-RPC.netが使えそうなんですが、他に何かいい案は、ないでしょうか。
134デフォルトの名無しさん:2008/07/08(火) 23:25:43
圧縮しなくてもいいので、ファイルをひとつにまとめたい時ってどうすればいいんでしょうか。

Jpegファイルを集めて、先頭に取り出すための情報を詰めて、後でまた戻すといったやり方がしたいんです。
135デフォルトの名無しさん:2008/07/08(火) 23:28:09
>>134
* tar
* 非圧縮zip
136デフォルトの名無しさん:2008/07/08(火) 23:46:34
そもそも書庫ファイルというのはだな、
137デフォルトの名無しさん:2008/07/09(水) 01:40:32
>>134
それをC#で書きたいのか?、ツール使いたいのかハッキリしろ。
もしツールなら、スレチだボケ!
138デフォルトの名無しさん:2008/07/09(水) 12:22:53
C#2008 Express WPFアプリケーション

UserControlから派生した独自コントロールを作ってます。
Disposeが必要なリソースを扱ってるため、Unloadedイベントで後始末を行ってるのですが
明示的に親要素から削除すれば呼ばれるのですが、ウィンドウを閉じた場合には呼ばれませんでした。
ウィンドウを閉じた時にコントロールに通知されるイベントはありませんか?
139デフォルトの名無しさん:2008/07/10(木) 13:00:36
VC#2005Expressを使って下記プログラムを作成しています。

・IMEに文字情報を与えて変換候補の一覧を取得

Imm32.dllをインポートする部分はわかったのですが

ImmGetCandidateList関数に渡す変換候補一覧を格納するバッファの構造体
の定義の仕方などがよくわかりません。

またImmGetCandidateList関数はいきなり使って大丈夫なのでしょうか?
ハンドルとかいろいろ渡すようなのですが・・・
140139:2008/07/10(木) 13:11:45
宿題のほうへいきます。
こちらは無しでお願いします。
141デフォルトの名無しさん:2008/07/10(木) 13:21:48
昔ターミナル作った時にやったな
142139:2008/07/10(木) 13:23:12
C#以前のサンプルは見かけるんですが、C#にどのようにもってくればいいのかわからずorz
143デフォルトの名無しさん:2008/07/10(木) 14:55:21
public class Hhoge<A,B> where A:new(){}
は当然いけるのだけど
public class Hhoge<A,B> where A:new(B){}
ができない(Aの型を、Bが引き数のコンストラクタを持つクラスだけにしたい)
こういう制限ってかけることできないのかな
144デフォルトの名無しさん:2008/07/10(木) 15:03:46
できない
145143:2008/07/10(木) 15:06:43
>>144
ありがとうございます
できない理由とか解説してるページって知りませんか?
146デフォルトの名無しさん:2008/07/10(木) 15:08:45
>>145
理由も何もコンストラクタ制約はnew()以外にないから
147デフォルトの名無しさん:2008/07/10(木) 22:45:42
URLに全角文字を指定する際によく使われる%xx%xx%xxといった形式に
変換する関数とかありますでしょうか?
148デフォルトの名無しさん:2008/07/10(木) 22:47:01
149147:2008/07/10(木) 23:00:21
>>148
ありがとうございます。
150デフォルトの名無しさん:2008/07/11(金) 02:03:35
label1.Textからlabel2と代入していく場合、
forループ内ではどうやって記述したらいいのでしょうか?

やっぱり事前に配列を作る等の下準備が無いと駄目ですか?
151デフォルトの名無しさん:2008/07/11(金) 03:27:51
あなたの望む仕様がわかりませんがエスパーで答えてみます。
何度も呼ぶ場合は配列を作った方がいいと思います。
foreach (Control c in this.Controls)
{
Label l = c as Label;
if (c == null) continue;
if (l.Name.StartsWith("label") & int.Parse(l.Name.Substring(5)) > 1)
l.Text = Label1.Text;
}
152デフォルトの名無しさん:2008/07/11(金) 03:32:28
上のはcのnullチェックしてもしょうがないな。
てかfor文で書くのか。
for (int i=2; i<=5; i++)
{
Label l = this.Controls.Find("label" + i.ToString(), false)[0] as Label;
l.Text = Label1.Text;
}
153デフォルトの名無しさん:2008/07/11(金) 09:35:33
>>143
コンストラクタでAを作るためのデリゲート(Func<B, A>とか)を受けたらいいんじゃね
154デフォルトの名無しさん:2008/07/11(金) 09:51:10
ASP.NET(C#) でWEBカスタムコントロールを作ろうとしています。

Tableクラスを継承して機能を上乗せして作ろうとしているのですが
カスタムコントロールタグの中にTableRowを入れその中にTableCellをタグで指定することができません。
なんとなくParsistsChild 辺りなのかなと思うのですがいかんせんMSDNの記述が読み取りにくくて・・・・

実現したいのは以下のような記述をデザイン時にタグで入力して
実行時にテーブルとして吐き出す事です。

<CustomTable id="hoge" runat="server">
 <TableRow>
  <TableCell>
   1行1列
  </TableCell>
 </TableRow>
< /CustomTable>

なにかサンプルとかサイトでも構いませんので情報いただけませんか?
よろしくお願いいたします。
155デフォルトの名無しさん:2008/07/11(金) 11:10:52
あぁぁーハングアップするぅーー
マルチスレッドうまく出来ないーヽ(`Д´)ノウワァァン
156デフォルトの名無しさん:2008/07/11(金) 11:12:21
>>155
つBackGroundControl
157デフォルトの名無しさん:2008/07/11(金) 11:15:45
>>155
デッドロック?
158デフォルトの名無しさん:2008/07/11(金) 11:16:29
BackGroundWorker?
159デフォルトの名無しさん:2008/07/11(金) 11:16:53
>>158
ですよね〜
160デフォルトの名無しさん:2008/07/11(金) 11:32:53
BackGroundWorker!
161デフォルトの名無しさん:2008/07/11(金) 11:46:19
BackgroundWorker!
162デフォルトの名無しさん:2008/07/11(金) 11:47:16
BackgroundFucker!
163デフォルトの名無しさん:2008/07/11(金) 11:49:13
BlackGroundWorker!
164デフォルトの名無しさん:2008/07/11(金) 14:04:13
背景労働者(T_T)
165デフォルトの名無しさん:2008/07/11(金) 15:20:43
最初にButtonClickイベントでRunWorkerAsync()をする。
次にDoWorkで通信待ちをしていて、通信を受け取ったらそのイベントでFormのプロパティ書換えを連続でしたいんだ。
それで、そこからButtonClickイベントでRunWorkerCompletedに移動したいんだ。

それでもって同じButtonClickイベント内でRunWorkerAsync()をしたいんだけど、どうしたらいいのかわからない・・・

buttonClick(){
 RunWorkerAsync();
}

DoWork(){
 通信メソッド();
}

ChangeValue(){//通信メソッドの受け取ったよevent
}

RunWorkerCompleted(){
}
166デフォルトの名無しさん:2008/07/11(金) 15:28:23
全体に何を言いたいのか何が分からないのか良く分からん
連続でってどういう連続? 移動って何? RunWorkeAsyncが二回出てきてるの?
167デフォルトの名無しさん:2008/07/11(金) 15:35:46
なんだ?

・ボタン押す
・通信データを受け取ることができたら非同期通信完了
・別のボタンで通信完了後の処理を行う

こういうことなんか・・・・?
168デフォルトの名無しさん:2008/07/11(金) 15:48:13
ProcessStartInfoでコンソールがチラッと開くんですが、
これは開いたままにできないんでしょうか。
169デフォルトの名無しさん:2008/07/11(金) 15:54:19
実行するプロセスはcmd.exeにして/kつきで実行すれば?
170デフォルトの名無しさん:2008/07/11(金) 16:11:15
VS2005で任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)の配列における最大値を求めたくて
こんな関数を作りました。

public double Max<T>(T[] src, int offset, int length)
{
double ret = double.MinValue;
int end = offset + length;
for(int i = offset ; i < end; i++)
{
double val = System.Convert.ToDouble(src[i]);
if(val > ret)
ret = val;
}
return ret;
}

で、かなり大きなfloat配列(要素数10万オーダー)をこの関数にかけたら、
この関数が実行される前後でこの関数を動かしているプロセスのLOHが数十MB単位で増殖してしまいます。(perfmonで確認)
forループが怪しそうなんですが、どこでLOHをつかまれるのか見当がつきません。

調べ方が甘いのかもしれませんが、お分かりの方いらっしゃいますか?
171デフォルトの名無しさん:2008/07/11(金) 16:11:44
ありがとうございます。
コンソールはでてるんですが、Argumentsが渡らないんですが、これはどうしたらいいんでしょう。
172デフォルトの名無しさん:2008/07/11(金) 16:16:03
>>170
何で必ずDoubleに変換を・・・・・

173デフォルトの名無しさん:2008/07/11(金) 16:17:05
>>172
関数を使う側でそういう要求があるということで…。
174デフォルトの名無しさん:2008/07/11(金) 16:18:40
>>166-167
ごめんね、よくわからんアマチュアでごめんね

1.ボタン押す
2.任意で終了させるまで同期通信でデータを受け取る
3.最初のボタンで通信完了の処理をして、新しい同期通信を始める

同期通信がいつ終わるかわからんので、
RunWorkerCompleted()を開始できないのです。
175デフォルトの名無しさん:2008/07/11(金) 16:20:27
>>165
別のスレッドでフォームを書き換えるの?それは無理
[STAThread]  <-
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
176デフォルトの名無しさん:2008/07/11(金) 16:21:05
>>170
LOHに何があるか、専用のデバッガやプロファイラで調べられなかったっけ?

CLRProfilerやsos.dllを使えばできそうな気がするよ。
177143:2008/07/11(金) 16:24:22
>>153
できたっ
ありがとうありがとう
178デフォルトの名無しさん:2008/07/11(金) 16:27:06
>>176
ちょっとそのあたりのツールを調べてみます。ありがとうございました。
179デフォルトの名無しさん:2008/07/11(金) 16:28:15
>>174
それって最初のボタンのクリックイベントの最初に
非同期通信中だったら非同期通信キャンセルなり終了させるような処理書けばいいのでは?
その完了を待って再度非同期通信を開始すればよいのでは
180デフォルトの名無しさん:2008/07/11(金) 16:30:31
>>175
>別のスレッドでフォームを書き換える
スレッドからフォームのプロパティを書き換えるのではなく、
同期通信のメソッドが通信を受けた時のイベントがあるんです。

そのイベントの中でフォームを弄るので、簡単に言えば、
ButtonClickイベントが起きたら通信メソッドをDispose()出来れば良いんです。

ですが、DoWork()内にButtonClickをどう通知したら良いのかわかりません。
181デフォルトの名無しさん:2008/07/11(金) 16:33:08
>>180
IsBusy
CancelAsync

こんな感じのメソッドとプロパティなかったか?wwww
182168:2008/07/11(金) 16:34:11
FileNameに"/c"パラメータとかつける方法ありませんか。
183デフォルトの名無しさん:2008/07/11(金) 16:40:19
>>179 >>181
ButtonClickイベントの中で
BackgroundWorker.IsBusyでスレッドの使用を確認して、
動いていたらCancelAsyncを呼び出せばRunWorkerCompletedイベントが発生する訳ですね。

よくわかりました、ありがとうございます
184デフォルトの名無しさん:2008/07/11(金) 16:51:07
一応いっとくけどCancelAsync呼んだだけじゃRunWorkerCompletedは発生しないぞ
CancelAsyncの解説読めば分かることだけど
185デフォルトの名無しさん:2008/07/11(金) 17:12:52
object result = type.InvokeMember("test", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new string[1] { "sample" });
ってDLLを動的に呼び出して MyClass1 ってのを返すんだけど
object型のresultをMyClass1にキャストする方法がわからないのだが誰かヒントでも良いから助けて
186デフォルトの名無しさん:2008/07/11(金) 17:17:16
>>185
動的にDLL呼び出しができてキャストできないとか・・・・・

(T)
187デフォルトの名無しさん:2008/07/11(金) 17:23:16
きっと「動的にキャスト」みたいなこと考えてるんだろう
188デフォルトの名無しさん:2008/07/11(金) 18:00:26
MyClass1返すならなんで動的に呼ぶ必要があるんだよ
まあこれはMyClass1が対象のアセンブリに含まれてると仮定した場合だが
MyClass1を静的に参照してるんじゃなきゃキャストなんてできるわけがないぞ
189デフォルトの名無しさん:2008/07/11(金) 18:03:13
解決しました
第三のDLLかましてあげればよかったんですね
190デフォルトの名無しさん:2008/07/11(金) 18:07:32
>>170
>任意の型(ただしdoubleに変換可能、実際の想定はfloatとdouble)

ならdouble決め打ちでいいんじゃね?
って思うんだが駄目ですか
191デフォルトの名無しさん:2008/07/11(金) 18:15:15
double[]引数にはfloat[]を与えられない
192デフォルトの名無しさん:2008/07/11(金) 18:25:51
つうかキャスト動作が食ってるとかありえないのかな?

何万も回せばコストはでかいと思うんだが
外からは意識しないように内部で分岐させて処理してみればよくねぇか?

この分だとキャストは一回だけで終わりそうな感じがするんだが・・・
193デフォルトの名無しさん:2008/07/11(金) 18:34:48
>>189
第3のDLLのはインターフェイスにしておくと融通が利く。
194デフォルトの名無しさん:2008/07/11(金) 18:44:04
>>170
<T>[]で受けると型が特定されなくてそのままSystem.Convert.ToDoubleが呼ばれる
結果的にもう1つ<T>[]を作っている感じな予感。
float[],double[]で受けると最適化されてSystem.Convert.ToDoubleは呼ばれない。
195デフォルトの名無しさん:2008/07/11(金) 18:48:26
IConvertibleで制約してhoge[i].ToDouble(null)とか
196デフォルトの名無しさん:2008/07/11(金) 18:55:15
>>173
return直前にdoubleにすればいいだろ。
197デフォルトの名無しさん:2008/07/11(金) 18:57:26
Tのままじゃ比較できないじゃん
198デフォルトの名無しさん:2008/07/11(金) 19:00:52
比較はCompareToかな。それよりT.MinValueって使えるのかな
199デフォルトの名無しさん:2008/07/11(金) 19:18:12
lengthがゼロならMinValueを返すのが仕様なら仕方ないが
普通初期値は配列の最初の要素だろ。
T ret = src[offset];
200デフォルトの名無しさん:2008/07/11(金) 19:36:11
総称型の場合Convert.ToDouble(Object)でボクシングが
大量発生してヒープを使いすぎるのはわかるがLOHが使われるのは解せんね。
201デフォルトの名無しさん:2008/07/11(金) 19:55:28
>>170
じつはToArrayでラージオブジェクトヒープを使っているとか言うオチだったり
List<int> arr = ..
double ans = Max(arr.ToArray(), 0, ar.Count);
202デフォルトの名無しさん:2008/07/11(金) 19:58:18
>>199
そうなんだけどT.MinValueが使えるのかが気になった。
Length==0なら例外投げるのが妥当だよね。
203デフォルトの名無しさん:2008/07/11(金) 21:42:05
相談です。

C#3.0(2.0でも可)にて
PDFからオブジェクトの取得をしたいと思っています。
PDFはベクトルデータであることが前提で、ラスタデータは考慮しません。

●抽出
テキストデータは テキスト、フォント、サイズ、座標を取得
画像データは 画像、座標を取得
各データにジャンルを割り当てDBに保存

●復元
テキスト、フォント、サイズ、座標からPDFに復元する。
その座標に画像も存在していれば画像も復元する。

何か良い方法はご存知でしょうか?
204デフォルトの名無しさん:2008/07/11(金) 21:45:08
>>203
本屋でPDFの仕様書を見たことがあるから、amazonで探せばあるんじゃね?
英語なら買うまでもなく、ネットでもありそうだけど。
205203:2008/07/11(金) 23:43:25
>>204
PDF仕様書の英語版はWebで公開されてます。
日本語版の仕様書は本で出てます。
PDFの使用がわかってもC#でPDFを扱う術(COMやSDKなど)がわからないのです。
iText,PDF4NET, PDFLib など様々なものを試していますが、これというものがありません。
画像抽出に関しても、抽出するだけならできるが、座標の取得などは不明だったりします。
206デフォルトの名無しさん:2008/07/12(土) 00:15:58
つかライブラリ使うつもりなら、仕様書まで読む必要ないよ。
207デフォルトの名無しさん:2008/07/13(日) 03:14:35
>>205
そこに挙げてる既存のライブラリで満足できないなら、新しいのを書くしかないだろ。
208170:2008/07/13(日) 08:05:41
170ですが、遅くなって申し訳ありません。まだ解決したとはいえないのですが、>>194っぽい気がしています。
なお、最初に書いた文章が改行大杉と言われたので改行減らしています。読みにくいかもしれません。すみません。

とりあえず
public double Max<T>(T[] src, int offset, int length)
{
double ret;
if(src is float[])
{
float[] srcFloat = src as float[];
int end = offset + length;
for(int i = offset ; i < end; i++)
{
double val = (double)srcFloat[i]
if(val > ret)
ret = val;
}
}
else if(src is double[])
{
(略。明示的キャストをしないこと以外はfloatと同じ)
}
return ret;
}
というようにfloat[]、double[]の型に変換してからキャストするようにするとLOHを食う現象は見られなくなりました。
ただ、今でもキツネにつままれたような気分は抜けないので、もう少し元のコードだと何をやっているか調べてみようと思っています。
>>200で指摘があるように、キャストでヒープを消費するのはわかるんですが、Gen0やGen1ならともかくLOHを食うのは相変わらず解せないので…。

また何かわかったら報告します。ありがとうございました。
209170:2008/07/13(日) 08:07:17
あと、>>208のコードでは対応していませんが、
・キャストは最後に1回やればいい(float、doubleに決め打ちできれば可能)
・Tで受けずに最初からfloat[]、double[]で受けるほうがいい
というのも納得しています。追って対応しようと思います。

ありがとうございました。
210デフォルトの名無しさん:2008/07/13(日) 08:29:38
そうまで限定するならoverloadしたほうが早いような。
211170:2008/07/13(日) 09:29:10
>>210
「Tで受けずに最初からfloat[]、double[]で受けるほうがいい」
はoverloadにすることを考えて書いてました。
212170:2008/07/13(日) 09:31:16
細切れですみません。いずれにしても
>>170のコードだとなぜLOHを侵食する?
という大本の疑問はまだ謎のままなので、
追い追いプロファイラとかで調べてみようと思っています。
213デフォルトの名無しさん:2008/07/13(日) 13:11:43
何かよくわかりませんが、これ↓

やねう企画代表者やねうらお(本名・磯崎元洋)が
・ソフトウェアの不正コピーを行っていた
・労働契約上の違反をしていた
・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、
 写真に撮ってアップロードしようとした。
http://d.hatena.ne.jp/pmoky/19000106
やねう企画の裏側(競馬の詐欺ソフトの製作現場)
http://d.hatena.ne.jp/pmoky/20060510
http://d.hatena.ne.jp/pmoky/20060511
http://d.hatena.ne.jp/pmoky/20060512
有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産
http://www.sia.go.jp/~osaka/zenso/19.09.pdf

やねうらおプロフィール
性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。
最終学歴:専門学校卒
主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産
代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』

やねうらお語録
>「ワシのほうが潔癖やと思うんやけどな。
>絶対に違法コピーのソフトしか使わんし。
>たとえば強盗に入ったときに、ちょっとかわいそうになって
>十万円だけ残してったら、おかしいやろ?
>自分の『強盗する』という意思に対して矛盾やろ?
>だからワシは、一個も買ったソフトを使ったことがない!!」
214デフォルトの名無しさん:2008/07/13(日) 13:15:09
コピペ君って馬鹿だな、まで読んだ。
215デフォルトの名無しさん:2008/07/13(日) 13:21:57
最近、やねうらおは弓月(>>213)とか言う真性のキチガイに絡まれている

【自作自演】弓月城太郎氏に関するまとめ【神秘体験】
http://d.hatena.ne.jp/yaneurao/20080619
216デフォルトの名無しさん:2008/07/13(日) 13:57:02
コピペ君って馬鹿だな、まで読んだ。
217デフォルトの名無しさん:2008/07/13(日) 14:00:45
こっちにまではってやがるw

218デフォルトの名無しさん:2008/07/13(日) 21:54:07
ここまでコピペ
219デフォルトの名無しさん:2008/07/14(月) 11:21:45
何度かここで質問しようとした事があるんだけど、なんでだろう。
書き込みボタン押す直前に閃いて解決してしまう。
220デフォルトの名無しさん:2008/07/14(月) 16:34:41
日記はチラシの裏に
221デフォルトの名無しさん:2008/07/14(月) 16:44:41
やだね
222デフォルトの名無しさん:2008/07/14(月) 17:44:05
じゃあチラシの表でいいや
223デフォルトの名無しさん:2008/07/14(月) 17:45:26
やだね
224デフォルトの名無しさん:2008/07/14(月) 18:46:51
今作ってるプログラムが500行超えた
こんなに長いコード書くの初めて・・・

フォームアプリケーションってめんどいね
225デフォルトの名無しさん:2008/07/14(月) 18:57:13
むしろそんなに大きくないファイルがたくさんできないか?
と思ったら500行か、、、、そりゃテストコード書くんでもなけりゃ
あっというまだべ。
226デフォルトの名無しさん:2008/07/15(火) 12:24:44
データバインドとか使わずに愚直コピーしてるとか?
それでも500ぐらいあっと言う間だろうけど
227デフォルトの名無しさん:2008/07/15(火) 22:48:06
UI絡みは長くなるの仕方なかろう
228デフォルトの名無しさん:2008/07/16(水) 17:14:27
チラシって普通両面に印刷されてるよね。
そういえば昔は片面印刷だったっけ。
229デフォルトの名無しさん:2008/07/16(水) 17:15:27
どことまちがえてるんですか?w
230デフォルトの名無しさん:2008/07/16(水) 22:07:19
マーシャリングについて教えてくれ。
C#からCで書いたDLLのGetImageを呼び、ImageProcデリゲートで画像のデータを受け取りたいんだが、
ImageProcデリゲートの第一引数を何と書いていいか分からない…

【C側】
typedef void (*ImageProc)(unsigned char* pImageBuffer, unsigned int imageSize);

__declspec(dllexport) void GetImage(char* pFileName, ImageProc pImageProc)
{
unsigned char* pImageBuffer = 0; //画像バッファ
unsigned int imageSize = 0; //画像サイズ

//中略:pFileNameの画像を開き、pImageBufferを動的確保し、
//pImageBufferに画像のデータを、imageBufferSizeに画像のサイズを入れる。

pImageProc(pImageBuffer, imageSize);
}

【C#側】
↓???を何と書いていいか分からない…
public delegate void ImageProc(???, UInt32 imageSize);
231デフォルトの名無しさん:2008/07/16(水) 22:16:41
IntPtr
232デフォルトの名無しさん:2008/07/16(水) 22:28:42
string
233デフォルトの名無しさん:2008/07/17(木) 08:51:39
byte[]でいいんじゃね?
推奨できないけどどうしてもというならunsafeつけてbyte*とか
234デフォルトの名無しさん:2008/07/17(木) 11:07:03
正直受け側の実装次第
235デフォルトの名無しさん:2008/07/18(金) 09:35:50
脱線するけどBitmap.LockBitsじゃダメなのか
236230:2008/07/18(金) 11:15:25
>>231で行けました。THX!

【c】
#include <windows.h>
typedef void (CALLBACK* ImageCallBack)(VOID* pImageBuffer, UINT32 imageSize);

【c#】
public delegate void ImageCallBack(IntPtr pImageBuffer, UInt32 imageSize);

public static void ImageCallBackHandler(IntPtr pImageBuffer, UInt32 imageSize)
{
byte[] imageData = new byte[imageSize];
imageData.Initialize();
Marshal.Copy(pImageBuffer, imageData, 0, imageData.Length);
}
237デフォルトの名無しさん:2008/07/18(金) 22:27:57
VisualStdio2005なんですが、使用する.netFrameworkを1.1にして開発に使用する事って可能ですか?
238デフォルトの名無しさん:2008/07/18(金) 22:30:37
いいえ
239デフォルトの名無しさん:2008/07/19(土) 01:03:13
実はできなくもなかったりするんだが、いろいろと面倒なんでお勧めしない。
240デフォルトの名無しさん:2008/07/19(土) 14:35:26
ListViewの詳細表示モードで、ダウンロードの進歩状況を表示するような・・・
例えば、WinnyなどのP2Pソフトによくある横棒グラフに % 表示があるような
ものを表示したいんですが、どのように実装したらいいでしょうか?

とりあえずオーナードローでサブ項目にRectangleで描画したりしてみましたが
あまりにも遅くて実用的ではありません。
もっと効率的な方法があるのでしょうか?
241デフォルトの名無しさん:2008/07/19(土) 14:36:40
それはおそらく実装の方法に問題がある。
そんなに遅くなるはずがない。
242デフォルトの名無しさん:2008/07/19(土) 14:46:42
>>241
いや、それが試しにRectangleの描画処理だけを入れただけのものなんで
ほとんどこれが最少の処理なんですよ

確か、Winnyを作っていた47氏も描画の遅さに悩んでいた記憶があるので
もともとどうやってもある程度の遅さはしょうがないのかもしれませんが
オーナードロー以外にもっと上手い方法があれば教えて頂きたいのですが
243デフォルトの名無しさん:2008/07/19(土) 14:57:24
その部分のコード晒せば今日暇だから改良してみようか
晒せないならしょうがないけど
244デフォルトの名無しさん:2008/07/19(土) 15:13:27
ListViewのDetailモードはバギーだからさもありなん、という気もする。
245デフォルトの名無しさん:2008/07/19(土) 15:21:43
>>243
上記した通り、四角の描画しかしていないんですが
具体的に書きますと

if (e.ColumnIndex == 3) {
 e.Graphics.FillRectangle(Brushes.Red, e.Bounds.Left, e.Bounds.Top, percent, e.Bounds.Height);
}

の処理を入れてあるだけの、最小限の物です。
他の余計な処理は一切していません。
246デフォルトの名無しさん:2008/07/19(土) 15:23:38
描画処理が何回呼ばれてるかとか描画に何ms掛かってるかとか調べてみたら
247デフォルトの名無しさん:2008/07/19(土) 16:37:44
>>245
そんなんじゃわからん
普通に軽いのができてしまったぞ
248デフォルトの名無しさん:2008/07/19(土) 17:34:04
ほかの部分が重いんじゃないか?
追加部分をコメントアウトして確認
249デフォルトの名無しさん:2008/07/19(土) 18:43:16
俺のもめちゃ軽い。ちらつきはDoubleBufferedで抑えてみた。
250デフォルトの名無しさん:2008/07/19(土) 19:06:50
追加するときに重いとかいうオチだったり?
251デフォルトの名無しさん:2008/07/19(土) 19:09:28
どうせListViewだし、

0u2007 FIGURE SPACE
0u2588 FULL BLOCK
0u258C LEFT HALF BLOCK
0u2590 RIGHT HALF BLOCK

の手抜きでいいじゃんとか思ってしまう
虫食いなしなら、1/8のまで使えるし

一応こんな感じに
ttp://www.imgup.org/iup649405.png
252デフォルトの名無しさん:2008/07/19(土) 19:09:34
実は実行環境が驚くほどプア
253デフォルトの名無しさん:2008/07/19(土) 19:31:09
>>244
ListViewといえばDetailなのにバグ多いよね。
そして改善されない。
254デフォルトの名無しさん:2008/07/19(土) 19:40:35
うわ、疲れて寝てしまった。

>>247
でも、これしか書いてないから他の部分無いんですよ、全く。

>>248
上にも散々書きましたが、他の処理は無いのです。
ListView検証の為にTestListViewというプロジェクトを作って
フォームにListViewを貼り付けただけのプロジェクトなので
描画処理部分以外も、余計な処理が全く無いんですよ。

>>249
やっぱり軽いですか。何で重くなってしまうのか・・・

>>250
動的にデータを追加することは無いです。

>>251
うわ、昔を思い出す処理ですね(w
MSX の SCREEN 1/2 でやっていた時に
そんな感じでゲームのパラメータそんな感じでやってたなぁ

>>252
Pentium-M 1.6GHz なので、それほどプアでも無いと思うのですが。
255デフォルトの名無しさん:2008/07/19(土) 20:46:38
Debugつうオチではない?
256デフォルトの名無しさん:2008/07/19(土) 22:32:15
そんだけのプログラムならうpすればいいのに
257デフォルトの名無しさん:2008/07/19(土) 22:38:16
サブ項目は、一つ一つがリソースを消費するから
数によってはかなり重くなってメモリを消費すると思うが
それとは違う?
258デフォルトの名無しさん:2008/07/19(土) 23:06:06
自分のは10万個とか追加したらスクロールバーでのスクロールははっきり重くなった
マウスホイールでのスクトールは軽いままだけど
259デフォルトの名無しさん:2008/07/19(土) 23:22:24
配列かリストのスライスとかないんでしょうか。
260デフォルトの名無しさん:2008/07/19(土) 23:22:53
自分で作ってください…
261デフォルトの名無しさん:2008/07/19(土) 23:24:17
ちゅうかまず描画の頻度がどの程度なのよ
262デフォルトの名無しさん:2008/07/19(土) 23:28:01
そりゃWM_PAINTとんでくる度だろ
263デフォルトの名無しさん:2008/07/19(土) 23:36:49
オーナードローって言ってるのにねぇ
264デフォルトの名無しさん:2008/07/19(土) 23:41:58
>>254
プロジェクド丸ごとうpしろよ
原因見つけてやるから
265デフォルトの名無しさん:2008/07/19(土) 23:52:00
馬鹿はレスしなくて良いと思うんだ
266デフォルトの名無しさん:2008/07/20(日) 00:02:49
じゃあお前レスすんな
267デフォルトの名無しさん:2008/07/20(日) 00:07:23
オーナニードローのパフォーマンスが悪いのは仕様だと思う。
268デフォルトの名無しさん:2008/07/20(日) 00:10:48
>>267
言いたかっただけだろw
269デフォルトの名無しさん:2008/07/20(日) 00:20:08
俺もやってみたが軽かった
どんな糞コード書けば重くなるんだ?
270デフォルトの名無しさん:2008/07/20(日) 01:09:26
バーの長さをe.SubItem.Textでパーミル指定とかしてみたけど、
10万個の項目でもスムーズに動く。スクロールも無問題

因みに、環境はPemM 1.7GHz/mem 1GB
271デフォルトの名無しさん:2008/07/20(日) 01:16:30
そういえば、カスペが入ったPCでデバッグビルドを動かした時に、
異様に遅くなったことがあったな。
コンボボックスを開くのに数秒かかったり。
VSを信頼するアプリに設定してプロセス動作の監視対象から外したら
普通に動くようになった。
272デフォルトの名無しさん:2008/07/20(日) 12:40:04
こんな親切なレスの流れはひさしぶり
273デフォルトの名無しさん:2008/07/20(日) 13:12:32
火スペって何?
まさか名取裕子とか出てくるドラマ枠のことじゃないだろうし
274デフォルトの名無しさん:2008/07/20(日) 13:28:30
ググれば一発で出てくるのに
しかも、一番上に
275デフォルトの名無しさん:2008/07/20(日) 13:33:21
質問者の反応が悪いな
諦めたんかね
276デフォルトの名無しさん:2008/07/20(日) 15:41:54
カスペ、監視からjustの扱ってるアンチウィルスソフトだとわかると思うんだがなぁ。
これくらいは許されてもいいような省略系じゃないのか?
277デフォルトの名無しさん:2008/07/20(日) 15:45:09
よくない
278デフォルトの名無しさん:2008/07/20(日) 15:45:43
はじめて聞いた
俺は気付いたけど
279デフォルトの名無しさん:2008/07/20(日) 16:19:19
すまん。セキュリティ板なんかではよく見かける略称だったもんで。
280デフォルトの名無しさん:2008/07/21(月) 23:35:58
C++のboostみたいなC#の定番ライブラリってないですかね
281デフォルトの名無しさん:2008/07/21(月) 23:46:18
標準で機能かなりそろってるからなぁ。
patterns & practices とか EntLib とか、MS が提供してる標準外コードも多いし。
282デフォルトの名無しさん:2008/07/22(火) 14:23:54
entlibなんかきらいだ
283デフォルトの名無しさん:2008/07/22(火) 18:08:55
最近C#に乗り換えたんだが
初心者はSDKから入ったほうがいいよな?
284デフォルトの名無しさん:2008/07/22(火) 18:15:47
日本語でおk
285デフォルトの名無しさん:2008/07/22(火) 19:24:45
>>283
初心者はIDEから入るべき
自分でことを難しくすることはない
286デフォルトの名無しさん:2008/07/22(火) 21:43:08
VC# Express Edition 1択。
287デフォルトの名無しさん:2008/07/22(火) 22:14:16
ム自体初心者なら SDK というかそのレベルのことからはじめるのは
ありだと思うが C# の言語的な思想ってのは IDE が存在する世界だ
から IDE で触れないとなんつーか色々わかりゃしない。結果遠回り
288デフォルトの名無しさん:2008/07/22(火) 22:17:11
別にそんなこと無い
289デフォルトの名無しさん:2008/07/22(火) 22:38:55
別にそんなこと無い
インテリセンスとGUI作成以外は、
SDKから構築した自作コンパイル環境の方が早かったりする

でも初心者はVC#EE使うべきだよ
楽だもん
290デフォルトの名無しさん:2008/07/22(火) 22:39:49
初心者はCASLからだろJK
291デフォルトの名無しさん:2008/07/22(火) 23:22:09
>>289
コーディングの速さなんか問題にしていないしそれぐらい慣れたら
できる人間(他から移行中とか)で C# 初心者の場合に言ってる

IDE からみないと C#(.NET) 的なコンポーネントとかメタデータやらで
宣言的にとかそういう発想が分かりにくいよという話
292デフォルトの名無しさん:2008/07/22(火) 23:32:43
> IDE からみないと C#(.NET) 的なコンポーネントとかメタデータやらで
> 宣言的にとかそういう発想が分かりにくいよという話

もっと具体的に言ってくれないとわかんない
293デフォルトの名無しさん:2008/07/22(火) 23:40:15
IntelliSense は楽をさせてくれると同時に、
初心者にとっては学習ツールでもあると思う。
294デフォルトの名無しさん:2008/07/23(水) 00:41:02
通ぶってるのか何か知らないけど、今時SDKだの素のエディタ使うだのって
そういう背伸びは中学生までにしとけって言いたくなるよな。

傍から見てても恥ずかしくなるよ。
295デフォルトの名無しさん:2008/07/23(水) 00:45:17
SDK→IDE ・・・ 時代に取り残されたおっさんの発想
296デフォルトの名無しさん:2008/07/23(水) 00:45:55
C#でIDE使わないならJAVAでいいじゃん
297デフォルトの名無しさん:2008/07/23(水) 01:06:37
俺はVSのエディタとVIMを併用してるが、
2003→2008にしたら比重が1:9→8:2くらいになったな

LINQ、ラムダ式、拡張メソッドを使うときとか、
コンパイラ並みの構文解析してくれないエディタだと面倒くさい
298デフォルトの名無しさん:2008/07/23(水) 01:18:22
>>294
ム板だし、人に強要しなきゃいいんじゃね?
マなら仕事できない奴確定だがな
299デフォルトの名無しさん:2008/07/23(水) 01:25:47
VC#使うのは当然としてもコンソールアプリから始めてみるのはいいんじゃないの
基本的なところの勉強で小さいコード動かすために
わざわざVBみたいにボタン一つだけ載せたフォーム作るのは格好悪すぎ
300デフォルトの名無しさん:2008/07/23(水) 01:31:42
誰もコンソールアプリから始める事には反対してないような…
301デフォルトの名無しさん:2008/07/23(水) 01:33:55
302デフォルトの名無しさん:2008/07/23(水) 01:43:38
俺も反対してないけど始めるのはGUIからでもCUIからでもいいと思うよ
303デフォルトの名無しさん:2008/07/23(水) 02:38:56
夏か!
304デフォルトの名無しさん:2008/07/23(水) 02:47:40
どうでもいいけど、cscやmsbuildは.NET Frameworkに付属しててSDKなしでも
たいていのコンパイルはできる。
305デフォルトの名無しさん:2008/07/23(水) 04:22:22
DLLからクラスやメソッドを詳細検索してくれるようなツールない?

protected で A から始まるメソッドをクラス 'Tool' から全部表示する みたいな
306デフォルトの名無しさん:2008/07/23(水) 04:59:02
Reflectorでも使うか、リフレクション使って自作したら?
307デフォルトの名無しさん:2008/07/23(水) 05:26:40
Assembly.LoadFrom("Hoge.dll").GetType("Hoge.Tool").GetMethods()
.Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A'))
.ToList().ForEach(Console.WriteLine);

とか
308デフォルトの名無しさん:2008/07/23(水) 06:23:03
'A'))
やっぱり顔文字に見えるな
309デフォルトの名無しさん:2008/07/23(水) 06:24:08
>>306
Reflectorは修飾子まで考慮してくれないんだよなぁ
自作してみるわ

>>307
3.5ってそんなキモイことできるんかwwすげーなwSTLみたいだw
310デフォルトの名無しさん:2008/07/23(水) 06:57:53
>>308
ワロスw
311デフォルトの名無しさん:2008/07/23(水) 10:56:44
繋げて書けるのはいいけどぬるぽが怖い
312デフォルトの名無しさん:2008/07/23(水) 13:33:57
ブレークポイント置いてデバッグする時は複数行に分けるよね
313デフォルトの名無しさん:2008/07/23(水) 18:36:29
ToList().ForEach()はムダだろ
IEnumerableに対するForEach拡張メソッドを自分で書くか素直にforeach使うべき
314デフォルトの名無しさん:2008/07/23(水) 18:58:33
米国時間22日、マイクロソフトは「Xbox LIVE Community Games」を北米で今年後半から
開始すると発表した。その他の地域については2009年から逐次開始する予定。

Xbox LIVE Community Gamesは、XNA Game Studioで開発されたXbox360用ソフトを
Xbox Liveを通じ一般利用者へ販売することを可能とするサービス。

Xbox LIVE Community Gamesでの販売は、XNA開発者コミュニティ「XNA Creators Club」の
有料会員(年額9,800円)であれば誰でも行うことが可能となる。

販売価格については200〜800マイクロソフトポイントの間で自由に設定することができ、
手数料として売上の30%が引かれることとなる。

XNA Game Studioは、マイクロソフトが無償で公開しているVisual Studioをベースとした
ゲーム特化型の統合開発環境。.NET Framework及びDirectXをベースとしたライブラリ
「XNA Framework」を使用し、基本的には設定ひとつでXbox360及びWindowsへの両対応が
可能となる。

XNAについては、RPGツクールが次期バージョンでの対応を表明しており、日本での
普及にも期待がかかる。また、教育機関による学習教材としての採用も増加しており、
月刊ベーシックマガジンの休刊以降問題視されていた日本人ゲーム開発者の急激な
減少に歯止めをかける期待も持たれている。

http://news4xbox.blogspot.com/2008/07/xbox360.html
315デフォルトの名無しさん:2008/07/23(水) 19:00:00
XNAとC#関連のスレみてると何回もこれ読まされるんだが
316デフォルトの名無しさん:2008/07/23(水) 19:01:42
そういう気分の時は「コピペ君て馬鹿だな、まで読んだ」と書くんだ
317デフォルトの名無しさん:2008/07/23(水) 19:41:15
「コピペ君て馬鹿だな、まで読んだ」
ってことはさ、そのコピペの中に「コピペ君て馬鹿だな」って文言が含まれているって事だよね?
だとしたらそこそこまともな事言ってるって事になっちゃうよ。
318デフォルトの名無しさん:2008/07/23(水) 20:02:51
>>315
巡回してるとこ見てきたら、6箇所で貼ってあった・・
コピペ君て馬鹿だな
319デフォルトの名無しさん:2008/07/23(水) 21:38:55
どうせ数独とかマインスイーパーみたいなのが氾濫して
おわるんじゃねーの
320デフォルトの名無しさん:2008/07/23(水) 22:58:03
ボンバーマンの超ぱちもんなら既にある
321デフォルトの名無しさん:2008/07/23(水) 23:09:13
1時間もあれば作れるようなくそげーが氾濫することは目に見えてるけど
http://www.nicovideo.jp/watch/sm3657573 を見る限り期待できるかも

X  期待できるかも
O  期待したい
322デフォルトの名無しさん:2008/07/24(木) 01:05:08
文章の最後に「コピペ君て馬鹿だな」って書いておくと、
「コピペ君て馬鹿だな、まで読んだ」ってレスされても
即座に「最後まで読んだんかい!!」ってレスできる。
これ豆知識な。

コピペ君て馬鹿だな

323デフォルトの名無しさん:2008/07/24(木) 01:16:40
僕は馬鹿なコピペ君です、まで読んだ。
324デフォルトの名無しさん:2008/07/24(木) 01:20:46
>>323
なんということでしょう・・・orz
325デフォルトの名無しさん:2008/07/24(木) 15:35:07
swichとforとifの組み合わせって速度にどれくらい差があるんでしょうか?
326デフォルトの名無しさん:2008/07/24(木) 15:36:56
調べてみたら?
327デフォルトの名無しさん:2008/07/24(木) 15:54:20
switch と if に for が絡むのがわからん
328デフォルトの名無しさん:2008/07/24(木) 16:06:37
複数のコンポーネントがある時に、
label[i]みたいにインデクサを使いたいんですが、
コンパイラにlabelなんてねーよバーヤヽ(`Д´)ノ

って言われてしまいます。
やっぱり一行づつ書いていくしかないのですか?
329デフォルトの名無しさん:2008/07/24(木) 16:08:15
もうちょっと具体例を
330デフォルトの名無しさん:2008/07/24(木) 16:10:37
>>328
自分でコレクションに入れろよ。
331デフォルトの名無しさん:2008/07/24(木) 16:31:29
>>329-330
しょうがないからLabel配列型の変数にいれてやりました。
コンパイラが面倒みてくれたらいいのに・・・
332デフォルトの名無しさん:2008/07/24(木) 16:40:28
そんなキモいことされてたまるか
333デフォルトの名無しさん:2008/07/24(木) 16:56:37
どう考えてもコンパイラじゃなくて、せいぜいライブラリのありがた迷惑だろ。
334デフォルトの名無しさん:2008/07/24(木) 17:27:25
MenuItems.Addでメニュー項目を追加するときにイベントハンドラを指定しますが、
項目の数だけメソッドを用意するのが個人的に好きじゃありません。
各項目に共通のイベントハンドラを指定し、
その中でどの項目が選択されたのかを確認したいのですが、
このようなことは可能でしょうか。
335デフォルトの名無しさん:2008/07/24(木) 17:28:10
sender
336デフォルトの名無しさん:2008/07/24(木) 17:33:09
public void menuItem_Click(object sender, EventArgs e)
{
if (object.ReferenceEquals(sender, menuItem1))
{ ... }
else if (object.ReferenceEquals(sender, menuItem2))
{ ... }
}

337デフォルトの名無しさん:2008/07/24(木) 17:50:18
>>335
>>336
サンクス!
338デフォルトの名無しさん:2008/07/24(木) 18:04:23
Tag使えよ
339デフォルトの名無しさん:2008/07/24(木) 18:10:25
うむ
340デフォルトの名無しさん:2008/07/25(金) 01:38:05
プログラミングの初心者で恐縮ですが、質問です。

オセロゲームを練習として作ってみたいと考えています。
そこで、Panelを継承したクラスを作ってOseroPanelという名前にしました。

このOseroPanelを
this.Controls.Add(p);
とフォームに貼り付けました。

次にパネル側の描画処理を書きました。
一つはOnPaintをオーバーライドして描画しました。
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawLine(new Pen(Color.Red), 10, 100, 200, 100);
}
こちらはうまく動いています。

341デフォルトの名無しさん:2008/07/25(金) 01:39:03
もう一つはイベントを使ってみたのですが、問題が発生しました。
VSを使って、イベントを自動作成し、
private void InitializeComponent()
{
this.SuspendLayout();
//
// OseroPanel
//
this.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint);
this.ResumeLayout(false);

}

private void OseroPanel_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(new Pen(Color.Blue), 100, 10, 100, 200);
}
というコードを書きました。
どうやら
OseroPanel_Paint()メソッドが呼ばれていないようです。

原因がわかる人がいましたら教えてもらえるとありがたいです。
342デフォルトの名無しさん:2008/07/25(金) 01:51:20
this.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint);

this.OseroPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.OseroPanel_Paint);
343デフォルトの名無しさん:2008/07/25(金) 09:40:22
>>342
OseroPanelクラスのなかでやっているので
thisはOseroPanelを指しています。
344デフォルトの名無しさん:2008/07/25(金) 11:09:12
×Osero
○Othello
345デフォルトの名無しさん:2008/07/25(金) 11:18:37
取りあえずその記述だけでは原因不明なので
まずデバッガでInitializeComponent通ってるかどうかから確認
346デフォルトの名無しさん:2008/07/25(金) 14:13:04
オセロは(TM)だから注意ね
347デフォルトの名無しさん:2008/07/25(金) 14:16:22
TMならセーフじゃん
348デフォルトの名無しさん:2008/07/25(金) 14:43:35
暑さでボケてたw
(R) だよ
349デフォルトの名無しさん:2008/07/25(金) 15:43:20
>>345
orz
まさにそれでした。
InitializeComponent()の呼び出しは自分で書かないといけないんですね。

Oseroクラスのコンストラクタに書いてみたところ、
すべてうまくいきました。

どうもありでしたm(_ _)m
350デフォルトの名無しさん:2008/07/25(金) 16:30:44
フォームアプリのForm1とかのように使い捨てのクラスはともかく、
継承クラスではイベントハンドラではなくOn〜メソッドのオーバーライドが推奨のはず

探したけどソースが見つからんorz

>>346-348
オセロ(玩具)とソフトウェアじゃあ区分が違うんじゃないか?
351デフォルトの名無しさん:2008/07/25(金) 17:48:32
>>350
たしかにOnPaintをオーバーライドした方が、
コードがすっきりしますね。
352デフォルトの名無しさん:2008/07/25(金) 17:57:31
>>340-351
ふらっと行け
353デフォルトの名無しさん:2008/07/25(金) 18:42:36
一様乱数を生成する関数のソースについて質問があります。y=1/sqrt(2)*exp(-1/2*x*x)の計算で
In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom':
: undefined reference to `exp'
というエラーがでて実行できません。もちろん<math.h>は定義しました。
レポート課題なのでマジで困ってます。是非教えてください。ソースを下に載せておきます。
ちなみにxが一様乱数で、yが正規乱数です。

double GaussRandom()
{
double x;
double y;

x=UniformRandom();
y=1/sqrt(2)*exp(-1/2*x*x);
return y;
}

double UniformRandom()
{
double x;
int r=1;

r=1229*r+351750;
x=r/1664501;

return x;
}
354デフォルトの名無しさん:2008/07/25(金) 18:44:02
>>353
スレタイをよめ
355デフォルトの名無しさん:2008/07/25(金) 18:57:48
>>353
>In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom':
>: undefined reference to `exp'
翻訳するとだな
「型または名前空間名 'sqrt' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
型または名前空間名 'exp' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
だな。何に翻訳したかは秘密だ。
さらに言うとusing System.Math;が足りないなw
356デフォルトの名無しさん:2008/07/25(金) 18:59:27
>>354 すいません。
357デフォルトの名無しさん:2008/07/25(金) 19:09:17
>>353
マルチすんなゴミ
358デフォルトの名無しさん:2008/07/25(金) 19:12:00
ReflectorでSystem.Randomクラスのコードをパクる奴とかいそうだな
359デフォルトの名無しさん:2008/07/25(金) 19:23:59
>>355 ありがとうございます。

>>357 期限が迫ってたので色んな場所で聞こうと思っただけです。気を悪くしてすいません。
360デフォルトの名無しさん:2008/07/25(金) 19:32:50
ほんとにKYですね^^
死んでください
361デフォルトの名無しさん:2008/07/25(金) 19:35:51
気を悪くしてすいませんだと?
気を悪くしたのはこっちだ!クソが!
362デフォルトの名無しさん:2008/07/25(金) 20:43:39
期限が迫ってたので色んな場所で聞こうと思っただけです
363デフォルトの名無しさん:2008/07/25(金) 20:47:26
こういうゴミに教えてあげるような偽善者も死ねよ
364デフォルトの名無しさん:2008/07/25(金) 21:43:47
自己中乙
365デフォルトの名無しさん:2008/07/25(金) 22:26:13
レポートの最後に「参考:2ch プログラム板」って書いておけよ
366デフォルトの名無しさん:2008/07/25(金) 22:36:26
>>361 気を悪くさせての間違いです^^

>>365 課題落とされるかもしれないので書けません 教えてくれた人ありがとうございました^^
367デフォルトの名無しさん:2008/07/25(金) 22:36:57
今プログラミングスレがいっぱい上がってるがどゆこと?
368デフォルトの名無しさん:2008/07/25(金) 22:45:14
>>367
なに言ってんだお前
369デフォルトの名無しさん:2008/07/25(金) 22:46:18
しまった板違いwwwAA板じゃねえwwwww
370デフォルトの名無しさん:2008/07/25(金) 23:00:15
>>369
斬新な板違いだなおい
しかもよりによってスレタイに[プログラム板]って付いてるこのスレで
371デフォルトの名無しさん:2008/07/26(土) 01:30:27
なんでこんな荒れてんの?
372デフォルトの名無しさん:2008/07/26(土) 01:35:00
荒れてないよ
373デフォルトの名無しさん:2008/07/26(土) 12:06:15
突然すみません。
C/C++のように構造体配列の定数データを持ちたいんですが、
C#ではどうすればよいのでしょう?
374デフォルトの名無しさん:2008/07/26(土) 12:21:19
無理
375デフォルトの名無しさん:2008/07/26(土) 12:23:06
static readonlyな配列で良いんじゃね
376デフォルトの名無しさん:2008/07/26(土) 12:30:22
static readonly な ReadOnlyCollection<T>
377デフォルトの名無しさん:2008/07/26(土) 17:04:31
GDI+でICONへは変換不可ですか?
378デフォルトの名無しさん:2008/07/26(土) 17:27:39
>>377
可能
Dim bmp As New Bitmap("hoge.bmp")
Dim ico As Icon = Icon.FromHandle(Bitmap.GetHicon())
Dim fs As New FileStream("hoge.ico", FileMode.Create)
ico.save(fs)
fs.Close()
ico.Dispose()
bmp.Dispose()
379デフォルトの名無しさん:2008/07/26(土) 17:40:09
ども、やってみます!
380デフォルトの名無しさん:2008/07/26(土) 18:15:04
ただし制限きついけどなー
381デフォルトの名無しさん:2008/07/26(土) 19:11:37
>>378
意味不明な質問には「日本語で書け」と叱責してやるのが本人のためだと思うけど。
ああちゃんと嫌味の意味でVBで答えてるわけかw
382デフォルトの名無しさん:2008/07/26(土) 19:33:38
>>381
そういうことwww
お前は、エスパーかw
383デフォルトの名無しさん:2008/07/26(土) 22:03:26
Using使えよって思った。
384デフォルトの名無しさん:2008/07/26(土) 22:04:52
キモすぎ
385デフォルトの名無しさん:2008/07/26(土) 22:12:36
>>381
意味不明な質問には「日本語でおk」だろ?
386デフォルトの名無しさん:2008/07/26(土) 22:15:29
意味不明な質問にわざわざ絡む奴ってなんなの?
いじめられっこ?
387デフォルトの名無しさん:2008/07/26(土) 22:19:19
>>382
自作自演乙
388デフォルトの名無しさん:2008/07/27(日) 04:59:50
>>381
二行目で気づいたならその時点で書き直せよ気持ち悪い
389デフォルトの名無しさん:2008/07/27(日) 15:52:58
GraphicsクラスのDrawImageメソッドで
画像の表示位置や高さ幅は通常intで指定すると思います。

ところが、実はfloatで指定する方法も用意されています。
public void DrawImage(
Image image,
float x,
float y,
float width,
float height
)

floatで指定すると何かよいことがあるのでしょうか?
基本的には四捨五入でintに繰り上げていると思うのですが、
そのような理解で正しいでしょうか?
390デフォルトの名無しさん:2008/07/27(日) 16:07:44
>>389
WMFとかベクター画用じゃね?
391デフォルトの名無しさん:2008/07/27(日) 16:10:09
Graphicsの描画単位はPixelだけじゃないぜ?
392デフォルトの名無しさん:2008/07/27(日) 16:14:24
DirectXで使うためでしょ
393デフォルトの名無しさん:2008/07/27(日) 16:15:14
ピクセル単位が整数だとしても
縮小拡大の原点が0,0で固定されないで
指定点から始まると困ることが多数あるのです。
394デフォルトの名無しさん:2008/07/27(日) 16:47:49
いやそういうことじゃないでしょw
>>391が言ってることが全てだよ。

よく言われることだが、そもそもピクセルなんていうのは
デバイス側の勝手な都合に過ぎん。
395デフォルトの名無しさん:2008/07/27(日) 17:48:10
VB6時代にもTwipsとかあったな。
GraphicsUnit列挙体がGDI+で扱える単位すべてじゃね?
396デフォルトの名無しさん:2008/07/27(日) 18:50:20
画像表示するアプリ作ったときWin32APIのStretchBlt使ってたら
スクロールの更新部分だけ描画させるたら非更新部分と結果がずれて困ったことあったな。
無効領域だけしか処理しないから全体を更新すればいいんだけど
大きい比率で拡大したときに表示してくれないから結局自前で処理するしかなかった。
GDI+が出たときに少数単位で渡したらずれなかった。
397デフォルトの名無しさん:2008/07/27(日) 19:01:47
画像を反転させるには
RotateFlip(RotateFlipType.Rotate180FlipXY);
というメソッドを使えばいいことがわかりました。

画像Aと反転後の画像Bを作りたいのですが、
Cloneメソッドを使うと両方反転してしまいます。
Imageオブジェクトをコピーする良い方法はありますか?
398デフォルトの名無しさん:2008/07/27(日) 19:09:50
RotateFlipしたあとにCloneしてるってオチじゃないだろうな
399デフォルトの名無しさん:2008/07/27(日) 22:51:02
ものすごくヘビーな処理をしています
計算途中でスリープやサスペンドに入られるとちょっと困るので、計算中は一時防止したいのですが
何か良い方法はないでしょうか?
400デフォルトの名無しさん:2008/07/27(日) 22:56:56
何か処理してれば普通サスペンドしないだろ
401デフォルトの名無しさん:2008/07/27(日) 23:01:32
いや、寝る前に仕掛けて朝起きたらサスペンドしていてちっとも処理が進んでなかったです。
402デフォルトの名無しさん:2008/07/27(日) 23:18:35
>>399
処理と重力定数は関係ない・・・
403デフォルトの名無しさん:2008/07/27(日) 23:21:21
電源の設定でサスペンドしないように出来ない?
404デフォルトの名無しさん:2008/07/27(日) 23:44:05
>>399
WM_POWERBROADCASTのPBT_APMQUERYSUSPENDの応答でサスペンド入りを拒否できるらしい。
405397:2008/07/28(月) 02:27:50
>>398
違うようです。
シャローコピーのようで、
Imageクラスの中ではイメージ実態への参照(ポインタ)
を持っているようです。
一方、回転するのはイメージ自体です。
406397:2008/07/28(月) 02:48:15
大ボケかましました。
RotateFlip(RotateFlipType.Rotate180FlipXY);
だと画像が回転せず
正しくは
RotateFlip(RotateFlipType.Rotate180FlipNone);
でした。
頭悪すぎてすみません。
暑さでやられましたorz
407デフォルトの名無しさん:2008/07/28(月) 11:10:24
rubyにおけるmechanize的なクラスとか無いんですか?
408デフォルトの名無しさん:2008/07/28(月) 11:40:56
よほど自明でない限りrubyのmechanizeを説明するのが先だろ
409デフォルトの名無しさん:2008/07/28(月) 12:05:25
C#にはスクレイピング用の定番ライブラリはないんじゃないかな。
410デフォルトの名無しさん:2008/07/28(月) 12:15:43
逆行列、最小二乗法のフリーのライブラリないでしょうか?
411デフォルトの名無しさん:2008/07/28(月) 12:31:34
ライブラリっつーか、ソース探してきては
412デフォルトの名無しさん:2008/07/28(月) 19:17:38
CLapackなんかの必要な関数だけC++/CLIでラップして使うのが楽
413デフォルトの名無しさん:2008/07/28(月) 19:41:02
string に格納されたデータが整数に変換可能な形なら int に
浮動小数点形式なら float に変換する方法教えてください。
414デフォルトの名無しさん:2008/07/28(月) 19:44:33
TryParse
415デフォルトの名無しさん:2008/07/28(月) 19:44:49
TryParse
416デフォルトの名無しさん:2008/07/28(月) 20:24:51
プロパティというのは、クラスのフィールドを外部に公開する時に、柔軟性や冗長性を持たせるために、
必要ならば何らかのラップ処理を行うためのものだと、今まで思っていました。

つまり、プロパティは必ずpublicなものしか存在しないのかと。

ところが、最近、外人さんのソースを読んでいると、すべてのフィールドに対してプロパティを用意して、
クラス内部のアクセスに対しても、privateのプロパティを経由して行っているプロジェクトが多いです。

個人的には、フィールドは小文字で、publicなプロパティは大文字の命名規則(Pascal)だったのですが、
外人さんの流れでは、privateなプロパティもPascal記法になっていて、
クラス内部のすべての操作が大文字から始まるメンバを操作しています。

皆さんはどうされてます?もしかして、外人さん流儀の方が主流なんでしょうか?
C#以外の言語も含めて、そっちの方が主流になるんでしょうかねぇ。
個人的には、ローカルなnullチェックなどはプロパティの中ではなく、メソッドの中で操作する前に
行うほうが行儀が良いんじゃないかと思ったりもするのですが‥‥。
417デフォルトの名無しさん:2008/07/28(月) 20:42:03
>>416
質問の意図がクリアーじゃない気がするよ。
も一度他人の目線で自分の文章読みなおしてみ?
418デフォルトの名無しさん:2008/07/28(月) 20:53:45
>>417
単に話題提起してるだけなので、こんなもんじゃないでしょうか。解析的に解ける問題でも無いし。
興味を持たない人には、一生縁のない内容でもあると言えるし。
おそらく、LL言語的にはプロパティはあって当然の記述なので、おそらく外人さんが正しいのでしょうが。
419デフォルトの名無しさん:2008/07/28(月) 21:36:43
サンプル見ると、MS 自身も private なプロパティ使ってるね。

クラス内部であっても、プロパティの実装変えたときのこと想定しとけよってことだと思う。
420デフォルトの名無しさん:2008/07/28(月) 21:41:28
>>418
だから何を問題提起してるのか読み取れない、と言ってるんだよ。
質問内容にケチをつけているのではない。
ナニが言いたいのか分からないといってるの。
421デフォルトの名無しさん:2008/07/28(月) 21:44:35
>>416
Delphi(Win32,.netじゃないやつ)のVCLをみると
private/protectedのレベルではpropertyは使われてない。
(protectedまで使ってるものもあるがTCustom〜と直接使わないクラス。ここから継承してほかのコンポネを作る)
でも内部ではプロパティを使ってアクセスしてる。(Get/SetとCreateをのぞく)
422デフォルトの名無しさん:2008/07/28(月) 21:47:38
外人さんの手法はクラスが大きくなると有効じゃね
423デフォルトの名無しさん:2008/07/28(月) 21:52:49
>>420 読解能力がないか、話に興味が持てないならスルーすればいいんじゃね?

話からずれるが
C#じゃ配列のプロパティはインデクサとして1つしか使えないと思ってたけど
配列型をプロパティの型にしてしまえば一応いくらでも使えるのだな。今初めて気がついた
public Boolean[] Hoge { get;set;}

でも、配列としてデータを持ってるんでなくてその場で計算して値を出したり入れたりしてたり、
内部では別の型のデータとして扱ってて、便利のためにほかの型でのアクセスさせるためにほかの配列使ったりってことはどうやったらいいの?
int[,] でかると = int[100,100];
public int 極座標[int R,double Rad] { (ry とか
しかもこういうのがほかの変数にも必要だったりする場合にはどうやって対処すればいいの?
424デフォルトの名無しさん:2008/07/28(月) 21:57:52
メソッドを使いなさい
425デフォルトの名無しさん:2008/07/28(月) 22:00:32
>>423
妄想力と読解力は違うよ。
ま、区別がつかない人間に縷々説明して分かることとは思わないけど。
426デフォルトの名無しさん:2008/07/28(月) 22:06:20
>>423
VBからだと引数付きのプロパティは作れるのだけどこれをC#から使う場合がヒントになるかな。
Public Property NameProp(ByVal index As Integer) As String
    Get
        Return array(index)
    End Get
    Set (ByVal Value As String)
        array(index) = Value
End Set
// C#から使う
o.set_NameProp(1, "nnnnn");
o.get_NameProp(1);



変なのが沸いてるけど無視していこう。
427デフォルトの名無しさん:2008/07/28(月) 22:20:48
そこまでして[]を使いたい意味がわからん
428デフォルトの名無しさん:2008/07/28(月) 22:21:12
だから言わんこっちゃない。

説明能力がない奴がろくに推敲もせずに書いた文章を
エスパーしてやることが親切だと勘違いしている馬鹿が多くて困るが、
意味不明な文章(例えば>>423)にははっきり「意味不明だ」と言ってやるのが
結局は一番親切な事だとなぜ分からないのだろう。
429デフォルトの名無しさん:2008/07/28(月) 22:35:17
インデクサほとんど使わないんだよなぁ
430デフォルトの名無しさん:2008/07/28(月) 22:54:54
だから423はスルーしたのか
431デフォルトの名無しさん:2008/07/28(月) 22:56:45
>>423
配列を返すプロパティは実装変えられなくなるからダメ
432デフォルトの名無しさん:2008/07/28(月) 22:59:12
インデクサと GetEnumerator を持つコレクションクラスを返すプロパティを作るの推奨。
433デフォルトの名無しさん:2008/07/28(月) 23:00:51
晒しage
434デフォルトの名無しさん:2008/07/28(月) 23:04:13
配列使うってまだ.netに慣れてない人に多い気がする。
>>431
確かにそうだけど
ListBoxはObjectCollection返してるけど、こうするとどう変わってくるの?
暇なときに調べるか…
436デフォルトの名無しさん:2008/07/28(月) 23:18:19
ここっていつも空気悪いよね
437デフォルトの名無しさん:2008/07/28(月) 23:23:41
そりゃいつも低脳がでしゃばるからな
438デフォルトの名無しさん:2008/07/28(月) 23:30:24
>>435
挙動変えたいときに、ObjectCollection継承したクラス作って
インデクサとかGetEnumeratorをoverrideしてしまえば
利用側に迷惑かけずに挙動変えれるでしょ。
439デフォルトの名無しさん:2008/07/28(月) 23:32:48
IList<>かICollection<>でいいだろ。
440デフォルトの名無しさん:2008/07/28(月) 23:43:33
IEnumerator<>という手も
441デフォルトの名無しさん:2008/07/29(火) 00:02:38
>>439-440
多分、今作るならそういう実装になってると思う。
442デフォルトの名無しさん:2008/07/29(火) 00:29:07
>>441
ちゃんと理解できてない&元使用言語によっては配列使いまくりになるよ。
VB厨が使うVB.netなんていい例
443デフォルトの名無しさん:2008/07/29(火) 00:43:42
ちゃんと理解できてない?
それはたぶんお前さんのことでもあるんじゃないの?
別に配列を返すプロパティやメソッドが一義的に悪いとも思えないけどね。

もちろん配列を返した場合の弊害を知らないのは愚かだと思うが、
村の掟でもあるまいし、無条件に否定するのも同様に愚かだろう。
444デフォルトの名無しさん:2008/07/29(火) 00:53:05
配列を返すプロパティがガイドライン違反であることには留意すべきじゃないか
445デフォルトの名無しさん:2008/07/29(火) 02:42:46
>>443
まぁ、探してみてみろよ、わかるから。
お前の想定レベルみたいな生半可なもんじゃねーぞ、VB厨は・・・
そのうち.netの仕事が増えれば嫌でも見る事になると思うよ。
446デフォルトの名無しさん:2008/07/29(火) 07:06:09
もし配列を返すことが目的ならばindexerを使うのはおかしい。
逆にindexer代わりに配列を使うのも変だな。
配列だけでなく変更可能なクラスをプロパティにするならある種の副作用は覚悟しなければならない。
getで予防的コピー、setで妥当性の検査や値のコピーといった措置は必要になるだろう。
447デフォルトの名無しさん:2008/07/29(火) 07:42:27
メンバのコレクションの中身だけを渡したいときは配列使うようにしてるかも。
実測してないが早いと聞いたので。
448デフォルトの名無しさん:2008/07/29(火) 08:29:40
速くはあるだろうが安全じゃない。ケースによってはここまでやらないと。
int [] _hoge = new int [5];
int [] Hoge {
  get { return (int []) _hoge.Clone(); }
  set {
    if (value == null) throw new NullReferenceException();
    if (value.Length > _hoge.Length) throw new ArgumentOutOfRangeException();
    value.CopyTo(_hoge, 0);
 }
}
449デフォルトの名無しさん:2008/07/29(火) 09:01:18
>>428
君のプロパティに関する意見はどうなの?
他の人がここまで書いているんだから、何か無いの?
無いのなら、無い奴に限って枝葉末節にこだわる黄金則が‥‥。
450デフォルトの名無しさん:2008/07/29(火) 09:45:33
>>448
getで返す配列への変更が元のインスタンスに反映されないので、
プロパティじゃなくてメソッドにすべき
451デフォルトの名無しさん:2008/07/29(火) 11:05:59
ケースごとに分けて考えようぜ。

配列の参照自身が書き換わってよい場合。また内容も外部から任意に書き換えることが出来る。
 フィールドをpublicにする。
 単純に配列の参照そのもをプロパティにする。

配列内容が任意のタイミングで書き換わってよい場合。ただし配列の参照自体やサイズが変わることは禁止。
 配列の参照をgetだけするプロパティまたは取得だけの関数を使用する。 >>449はこれ

配列の内容が書き換わるタイミングを管理したい場合。配列の参照やサイズが変わることは禁止。
 インデックサかそれに準じる添え字を引数にした読み書き用の関数を使用する。
 get setのプロパティで予防的コピーを行う。 >>448はこれ
452デフォルトの名無しさん:2008/07/29(火) 11:06:58
>>451
>>449はこれ 

>>450の間違い、訂正します。
453デフォルトの名無しさん:2008/07/29(火) 12:27:22
今北産業
454デフォルトの名無しさん:2008/07/29(火) 12:28:20
インデクサ使ったほうがかっこよくね
vs
ハァ?メソッドでいいだろ
455デフォルトの名無しさん:2008/07/29(火) 12:39:08
x.Foo[128] = 123; // 配列プロパティでインデックサみたいなことができるよ〜
int [] f = x.Foo; f[3] = 123; // こんなことや
x.Foo = null;  // あんなことされて平気? ・・・産業
456デフォルトの名無しさん:2008/07/29(火) 12:47:21
>>455
や、それが平気じゃないならgetのみにするんではないか?
457デフォルトの名無しさん:2008/07/29(火) 12:58:00
配列じゃないがこういうケース、書き換わらないと思ったら値型かよ!
hoge.Point.X = 100;
正解はこちら、めんどくせ〜
hoge.Point = new Point(100, hoge.Point.Y);

>>456
3番目のケースはそれでカバーできるが、2番目のは割り切りが必要かな。
458450:2008/07/29(火) 13:04:39
>>451
まず、誤解の無いように言っておくと、
>>451の各ケースの意義は理解してるし、それについてどうこう言うつもりはない

で、>>450で言いたかったのは、例えば

obj.Hoge[2] = 10;

と書けるにもかかわらず、この操作が(直感に反して)意味を成さないのが問題だということ
プロパティの型が値型でなければ、そのプロパティで取得したインスタンスへの変更は
元のオブジェクトに何らかのフィードバックがあることが期待され、それを裏切る実装は避けるべき

ついでに、コピーを返すプロパティと配列を返すプロパティがガイドラインで禁止されているのも
それなりの理由があるからなので、それに違反する必然性がないのであれば従っておくべき
459デフォルトの名無しさん:2008/07/29(火) 13:09:07
Image.Paletteを考えればコピーを返すプロパティはやっぱ直感的じゃないよな
460デフォルトの名無しさん:2008/07/29(火) 14:43:39
インデクサだって・・・ダサッ
461デフォルトの名無しさん:2008/07/29(火) 16:19:22
IComparerを継承したクラスでComparerメソッドの実装を
しようとしてるんだけど、浮動小数点数の比較が上手くいかない

誰かスマートな実装方法教えてください
462デフォルトの名無しさん:2008/07/29(火) 16:20:51
上手くいかないならどう上手くいかないのか書けよ
463デフォルトの名無しさん:2008/07/29(火) 16:37:10
スマートも糞もないだろそれぐらい
あとIComparer<T>使わんの?
464デフォルトの名無しさん:2008/07/29(火) 16:44:56
あまりに低レベルな質問する奴はふらっと行けよ
465デフォルトの名無しさん:2008/07/29(火) 17:04:44
>>462
int ret;
float x;
float y;

ret = (int)(x-y)

みたいにやってるけど、差が0.・・・だと、丸まってしまって
0になってしまうから、駄目だと思うんだが、どうやったら
上手く比較できるのかさっぱりわからない
整数ならこれで上手くいくんだが

>>463
IComparer<T>は知らなかったので、今から調べてみます
それくらいって程簡単なの?
とりあえず簡単なら教えて欲しい、これでずっと悩んでる
ウェブでいくら探しても、整数と文字列の比較のサンプルしか無いんだ
466デフォルトの名無しさん:2008/07/29(火) 17:07:15
>>465
x==y/x<y/otherwise
でいいだろ。
467デフォルトの名無しさん:2008/07/29(火) 17:07:53
ふらっとだな。
if (x > y) return 1; とか思いつかない?
468oth:2008/07/29(火) 17:27:22
otherWiseがコンパイル通りません
469デフォルトの名無しさん:2008/07/29(火) 17:31:43
>>466
すいませんが、まるでその式の意味が理解できないんですが
どのように理解したら良いんですか?

>>467
int にキャストしないで
if (ret >0)
 return 1;
のようなものは考えていたけれど、もっとスマートな処理が
あるんじゃないかと思って聞いてみたのです
Comparerの戻り値の正数ってのは、0か負の数じゃなきゃ
なんでもいいんですかね?差の値を入れなくても
470デフォルトの名無しさん:2008/07/29(火) 17:36:39
MSDNの解説ぐらい読めよ……
471デフォルトの名無しさん:2008/07/29(火) 17:38:01
ふらっと池よクズ
472デフォルトの名無しさん:2008/07/29(火) 17:39:50
>>469
スマートと行数が少ないは違うだろ。

比較関数で差を返すのは大昔からよく見るコードだが、
通常、整数型は正負で扱える数の範囲が違うから、何も考えずに符号を反転させるとオーバーフローする。
ちょっと考えればわかることで、まともなプログラマはそんなコードを書かない。
473デフォルトの名無しさん:2008/07/29(火) 17:42:13
>>469
IComparer.Compare(double x, double y)
{
return x - y;
}
474デフォルトの名無しさん:2008/07/29(火) 17:44:57
>>473
馬鹿はすっこんでろ。
475デフォルトの名無しさん:2008/07/29(火) 17:46:08
振り出しに戻る、だなw
476デフォルトの名無しさん:2008/07/29(火) 17:47:20
>>469
MSDN読んでこいよ
バカ丸出し
477デフォルトの名無しさん:2008/07/29(火) 17:52:12
return (x - y).CompareTo(0.0);
478デフォルトの名無しさん:2008/07/29(火) 17:53:28
>>472
そういえば、そうですね。
単純に降順の場合、ret = -ret で返してました。
っていうか、ウェブにあるサンプルってどれも
この返し方してたんで、疑問にも思いませんでした
定数を返した方が安全なんですね

>>473
え、いやそこの所を実装したいのですが
後々も拡張したいので
479デフォルトの名無しさん:2008/07/29(火) 17:53:58
>>477
バカ丸出しだなww
そのCompareTo()の中身が欲しいんだろwww
480デフォルトの名無しさん:2008/07/29(火) 17:55:32
俺が正解書いてやったのにまだやってんの?
481デフォルトの名無しさん:2008/07/29(火) 17:56:07
このスレ昔からそうだけど答えも知らないくせに
文句だけは言う馬鹿ばかりだなw
482デフォルトの名無しさん:2008/07/29(火) 17:56:21
int Compare(double a, double b)
{
if (a - b < 0d) return -1;
else if (a - b > 0d) return 1;
else return 0;
}
483デフォルトの名無しさん:2008/07/29(火) 17:56:56
>>481
お前もそうだろww
484デフォルトの名無しさん:2008/07/29(火) 17:59:00
>>483
お前もそうだろwww
485デフォルトの名無しさん:2008/07/29(火) 17:59:32
>>484
お前もそうだろwwww
486デフォルトの名無しさん:2008/07/29(火) 17:59:53
>>486
お前もそうだろwwwww
487デフォルトの名無しさん:2008/07/29(火) 17:59:57
ふらっとのがまともだな
488デフォルトの名無しさん:2008/07/29(火) 18:00:06
何がおもしろいのやら…
くだらない奴しかいなくなってしまったな…
489デフォルトの名無しさん:2008/07/29(火) 18:00:40
>>490
お前もそうだろwwwww
490デフォルトの名無しさん:2008/07/29(火) 18:01:10
public int CompareTo(Double value)
{
if (m_value < value) return -1;
if (m_value > value) return 1;
if (m_value == value) return 0;

// At least one of the values is NaN.
if (IsNaN(m_value))
return (IsNaN(value) ? 0 : -1);
else
return 1;
}
491デフォルトの名無しさん:2008/07/29(火) 18:02:10
>>488
前からずっとこうだろw
少し上のレスもそうじゃねえか
馬鹿のくせにプライドだけは高いから
すぐに荒れるw
492デフォルトの名無しさん:2008/07/29(火) 18:02:53
普通の比較をしたいなら
int Compare(double a, double b) {  return a.ComaperTo(b); }

独自の比較基準を追求したいなら
int Compare(double a, double b) {
  if ( よくわからない基準で同じならば(x, y) return 0;
  if ( よくわからない基準で大ならば(x, y) ) return 1;
  else return 0;
}

ってことじゃないの?
493デフォルトの名無しさん:2008/07/29(火) 18:04:50
ああ、荒れてしまってすいません

>>482
のようなシンプルな実装で行こうとも思います
もっと式一つで済むようなかっこ良い実装があると思ったんです
すいませんでした

ありがとうございました
494デフォルトの名無しさん:2008/07/29(火) 18:07:37
わざわざ引き算してるのは何で?
495デフォルトの名無しさん:2008/07/29(火) 18:08:03
>>416からの流れほどは荒れなかったなw
496デフォルトの名無しさん:2008/07/29(火) 18:12:07
>>493
君は悪くない
実力の伴わない自尊心の持ち主が多いスレなんだ

NaNの処理が必要だから>>490の実装が正解に近いよ
Reflectorを使って、System.Double.CompareTo(object value)の中身を見てみることをお薦めする
497デフォルトの名無しさん:2008/07/29(火) 18:15:26
>>496
正解に近いんじゃなくて正解だよ
498デフォルトの名無しさん:2008/07/29(火) 18:16:22
>System.Double.CompareTo(object value)
だからさ、それをそのまま使わないか不思議なんだけど
499デフォルトの名無しさん:2008/07/29(火) 18:18:02
>>498
拡張したいんだろ
初心者は変なことやりたがるんだからほっとけ
500デフォルトの名無しさん:2008/07/29(火) 18:18:16
正解に近いという言い回しは、Cカップ好きのあれ思い出すな
501デフォルトの名無しさん:2008/07/29(火) 18:21:27
一つの質問が投下されるたびに内容に関係無く
一悶着あるのがこのスレの掟w
502デフォルトの名無しさん:2008/07/29(火) 18:23:52
>>498
特別なソートしたい場合なんていくらでもあるだろ
色々やってりゃ既製の比較関数じゃ追いつかない
場面は多々出てくる
503デフォルトの名無しさん:2008/07/29(火) 18:35:21
>>496
自己紹介乙
504デフォルトの名無しさん:2008/07/29(火) 18:40:46
>>496
ソースコードを直接見ろでいいじゃない。
質問者がExpress使いという可能性はあるけどさ。
505デフォルトの名無しさん:2008/07/29(火) 18:58:58
>>490
遅レスだが、IsNaNの処理おかしくね?
非数じゃなかった場合、何でreturn 1に決め打ちしてんの?
506デフォルトの名無しさん:2008/07/29(火) 19:06:06
>>505
ソースコード見てこいよ
507デフォルトの名無しさん:2008/07/29(火) 19:25:39
>>505
何を決めうち?
// ここに到達したら少なくともどちらかは非数なので
m_valueが非数でvalueも非数ならば0
m_valueだけが非数ならば-1
m_valueが非数でないならvalueが非数なので1
508デフォルトの名無しさん:2008/07/29(火) 22:05:31
個人的には

if (!IsNaN(m_value)) return 1;
if (!IsNaN(value)) return -1;
return 0;

の方が、分岐が浅くなって好み
509デフォルトの名無しさん:2008/07/29(火) 22:42:53
連想配列、HashMapにあたるコレクションの説明がC#の入門書では異常なほど排除されてますよね。
自分はDictionaryを見つけて使ってますが、みなさんはもしかしてインデクサをMapのように実装して使ってるんでしょうか?
まさかとは思うんですが、独学の人間にアドバイスをよろしくお願いします。
510デフォルトの名無しさん:2008/07/29(火) 22:46:51
いいえ
511デフォルトの名無しさん:2008/07/29(火) 23:12:45
普通にDictionaryだろどう考えても。
場合によってはHashtable使うこともあるが。
512デフォルトの名無しさん:2008/07/29(火) 23:26:30
>>509
Dictionary はまさに連想配列よ。
赤黒木で実装されてる。
STL の map と一緒。
513デフォルトの名無しさん:2008/07/29(火) 23:30:36
>>512
MSのサイトにはハッシュテーブルで実装されてるって書いてあるよ。
514デフォルトの名無しさん:2008/07/29(火) 23:39:50
Dictionary - ハッシュ
SortedDictionary - 赤黒木

ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。
515デフォルトの名無しさん:2008/07/29(火) 23:39:50
Dictionary<,>はただのHashtableのラッパ。
516デフォルトの名無しさん:2008/07/29(火) 23:41:21
Dictionary ハッシュ辞書
SortedDictionary 赤黒木
SortedList 索引をもつリスト
Hashtable Dictionaryの非ジェネリック版
517デフォルトの名無しさん:2008/07/29(火) 23:42:57
>>515はデタラメ
518デフォルトの名無しさん:2008/07/29(火) 23:45:56
SortedListは説明しづらいから逃げてることが多いかな。
わからなければSortedDictionaryを使うのが無難。
519デフォルトの名無しさん:2008/07/30(水) 00:48:17
MSDNライブラリとか規格書とかSSCLIのコードとか読む人あんまり居ないの?
520デフォルトの名無しさん:2008/07/30(水) 00:50:37
509です。カキコして下さった皆さんに感謝しています。
インデクサが定義可能と知り、まさかなと思いまして。でもやっぱりそうでしょうね。

>>514 ListとDictionaryぐらいは大抵の入門書で解説してあると思ってたわ。
まあ、いっぺん見てやってください。Listの解説があるならずいぶん良心的なほうです。。。
>>518 SortedDictionaryは推測するにJavaのTreeMapですね。新知識でした、ありがとうございます。
521デフォルトの名無しさん:2008/07/30(水) 03:07:07
@ITってそこらの入門書より使えると思う俺
522デフォルトの名無しさん:2008/07/30(水) 18:46:12
>>517
ソース読めよ馬鹿
523デフォルトの名無しさん:2008/07/30(水) 19:00:13
>>522
reflectorで確認した限りでは使ってないな。どのあたりで使ってるの?
524デフォルトの名無しさん:2008/07/30(水) 19:18:38
DictionaryBaseと混同してるんだろう
せっかくジェネリックになったのにHashTableなんか使ってたら値型のときに速くならないじゃん
525デフォルトの名無しさん:2008/07/30(水) 20:05:13
526デフォルトの名無しさん:2008/07/30(水) 20:09:49
日本語がコードネーム?
Vistaは見送ったけどこれは買おうかな
527デフォルトの名無しさん:2008/07/30(水) 20:12:12
どうせ10年後くらいだろ
528デフォルトの名無しさん:2008/07/30(水) 20:18:43
横浜市緑区?
めっちゃ近所なんだが
529デフォルトの名無しさん:2008/07/30(水) 20:23:06
俺んとこの市にも緑町があるぜ、隣の市とかその向こうにも。
530デフォルトの名無しさん:2008/07/30(水) 20:35:07
>>525
大勝利って言われてもな。とりあえずWPFの普及率もっとあげてくれ。
531デフォルトの名無しさん:2008/07/30(水) 20:59:47
Singularity ベースってだけで 9 割方ネタだろとしか正直
532デフォルトの名無しさん:2008/07/30(水) 21:54:51
>>522
ソース読めよゴミ
533デフォルトの名無しさん:2008/07/30(水) 22:01:12
C#によるプログラミングWindows 上/下 (マイクロソフト公式解説書)
はC#2.0でもかなり役に立つ?
C#2.0版まだ、でなさそうだし・・・・
#オライリーのC#本、手打ちしてる位のレベルなんだけど
534デフォルトの名無しさん:2008/07/30(水) 22:18:29
>>533
1.0の頃からあまり変化がない部分が中心の本だから「時代遅れ」の
心配はあまりいらないかもしれない。

ただ俺はあの人の本って一般に評価されてるほど評価する気になれんな。
網羅的なのはいいけどコード変だし。
535533:2008/07/30(水) 22:28:27
>>534
なるほど。ありがとう
明日、本屋によって現物確認してから考えるよ(確かあったはず)
とりあえず行数打って慣れるってレベルだから、いいかなと
#オライリーのも うーん と思わなくもない
#javaからshiftしきれてないからかな
536デフォルトの名無しさん:2008/07/30(水) 23:57:26
ポインタ、クラス、ジェネリックを効率的に習得するには
C -> C# -> C++ という順番がいいような気がする今日この頃。
537デフォルトの名無しさん:2008/07/31(木) 00:04:01
お前の意見なんて求めていない
消えろ
538デフォルトの名無しさん:2008/07/31(木) 01:43:13
Java、C、C#の順でやってきた
C++は危ないコード書き放題の怖い何かって認識しかない
539デフォルトの名無しさん:2008/07/31(木) 02:39:47
C++は言語仕様以外にも安全な書き方、
定番な書き方、インクルードファイルのインクルード順序とか、
まともに使えるようになるまでのインフラ整備にものすごく時間がかかるよ

C++の複雑さと心中する覚悟のある人しか使えないんじゃないかなぁ
540デフォルトの名無しさん:2008/07/31(木) 11:25:26
レジストリのフルパスを表す文字列からRegistryKeyを取得する簡単な方法は
無いでしょうか?

\\HKEY_LOCAL_MACHINE\Software\hoge というキーを取得するには
Registry.LocalMachine.OpenSubKey("Software\\hoge")
で取ることは可能ですが、 OpenSubKeyメソッドがRegistryKeyのインスタンス
のサブノードしか取得できないため、まずルートキーを最低指定する必要があり
非常に面倒に感じます。

フルパスの文字列を解析して それがHKLMなのかHKCUなのか等をいちいち
判定して場合分けして、ルートキーを取得し、さらにそのサブキーを取得というのは
結構あほらしい気がするんですが…。

RegistryKey regKey = Registry.GetKeyFromPath("\\HK_LOCAL_MACHINE\\Software\\Hoge");
のように一気に取りに行く方法はFWに用意されていないんでしょうか?
541ノムヒョン:2008/07/31(木) 11:26:38
using System;
using System.Collections.Generic;
using System.Text;

namespace VirtualMethods
{
class Control
{
protected int top;
protected int left;
/* 画面上でのウィンドウの位置を決めるための式 javaが懐かしい
*
*/
public Control(int top,int left)
{
this.top = top;
this.left = left;
}
// ウィンドウズへの描画をシミュレートします
public virtual void DrawWindow()
{
Console.WriteLine("Program;プログラムを描画します。座標:{0}, {1}", top, left);
}
}
542ノムヒョン:2008/07/31(木) 11:27:50
public class Listbox : Control
{
private string listBoxContents;
// 基本クラスのコンストラクタより引数が1つ増えています。
public Listbox(int top, int left, string contents)
:
base(top, left) // 基本クラスのコンストラクタを呼び出します
{
ListBoxContens = contents;
}
// 派生メソッドでふるまいを変えるための上書きバージョン(キーワード)overrideに注意)
public override void DrawWindow()
{
base.DrawWindow(); // 基本クラスのメソッドを呼び出します
Console.WriteLine("ListBoxへ文字列を書き込みます:{0}", listBoxContents);
}
}
public class Button : Control
{
public Button(int top, int left)
:
base(top, left)
{
}
// 派生メソッドでふるまいを変えるためのの上書きバージョン(キーワードoverrideに注意)

543ノムヒョン:2008/07/31(木) 11:28:46
public override void DrawWindow()
{
Console.WriteLine("Buttonを描画します。座標:{0}, {1}\n", top, left);
}

}
public class Tester
{
static void Main()
{
Console win = new Control(1, 2);
ListBox lb = new ListBox(3, 4, "単独のListBox");
Button b = new Button(5, 6);
win.DrawWindow();
lb.DrawWindow();
b.DrawWindow();
544ノムヒョン:2008/07/31(木) 11:30:09

Control[] winArray = new Control[3];
winArray[0] = new Control(1, 2);
winArray[1] = new ListBox(3, 4, "配列中のListBox");
winArray[2] = new Button(5, 6);

for(int i=0; i<3; i++)
{
winArray[i].DrawWindow();
}
}
}



}
でアクセシビリティに一貫性がありません。基本クラス 'VirtualMethods.Control' のアクセシビリティはクラス 'VirtualMethods.Listbox' よりも低く設定されています。
とでて解決ができません。いろいろ調べてみたのですがもうどうすればいいのかと^^;
545デフォルトの名無しさん:2008/07/31(木) 11:33:20
>>540
そういうメソッド一つ作っとけばあとは使いまわすだけじゃん
546デフォルトの名無しさん:2008/07/31(木) 11:39:05
>>544
エラーメッセージのまんまだよ。
Controlクラスのアクセスレベルがpublicになってない。
547ノムヒョン:2008/07/31(木) 11:40:38
<<546
ありがとうございます
548デフォルトの名無しさん:2008/07/31(木) 12:03:00
ム板ってなんで安価も付けられない糞コテばっかりなん?
549デフォルトの名無しさん:2008/07/31(木) 13:44:27
>>540
元のWin32 APIからそういう風になっているから仕方ないな。
そこもなんとかしろよ.NETとは思うけど。

単発での読み書きなら、Registory.GetValue/SetValueが使えるんだけどね。
550デフォルトの名無しさん:2008/07/31(木) 13:44:34
>>545

まあ、そうなんですが。
ただあんまりあほらしいんで、車輪の再発明のような気がして
なんかライブラリに用意されているのを見落としているのかなと
思ったんですが。
551デフォルトの名無しさん:2008/07/31(木) 13:46:32
>>549

WIN32からしてそうなんですか。
それじゃ無理そうですね…。
552デフォルトの名無しさん:2008/07/31(木) 14:13:07
もともとHKEY_CURRENT_USERとかはパスではなく、
Registory.CurrentUserなんかに相当するWin32の定数だった。
553デフォルトの名無しさん:2008/07/31(木) 18:26:49
デフォルトメーラーの起動で質問が有ります。

デフォルトメーラーの新規メール画面を添付ファイル付きで起動させたく、
現在MAPISendDocumentsで実装しています。

しかし、Outlook、Thunderbird、Eudra、Beckyなどは問題無いのですが
LotusNotesだとNOT_SUPPORTED=26が返されます。

エクスプローラから「送る」→「メール受信者」や、
Excelの「ファイル」→「送信」→「メールの宛先(添付ファイル)」
などはちゃんと動いており、この機能はMAPIを使っているものだと思っていますが、
(これ自体間違っているかもしれませんが・・・)
MAPIを使って他に添付ファイル付きで起動させる方法をご存じの方おりませんでしょうか?

MAPIを使わなくても別の方法でも問題有りません。
いろいろウェブで探してみましたが結論には至りませんでした・・・
554デフォルトの名無しさん:2008/07/31(木) 22:53:14
Formの移動時やリサイズ時に枠線だけ動いたり変形している
のと同じ描画を行いたいのですが、別のダミーのフォームを
Style.Noneで実現しているのでしょうか。その場合はWinProcなどを
用いてWindowMessageを処理して実現可能でしょうか?

その場合はMouseをCursorオブジェクトなどを使って操作して、
OnResizeメソッドなどをプログラム側から発生させてダミーのForm側
にMouseを乗り移らせるようなことが可能なのでしょうか・・・
この辺ご存知の方、できましたらアドバイス等頂きたく(それとも、
あれはデスクトップに直接描画とかしているのでしょうか?)
555デフォルトの名無しさん:2008/07/31(木) 23:15:37
デスクトップにControlPaint.DrawReversibleFrameする簡単な実装は
お気に召さないの?
556デフォルトの名無しさん:2008/08/01(金) 00:59:41
>>555
おお、そのような便利なモノがあったのですか!!
調べてみます!ありがとうございました!
557デフォルトの名無しさん:2008/08/01(金) 11:46:10
すいません、質問です。
C#をベースにしたらしい言語を使ってます。

#includeを使いたいですが、これ自体はないようなので、
どういった手法をとればよいのでしょうか?
importだかusingだかで、他から引っ張って来るような記述はあったんですが、
目的の機能ではないみたいで…。

目的としては、mainを含む上位部分を使いまわししたいんです。
で、下位部分を手動で大量に作って、共通部分の上位部と組み合わせてそれぞれコンパイルするような。

何かありますでしょうか?(´・ω・`)

558デフォルトの名無しさん:2008/08/01(金) 11:47:18
C#をベースにした言語って?
559デフォルトの名無しさん:2008/08/01(金) 11:53:29
560デフォルトの名無しさん:2008/08/01(金) 11:53:57
シーチンコ?
561デフォルトの名無しさん:2008/08/01(金) 12:01:40
特に名称はないみたいです。
ツール内のみのスクリプト扱いなので。
562デフォルトの名無しさん:2008/08/01(金) 12:02:55
ふうやれやれ
563デフォルトの名無しさん:2008/08/01(金) 12:07:01
>>561
どんなツールだか知らんけど、そのツールのベンダーフォーラムなり
ユーザーフォーラムなりそういうものはないのか?
構文だけC#に似せているのか、実際に.NET Frameworkを利用している
のかもわからんし、アドバイスのしようがない。
564デフォルトの名無しさん:2008/08/01(金) 12:30:11
>>563
確かにそうっすね。(´Д`;
フォーラム系はないっす。マニュアルもろくに整備されてなくて。
サポセンもアウアウです、はい。orz

ただ、基本的にはC#を汲んでるらしいので、
ひょっとしたらC#の手法が通るのでは?
と思って質問しました。
565デフォルトの名無しさん:2008/08/01(金) 12:44:12
C#ではCみたいなソースの使い回しはできないんじゃね?
566デフォルトの名無しさん:2008/08/01(金) 13:00:15
ソースを分割するといってもせいぜい、partial classぐらいだろうな
しかもあれはフォームデザイナーのための苦し紛れの構文だし。

むしろC#ライクな言語ってすごく不思議だな。C#をスクリプトとして使いたいならCodeDOMでコンパイルすればいいし
http://blogs.sqlpassj.org/yoneda/archive/2004/10/07/4724.aspx みたいなやつか?使い方は知らないがw
567デフォルトの名無しさん:2008/08/01(金) 13:34:35
>>564
そのツールって何?
568デフォルトの名無しさん:2008/08/01(金) 13:39:18
>>564
言語の出所をはっきりさせない
理由も言わない
サンプルコードも示さない
お前何しに来たの?
569デフォルトの名無しさん:2008/08/01(金) 13:50:08
>>564
ツール・・・ここらへんっすね。
ttp://www.accuratetechnologies.com/jp/products/canlab-software-179-175.html
ttp://www.necel.com/micro/ja/partner/vendor/ATI/CANLab.html

>お前何しに来たの?
C#で#includeをする方法を聞きにきました。
570デフォルトの名無しさん:2008/08/01(金) 13:59:42
その言語は知らないけどとにかくC#に#includeは無い
設計するときに無いほうがいいだろうと判断されたから無い
571デフォルトの名無しさん:2008/08/01(金) 14:08:01
DLLにしてしまうのがいいかもね
572デフォルトの名無しさん:2008/08/01(金) 14:19:08
きっとCでもこういうのincludeして悦に浸ってる人なんだよ
#define program int main() {
#define begin {
#define end return 0; }
573デフォルトの名無しさん:2008/08/01(金) 14:30:19
>>569
金払って買ったもののサポセンがないってどういうことよ
1ライセンス100万とかそういうソフトだろ

とりあえず#includeに相当するC#のキーワードは#usingだが
使い方はC++でいうところの
namespace std;
だからまるで別物

とりあえずサンプルコードでもなけりゃ助言しようもないし
上司に相談したほうがはやいと思うぞ
574デフォルトの名無しさん:2008/08/01(金) 14:31:49
×namespace std;
○using namespace std;
575554:2008/08/01(金) 15:06:49
「ドラッグ中にウインドウの内容を表示するかどうか」をWindowsの
オプション設定で決めることができますが、

ドラッグ中にウインドウの内容を - Google 検索
http://www.google.co.jp/search?hl=ja&lr=&q=ドラッグ中にウインドウの内容を&start=10&sa=N

この設定がされているか、されていないかを、プログラム側から
知る方法を知りたいのですが、参考になる情報をご存知でしたら
アドバイスをお願いします!
576デフォルトの名無しさん:2008/08/01(金) 15:09:31
>>572
ワロタwでも一部分だけpascalでも意味内から無駄だな。
577デフォルトの名無しさん:2008/08/01(金) 15:10:13
578デフォルトの名無しさん:2008/08/01(金) 17:21:50
>>571
DLLっすか。それで引っ張ってこれるなら・・・。
中々情報がないですが、漁って見ます。

>>573
サポセンあるにはあるんですが、質問したら
激しく役に立たないサンプルソースがヤル気なく返ってきました。('A`
相談したいんですが、社内での導入が実質初なので。
まともに使ったこと有る人、他にいないんです。

サンプルコード・・・一部抜粋して書いてみました。
役に立たなそうですが。(´Д`;

MessageItem frm_ENG;
public override void OnStart()
{
frm_ENG = GetMessage("ENG");
StartTimer("ENG",200);
Start_test();
}
[Timer("ENG",200, false , false)]
public void OnTimer_t_ENG()
{
StartTimer("ENG",200);
SendMessage(frm_ENG);
}
public void Start_test(){
WriteLine("start");
}

共通的に記述が2500行位で、それを百前後作るんで、
できれば引っ張ってきたいんですよね。
579デフォルトの名無しさん:2008/08/01(金) 17:22:32
>>577
情報、どうもありがとうございました。
助かりました、すぐ調べてみます!
580デフォルトの名無しさん:2008/08/01(金) 19:55:51
>>578
C#つかOO言語触ったことなくね?
581デフォルトの名無しさん:2008/08/01(金) 21:24:42
>>578が2chでヤル気なく質問してきた理由がわかった('A`
気の毒すぎるw
C#とWindowsAPIが混ざってるよね…

Timerを属性指定にして
メソッドに依存させてしまっているあたりセンスのなさが感じられるww

とりあえず>>578が何をやりたいかということと
サンプルソース全部と
あともう微妙にスレ違いなんで、
どっかの放棄されたスレに移るかして、
腰を据えて分析するよりないんじゃないかなw

パズル感覚で協力してくれる人いると思うよww
582デフォルトの名無しさん:2008/08/01(金) 22:08:48
codedom使ってコンパイルしてるだけでC#なんだと思うよ
つか常識的に考えて#includeで展開とか不要でそ…
どんな状況なら必要なんだよ…
583デフォルトの名無しさん:2008/08/01(金) 22:45:15
よくわからんけどincludeなんて前世代的だとおもう
584デフォルトの名無しさん:2008/08/01(金) 23:01:12
なんという蘭学事始。
585デフォルトの名無しさん:2008/08/01(金) 23:27:49
>>583
そうかもしれんが、かといってグローバルな(つまりファイルスコープじゃない)
コンパイル定数を定義しようと思ったらプロジェクトのプロパティに
ちまちま書かなければならん不便さを進歩と言ってよいのか疑問でもある。
586デフォルトの名無しさん:2008/08/01(金) 23:32:02
>>585
定数も、const じゃなくて、static readonly なプロパティ使うことが推奨されてるしなぁ。
private/internal な場合か、円周率みたいに絶対変わらない値だけ const。
587デフォルトの名無しさん:2008/08/01(金) 23:33:43
定数だったら、たとえばColor.Redみたいに、クラスのpublicな要素でぜんぜん不便を感じてないけど。
そういうことじゃなくて?
588デフォルトの名無しさん:2008/08/02(土) 00:03:34
お前は黙ってろ
589デフォルトの名無しさん:2008/08/02(土) 00:05:26
お前がだまれ。
590デフォルトの名無しさん:2008/08/02(土) 02:37:56
>>587
プリプロセッサシンボルを使いたいんだろうね
>>585はプロジェクトのプロパティでしか設定できないと思い込んでいるらしいが
591デフォルトの名無しさん:2008/08/02(土) 05:28:26
>>583
クラス定義とか、テキストエディタさえあればヘッダ除けばすぐに判る点とか、
C/C++やってきた自分としては好きですけどね

592デフォルトの名無しさん:2008/08/02(土) 08:38:54
クラス定義は嬉しいけど、インクルードする順番によってコンパイルが通らなくなったりするのは最悪だった
593デフォルトの名無しさん:2008/08/02(土) 08:56:42
>>591
俺は C++ やってるからこそ、
あのヘッダシステムのせいで
クラスの依存性切るのに pimpl みたいなおまじないが必要だし、
コンパイル速度が低下するし、
インテリセンスの効きが時々おかしくなるし、
include が大嫌いなんだが。
594デフォルトの名無しさん:2008/08/02(土) 09:58:15
C、C++のincludeが遅いのはマクロのせいでしょう
595デフォルトの名無しさん:2008/08/02(土) 10:01:48
C++の

の間違いじゃない?
Cはよほど下手な組み方でもしなければそうそう遅くならないでしょ
596デフォルトの名無しさん:2008/08/02(土) 10:01:52
#includeが欲しいだけならプリプロセッサでもかませばいいじゃん。
597デフォルトの名無しさん:2008/08/02(土) 10:22:18
目立つのはC++になるね。
でもCも速度としては遅いし、ヘッダーを1バイトでも書き換えたら
includeしてる全てのソースファイルを再コンパイルになるのはかわらない。
そういう意味でも遅いよ。

もしマクロがなくて、クラスや関数の定義のみであるなら
リアルタイムコンパイルも可能だよ。
598デフォルトの名無しさん:2008/08/02(土) 10:22:40
C みたいな関数宣言と #define だけのためにあるシステムを、
C++ でクラス定義でも使いまわしたのがそもそもの失敗じゃないか。

private な変数1個追加しただけで、#include してるファイル全部再コンパイルとか
狂ってるとしか言いようがない。
599デフォルトの名無しさん:2008/08/02(土) 10:26:47
そこでpimplイデオムですよってスレ違いじゃねぇかよ
600デフォルトの名無しさん:2008/08/02(土) 10:41:17
>>590
すまんその「思い込んでる」のは俺だけど、
俺の「思い込み」だというならもったいぶらずに君のいう別の方法を教えてくれよ。

分かってると思うけど議論の流れからいってIDEでプロジェクトの設定いじるより
不便な方法だったなんの意味もないわけだが、そこは踏まえて頼むよ本当。
601デフォルトの名無しさん:2008/08/02(土) 11:11:56
>>600
普通に教えてくれでいいんじゃね?
頼みかた感じ悪いと思う
いつもそうなん?
602デフォルトの名無しさん:2008/08/02(土) 11:35:10
VSのマクロでCSharpProjectConfigurationProperties3.DefineConstants触るとか
603デフォルトの名無しさん:2008/08/02(土) 11:39:48
>>599
既出 >>593

>>600
定数定義用の static なクラス作って、
絶対に変わらないと言い切れる定数は public const フィールド、
そうでなければ public static readonly なプロパティ。
604デフォルトの名無しさん:2008/08/02(土) 11:41:14
あと、#if SYMBOL 用のシンボル定義は、
むしろヘッダファイルでできるべきではなく、プロジェクトのプロパティですべき
というのが MS の判断。
605デフォルトの名無しさん:2008/08/02(土) 11:54:44
>>604
なんだよやっぱりプロジェクトのプロパティでしか出来ないんじゃないかw

だから「べき」って、確かにそうかもしれんがその不便さを進歩って言えるんかい、
つってんだよ。
606デフォルトの名無しさん:2008/08/02(土) 11:55:40
設定ファイルを直にいじれよ
607デフォルトの名無しさん:2008/08/02(土) 12:06:03
多重継承禁止とかもべき論で導入されたわけで
608デフォルトの名無しさん:2008/08/02(土) 12:10:29
DebugやReleaseの他にもプロジェクト構成を作って切り替えるのが正攻法
逆にいえばそれで足りる用途にしか使ってほしくないんだろう
609デフォルトの名無しさん:2008/08/02(土) 12:12:34
C++はtemplateを導入した時点で、#includeでマクロがどうこうといった次元からすでに超越してる。
技術的には可能でもC++のtemplateを模倣する言語は現れないだろう。
610デフォルトの名無しさん:2008/08/02(土) 12:14:17
C++はあと文字列mixinみたいな機能が入れば完全にプリプロセッサと縁が切れるな
611デフォルトの名無しさん:2008/08/02(土) 12:17:23
>>605
これのことでしょ
ttp://msdn.microsoft.com/ja-jp/library/yt3yck0x.aspx

暑いんだからあんまりぎゃーぎゃー喚くなよ
612デフォルトの名無しさん:2008/08/02(土) 12:25:45
>>609
Dとかどうよ
613デフォルトの名無しさん:2008/08/02(土) 12:30:47
>>608
それが正攻法だというのは否定してないよ。
構成の切替方法はあれで便利だし。

ただIDEのあのたった一行の入力欄に「全部の定数を定義する必要がある」のは
不便で使いにくいって言ってるだけ。

しかも(当たり前だが)作った構成の数だけ同じことをする必要がある。
そこにミスが入った場合、非常に発見しにくいとも思うんだが。。
614デフォルトの名無しさん:2008/08/02(土) 12:38:02
あっちこっちのファイルに飛び散るより遥かにましだと思うが
615デフォルトの名無しさん:2008/08/02(土) 14:36:11
>>605
「できる」みたいに言ってるやつと >>604 は別人だろ。

できる風に書いてるやつは多分よく読んでないだけ。
要するに、お前の書き込みによく読む価値はないと判断されてる。
616デフォルトの名無しさん:2008/08/02(土) 14:50:34
実に自分を世界の中心に置く「セカイ系」的発想だね。
俺やアイツの誤読はお前の文章に読む価値がないからだ、ってかw

まあ、自分を世界の中心に「俺様中華思想」もいいかもしれんが、
だったら自分の言葉を自分に適用したらどうだろう。
つまりもう少し他人にとって有益な情報を書けよって意味だが。
617デフォルトの名無しさん:2008/08/02(土) 14:51:54
黙ってスルーする能力もないのかよ
618デフォルトの名無しさん:2008/08/02(土) 14:54:44
能力というのは目的合理的に物事を推進する力のことを言う。
では「スルーする能力」という時の「スルーする」ことの目的ってなんだ?
少なくとも俺にとってはそんなものはない。

むしろ馬鹿は叩いておいた方が場のため本人のため、そして自分自身の精神衛生のため、
と思っての行動なんだけどね。
619デフォルトの名無しさん:2008/08/02(土) 14:59:03
というか .csproj はただの MSBuild の XML ファイルなんで
テキストエディタで開いてゴリゴリ編集できるんだがそういう
基本的な話は知らんのか?
VS からならプロジェクトのアンロード → **.csproj の編集。

…ついでに言うと、VS 側の CSharpPackage が変な proj ファ
イルでも普通に動くので VsPackage めんどいとき(ビルドとIDE
から適当にファイルが見えて編集できればいい)は .csproj 流用
するといいみたいな。
620デフォルトの名無しさん:2008/08/02(土) 15:27:10
csprojのほうはいいんだが、slnのほうは変なGUIDが付いてるので手でいじれん・・・
どっかに何入れればいいか公開されてるのかな?
621デフォルトの名無しさん:2008/08/02(土) 15:36:53
適当でいい
622デフォルトの名無しさん:2008/08/02(土) 15:58:49
ソリューション周りの情報なら VSSDK の

http://msdn.microsoft.com/it-it/library/bb165922.aspx

この辺しか知らん。
・・・が、俺は基本的にいじるのは IDE 上からだなぁ。依存関係とか。
623デフォルトの名無しさん:2008/08/03(日) 10:39:27
XmlSerializerでstaticなクラスをXMLに保存できないですよね?
アプリ設定情報をstaticにしてどのクラスからもすぐに楽に参照したいんですけど、
staticクラスにするとXmlSerializerは使えないですよね?
624デフォルトの名無しさん:2008/08/03(日) 10:41:21
シングルトン
625デフォルトの名無しさん:2008/08/03(日) 10:49:08
>>623
・MySettingクラス(仮称)をstaticクラスじゃなくてsingletonにする。

または

・MySettingクラスはstaticのまま、内部の実装としては別のHogeSettingクラスの
インスタンスをもちこいつをXMLシルアル化するようにして、外部にはSaveSetting/LoadSetting
メソッドを公開する。
626デフォルトの名無しさん:2008/08/03(日) 11:20:33
シングルトンでいきます

ありがとうございました!
627デフォルトの名無しさん:2008/08/04(月) 11:32:44
stringの配列を指定した列挙型の組み合わせに変換したいのですが、
@のところでコンパイルエラーになってしまいます。
どのように実装したらいいんでしょうか・・・


public class ConvertToEnum<T> where T : Enum ←@
{
private T _value;
public class ConvertToEnum(string[] texts)
{
foreach (string s in texts)
{
_value |= Enum.Parse(typeof(T), text, true);
}
}

public T Value
{
get { return _value; }
}

}


[Flags]
public enum TestEnum
{
AAA = 001, BBB=002, CCC=004
}
string[] texts = { "AAA", "BBB", "CCC" };
TestEnum value = ConvertToEnum<TestEnum>(texts).Value;
value : 007
628デフォルトの名無しさん:2008/08/04(月) 11:45:19
コンパイルエラーの内容読むこともできないの?

enumとかdelegateとかで制約は無理
629デフォルトの名無しさん:2008/08/04(月) 15:00:54
staticコンストラクタでif (!typeof(T).IsAssignableFrom(typeof(Enum))) throw new Exception();
でおk
でもその例でクラスにする意味がわからない
ConvertToEnum<T>(string[] text)でいいよね
630デフォルトの名無しさん:2008/08/04(月) 17:51:29
>>629
クラスにしたのは元のソースがクラスだからです
必要な部分だけ残したら上の形になりました

えーと、Generic制約でEnumを指定できないと、
Aの部分の | 演算子が使えません…

foreach (string s in texts)
{
_value |= Enum.Parse(typeof(T), text, true); ←A
}

_valueをint型にしてもBの部分でコンパイルエラーです…

public T Value
{
get { return (T)_value; } ←B
}

上手な実装の仕方はないでしょうか…
631デフォルトの名無しさん:2008/08/04(月) 18:02:54
リフレクション
632デフォルトの名無しさん:2008/08/04(月) 18:24:52
where T : struct, IConvertible としておいて

value = default(T);
foreach (string s in texts) {
value = (T)Enum.ToObject(typeof(T), value.ToInt32(null) | ((T)Enum.Parse(typeof(T), s, true)).ToInt32(null));
}
633デフォルトの名無しさん:2008/08/04(月) 18:45:43
List<List<int>>型変数に入ってるすべてのintを返すIEnumerable<int>がほしいんだけど、
Linqとか使うと1行で可能?
634デフォルトの名無しさん:2008/08/04(月) 18:59:33
listlist.SelectMany(list => list);
635デフォルトの名無しさん:2008/08/04(月) 19:08:50
>>634
ありがd。
636デフォルトの名無しさん:2008/08/04(月) 19:30:09
|=を使わんでも、文字列をカンマ区切りにして、
Keys k = (Keys)Enum.Parse(typeof(Keys), "Control, Alt, T", true);
みたいにすればいい。
637デフォルトの名無しさん:2008/08/04(月) 20:49:00
>>634
おおそんなのが・・・
638デフォルトの名無しさん:2008/08/04(月) 21:19:43
>>634
こういうのが頭の中にすんなり入ってこないorz
639デフォルトの名無しさん:2008/08/04(月) 21:32:35
var array = new[] { new {A="あ", B="いう"}, new { A="え",B="お" } };
var flat = array.SelectMany(x => new[] { x.A, x.B });
Console.WriteLine(string.Concat(flat.ToArray()));
こういう例のほうがわかりやすいかな
640デフォルトの名無しさん:2008/08/04(月) 21:35:33
ラムダ式を華麗に扱えるようになりたい
641デフォルトの名無しさん:2008/08/04(月) 21:40:18
C#3.0でRayToracingとかのArticleあったけれど、あのソースがラムダ使いこなしたサンプルの一つとみていいもんかね。
642デフォルトの名無しさん:2008/08/04(月) 21:46:35
バイト配列の変換について教えてください。
バイナリファイルよりReadAllBytesでデータをバイト配列に格納後、指定の
バイト数分のデータを2進数の文字列に変換するメソッドを作成しています。

8バイトまではBitConverterメソッドで数値変換し、Convert.ToStringで
2進数の文字列に変換できるのですが、9バイト以上はBitConverterメソッドが
対応していません。この場合、何か良い方法があるのでしょうか?

よろしくお願いします。

643デフォルトの名無しさん:2008/08/04(月) 21:48:22
手抜きするならBitConverter.ToStringとString.Replace
644デフォルトの名無しさん:2008/08/04(月) 21:49:07
どうでもいいが数値変換したらリトルエンディアンになっちゃうぜ
645デフォルトの名無しさん:2008/08/04(月) 22:09:26
クリスタルレポートとMicrosoft.Reportingのどっちを使おうか悩む。
普通なら昔からあるものは情報も豊富でバグも枯れてて使いやすい
はずだが、クリレポは悪評ばかり・・・
646デフォルトの名無しさん:2008/08/04(月) 23:09:18
>>638
このケースではクエリ式の方がとっつきやすいかな。
from list in listlist
from x in list
select x;

慣れてくればSelectManyを思い出せるようになる。かも。
ILではどっちでも同じことなんだけど。
647デフォルトの名無しさん:2008/08/04(月) 23:24:50
>>638
SelectMany は正直無理だと思う。

そのために、
from listist in listlist
from x in list
select x
みたいな記法がある。
これで listlist.SelectMany(list => list) と同義のはず。
648デフォルトの名無しさん:2008/08/04(月) 23:26:01
>>641
あれは結構邪道だけどな。

クエリ式が関数型言語っぽい記述できるのをいいことに、
C# 内で関数型言語プログラミングしてるっていう。

クエリ式の目指すところではなくて、副産物的なものだと思う。
649デフォルトの名無しさん:2008/08/04(月) 23:56:31
Validatorクラスでの正規表現チェックって
クラサバでもwebでも使えますか?
650デフォルトの名無しさん:2008/08/05(火) 02:19:49
>>633 >>634 に便乗して、
List<List<List<int>>> listlistlist; から IEnumerable<int> を得るには、

listlistlist.SelectMany(listlist => listlist).SelectMany(list => list);
か、
listlistlist.SelectMany(listlist => listlist.SelectMany(list => list));
みたいな感じでOK?

もっと良い書き方があったりするのかな?
651デフォルトの名無しさん:2008/08/05(火) 05:45:41
>>650
それでOK。
652デフォルトの名無しさん:2008/08/05(火) 08:49:25
>>650
それでもいいけど、それは関数化すべき気がする。

static IEnumerable<T> Concat<T>(IEnumerable<IEnumerable<T>> listlist)
{
 return listlist.SelectMany(list => list);
}

を作って、Concat(Concat(listlistlist));
653デフォルトの名無しさん:2008/08/05(火) 08:55:21
メソッドと関数って何が違うの?
654デフォルトの名無しさん:2008/08/05(火) 08:56:39
メソッドはクラスの一部だけど関数はそうじゃなかったような・・・
というか関数はそもそもC時代の名残だし
655デフォルトの名無しさん:2008/08/05(火) 09:03:34
>>653
昔の名残。
OOP 用語的にはメソッド、昔の名残的にはメンバ関数。

単に関数っていうと、グローバル関数(C# では定義できない)のことだけど、
非 OOP 言語ではグローバル関数として定義するような static メソッドのことを関数って呼んだりする。

関数化ってのも、メソッドとして独立させろって意味。
サブルーチン化って言った方がいいかも。
656デフォルトの名無しさん:2008/08/05(火) 09:08:55
サブルーチンって更に化石用語な気が。
657デフォルトの名無しさん:2008/08/05(火) 09:29:32
Procedure / Function、Sub / Function のように
関数とサブルーティンを分ける言語も多いね。
サブルーティンを戻り値のない関数としたのはCあたりからだったかな。
658デフォルトの名無しさん:2008/08/05(火) 10:25:21
BackGroundWorkerとThreadってどっちがパフォーマンスいいの?
659デフォルトの名無しさん:2008/08/05(火) 10:38:04
気にするほどのもんでもない
660デフォルトの名無しさん:2008/08/05(火) 11:21:39
>>307
.Where 以降の構文は、3.5から追加されたものだと
思うのですけれども、なんと呼称されているでしょうか?

オブジェクト内のメソッド呼び出しのようですし
Linq とはまた別の新しい技法のような気がします。

てか、Where, ToList, ForEach が一般的過ぎて検索しにくい・・・
661デフォルトの名無しさん:2008/08/05(火) 11:22:42
拡張メソッド
実態は静的メソッドの呼び出し
662660:2008/08/05(火) 11:39:51
http://72.14.235.104/search?q=cache:XjAX73gxeIgJ:msdn.microsoft.com/ja-jp/library/bb342261.aspx+Where,+ToList,+ForEach+3.5+C%23&hl=ja&ct=clnk&cd=1&gl=jp&lr=lang_ja

というかドキュメント嫁、じぶん
基本型のbuiltin関数を暗黙的にオーバーロードしてる
いうのが何か引っかかる・・・Where, ToList, ForEachは
どこに所属してるメソッドなのかという、Linq難しいな…orz
663デフォルトの名無しさん:2008/08/05(火) 11:53:22
for m in Assembly.LoadFrom("Hoge.dll").GetType("Hoge.Tool").GetMethods():
 where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A')):
  for elm in m.ToList():
   Console.WriteLine(elm)

.Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A'))
.ToList().ForEach(Console.WriteLine);

sql みたいな書き方をしてる事例ちょくちょく見かける
あれはシンタックスシュガーみたいなもんかしらん

http://209.85.175.104/search?q=cache:M90LdfsXoOYJ:msdn.microsoft.com/ja-jp/library/system.reflection.fieldinfo.ispublic(VS.80).aspx+IsPublic+IsPrivate&hl=ja&ct=clnk&cd=3&gl=jp&lr=lang_ja

IsPublicは fieldinfo のメソッドか・・・
C#だとメソッドもフィールドの一種なのかな、C++と違うとか
664660:2008/08/05(火) 12:01:18
665デフォルトの名無しさん:2008/08/05(火) 22:50:40
>>660
それもLINQ。

from x in list where x > 10 select x; みたいなのはLINQクエリ式。
list.Where(x => x > 10); みたいなのはメソッド形式のLINQ。

>>663
そう、構文糖衣。
from x in listX
from y in listY
select x * y;
みたいな構文が、メソッド形式ではどうやってもスマートな書き方できなかったから導入されたらしい。
666デフォルトの名無しさん:2008/08/05(火) 23:37:27
>>665
その例だと

listX.SelectMany(x => listY, (x y) => x * y)

こうなるけど、例としては不十分な気がする
これくらいにしないと

from x in listX
from y in listY
where x > y
select x * y;

listX.SelectMany(x => listY, (x, y) => new { x, y })
.Where(z => z.x > z.y)
.Select(z => z.x * z.y);

あと、let入るとさらに面倒になるな
667デフォルトの名無しさん:2008/08/05(火) 23:45:10
user32.dllのAnimateWindow()を呼び出しているのですが、
CPU負荷が大きくてガクガクします。
負荷を下げる方法ってありませんか?
668デフォルトの名無しさん:2008/08/06(水) 00:03:44
AddRange()に二次元配列を渡す方法はないですか?
669デフォルトの名無しさん:2008/08/06(水) 00:13:20
>>668
直接は無理。
LINQ 使って軽い変換かければ可能。

例えば、int[ , ] array なら l.AddRange(array..OfType<int>());
int[][] なら l.AddRange(array2.SelectMany(x => x));
670デフォルトの名無しさん:2008/08/06(水) 00:57:12
乙です。
671デフォルトの名無しさん:2008/08/06(水) 02:23:30
>>666
外部結合になるとクエリ式でももうわけわからん
var r2 =
 from x in "abcdefghijklmn"
 join y in "ABCDEFGHIZ"
 on x equals Char.ToLower(y) into yex
 from y in yex.DefaultIfEmpty('.')
 select new string(new char[] {x, y});
672デフォルトの名無しさん:2008/08/06(水) 05:36:57
VS2008EEを使用中です。
C#でDBを使うデスクトップアプリを作る場合、
DBは何を使うのがベストなのでしょうか?

とりあえずSQL compact3.5ってのを弄ってみましたが、
DBファイルが独立して作られてて、なんか妙な気分です。
ビルドしたらアプリに含まれるようになるんでしょうか?

ほかにXMLを使うやり方もあるそうですが、難易度高すぎる気がします。
なにか他にお勧めあったら、教えてくだちい。
673デフォルトの名無しさん:2008/08/06(水) 08:23:08
DBをアプリに含めるってのの方が変じゃね?
LINQ使えばXMLもSQL Server Compactも大差ないと思うが。
674デフォルトの名無しさん:2008/08/06(水) 08:27:51
>ビルドしたらアプリに含まれるようになるんでしょうか?
そんなん聞いたこともないわ。
Accessのイメージで言ってるのか?
675デフォルトの名無しさん:2008/08/06(水) 09:10:50
Firebird使えばできなくもないがXMLで難易度高すぎなら無理だろうな
676デフォルトの名無しさん:2008/08/06(水) 09:32:53
>>673,674
別になってるのが普通なんですね(汗
おっしゃるとおり、Accessのようなものをイメージしてましたorz
言われてみれば、Web系でもDBと処理は別になりますよね・・・

>>675
一応、ちょっとだけ弄ってみたんですが、
木構造が複雑になってしまい、これだったら慣れてるRDBのほうが楽かなと。
恥ずかしながらFirebirdは初耳でした。ちょっと調べてみます。
677デフォルトの名無しさん:2008/08/06(水) 18:39:17
>676
何がしたいのか分からないけどXmlSerializerあたり調べてみたら?
678デフォルトの名無しさん:2008/08/06(水) 19:15:20
「DBファイルが独立して〜」の意味が把握できないけど、アプリにDBを組み込ん
じゃいたいってことなら SQLite とかの組み込みDBって手があるよね。
679デフォルトの名無しさん:2008/08/06(水) 19:34:28
>678
俺も>672を読んでそう思ったので組み込みDBにできるFirebirdの名前出した。
けど>676読んだら「RDBが使いたい」ってわけじゃ無い感じがしたんでXmlSerializer言ってみた。
680デフォルトの名無しさん:2008/08/06(水) 20:23:58
コントロールのバインドはDBじゃなくてたんなる
int[]とかからも情報を取り込めるですか?
681デフォルトの名無しさん:2008/08/06(水) 20:54:29
foreach (var msg in FizzBuzz(100)) {
  Console.WriteLine(msg);
}
ということができるように、
public static IEnumerable<bool> Fizz() {
  while (true) {
    yield return false;
    yield return false;
    yield return true;
  }
}
public static IEnumerable<bool> Buzz() {
  while (true) {
    yield return false;
    yield return false;
    yield return false;
    yield return false;
    yield return true;
  }
}
682デフォルトの名無しさん:2008/08/06(水) 20:56:28
public static IEnumerable<string> FizzBuzz(int max) {
  var fizz = Fizz();
  var buzz = Buzz();
  foreach (var i in Enumerable.Range(1, max)) {
    bool isFizz = fizz.First();
    bool isBuzz = buzz.First();
    fizz = fizz.Skip(1);
    buzz = buzz.Skip(1);
    if (isFizz && isBuzz) {
      yield return "FizzBuzz";
    } else if (isFizz && !isBuzz) {
      yield return "Fizz";
    } else if (!isFizz && isBuzz) {
      yield return "Buzz";
    } else {
      yield return i.ToString();
    }
  }
}
こんな感じのメソッドを作ってみたのですが、複数のIEnumerableを並行して進めながら処理するforeachみたいなのってないのでしょうか?
自前でFizzとBuzzを1つずつ進めてるのがいまいちスマートじゃない気がして、複数のIEnumerableを並行して進める手軽な方法ってないでしょうか?
foreach (var i, isFizz, isBuzz in Enumerable.Range(1, max), Fizz(), Buzz()) {
とかみたいな雰囲気でまとめて書く方法ってないですか?
683デフォルトの名無しさん:2008/08/06(水) 21:12:29
>>682
ZipWithみたいなのが欲しいということかな?
だったら、デフォルトでは存在しない。自作している人ならちらほら居る。
684デフォルトの名無しさん:2008/08/06(水) 21:13:24
うん?
EXEとDBファイルが同じファイルになるのを期待してると思ったんだが。
Accessのイメージって言ってるし。
SQLiteもFirebirdもんなこたないんじゃないの?

SQL compact3.5だっておんなじようなもんでそ?
685デフォルトの名無しさん:2008/08/07(木) 00:10:49
サーセン676です。
684さんのおっしゃる「EXEとDBファイルが同じファイル」を期待してました。
DBもMS謹製しか使えないかと思ってましたが、
他のも結構使えるようなので、改めて調べてみます。
686デフォルトの名無しさん:2008/08/07(木) 00:36:50
C#プログラムでで正規表現を使っているのですが、
正規表現中にPerlのように
ttp://8-p.info/perl-interpolation/

string hoge = "hogehoge";
Regex r = new Regex(@".*hoge"); //hogehogeが展開される
のようにして変数を展開することはできるでしょうか?
687デフォルトの名無しさん:2008/08/07(木) 00:46:55
普通に

".*" + hoge

では駄目な理由は何?
688デフォルトの名無しさん:2008/08/07(木) 00:46:56
変数を展開って何?
689デフォルトの名無しさん:2008/08/07(木) 00:48:21
ああ、そういうことか。
string.Format かなにかで文字列化してから Regex に食わせればOK。

文字列中に ".*$hoge" みたいに変数入れたければ PowerShell 使えばいいと思う。
690デフォルトの名無しさん:2008/08/07(木) 01:35:37
685です。ありがとうございます。
変数を展開したい理由は何かと問われれば
変数hogeの文字列も外部の関数から取得してくるからです。
691デフォルトの名無しさん:2008/08/07(木) 02:56:21
>>685?ん?
色々カオスってるぞ。
>>686のリンクも行けないぞ。
692デフォルトの名無しさん:2008/08/07(木) 03:10:51
AllowsTransparencyをtrueにするとウインドウフレームが表示できなくなってしまうのですが、
System.Windows.Windowで下のSS最前面のウインドウのようにOpacityを使用するにはどうしたらいいのでしょうか?

最前面のウインドウはSystem.Windows.Formsです。
ttp://www.imgup.org/iup662583.png
693デフォルトの名無しさん:2008/08/07(木) 10:52:52
質問です。
環境:C#2.0です。
あるファイルパスがあるとして、
同じディレクトリに別のファイルを作りたいとき、
どのようにファイルパスを作ればよいでしょうか。
(パスそのものを作らなくても書き込みできればよいので
FileInfoとかでもよいのですが)

string path1 = @"C:\xx\yy\aa.txt";
FileInfo file1 = new FileInfo(path1);
string path2 = file1.FullName.Replace(file1.Name, "bb.txt");

なんてもの考えましたが完全じゃないですし。
どうやるのが真っ当なやり方でしょうか。
いろいろ調べてみましたがわかりませんでした。
よろしくお願いします。

// javaで言うところの new File(directoryName, filename) なんてのが
// あればと思ったんですけど少なくともFileInfoにはなかったので
694デフォルトの名無しさん:2008/08/07(木) 10:59:02
Path.GetDirectoryNameとかPath.Combineとか
695デフォルトの名無しさん:2008/08/07(木) 11:33:51
ありがとうございます。調べてみます。
696デフォルトの名無しさん:2008/08/07(木) 21:20:06
objectを引数に取る関数とかobjectのプロパティとかってクラスライブラリを見ただけじゃ
何をセットすればいいのか分からない場合が多いんですがどうやって調べればいいんでしょうか?
ググって事例を探してるんですが、事例が無いと完全にお手上げです。
697デフォルトの名無しさん:2008/08/07(木) 21:23:07
千里の道も一歩から始まることを信じよう
それ、わんつーわんつー
698デフォルトの名無しさん:2008/08/07(木) 21:26:37
確かに.netはobject型を引数に取るとか多いな。JavaでObject型を引数に取るのはあんまり見ないのに。
この辺って何か思想の違いみたいなのがあるん?
699デフォルトの名無しさん:2008/08/07(木) 21:32:04
>>698
Javaはプリミティブ型がObjectを継承してないからじゃないの
700デフォルトの名無しさん:2008/08/07(木) 21:36:16
いざとなったらReflectorで中追っかけてみる
701デフォルトの名無しさん:2008/08/07(木) 21:37:41
>>698
そんなに多いか?
非ジェネリックなコレクション以外あまり思いつかないが…
702デフォルトの名無しさん:2008/08/07(木) 21:40:11
非ジェネリックコレクションとIComaprableあたりは当然として、
WriteLineやString.Format系、Thread関係のデリゲート、
EventHandlerのsender、ほかなんだっけ。
703デフォルトの名無しさん:2008/08/07(木) 21:43:01
ICloneable.Cloneがそう。共変性がないからobjectを返さないわけには行かない。
704デフォルトの名無しさん:2008/08/07(木) 21:45:26
データソース関係とかobjectに何渡すのかわかりにくくないですか?
標準じゃないけど、nplotってライブラリも何を渡すのか分からなくてちょっと困った。
705デフォルトの名無しさん:2008/08/07(木) 21:47:03
JavaとC#とでそういう差が出そうなGenerics関連の違いって思い浮かばないけどな。
706デフォルトの名無しさん:2008/08/07(木) 21:51:09
データバインディングはそうですね。あれはリフレクション使いまくってるから。
707デフォルトの名無しさん:2008/08/08(金) 00:15:33
C#とCだったらC#のほうが入門には適しているでしょうか?
708デフォルトの名無しさん:2008/08/08(金) 00:18:56
うん
709デフォルトの名無しさん:2008/08/08(金) 00:20:44
>>708
ありがとうございます。

それと、勉強するための本を買おうと思っているのですが
有名な物・お勧めの物はあるでしょうか?
710デフォルトの名無しさん:2008/08/08(金) 00:56:16
>>709
ネットで十分
711デフォルトの名無しさん:2008/08/08(金) 00:58:55
>>709
マジレスすると
http://ufcpp.net/study/csharp/index.html
がおすすめ
712デフォルトの名無しさん:2008/08/08(金) 01:02:11
>>711
ああ、それは俺もお勧め。
713デフォルトの名無しさん:2008/08/08(金) 02:15:19
>>711
読ませていただきます。
ちなみにVC#というソフトでみなさんはプログラムを書かれているんですか?
714デフォルトの名無しさん:2008/08/08(金) 02:16:28
うん
715デフォルトの名無しさん:2008/08/08(金) 03:05:21
むしろテキストエディタとWindowsSDKでやってる人がいたら尊敬する
716デフォルトの名無しさん:2008/08/08(金) 03:14:34
単なるバカだから尊敬できないな
717デフォルトの名無しさん:2008/08/08(金) 03:16:32
.Netが出始めてたころはそれでやってた人もいたようだがな
無料版のIDEも無かったし
718デフォルトの名無しさん:2008/08/08(金) 03:21:40
きちんと楽出来る環境が簡単に整えられるのに
わざわざ意味が無い苦労をする人がいたらそれは馬鹿だけど

そう言う環境が簡単には揃わない時代なら仕方ないじゃない
719デフォルトの名無しさん:2008/08/08(金) 09:17:43
今のVC#はテキストエディタとしても異常に快適だからな
720デフォルトの名無しさん:2008/08/08(金) 09:56:00
プライベートで他のクラスからアクセスする必要のないフィールドって内部クラス化した方が良い?
外部クラス?それとももっとスマートな方法ってある?
721デフォルトの名無しさん:2008/08/08(金) 10:06:09
>>720
そのままプライベートのフィールドで持ってたらあかんの?
722デフォルトの名無しさん:2008/08/08(金) 10:13:20
フィールド==インスタンスの話が何故かクラスの話になるから意味が分からなくなる
723デフォルトの名無しさん:2008/08/08(金) 10:44:48
>>721
それじゃインスタンス1つ分にしかならなくね?
724デフォルトの名無しさん:2008/08/08(金) 10:51:40
行数多くなるとVisualStudioのロードが遅くなるから分けようかと思ったんだけど、
実行時に無駄にオーバーヘッド生むよね、本末転倒だったね・・・
725デフォルトの名無しさん:2008/08/08(金) 10:59:51
partialだかそんなのなかったっけ?
726デフォルトの名無しさん:2008/08/08(金) 11:59:03
VSに負担掛けるほどたくさんの行にフィールドが宣言されてるの?
ロードの時間とか細かいパフォーマンス気にする以前の問題だろそれ
さすがに分けるべき
727デフォルトの名無しさん:2008/08/08(金) 12:07:16
時代はパーシャル!
728デフォルトの名無しさん:2008/08/08(金) 18:59:02
トラックで全国回ってた人だねw
729デフォルトの名無しさん:2008/08/08(金) 22:45:56
>724
JITコンパイラの最適化を少しくらい頼ってみたら?
時々例外が起きたときのスタックトレースが妙に抜けてることがあって
インライン展開されてる様子がわかるとちょっと嬉しくなるよ。
730デフォルトの名無しさん:2008/08/09(土) 18:42:15
簡単なエディタを作っているんですが、
RichTextBoxを使ってて、描画領域を少し右にずらして、その空いた領域に
行番号を描画しています。Graphics.DrawStringです。
当然スクロールされたら行番号を変えなくちゃいけないですが、このとき
再描画する前に前回描画した行番号を消すには、
どんな方法が一番最適なのでしょうか。
731デフォルトの名無しさん:2008/08/09(土) 18:56:44
背景色で塗りつぶす
732デフォルトの名無しさん:2008/08/09(土) 19:22:56
趣味でやるぶんにはExpress Editionで十分ですか?
733デフォルトの名無しさん:2008/08/09(土) 19:25:03
趣味の内容によるかな。いわゆるベータ版マニアだとインストールできないアドインが
多いから十分じゃないかもしれない。
734デフォルトの名無しさん:2008/08/09(土) 19:25:51
>>732
十分。
735デフォルトの名無しさん:2008/08/09(土) 19:27:40
パッケージフェチとしてはやっぱり製品版じゃないと
736デフォルトの名無しさん:2008/08/09(土) 19:32:03
ドMな俺はSDKとメモ帳が最高。
737デフォルトの名無しさん:2008/08/09(土) 19:35:41
俺なんか仕事で評価版つかってるから大丈夫
738デフォルトの名無しさん:2008/08/09(土) 19:36:52
>>733
何か使えない機能があるということですか

>>734
そうですか

>>736
頑張ってください
739デフォルトの名無しさん:2008/08/09(土) 19:38:12
>>737
不具合はないですか?
740デフォルトの名無しさん:2008/08/09(土) 19:40:25
silverlight2やSQLServer2008用のアドインはSTD版以上だったかな。
741デフォルトの名無しさん:2008/08/09(土) 20:43:02
TextBox.Text = str;
とやっているのですが、strが大きいと処理時間遅くなるものなのですか?

str.Lengthが4320162だったのですが、10secくらいかかります。
中身のイメージではポインタのコピーとかではなく、実データを
コピーしているから遅いのでしょうか?

これを早くする方法はないのでしょうか?
742デフォルトの名無しさん:2008/08/09(土) 20:44:08
TextBox使うのやめて、オーナードローにする
743デフォルトの名無しさん:2008/08/09(土) 21:18:00
文字列代入の時だけ別スレッドで動かせばいいんですかね?
744デフォルトの名無しさん:2008/08/09(土) 21:22:01
コントロールにはそれを所有しているスレッドからしかアクセスできん
745デフォルトの名無しさん:2008/08/09(土) 21:26:41
>>742
の言ってる事は、
遅いのは文字列のコピーじゃなくて、その文字列の描画に時間が掛かってるんだよ

という事
746デフォルトの名無しさん:2008/08/09(土) 21:33:15
4320162ってヘタしたらXPのソースコードよりデカい気がするんだけど
そんなものTextBoxに表示してどうしろとw

ちなみに、RichTextBoxで代替したらあんがいあっさり解決しない?
747デフォルトの名無しさん:2008/08/09(土) 21:39:23
> XPのソースコードよりデカい
またまたご冗談を
748デフォルトの名無しさん:2008/08/10(日) 00:08:05
>746
RichTextBoxだと7秒くらいでTextBoxで17秒くらいかかります。
バイナリをヘキサで表示してるんですが、大きいものだとこの7秒とかの間
かたまってしまって・・・

>745
TextBox.Text = str;
の前と後にStopWatchクラスで処理時間を出してるんですが、
この代入には描画処理も含まれているということでしょうか?
RichTextBoxはコントロールで表示されているところの描画のみ
してくれるわけではないのでしょうか?

>744
コントロールに別スレッドからでもアクセスする方法ってありません
でしたっけ?Invokeとか?

RichTextBoxには表示したいところだけバイナリを情報を代入してけば
いいんですかね?スクロールするたびに出したり消したりするとか?
749デフォルトの名無しさん:2008/08/10(日) 00:11:16
>>748
InvokeはUIスレッドが今やってる仕事を中断させて別の仕事をやらせる関数。


そんなでかいデータ扱うなら横着しないでユーザコントロール書けばいいだろ。
750デフォルトの名無しさん:2008/08/10(日) 00:47:50
>>749
しつこいね君も。
簡単に言うけどかなり面倒だしそれなりに難しいと思うよ。
表示することだけ考えてない?
751デフォルトの名無しさん:2008/08/10(日) 00:56:37
>>750
それならもう勝手にしろよw

ヘキサエディタでできあいのコモンコントロール使ってるのあったら教えてね
752デフォルトの名無しさん:2008/08/10(日) 01:03:48
すいません横着させてくださいっす。新しくユーザーコントロールはきついっす。
RichTextBoxがそういう仕様ならやはりちょびちょび表示ですかねぇ。。。
753デフォルトの名無しさん:2008/08/10(日) 01:11:16
仮想モードでListViewでもつかえば
754デフォルトの名無しさん:2008/08/10(日) 01:30:38
プログラム板ってさ、低脳ばっかだよね。
OpenGLスレくらいだなマシなのは。
755デフォルトの名無しさん:2008/08/10(日) 01:31:29
OpenGLスレ見てみたがアホばっかりなんだが…
756デフォルトの名無しさん:2008/08/10(日) 01:50:58
>>755
どんなスレ見てるの?
757デフォルトの名無しさん:2008/08/10(日) 06:43:35
>>748
TextBox.AppendText()は使ってみた?
InvokeRequiredとInvoke, BeginInvokeはUIスレッドにマーシャリングしてくれるメソッド
758デフォルトの名無しさん:2008/08/10(日) 07:23:19
>757
TextBox.AppendText(str)も同じくらい時間かかりました。

>753
>仮想モードでListView
kwsk
759デフォルトの名無しさん:2008/08/10(日) 08:24:17
zip内のファイルを実行したい(wav鳴らすとか)のですが、そのためには一時フォルダ等に
ファイルを展開しなければならないのでしょうか?
zip内に格納したままあれこれやるってのは不可能なのでしょうか?
760デフォルトの名無しさん:2008/08/10(日) 08:28:07
うん
761デフォルトの名無しさん:2008/08/10(日) 10:40:14
SharpZipLibでメモリに展開し、Win32APIのwaveOutWriteやDirectSoundに流せばできるんじゃね?
762デフォルトの名無しさん:2008/08/10(日) 10:41:55
Streamに展開すればいいんじゃね?
763デフォルトの名無しさん:2008/08/10(日) 13:56:58
質問です

DBからデータを取得し、その構造体を返すクラスを作成しています。
私個人としては、datasetの形でかえしたいと思っています。

しかし、速度の問題から、
listを返すようになっています。


datasetで値のやりとりをするのと、<list>でやりとりをするので
そこまで速度やパフォーマンス、メモリの負担などはかわるのでしょうか?

ただのgetsetのプロパティのついたクラスのarraylistを、データとして使うほうが
早いのでしょうか?
僕としては、ここは.NETらしくdatasetを使いたいのですが。
764デフォルトの名無しさん:2008/08/10(日) 14:03:31
とりあえず測ってみればいいんじゃないかな
765デフォルトの名無しさん:2008/08/10(日) 14:06:39
構造体返すんだったらデータセットよりも素直にコレクションで返してくれた方が
使う側としては便利だと思うけど
766デフォルトの名無しさん:2008/08/10(日) 14:13:54
>>758
kwskじゃなくてまずググれよ
767デフォルトの名無しさん:2008/08/10(日) 14:14:57
.NETの構造体の意味を誤解している可能性大
768デフォルトの名無しさん:2008/08/10(日) 15:14:59
代入では無くて文字列の描画に時間がかかってるなら、
ユーザードロウしない限り改善不可能じゃないか?
769デフォルトの名無しさん:2008/08/10(日) 17:51:36
>>765
そうでしょうか。

たとえば、DataSet(型付Datasetという意味です)でデータを持つか
構造体でデータを持つか
そのメリットデメリットってそもそもなんなんでしょうか

datasetだと、複数テーブルをセットして、
リレーション張ったり、
うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり
デザイナでデザインできたりするところだと思うのですが

構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり

僕が間違っていますか。
770デフォルトの名無しさん:2008/08/10(日) 18:05:43
時と場合による
771デフォルトの名無しさん:2008/08/10(日) 18:25:37
とりあえず「構造体」というものについて勘違いしてるのはよくわかった
クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない
772デフォルトの名無しさん:2008/08/10(日) 21:53:50
構造体って値で返すのか
773デフォルトの名無しさん:2008/08/10(日) 22:11:58
>>771
すいません、
えっとarrayistを返すか、datasetを返すかということでした。すいません。
774デフォルトの名無しさん:2008/08/11(月) 01:12:06
作り手はdatasetのほうがいいだろうさ

使う側はどういう用途なの?

それがわからんと良いとも悪いともいえん
775デフォルトの名無しさん:2008/08/11(月) 12:33:44
MSDNライブラリには

SpinWait のコードの実行は、
複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。
たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、
SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。

とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?
776デフォルトの名無しさん:2008/08/11(月) 12:42:36
ケースバイケース
777デフォルトの名無しさん:2008/08/11(月) 15:32:52
>>775
ていうかその説明は Sleep 関係ない。
Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア
みたいな環境でも問題起こりませんよっつー意味

なんでそんな注意書きがあるのかはスピンウェイト、スピンロック
あたりでググってまずそのメソッドが何するのか分かれ。
ついでに Sleep との違いも
778デフォルトの名無しさん:2008/08/11(月) 16:12:16
マルチコアだけでなくハイパースレッディング環境でも
一応うまく動くようになってるよってことじゃないの?
779デフォルトの名無しさん:2008/08/11(月) 16:16:00
マルチコアやハイパースレッディングみたいな環境でも問題起こらないって…
普通マルチコアやハイパースレッディング環境でしか使わないだろ

でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ?
実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。
780デフォルトの名無しさん:2008/08/11(月) 16:19:36
コードを見ようと思ったがネイティブに飛んでてわからなかった。
予想できることは一定時間ごとにスレッドを譲る仕掛けか、
一定時間でSleepに変更するかといったところだろう。
1CPUの場合はすぐさまスイッチしないと意味が無いし、
2CPU以上ならある程度スピンさせてても大丈夫だろう。
HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。
781デフォルトの名無しさん:2008/08/11(月) 17:44:20
スピンはスレッド中断には移行しない。
だから自分でバックオフを持たなきゃならない。
まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。

ついでに大抵シングルコア環境では使わない。

HTの場合は処理なし命令?でスピンして、有効な処理ではないことが
CPUに分かるように実装されてるはず。
782デフォルトの名無しさん:2008/08/11(月) 18:42:10
いやシングルコアでは使わないって言うか使うよ。高精度な
というかスイッチしない待ちのとき使うものでコア数関係ない
あえて言えば Win 上で動くからか

ちなみに HT の場合の話だがシェアするからビジーさせると
それが埋め尽くしちゃってパフォーマンスが極端に低下する。
だから PAUSE 命令が追加されててスピンにそれを使う必要が
あるんだがそれ使ってますよみたいな意
783デフォルトの名無しさん:2008/08/11(月) 19:38:13
シングルコアでスイッチしない待ちをやること自体が少ないんじゃないの?
784デフォルトの名無しさん:2008/08/11(月) 19:40:27
あ、ここでのシングルコアはHTは含んでない。
785デフォルトの名無しさん:2008/08/11(月) 21:13:56
>>783
内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」
指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ
いじって Sleep とスピンウェイトのあわせ技がいい。
機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム
系しか知らん。

というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ
みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。
ぜんぜん別やん。
もしかしてマルチコアじゃなくマルチスレッドっていう話か?

…それはそれとして思い出したんだが iterations を現実時間から計算する
方法知っている人いたりしない?
786デフォルトの名無しさん:2008/08/11(月) 21:55:36
いや、一般にメディア、ゲーム系なんていう特殊な用途以外じゃ
まず使う機会がないって感覚だった。
Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。

ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??
787デフォルトの名無しさん:2008/08/11(月) 22:15:43
>>786
モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。
マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。
1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や
他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。
ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。
788デフォルトの名無しさん:2008/08/11(月) 22:28:21
だよねってことが聞きたかった。
単にシングル環境での
>内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
について疑問だっただけ。
789デフォルトの名無しさん:2008/08/12(火) 14:28:25
C#のおもしろい、本・ホームページ教えてけれ。

今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。

なんでもいいから、教えてけれ。
790デフォルトの名無しさん:2008/08/12(火) 15:19:44
ちょっとGUIでアプリ(簡単な物)を作ろうと思ったのですが
C+APIはもう嫌になったので(殴
新たに何か言語を勉強すべくC#に目をつけたのですが、

・GUIアプリ製作のためにC#を学ぶ
この考えはまずいでしょうか?(もしくは他にもっと良いものがある?)
(プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)
791デフォルトの名無しさん:2008/08/12(火) 15:25:51
いいと思うよ
792デフォルトの名無しさん:2008/08/12(火) 15:30:00
>>789
猫でもわかるは知ってるよね?
ttp://www.kumei.ne.jp/
793デフォルトの名無しさん:2008/08/12(火) 16:07:25
>>790
全然良い。
逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。
イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。
頑張れ。
794デフォルトの名無しさん:2008/08/12(火) 16:24:17
JavaだろうがC#だろうがマルチスレッドになってからが本番だと思う
795デフォルトの名無しさん:2008/08/12(火) 16:44:19
>>789
Google 先生の評価に従ってみるのもいいと思う。
796789:2008/08/12(火) 18:44:30
>>792
猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。
やってみるよ。さんくす!

>>795
Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、
がんばるよ。ありがとう。
797デフォルトの名無しさん:2008/08/12(火) 20:56:08
MicrosoftPressのプログラミング.NET Frameworkが良かった
デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ
798デフォルトの名無しさん:2008/08/13(水) 09:50:20
DataGridViewを利用した自作カレンダーを作ったんだが、
これを複数のフォームで使いたいのね。
そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、
どっちがいいの?
てか、プロジェクトに追加するクラスって、どういう時に使うの?
799デフォルトの名無しさん:2008/08/13(水) 14:20:32
>>798
どっちでもとりあえず目的は達成できる。
他のコードでも使いまわしたいのならクラスライブラリにした方がいいかも。
そういう用途ならDataGridViewから派生することになると思うんだけど、
そのあたりはちゃんと理解してるの?

>てか、プロジェクトに追加するクラスって、どういう時に使うの?
え?質問の意味が。。
800デフォルトの名無しさん:2008/08/13(水) 15:04:10
>>799
そのあたりは理解してない気がする・・・

とりあえずクラスライブラリとして作ったやつが、カレンダーの日付と曜日を取得するだけで、
DataGridViewはその都度フォームに手動で配置して、取得したデータを流し込んでる。
これは、派生してることにならないですよね?
DataGridViewも自動生成するようにしたら、「派生する」になる?

追加クラスは、クラスライブラリがあるのに、
わざわざ追加クラス使う意義って、何だろうなーと思いました。
801デフォルトの名無しさん:2008/08/13(水) 20:00:36
>>800
言語としてのC#を一度ちゃんと勉強した方がいいと思うぞ。
「猫でもわかる」や@ITの記事でも十分だから。
802デフォルトの名無しさん:2008/08/13(水) 20:35:46
>>801
@ITの改訂版 C#入門を、作りながら参照する感じで見てたんですが、
そういうのは良くないなと、自分でも思ってましたorz
改めて最初から最後までキチッと目を通して、出直してきます。
803デフォルトの名無しさん:2008/08/13(水) 21:12:28
>>802
@ITにも継承についての解説くらいはあるんじゃないの?
804デフォルトの名無しさん:2008/08/13(水) 21:15:11
だから
今までちょいちょいつまんで見てたのを最初から通して読むことにしました
って書いてあるじゃんよ
805デフォルトの名無しさん:2008/08/13(水) 22:00:16
.NET3.0→3.5ってC#的には何か変わるんですか?
806デフォルトの名無しさん:2008/08/13(水) 22:07:15
>>805
C# 2.0からC# 3.0になった。
型推論とか拡張メソッド、クエリ式とか。
807デフォルトの名無しさん:2008/08/13(水) 22:24:58
>>806
素早い回答、ありがとうございます。
.NET 2.0→ 3.0でC# 3.0が採用されたわけではなかったんですね。
根本的なところを勘違いしてました。 お恥ずかしい。
808デフォルトの名無しさん:2008/08/13(水) 22:26:53
ちなみに.NET3.0でも(.NET2.0でも)C#3.0を使える
809デフォルトの名無しさん:2008/08/13(水) 22:43:00
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_05/csharp30_05_01.html

> しかし、C# 2.0にどっぷり漬かったプログラマーに対して、これはあまりに難題だ。なぜかといえば、
> usingキーワードとはC# 1.0から存在する当たり前の機能であり、名前の短縮形を与えるために使
> われるだけだった。使用できる機能をオン/オフする役割など持っていなかったはずだ。それが「ス
> イッチ」としての機能を持つなど、容易には想像できないだろう。

なんか3.0からusingに新しい機能が追加されたような書き方だけど、
単に、using hoge; で、hogeの下の拡張メソッドが使えるようになるだけの話だよね。これ。
810デフォルトの名無しさん:2008/08/13(水) 23:03:36
>>809
むしろ君が何を言いたいんだ。
その文章特におかしいように感じないんだが。
811デフォルトの名無しさん:2008/08/13(水) 23:25:22
あいかわらずの川俣節だな。
812デフォルトの名無しさん:2008/08/14(木) 00:00:45
>>809
> 本題に入る前に、よくあるトラブルの事例を見てみよう。

いかにも頭の中で考えたような、なさそうな事例だな。
813デフォルトの名無しさん:2008/08/14(木) 00:09:13
シンプルに書けば凄くわかりやすい機能なのに、
わざわざ分かりにくく書いてるよな……
814デフォルトの名無しさん:2008/08/14(木) 00:10:21
まあ、>>811 がすべてを物語ってるなぁ。
「だって川俣だから」
815デフォルトの名無しさん:2008/08/14(木) 01:08:25
拡張メソッドで拡張したクラスを継承しても、その拡張メソッドは使えるの?
List<T>の解説を読むとインターフェイスを拡張してると書いてあるから使えるみたいだけど。
継承してもあくまで拡張メソッドだからオーバーライドもだめだよね?
816デフォルトの名無しさん:2008/08/14(木) 01:16:31
試してみればわかるのに。
817デフォルトの名無しさん:2008/08/14(木) 09:26:08
>>813-814
そう感じるのは、君たちが自分が理解してようがしまいが「動けばいいや」
的なコピペプログラマーだからなんじゃないのむしろ?w

そりゃそういう人間の視点からすれば、「一行で済むことをなにゴチャゴチャいってるんだ?」
としか思えないのは理解できる。
818デフォルトの名無しさん:2008/08/14(木) 09:29:53
>>817
言い訳は見苦しいぞ、川俣
819デフォルトの名無しさん:2008/08/14(木) 09:30:17
同感
820デフォルトの名無しさん:2008/08/14(木) 09:30:57
あ、失礼。>>819>>817に対してね。
821デフォルトの名無しさん:2008/08/14(木) 09:45:00
>>817
逆だろ。
理解できてるから、「なんでこんなに回りくどい説明するんだ?」と疑問に感じるんだよ。
連載の第6回に予定している内容を先に書けばいいのに、こういう書き方するのは
執筆ネタの水増し目的としか思えない。
822デフォルトの名無しさん:2008/08/14(木) 10:10:13
自分が理解できてないのかもしれないので、ちょい質問。

拡張メソッドって、拡張元クラスの静的メソッドに置き換えて考えれば終わりだと思ってたのだけど、
それ以上に新しい意味があるの?
そりゃ、名前が衝突したときの順位は問題になるだろうけど。

低レベルな質問で申し訳ないが、折角なのでこの機会に理解しておきたい。
823デフォルトの名無しさん:2008/08/14(木) 10:31:03
>名前の短縮形を与えるために使われるだけだった。
なんですと?
ttp://www.divakk.co.jp/aoyagi/csharp_tips_using.html
こういう機能もあるやん
824デフォルトの名無しさん:2008/08/14(木) 10:47:12
>>822
その理解でOK。
強いて言えば、拡張メソッド記法からデリゲートを作る時はちょっと特殊。

static string MyToString(this object o) { .... }

こういう拡張メソッドがあるときに、次のようなコードを書いたら何が起きるか、という話。

Func<string> func = obj.MyToString();
825デフォルトの名無しさん:2008/08/14(木) 11:11:12
>>824
詳しく解説をたのむ。
デリゲート作るならこんなんじゃない?
Func<string> func1 = () => obj.MyToString(); 
Func<string> func2 = () => xxxExtentions.MyToString(obj); 
Func<object, string> func3 = xxxExtentions.MyToString;
Func<object, string> func4 = (o) => o.MyToString();
826デフォルトの名無しさん:2008/08/14(木) 11:16:24
これもできるか
Func<string> func5 = obj.MyToString;

827デフォルトの名無しさん:2008/08/14(木) 11:29:36
> 強いて言えば、拡張メソッド記法からデリゲートを作る時はちょっと特殊。

確かに、単純に静的メソッドに置き換えられない場合か……
色々試してくるわ。 ご指摘ありがとう。
828デフォルトの名無しさん:2008/08/14(木) 13:00:29
>>825
ごめん。 >>826 にあるように最後の () が不要だった。

詳しくはこことかをどうぞ。
"Extension methods and Curried Delegates"
ttp://blogs.msdn.com/sreekarc/archive/2007/05/01/extension-methods-and-delegates.aspx
829デフォルトの名無しさん:2008/08/14(木) 15:37:23
>>817
さすがにその感覚は理解できない。
830デフォルトの名無しさん:2008/08/14(木) 16:41:44
いや、内容的に全く理解できないわけじゃないが、今回の記事内容に関しちゃ

拡張メソッドは定義されてる名前空間をusingしないと使えないことに注意(通常とは異なり、名前空間をusingせずにフルで記述する方法は使えない)。

くらいの一文で十分だろう。
ぐだぐだ書く必要はない。
831デフォルトの名無しさん:2008/08/14(木) 17:54:00
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」

http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
 *サーバー側
  言語はRubyかPerlの予定ですが、Perlが有力候補。
  ・チャット
   定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
   通信するときのフォーマットは未定。
  ・ログイン・アカウント管理
   ログイン認証、各アカウントの点数などの管理。データベースは未定。
  ・お絵描き
   未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
 *クライアント側
  はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
 「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
 挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
 サイトのデザインを考えてくれる人、作ってくれる人募集中。
 できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
832デフォルトの名無しさん:2008/08/14(木) 19:12:58
コピペ君って馬鹿だな、まで読んだ。
833デフォルトの名無しさん:2008/08/14(木) 19:54:41
スルー出来ない奴がいるようだw
834デフォルトの名無しさん:2008/08/14(木) 20:24:03
「コピペ君って馬鹿だな、まで読んだ。」って、urlが張られたら自動的に書き込むスクリプトでしょ?
835デフォルトの名無しさん:2008/08/14(木) 20:24:51
コピペ君?w
836デフォルトの名無しさん:2008/08/14(木) 20:32:28
>>817
川俣信者って川俣と同じく、難癖のつけ方に無理がありすぎるな。
837デフォルトの名無しさん:2008/08/14(木) 20:35:35
>>830
っていうか、あのusingの解説って、絶対誤解を与えてるよ。
838デフォルトの名無しさん:2008/08/14(木) 20:44:41
初心者向けにわかりやすく書こうとして、ちょいカラ回りなのはいつものこと
839デフォルトの名無しさん:2008/08/15(金) 00:45:20
templateをダウンロードできるサイトを知りませんか?
840デフォルトの名無しさん:2008/08/15(金) 02:24:23
何でたまにインテリセンス働かないのかなぁって思ってたらこういう事だったのか。
System.Linqなんて使わんわと思って手動で消してたよ(´・ω・`)

俺みたいなアホには冗長的でも解説があるだけで有りがたいです・・・
841デフォルトの名無しさん:2008/08/15(金) 07:34:16
川俣信者必死www
842デフォルトの名無しさん:2008/08/15(金) 11:26:03
どうでもいいが信者とかなんとかいい歳こいて幼稚臭さが抜けない奴って
リアルでいるんだね。

幼稚なボクに理解できるかどうかわからないが、
そういうのは「信者」呼ばわりされれば腹が立つお前さん自身を他者一般に投射しているわけで、
要するに「思い入れ体質で、かつ打たれ弱い」お前さん自身を語ってることになると思うんだけど。
843デフォルトの名無しさん:2008/08/15(金) 11:36:08
>>842
信者乙ww
844デフォルトの名無しさん:2008/08/15(金) 11:48:51
川俣は信者まで文体が回りくどいのか
845デフォルトの名無しさん:2008/08/15(金) 12:08:02
>>842
VB使ってる奴らの方がそういう「叩きがいがある」のが多いよ。
少し奴らの言い分聞いてみたり覗いてみたら?
846デフォルトの名無しさん:2008/08/15(金) 12:27:33
Hashtableのシングルライタ・マルチリーダに関するスレッドセーフ性について、
MSDNでもバージョン毎に書いてることどんどん変わってるんだが、
結局ライタを同期すればスレッドセーフってことでいいのか?
それともそれだけじゃ駄目なのか?

最新の記述でも矛盾する事が同じとこに書いてある感じで、よく分からない。
847デフォルトの名無しさん:2008/08/15(金) 20:52:22
別に難しく考える必要は無くてほかのコレクションと同じ
読み込みと書き込みは同時に行っちゃダメ
書き込みは複数スレッドから同時に行っちゃダメ
あとSynchronizedは忘れろほとんど意味ないから、同期するならlockかReaderWriterLock
848デフォルトの名無しさん:2008/08/15(金) 21:59:26
いや、出来るだけ並行性を上げたいのよ。
Hashtableだけその辺の動作条件が違うでしょ。
しかも同期ラッパー経由でもスレッドセーフじゃないとか。

出来ればロックしないマルチリーダと
書き込み同士のみロックするシングルライタ
っていう使い方がしたいのよ。

1.1の時はこれでスレッドセーフと書いてあって
2.0ではスレッドセーフじゃないに変わって
現在さらに複雑な記述になってる。
でも2.0みたいに頭から駄目にはなってない感じ。
849デフォルトの名無しさん:2008/08/16(土) 08:24:17
こりない奴だな。そこまで求めるなら自分で作るしかないよ。
850デフォルトの名無しさん:2008/08/16(土) 09:04:44
糞重いなVS2008
851デフォルトの名無しさん:2008/08/16(土) 09:44:13
>>848
>現在さらに複雑な記述になってる

これ複雑で本当に分かり辛いよね。結局どういうことだったの?
852デフォルトの名無しさん:2008/08/16(土) 10:25:14
アウトラインエディタ超つかえねー
853デフォルトの名無しさん:2008/08/16(土) 14:09:38
>>851
説明の前半だけ見れば、書き込み同士だけ同期取ればいいように見えるんだけど、
後半でそれを覆してくれてるっていうか前半と矛盾してるように見える。

前半のシングルライタの意味が本当にひとつのスレッドだけからじゃないと駄目ってことなら、
なぜマルチライタの時に同期とるだけではだめなのか分からない。
書き込みがシリアル化されてたらの意味にも矛盾する気がするし…
854デフォルトの名無しさん:2008/08/16(土) 14:59:12
ReaderWriterLockなんてHashtableの同期に使うようなもんじゃない。
オーバーヘッドが大きすぎて多分ほとんどの場合ただのlockのがまし。
SP1で追加された?ReaderWriterLockSlim?ならまた違うかもしれないが。

ReaderWriterLockとかはどっちかっていうと、物理的なリソースアクセスの同期なんかに使うもの。
855デフォルトの名無しさん:2008/08/16(土) 16:30:27
>>853
原文読んでもやっぱり難解というか意味不明だけど一応こう解釈して見た。

ライタがHashtableにシリアル化される場合というのはlock(hash.SyncRoot){}を使うということ。
読み取りはlockする必要はないが、書き込みはlockにより完全にシリアル化される。

Synchronizedラッパーはすべてのメソッドに単純にlockを仕込んでいるわけではなく、
書き込みの並列性を上げるためひと工夫している。
この副作用としてラップする前のオブジェクトに直接読み書きされた場合はスレッドセーフ性が保てない。

読み書きともSynchronizedラッパーを使えば大丈夫なはず。
856デフォルトの名無しさん:2008/08/16(土) 16:50:05
マルチスレッドのことあまり勉強してないでしょw
857デフォルトの名無しさん:2008/08/16(土) 17:03:44
自己紹介乙
858デフォルトの名無しさん:2008/08/16(土) 17:39:48
シンクロナイズドラッパーはそんな賢いことはしてないね
書き込み関係のメソッドをlockしてるだけのようだ
lock (this._table.SyncRoot){
this._table[key] = value;
}
「ライタがHashtableにシリアル化される」の解釈はConstrol.Invokeなどで
スレッドに同期させるの意味ではなかろうか
859デフォルトの名無しさん:2008/08/16(土) 17:44:27
javaのConcurrentMapを移植してみるとか。
ソースは見れるんでしょ?
860デフォルトの名無しさん:2008/08/16(土) 18:59:34
System.Threading.CollectionsにMap系のクラスがそのうち追加されるでしょ
ParallelFXで
861デフォルトの名無しさん:2008/08/16(土) 19:08:00
あまり入りそうな感じがしないのは何故だろう…
862デフォルトの名無しさん:2008/08/16(土) 19:13:43
自分で使っているテンプレートzipをうpしてくれ。
863デフォルトの名無しさん:2008/08/16(土) 21:20:46
ContextBoundObjectつかってナイスな仕組み作ってる人おる?(´・ω・`)
864デフォルトの名無しさん:2008/08/16(土) 23:08:20
ナイスじゃないけど使ってる。
865デフォルトの名無しさん:2008/08/17(日) 06:30:25
ちょっと相談させてください。

本格的にc言語を勉強したいと思い下記のサイトをよんだりしていたのですが
やっぱり1から勉強するとしても情報が古すぎますか?
ttp://www9.plala.or.jp/sgwr-t/index.html
http://homepage3.nifty.com/mmgames/c_guide/

やっぱりテンプレのサイトに行って勉強した方がいいのかな?

今まで子供の頃から端々でプログラムを書いて利用する事はあったのですが
例題の文章を適宜加工して使っていた程度です。
本格的にc言語を学ぶにはどのサイトを参考にするのが現在お勧めなのでしょうか?
866デフォルトの名無しさん:2008/08/17(日) 06:47:26
すいません すれ違いだったので移動します。
867デフォルトの名無しさん:2008/08/18(月) 02:00:24
>>865
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/

ここで少しずつ一通り演習すれば使えるようになるよ
868デフォルトの名無しさん:2008/08/18(月) 14:54:32
C#というより.NETについての質問なのです。
インストールされている.NETのバージョンを調べたいので方法を教えてください。
ネットで調べた限りmscorlib.dllのファイルバージョンを調べるとよいことはわかりました。
しかし.NET3.0, 3.5 のバージョンはこの方法だとわかりません。
3.5の場合csc.exeのバージョンを調べればわかると思うのですが、
Client Profileだとcsc.exeが無いという話も聞きますし、
3.0の場合はどうすればよいか見当が付きません。
869デフォルトの名無しさん:2008/08/18(月) 15:10:39
>>868
HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.0
HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.5
870デフォルトの名無しさん:2008/08/18(月) 15:14:29
あー間違った。↓の方がいい。
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP
871870:2008/08/18(月) 15:20:19
補足

v1.1.4322、v2.0.50727、v3.0、v3.5の下の各InstallキーにDWORDの1が
格納されていれば、そのバージョンはインストール済みね。
872868:2008/08/18(月) 15:30:53
ありがとうございました。調べてみます。
873デフォルトの名無しさん:2008/08/18(月) 18:26:39
難読化ツールとか使わなくても変数名を日本語にすればReflecter for .NET防げるのに、
なんでみんなそうしないの?
874デフォルトの名無しさん:2008/08/18(月) 19:08:56
難読化(笑)
875oth:2008/08/18(月) 19:17:36
マルチディスプレイの情報を取得するのはScreen.AllScreensでできるみたいですが、設定するにはどうしたらいいんですかね?
win32見てもそれらしいのが見つからん・・・
876デフォルトの名無しさん:2008/08/18(月) 19:20:23
win32見る?
877デフォルトの名無しさん:2008/08/19(火) 00:34:38
Win32APIのことだろ
878デフォルトの名無しさん:2008/08/19(火) 01:33:11
サーセン質問です。
Win32APIでWindowFromPoint(POINT Point)という引数のPoint位置にあるウィンドウのハンドルを返すAPIがありますが、
これと似たような感じでPoint位置のWindowsFormsのコントロールのインスタンスを返すようなものはありますか?
(自分のプロセス内のもののみ対象でかまいません)
879デフォルトの名無しさん:2008/08/19(火) 01:54:15
>>873
日本語で書いてもみれるけど?
880デフォルトの名無しさん:2008/08/19(火) 02:02:42
>>873が日本語が不自由な国の人だから日本語化されるとそれだけで難読化されたに等しいとかじゃね?
881デフォルトの名無しさん:2008/08/19(火) 02:49:50
2ヶ国語を話せる人をバイリンガル
3ヶ国語を話せる人をトライリンガル
と言いますが、では1ヶ国語しか話せない人は何というでしょう?

答えを知りたい人は「一ヶ国語しか話せない人は、ジャパニーズ、又はアメリカン」で検索してね
882デフォルトの名無しさん:2008/08/19(火) 03:01:45
いや、つまんないから。
883デフォルトの名無しさん:2008/08/19(火) 09:41:31
884デフォルトの名無しさん:2008/08/19(火) 17:45:05
>>883
ありがとうございます。無事に取得できました。
てゆうか、すごい役に立つページじゃないですか。いいページを教わりました。アザスです。
885デフォルトの名無しさん:2008/08/19(火) 22:02:34
C# + VisualStudio で単純に(自分でスレッドを作らないで)フォームアプリケーション
を作成したとき、スレッドはいくつ動作するんですか?
ひとつだけですか?

複数フォームを出した場合はどうでしょうか?

教えてくださいませ。
886デフォルトの名無しさん:2008/08/19(火) 22:06:12
タスクマネージャでスレッド数も表示できるので色々試してみるとよろし
887デフォルトの名無しさん:2008/08/19(火) 22:40:35
C#で作ったプログラムを、64bit対応しろと言われました。
ユーザーは64bit化することによって動作が早くなることを期待しているようですが、
ただ単にインストーラを作成する場合に、TargetPlatformプロパティをx64、Itanium
とするだけでは駄目なんでしょうか?

やはり速度を早くするためにはコード自体を変える必要がありますか?

どなたか分かる方おられましたらお教えください。
よろしくお願いします。

888デフォルトの名無しさん:2008/08/19(火) 22:45:27
AnyCPUで作っとけば勝手に64bitで動く。
P/InvokeやCOM Interopを使ってるならその対応は必要。
889デフォルトの名無しさん:2008/08/19(火) 22:47:30
>>888
Win32API使ってる場合は、Win64APIとかがあってそれに変換するのでしょうか?
よろしく。
890デフォルトの名無しさん:2008/08/19(火) 22:50:21
>P/InvokeやCOM Interopを使ってるならその対応は必要。
891887:2008/08/19(火) 22:50:51
>>888
返答ありがとうございます。
AnyCPUでビルドしたプログラムの64bitOS上での動作は確認できましたが、
プログラムの動作速度が32bitOS上での速度と変わらないくらいでした。
コードなども64bitで速度が出るように書き換える必要があるのでしょうか?

64bit上で動きさえすれば早くなると思っていましたが、
それがそもそも間違っていたのでしょうか?
892デフォルトの名無しさん:2008/08/19(火) 22:54:47
8ビットや16ビットのゲーム機じゃあるまいし、なにを寝ぼけてんだよ
893デフォルトの名無しさん:2008/08/19(火) 22:57:03
速度は大差ないことが多い
894デフォルトの名無しさん:2008/08/19(火) 22:59:23
>>891
チューニング次第だし、君が勉強不足なだけw
895デフォルトの名無しさん:2008/08/19(火) 22:59:26
CPUは同じだ、そう変わらない。
レジスタは増えたが命令長も増えたとか、性能向上と低下の両方の要素がいい塩梅に存在する。
今んとこ利点と言えるのは、アドレス空間が広がったってこと。
896887:2008/08/19(火) 23:05:10
>>893 >>895
そうなんですね。
・64bit対応しろと言われてもAnyCPUでビルドしている限り、基本何もしなくて良い。
・速度も大して速くなるわけではない。
と言うことでしょうか。
ありがとうございました。

>>894
すいません。認めます。
チューニングするにはどういったことに気をつけるべきなのでしょうか?
ヒントだけでもお願いします。
897デフォルトの名無しさん:2008/08/19(火) 23:15:35
http://journal.mycom.co.jp/special/2005/compiler/010.html

C++で悪いがこの辺りかねえ
あまり性能は上がってないみたいだ
898デフォルトの名無しさん:2008/08/19(火) 23:24:42
>>897
ありがとうございます。
64bit化といっても64bitOSで動かせると言うだけで、
速度向上のためにできることは少なそうですね。
899デフォルトの名無しさん:2008/08/19(火) 23:27:08
レジスタが多くなったのはいいことだ。
気前よくCPUレジスタ256個とかでいいよ。
キャッシュもいいけど、レジスタ増やしとけば、あとはコンパイラが自動で手配してくれるから。
900デフォルトの名無しさん:2008/08/19(火) 23:34:48
longやulongを多用していればかなり変わるけど
そんなプログラム作ることはめったにないだろう?
901デフォルトの名無しさん:2008/08/19(火) 23:36:17
x64ではニモニック上のレジスタが増えた代わりにシャドウイングできる実レジスターが変わらないから
実質レジスターが減った形になってしまった。
あと命令長が長くなって命令キャッシュの使用効率が落ちたとかなんとか。
IntelとしてはやっぱりItaniumを押したかったんだろうなぁ(笑
902デフォルトの名無しさん:2008/08/19(火) 23:37:35
この際、やっと使いやすくなったD言語はどうよ?
903デフォルトの名無しさん:2008/08/19(火) 23:38:20
どのD言語だよ
何種類あると思ってんだ?
904デフォルトの名無しさん:2008/08/19(火) 23:39:14
>>900
x64は64bitの整数命令だと32bit命令と比べて1バイト命令長が増える。
即値や即値アドレスを使ったときは当然さらに伸びる。
905デフォルトの名無しさん:2008/08/19(火) 23:45:20
4種類ぐらいだろ
906デフォルトの名無しさん:2008/08/20(水) 00:11:53
レジスタはコストが高く貴重とか言うのは部品会社(Intel)の嘘だからw
昔の16ビットとか21ビットのマイコンとかの時代じゃないんだし、騙されるんな
907デフォルトの名無しさん:2008/08/20(水) 00:17:16
アキュムレータは1つだけ
908デフォルトの名無しさん:2008/08/20(水) 00:21:39
push/popに時間が食われていたとは言え、L1/L2/L3キャッシュの
充実でほとんど問題にならなかったしな
909デフォルトの名無しさん:2008/08/20(水) 00:22:35
64bitの明確なメリットはアドレス空間の広さくらいしかないよなぁ
910デフォルトの名無しさん:2008/08/20(水) 00:25:53
http://d.hatena.ne.jp/kkawa/20080330/p1

JavaのJITコンパイラだけど。なかなか面白いコードを吐いている
911デフォルトの名無しさん:2008/08/20(水) 00:26:24
インテルはアーキテクチャは、最先端のようで実は原始的でしたとさww
912デフォルトの名無しさん:2008/08/20(水) 00:38:42
今のキャッシュのレイテンシは昔のメモリ並み
もちろんクロック換算だが
913デフォルトの名無しさん:2008/08/20(水) 08:25:05
>>867
ありがとう!
914デフォルトの名無しさん:2008/08/20(水) 15:53:52
class A
{
string hoge;
string foo { get; set; }
}

参照型のフィールドやプロパティの初期値はnullが入るそうですが
それに頼って書くべきか、明示的にnullに初期化すべきか
皆さんはどうしてます?
915デフォルトの名無しさん:2008/08/20(水) 15:54:52
どっちでもいいよ。
規格で決まってるから。
916デフォルトの名無しさん:2008/08/20(水) 15:55:45
癖でboolだけはfalseで明示的に初期化することが多いな
917デフォルトの名無しさん:2008/08/20(水) 17:10:03
>>914
それに頼って書くべき
明示的に初期化されてたら何かあるのかと思ってしまう
918デフォルトの名無しさん:2008/08/20(水) 19:25:43
>>914

参照型のフィールドやプロパティなら 明示的にnewでインスタンス化
すべきじゃないのか?
じゃないとclass Aのインスタンスを使うたんびにフィールドやプロパティが
ヌルでないかどうかチェックしないといけなくなるような気がするんだが。

919デフォルトの名無しさん:2008/08/20(水) 20:18:56
>>918
初期値がnullである必要がある場合の話だろ
920デフォルトの名無しさん:2008/08/20(水) 21:02:34
>>918
class Hoge {
public Fuga Piyo = null;
public Hoge(){
if(何たらかんたら){
Piyo = new Fuga(なんとか);
}else{
Piyo = new Fuga(かんとか);
}
}
}

みたいなこともあると思うぬ。
921デフォルトの名無しさん:2008/08/20(水) 21:48:00
頭の悪い奴は書き込まないでくれ
つまらない話題がいつまでも続いてうざい
922デフォルトの名無しさん:2008/08/20(水) 21:58:25
頭の悪い奴が2chを利用してはいけないという法律はどこにもない
ローカルルールにもない
お前が消えろ>>921
923デフォルトの名無しさん:2008/08/20(水) 22:02:58
どういう奴が頭悪いというんだ?
924デフォルトの名無しさん:2008/08/20(水) 22:06:35
言っていることが矛盾している>>922も頭悪いし、すぐに釣られる>>923も相当頭悪い
925デフォルトの名無しさん:2008/08/20(水) 22:12:15
悪者が使って良いスレはここですか?
926デフォルトの名無しさん:2008/08/20(水) 22:24:56
悪者が2chを利用して良いという法律はどこにもない
ローカルルールにもない
お前が消えろ>>925
927デフォルトの名無しさん:2008/08/20(水) 22:26:36
頼むから悪魔の照明と同じ論理を使うなよ
頭悪い>>926
928デフォルトの名無しさん:2008/08/20(水) 22:28:46
ここで
×悪魔の照明
○悪魔の証明

と突っ込まれると思ったがさすがにそこまで恥ずかしい事をする奴は
いないようだ
929デフォルトの名無しさん:2008/08/20(水) 22:31:21
レアアイテム
悪魔の照明

厨設定ならありかも
930デフォルトの名無しさん:2008/08/20(水) 23:37:11
キモくてごめんんなさいOrz
931デフォルトの名無しさん:2008/08/21(木) 00:54:16
質問です。
C#から下記の方法でエクセルファイルを指定し、起動しているのですが、
起動するたびに新規のプロセスEXCEL(excel.exe)として起動してしまいます。
C#実行時にEXCELが既に起動中であれば、同一プロセスとして起動したいのですが、
どのようにすればよいでしょうか?

Excel.Application app = new Excel.Application();
Excel.Workbooks books = (Excel.Workbooks)app.Workbooks;
//ブックにテンプレートを読み込む
Excel._Workbook book = books.Open("xxxx\yyyy\zzzz.xls",
            Missing.Value,Missing.Value,Missing.Value,
            Missing.Value,Missing.Value,Missing.Value,
            Missing.Value,Missing.Value,Missing.Value,
            Missing.Value,Missing.Value,Missing.Value);
以下略

よろしくお願いします。
932デフォルトの名無しさん:2008/08/21(木) 08:27:46
誰も答えられないとかwww
このスレもういらないんじゃね?
933デフォルトの名無しさん:2008/08/21(木) 08:31:03
自分で考えろってことだ
934デフォルトの名無しさん:2008/08/21(木) 09:54:07
>>931のやりたいことがわからないから答えにくいだよ。
オートメーションを使うことが前提なら、
app = new Excel.Application() のたびに新しいインスタンスが起動するのは仕様。
そのせいでインスタンスがいくつも残ることが問題なら、
同一プロセスから複数回起動するならappを使いまわす。
プロセス終了時にはClose / Quitしておく。

そうじゃなくて単純にExcelを立ち上げることが目的なら、
Process.Start("xxxx\yyyy\zzzz.xls") とすればよい。
 
935デフォルトの名無しさん:2008/08/21(木) 11:09:37
>>899
レジスタが多い、大きいとスレッドスイッチ時にレジスタを待避、復帰させる
コストが無視できなくなる。x64のパフォーマンスが上がらない原因の1つに
それがある。
936デフォルトの名無しさん:2008/08/21(木) 11:40:21
あたま使えよ。
256もあるなら、スレッド1に半分を使って切り替え時に他方にスワッピングするもんだろ。
スレッド4つぐらいでも楽ちん。
その設計だと、当然ユーザには使えないレジスタ(CPU管理用)がいくつもあるから、実施的にキャッシュの亜種と同じになる。
INTELとかAMDのハード屋、メチャ頭いいやつらだから、そんなのも検証して今の姿になってんだろうけど。
937デフォルトの名無しさん:2008/08/21(木) 16:16:24
稼動してるプロセスをExcel.Applicationにキャスト(?)ってできるの?
考えるだけで凄く無理臭いけど
938デフォルトの名無しさん:2008/08/21(木) 16:40:56
プロセスからではないけど、Marshal.GetActiveObjectのように
起動中のプロセスのオブジェクトを取得する手段はある。
939デフォルトの名無しさん:2008/08/21(木) 17:27:55
C#+DXでどうやってXファイルのモーションを動作させるのでしょうか?
940デフォルトの名無しさん:2008/08/21(木) 18:09:32
DXって何?
941デフォルトの名無しさん:2008/08/21(木) 18:14:25
Dynamic eXtension
942デフォルトの名無しさん:2008/08/21(木) 18:48:46
C#でDXというと、MDX、SlimDX、C#版DXライブラリあたりか?
単にDirectXという意味だったとしても、大体この選択肢+XNAになるな。
943デフォルトの名無しさん:2008/08/21(木) 21:18:10
質問なのですが、
str(中身は) "abc" という文字列を変更する際に
文字列を変更する際に
str = "abcdefghijklmn";

としてもエラーが出ず普通に変更されるのですが、何も気にせずこのように書いてしまって
問題ないのでしょうか?

(正確には、VS2005のデザイン?で作ったテキストの書き換えを行っています。)
944デフォルトの名無しさん:2008/08/21(木) 21:20:52
>>943
おっしゃる意味が分かりません。
945デフォルトの名無しさん:2008/08/21(木) 21:27:11
stringクラスは不変オブジェクトなので問題ないです
946デフォルトの名無しさん:2008/08/21(木) 21:31:06
>>944
すみません
すでに作ったString型の変数に
生成時に代入した文字列より多い文字を直接
変数名 = "新しい文字列";
で 入れても問題ないでしょうか? と言うことです。

(多分これもわかりにくいと 思いますがorz)
すみません 急きょC#を扱うもので おかしな事書いてる可能性が高いです。
947デフォルトの名無しさん:2008/08/21(木) 21:32:22
>>943
中身が"abc"のstringオブジェクトの代わりに新しい"abcdefghijklmn"オブジェクトが作成されて格納される
"abc"オブジェクトは他にどこも参照していなければガーベジコレクションの対象になる
948デフォルトの名無しさん:2008/08/21(木) 21:36:35
変数名 = "新しい文字列";

変数名 = new string("新しい文字列");
と同じ意味

一度作成したstringオブジェクトは変更できない
変更しようとすると新しいstringオブジェクトが作成される

stringオブジェクトの内部バッファをいじりたいときは
StringBuilderクラスを使う
949デフォルトの名無しさん:2008/08/21(木) 21:53:01
>>948
> 変数名 = "新しい文字列";
> は
> 変数名 = new string("新しい文字列");
> と同じ意味

また嘘を教える…
950デフォルトの名無しさん:2008/08/21(木) 21:54:00
おお 新しいオブジェクトを生成してくれるとは

>>944,945,947,948
皆様ありがとうございました。
951デフォルトの名無しさん:2008/08/21(木) 22:03:26
>>949
同じ意味だろ
コンパイルが通らないだけだ
952デフォルトの名無しさん:2008/08/21(木) 22:09:12
このスレも中途半端な知識をひけらかすバカが増えてきたな
これから頭悪い奴はレス禁止でよろしく
953デフォルトの名無しさん:2008/08/21(木) 22:26:21
>>949
前者はintern化されるんだっけ?
あれそれはJavaだったか?
954デフォルトの名無しさん:2008/08/21(木) 22:39:11
リテラルとして静的にStringオブジェクトがはじめからそこにあるというイメージでいいと思うよ。
ILではldstr という専用命令があったりする。
955デフォルトの名無しさん:2008/08/21(木) 22:39:49
文字列リテラルは全部Intern化される
956デフォルトの名無しさん:2008/08/21(木) 22:42:51
なぜか、"" と string.empty は同じインスタンスじゃないんだよな。
957デフォルトの名無しさん:2008/08/21(木) 23:07:09
むむ、予想に反してTrueになってしまう。
string s = "";  // new string(new char [] {});
System.Console.WriteLine(string.ReferenceEquals(s,string.Empty));
958デフォルトの名無しさん:2008/08/21(木) 23:13:01
>>957
Empty = "";
で初期化されてるから
959デフォルトの名無しさん:2008/08/21(木) 23:13:11
Excel で思い出したけど、

http://jeanne.wankuma.com/tips/csharp/programming/releasecom.html

こんな感じでExcelファイル出力するとすごい時間掛かるんだよな。
至れり尽くせりの .NET だけど Excel との親和性はかなりショボい感じ。
結局COM経由だなんて。

もっと便利に、速くならないの?
960デフォルトの名無しさん:2008/08/21(木) 23:55:16
DataGridで質問があるのですが、下記の作業を行うとして
3の特定行を抽出するのに何かよい方法とかあるでしょうか。
rowfilterとかで旨く取れるのでしょうか?
ちなみに環境は、C#.Net 2003でWindowsFormです。

1 DataViewに50行ほどの配列データを格納。
2 ソート実行。
3 20−30行目だけをDatagridに格納して表示。
961デフォルトの名無しさん:2008/08/21(木) 23:55:40
不便and/or遅い、と思ったことないけどな別に。
つーかいちいちReleaseComObject呼べってデマを最初に広げたの誰だろう。
普通は暗黙的な参照さえ作らないようにすれば必要十分なのに。
962デフォルトの名無しさん:2008/08/21(木) 23:58:55
>>961
是非kwsk。
確かにいちいちReleaseComObjectやってます。
すごいめんどくさいです。
一つでも忘れると確実にExcelタスク残ります。
963デフォルトの名無しさん:2008/08/22(金) 00:03:12
javaのpoiみたいに直でバイナリ読み書きできるライブラリがあれば一番なんだけど無いの?
964デフォルトの名無しさん:2008/08/22(金) 00:04:47
>>391-394の流れかこの話題は時々出るね。
965デフォルトの名無しさん:2008/08/22(金) 00:06:16
みすった。ごめん
>>931-934
966デフォルトの名無しさん:2008/08/22(金) 00:10:48
Excelは大量のセルにアクセスする際に、
一度にアクセスすれば速いんだけど、
データが多すぎるとExcel側がメモリ不足エラーを起こすんだよなぁ。

エラーを起こす明確な閾値があるわけでもないので、
1セルずつアクセスする事にすると、遅くなる。
967デフォルトの名無しさん:2008/08/22(金) 00:16:25
Rangeオブジェクトの設計思想が分かってない人って多いみたいだね。
つーか俺もweb上の情報だけでやってたから触りだして2年ぐらい意味が分からなかったw
968デフォルトの名無しさん:2008/08/22(金) 00:28:57
Rangeオブジェクトって突然なんだ?
969デフォルトの名無しさん:2008/08/22(金) 00:42:34
>>966-967 の流れなら突然ではないと思うが、
Rangeオブジェクトの設計思想ってなんだろうな?

単に、Excelの範囲選択時の操作と同じ処理をするための物だと思ってたけど。
970デフォルトの名無しさん:2008/08/22(金) 00:50:05
>>957

string.Equalsはオーバーライドされてインスタンスの比較ではなく
文字列の比較をして返すから。

そうじゃなきゃ、if(s == "abc")なんてのもできなくて不便でしょうがないだろ。

971デフォルトの名無しさん:2008/08/22(金) 00:53:37
EqualsじゃなくてわざわざReferenceEqualsを使ってるようだが
972デフォルトの名無しさん:2008/08/22(金) 07:44:37
このメソッドは非同期です。ってヘルプに書いてあったけどどういう意味でしょうか?
973デフォルトの名無しさん:2008/08/22(金) 08:38:46
自己を含むクラスを作った場合どうやって一個上のにアクセスするのですか?
class hoge
{
public ArrayList list = new ArrayList();
public hoge hoge_1;
public hoge hoge_2;
public hoge hoge_3;
public hoge hoge_4;

public hoge(int num){

if (num > 1)
{
hoge_1 = new hoge(num/2);
hoge_2 = new hoge(num/2);
hoge_3 = new hoge(num/2);
hoge_4 = new hoge(num/2);
}
}
}

hoge hoge_top = new hoge(64);
974デフォルトの名無しさん:2008/08/22(金) 09:03:16
C#でパスワードを安全に保管する場合どう暗号化すればいいのでしょうか?
デコンパイルすれば秘密鍵なんてすぐバレると思うのですが。
975デフォルトの名無しさん:2008/08/22(金) 09:03:29
>>961詳しく
最初に広めたのはMSだよ
976デフォルトの名無しさん:2008/08/22(金) 09:07:07
>>974
要件によって様々だが、定石的にはソルト付きのハッシュを使う。
Rfc2898〜を使うのが簡単でかつ良い。
可逆の暗号化使って鍵をハードコーディングなをて普通はやらない。
977デフォルトの名無しさん:2008/08/22(金) 09:09:02
生のパスワードの復元が必要なら、DPAPIラッパーでも使っとけ。
978デフォルトの名無しさん:2008/08/22(金) 09:11:08
“一個上の”…・・・?

class Hoge
{
 public Hoge hogeParent;
 public Hoge hoge_1;

 public Hoge(int num, Hoge parent)
 {
  hogeParent = parent;
  if (num > 1)
  {
   hoge_1 = new Hoge(num / 2, this);
  }
 }
}

Hoge hoge_top = new Hoge(64, null);
979デフォルトの名無しさん:2008/08/22(金) 09:41:09
>>976>>977
ありがとうございます。DPAPI使うのが一般的っぽいですね。
(P/Invoke叩かなくても
System.Security.Cryptography.ProtectedData使えばいいのかな?)
SSHAも面白そうだし知識の幅が増えて助かりました。感謝です。
980デフォルトの名無しさん:2008/08/22(金) 18:17:39
>>978
ありがとう
981デフォルトの名無しさん:2008/08/23(土) 12:21:57
>>974
App.Configを暗号化できる。
982デフォルトの名無しさん:2008/08/23(土) 12:54:43
どうやって暗号化するのか分かってて言ってんの?
983デフォルトの名無しさん:2008/08/23(土) 14:39:48
実行ファイルに秘密鍵を埋め込むという発想が既に
984デフォルトの名無しさん:2008/08/23(土) 15:06:49
秘密鍵を暗号化する秘密鍵を暗号化すればいい!
985デフォルトの名無しさん:2008/08/23(土) 16:50:21
>>984
1.秘密鍵と公開鍵を作る。
2.秘密鍵を公開鍵で暗号化する
3.暗号化済み秘密鍵を仕込む
4.秘密鍵を手に入れるには、暗号化された秘密鍵を暗号化された秘密鍵を(ry)秘密鍵でデコードした秘密鍵でデコードした秘密鍵でデコードすれば手に入る
5.ウマー?
986デフォルトの名無しさん:2008/08/23(土) 17:10:31
>>984
ていうかまあ普通にやってたりすることだよね
987デフォルトの名無しさん:2008/08/23(土) 17:13:15
別マシンに持ってかないデータならとりあえずDPAPI
サーバなんかで複数マシンで共有したりするならconfigの暗号化かな
988デフォルトの名無しさん:2008/08/23(土) 17:36:58
次スレ立てるやつはスレタイちゃんと直せよ
989デフォルトの名無しさん:2008/08/23(土) 17:42:01
そういや # をスレタイに使えるようになったんだっけ
990デフォルトの名無しさん:2008/08/23(土) 17:46:34
次スレ立ててきた

C#, C♯, C#相談室 Part48
http://pc11.2ch.net/test/read.cgi/tech/1219481054/
991デフォルトの名無しさん:2008/08/23(土) 18:24:10
>>990

おいらの痛恨のミスもあと数レスでおさらばだぜ
992デフォルトの名無しさん:2008/08/23(土) 18:31:03
>>983
てゆか、商用目的のアプリ(といってもソフト自体はフリーですが)
をデコンパイルして読んでたら秘密鍵が埋め込んであるのを見つけたんで、
疑問に思って>>974書きました。
993デフォルトの名無しさん:2008/08/23(土) 18:41:35
>>991
てめーがこのスレの>>1
994デフォルトの名無しさん:2008/08/23(土) 19:36:49
[プログラム板]ってわざとじゃなかったのかw
995デフォルトの名無しさん:2008/08/23(土) 19:49:54
ていうかDPAPIを使おうがデコンパイルされて解析されて同じ手順で
鍵を入手することが可能なような気がする。
996デフォルトの名無しさん:2008/08/23(土) 20:07:21
>>995
なんで?コードの情報をもとに秘密鍵つくってOSに保持させるんだよな?
OSをクラックするスキルがなきゃとても無理じゃね。
997デフォルトの名無しさん:2008/08/23(土) 20:10:22
>>992
それってほんとにその鍵だけでパスワードとかが復元できるようなものなの?
ライセンスキーとかみたいにばれたらまあ仕方がないわってものとか、
あるいは追加のキー(それだけでは復号できないもの)とか、
そんなのじゃなくて?
998デフォルトの名無しさん:2008/08/23(土) 20:11:53
>>995
はい?
999デフォルトの名無しさん:2008/08/23(土) 20:13:50
ああ、まあなんちゅうの、同じユーザでログインしてたら当然復元できるわな。
要は何を目的にしてて、何から守るためのものか、って話になる。
1000デフォルトの名無しさん:2008/08/23(土) 20:25:13
100
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。