C#, C♯, C#相談室 Part55at TECH
C#, C♯, C#相談室 Part55 - 暇つぶし2ch2:デフォルトの名無しさん
10/02/04 20:33:58
A4 - ISO 216 用紙サイズ(210mm×297mm)
これと
[PaperSize A4 Kind=A4 Height=1169 Width=827]
これの関係は
1169/100*2.54=29.6926cm
ということなので
{X=13.33333,Y=11.66667,Width=800,Height=1137.667}
これのX=13.33333も
13.33333/100*2.54=0.338666582cm

まあ5mmじゃなく3mm程度ずれてる計算?
プリンターが古かったりすると多少ずれるかもしれないし

3:1
10/02/04 20:34:07
スレタイ間違いました・・・orz

4:デフォルトの名無しさん
10/02/04 20:35:16
ふらっと覗いてみた笑

5:デフォルトの名無しさん
10/02/04 20:35:41
参考サイト

URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)

6:デフォルトの名無しさん
10/02/04 20:37:32
>>2
ありがとうございます。
全ての謎がとけました。^^
今まで逆引きの本一冊でいってたんですけど、座学でもいけるように
全機能の入った本を買ってきたところです。

7:デフォルトの名無しさん
10/02/04 20:41:43
>>3
×間違いました
○間違えました

8:デフォルトの名無しさん
10/02/04 20:47:02
あっちのスレと番号までかぶってる…

9:デフォルトの名無しさん
10/02/04 20:49:39
>>8
あっちは実質56らしいよ
でももう終わりかけてるんだよなw
ややこしいw

10:デフォルトの名無しさん
10/02/04 20:54:53
間違いだらけヒドス

11:デフォルトの名無しさん
10/02/04 21:07:28
このカオスはどうしてくれようか
向こうと新スレ交換しようにもあっちはあと何週間かは持つだろうからなー

12:デフォルトの名無しさん
10/02/04 21:20:36
ああ、先に提案するかさっさと処分するかだな>このスレを
p2重い

どこか別のp2のようなサービスないのかな・・・

13:デフォルトの名無しさん
10/02/04 22:07:13
ふらっとC#,C♯,C#(初心者用) Part55
スレリンク(tech板)

14:デフォルトの名無しさん
10/02/04 22:42:15
今の本スレが終わるまでここが残ってればここを次の本スレとしてリユースって形でおk?

15:デフォルトの名無しさん
10/02/04 22:45:57
C#, C♯, C#相談室 Part55
スレリンク(tech板)

こっちのスレの人次第だけどこっちも実質56を55でやってるからねえ
いい加減57に行きたいだろうからここは閉鎖でいいと思うけど

16:デフォルトの名無しさん
10/02/04 23:28:35
まあ正直55が3スレあっても気にならないんだけどな
どうせdat落ちしたら基本見れないんだから55スレのxxx見ろとか言わないし

17:デフォルトの名無しさん
10/02/05 00:32:36
初めて質問します。
コンソールからの入力で2つの整数を取得したいのですが、
下記のように、2行に渡って取得する他ないのでしょうか?
Console.WriteLine("何行何列ですか?");
int row = Convert.ToInt32(Console.ReadLine());
int col = Convert.ToInt32(Console.ReadLine());

私としては、ユーザーに2,3のように1行で入力してもらって、
そんなことは可能でしょうか?
どなたかご教示お願いします。

18:デフォルトの名無しさん
10/02/05 00:38:09
>>17
こちらへ
ふらっとC#,C♯,C#(初心者用) Part55
スレリンク(tech板)

19:デフォルトの名無しさん
10/02/05 01:56:14
この分だとこのスレが3つ目のpart55になるわけか
いや、よく見たら1つ死んでるから4つ目だしw

20:デフォルトの名無しさん
10/02/05 05:24:36
C#人気あるなあ

21:デフォルトの名無しさん
10/02/05 11:17:41
このスレ、削除依頼(重複)出しているの?

22:デフォルトの名無しさん
10/02/05 12:18:58
どなたか17番の回答お願いします。。

23:デフォルトの名無しさん
10/02/05 12:27:15
回答は俺の十八番だ

24:デフォルトの名無しさん
10/02/05 13:07:42
終わた(´;ω;`)

住谷 正樹 様

お客様の証拠金維持率が当社外国為替証拠金取引規約の基準
であるロスカットライン100%を下回ったため、下記全ての
ポジションを反対売買により決済(ロスカット)致しました。
決済の結果詳細は【DMM FX】お取引画面にてご確認ください。

25:デフォルトの名無しさん
10/02/05 13:10:14
レイザーラモンHG乙

26:デフォルトの名無しさん
10/02/05 13:14:06
>>22
使ったことはないけど
URLリンク(ufcpp.net)
ここを見る限りでは
string str = Console.ReadLine();
と言う感じで文字列なので
string関連の文字操作を使って特定の区切り文字を境に
2つ文字列を切り出してそれぞれが数字かどうかの確認をすればいいだけとちゃうの?

27:デフォルトの名無しさん
10/02/05 13:17:19
たとえば
10,11
と入力させて
,で区切るとか
で前の文字列と後ろの文字列をそれぞれConvert.ToInt32でもやってみる
チェックが面倒ならtryでエラーを拾えばいいし

28:デフォルトの名無しさん
10/02/05 18:10:03
(?<row>[0-9]+),(?<col>[0-9]+)のような正規表現でキャプチャするのが楽

29:デフォルトの名無しさん
10/02/05 18:23:19
>>28
その正規表現を考えるのが苦

30:デフォルトの名無しさん
10/02/05 18:29:15
素直にトークン分割汁

31:デフォルトの名無しさん
10/02/05 21:22:14
例が単純だから正規表現使わなくても十分だけど
正規表現が少しでも分かってれば>>28はすぐ浮かぶだろ

32:デフォルトの名無しさん
10/02/05 22:42:21
じゅう, じゅういち

さぁ!

33:デフォルトの名無しさん
10/02/05 22:45:12
10、11

ユーザー様は全角英数字で入力するのだ

34:デフォルトの名無しさん
10/02/05 22:47:39
最近のIME様は賢いので10,11と英数字の後は全角カンマになさったりするものだ

35:デフォルトの名無しさん
10/02/05 23:15:08
じゃあ、とりあえずNFKCで

36:デフォルトの名無しさん
10/02/05 23:22:33
>>18

37:デフォルトの名無しさん
10/02/05 23:43:50
URLリンク(www.opensource.apple.com)

c sharp で nfkc なんて意識するとか
ありえな、

38:デフォルトの名無しさん
10/02/05 23:44:59
寝ますよ?

39:デフォルトの名無しさん
10/02/06 00:11:57
でも正規表現だとマルチバイト文字が入力されたら
うまく行かない気がする・・・

40:デフォルトの名無しさん
10/02/06 00:13:50
十、十一

41:デフォルトの名無しさん
10/02/06 04:17:41
大変ですね

42:デフォルトの名無しさん
10/02/06 09:14:52
private void Page_Load(object sender, System.EventArgs e)
{
// string seperated by colons ';'
string info = "mark;smith;123 csharp drive;toronto;canada";

string[] arInfo = new string[4];

// define which character is seperating fields
char[] splitter1 = {';'};
char[] splitter2 = {','};
char[] splitter3 = {'、'};
char[] splitter4 = {','};

info = info.Split(splitter1);
info = info.Split(splitter2);
info = info.Split(splitter3);
info = info.Split(splitter4);

for(int x = 0; x < arInfo.Length; x++)
{
Response.Write(arInfo[x] + "<br>");
}

}

URLリンク(www.csharpfriends.com)
起きてから考えてみるも良いコード思いつかず
うん、でも当然動かないorz

43:デフォルトの名無しさん
10/02/06 10:02:11
とりあえずジェネリックとforeachでも覚えて、
splitter4とか作らないようにしてくれ

44:デフォルトの名無しさん
10/02/06 12:21:42
大変ですね

45:デフォルトの名無しさん
10/02/06 12:49:22
>>43
それより先のことが山盛りあるとおもうの。

46:デフォルトの名無しさん
10/02/06 13:27:14
C#にenumってねーの?

47:デフォルトの名無しさん
10/02/06 13:36:30
ないよ

48:デフォルトの名無しさん
10/02/06 13:46:29
ない可能性は限りなく零に近い

49:デフォルトの名無しさん
10/02/06 15:51:27
零に近い根拠を示しなさい
さあ示すのです!

50:デフォルトの名無しさん
10/02/06 16:41:57
元に戻して申し訳ないけど
上にある正規表現は負の整数拾ってないよな

残念だけど…

51:デフォルトの名無しさん
10/02/06 17:21:53
何行何列かを取得するのに負の整数の考慮はいらんだろ

52:デフォルトの名無しさん
10/02/06 20:56:54
考慮するにしたって[+-]付けるだけじゃん
そういう柔軟性は大きな強み

53:デフォルトの名無しさん
10/02/07 01:02:13
強みですね

54:デフォルトの名無しさん
10/02/07 01:33:29
>>52
へえ

55:デフォルトの名無しさん
10/02/08 19:26:53
過疎

56:デフォルトの名無しさん
10/02/09 02:54:07
VS2010のテキストエディタはWPFだよ
軽くはないけどそんなに遅くもない

57:デフォルトの名無しさん
10/02/09 03:30:57
955 名前:デフォルトの名無しさん[sage] 投稿日:2010/02/08(月) 20:14:14
VS2010のテキストエディタはWPFだよ
軽くはないけどそんなに遅くもない

58:デフォルトの名無しさん
10/02/09 12:32:13
----------------------------------------------------------
C#, C♯, C#相談室 実質Part57

前スレ(実質Part56)が埋まりましたのでここを有効利用いたします。


では本来の>>1-4くらい
----------------------------------------------------------


59:デフォルトの名無しさん
10/02/09 12:33:13
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 

前スレ 
C#, C♯, C#相談室 Part55 (実質56)
スレリンク(tech板)

Visual C# 2008 Express Edition 日本語版 
URLリンク(www.microsoft.com) 

その他テンプレ>>59-61くらい 


60:デフォルトの名無しさん
10/02/09 12:35:50
関連スレ 

ふらっとC#,C♯,C#(初心者用) Part55
スレリンク(tech板)

Visual Studio 2008 Part 19 
スレリンク(tech板) 

WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
スレリンク(tech板)

【VB.NET】LINQ友の会【C#, C♯, C#】 
スレリンク(tech板) 

C#,C#の宿題片付けます。 
スレリンク(tech板) 

ASP.NET + Atlas or Ajax について 
スレリンク(tech板) 

Microsoft Silverlight その5 
スレリンク(tech板) 

Visual Studio 2010 Part 2 
スレリンク(tech板) 


61:デフォルトの名無しさん
10/02/09 12:37:54
参考リンク 

MSDNライブラリ 
URLリンク(msdn.microsoft.com) 

@IT Insider.NET 
URLリンク(www.atmarkit.co.jp) 
Insider.NET 会議室 ディレクトリ 
URLリンク(www.atmarkit.co.jp) 
MSDN フォーラム 
URLリンク(forums.microsoft.com) 

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


62:デフォルトの名無しさん
10/02/09 12:58:25
質問する前に"必ず"WikiやFAQ集を参照し、同じような質問がないか確認してください。 

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


※次スレを立てる場合はPart58になります。


63:デフォルトの名無しさん
10/02/09 21:29:50
C#, C♯, C#相談室 Part55
スレリンク(tech板:1000番)

>ちゃんと計算してないけど、おそらくU+1088(4232)はUTF-8でE1 82 88
じゃあ最後のE1はなんだ?
その後に同じようなintを書き込んでその頭のE1か?

もしそうだったら
>javaの方では入出力は問題なく行えてます。
とか当たり前のことを抜かしてないでもっと自分でフォーマットを理解してから来いって話だな

64:デフォルトの名無しさん
10/02/09 22:55:45
DataOutputStreamで00 00 10 88だった、big-endianか


65:デフォルトの名無しさん
10/02/09 23:00:12
質問です。
IListを実装しない(LinkedList<T>とか)コレクションの変更通知って、
どうすればいいんでしょうか?

66:デフォルトの名無しさん
10/02/09 23:14:10
?
ObservableCollection<>の話じゃなくて?

67:デフォルトの名無しさん
10/02/09 23:29:05
IListにも変更通知用のイベントなんて無いな

68:デフォルトの名無しさん
10/02/09 23:37:38
INotifyCollectionChangedで通知するにも、IListじゃないとそもそもインデックスがないよなー
と悩んでいたんですが、そのままObservableCollection<T>に渡せばよかったんですね。

というか色々と説明不足・下手ですみませんでした。

69:デフォルトの名無しさん
10/02/09 23:44:11
>>63
URLリンク(www.unicode.org)

UTF-8 では3バイト、って話だろ?

70:デフォルトの名無しさん
10/02/09 23:49:42
>>69
Javaはこう出力しますって E1 82 88 E1 を持ってきたんだろ
それに質問者本人が int の下位だけなんですよね~とか言ってるんだから

へ~Javaってそんな独自の埋め込みするんだ~ C#じゃあ知ったことじゃねーなってところだろw

UTF-8を知ってないと解読できないし、あえてそこまでこのスレの住人が対応することじゃないだろ

71:デフォルトの名無しさん
10/02/09 23:53:37
E1ってその後にもついてたんか。よく見てなかった。すまん。

72:デフォルトの名無しさん
10/02/10 01:13:06
Java屋からの乗り換えなんですが、
C#(.Net3.5)でO/Rマッパー使うとしたらなにがおすすめですか。

(1) 使わない
(2) LINQ
(3) S2Dao.Net
(4) NHibernate
(5) その他

JavaではHibernate使って、その後 S2 採用してました。
C#歴は既設アプリ改造を手伝ったぐらいであんまり本格的にはやってないです。
ラクちんかつ綺麗、COC(convention over config)が好みなんですが、
C#のお作法を無視して、無知ゆえのしっぺ返しをくらうなどないかなーなど
心配しており、みなさまのお知恵を拝借したいです。

73:デフォルトの名無しさん
10/02/10 01:43:22
Linq to SQLとLinq to Entitiyは今のところSQL Serverしかまともに対応してない。
他のDBMSを使いたいなら3か4になる。


74:デフォルトの名無しさん
10/02/10 01:55:45
やぶんサンクスです。
いちお SQL Server 採用予定なんだけど
> 73 サンなら何使う?


75:デフォルトの名無しさん
10/02/10 02:30:40
SQL ServerならLINQ to SQLが一番楽
単純な構成ならテーブル/ビューをD&Dするだけでほぼそのまま使える
LINQ to Entitiesの方は自動生成の名前とデザイナの操作性に難あり

76:デフォルトの名無しさん
10/02/10 02:36:51
>75
ありがとう!


77:デフォルトの名無しさん
10/02/10 07:18:41
LINQ to SQLは将来性が怪しそうなので手をつけるのを躊躇してしまう

78:デフォルトの名無しさん
10/02/10 08:31:14
ツールが違うだけでやることは似たようなもんじゃね?

79:デフォルトの名無しさん
10/02/10 09:45:59
linqは流行らないだろうな

80:デフォルトの名無しさん
10/02/10 09:51:29
Form.Opacity=0.5とかで透かしたた上で
文字などは透かしたくない場合はどうやればいいですか?

81:デフォルトの名無しさん
10/02/10 09:53:13
できないはず
やるならBackColorにFromArgbとかで半透明を与えるか
背景画像を動的に作ってそいつに半透明を与えるかしないと

82:デフォルトの名無しさん
10/02/10 10:08:59
ごめんフォームのバックカラーに半透明は無理だな

83:デフォルトの名無しさん
10/02/10 10:41:30
どうも無理っぽいですね。

Formを2個表示して
formAをOpacityで半分透かして
formBのBackColor = White
formBのTransparencyKey = White
で2個のフォームを重ねて表示することで実現できそうです・・・・
無理やりですが。
他にいい方法があったら教えてください。



84:デフォルトの名無しさん
10/02/10 10:42:41
formBに文字や図形など描画すると所望の動作をするようになりました。


85:デフォルトの名無しさん
10/02/10 10:47:13
うーむ
透明色をグラデーションした画像を当てはめてみたが
どうも完全な透明とそれ以外としか扱ってくれないねえ

やり方はあるのかもしれないけど

86:デフォルトの名無しさん
10/02/10 10:52:16
作った背景画像
URLリンク(uproda.2ch-library.com)

実行してみた状態
URLリンク(uproda.2ch-library.com)

周りに透明が多いのはTransparencyKey=BackColorで透明にしてあるので

87:84
10/02/10 11:17:22
こっちで書いたのがこんな感じです。
URLリンク(uproda.2ch-library.com)

88:デフォルトの名無しさん
10/02/10 11:19:11
>>87
なるほど
師匠ですか・・・
じゃなくて

まあフォーム2枚を連動させたりとめんどくさいですけどとりあえずそれでw

89:デフォルトの名無しさん
10/02/10 14:00:32
全部オーナードローするならレイヤードウィンドウって手も

90:デフォルトの名無しさん
10/02/10 15:38:42
WPFだったら楽なのに

91:デフォルトの名無しさん
10/02/10 16:23:19
ウィンドウそのものを透明にするのはWPFの範囲外だぞ

92:デフォルトの名無しさん
10/02/10 20:03:38
>>80
過去に何度か出てると思うけど、一応正攻法のやり方はこうらしい。
URLリンク(yellow.ribbon.to)

93:デフォルトの名無しさん
10/02/10 20:09:51
>>92
.net側が使わないだけなのか
最近のGPUだと2D部分も結局は3D部分でやってるとかあったので
できないはずは無いと思ってたんだが

94:デフォルトの名無しさん
10/02/10 21:38:44
>>79
あのクエリ式はともかく、Enumerableクラスのメソッド群は有用だよ。

95:デフォルトの名無しさん
10/02/10 23:32:56
>>94
流行らないっていってんだろw
俺に逆らうなw

96:デフォルトの名無しさん
10/02/10 23:45:40
C#のSMTP認証メール送信機能を使う機能を作りたいんだけど
どうしてもSMTP認証が失敗するw

使ってるのはSystem.Net.Mail.SmtpClient

その他情報
失敗時のSmtpStatusCode:GeneralFailure
smtpサーバー:会社のsmtpサーバー
ポート:サブミッションポート(587)

techbank.jpにSmtpClientのサブミッションポートは
認証上手く行かない事がある、System.Web.Mail.SmtpMai
なら上手く行く、ってかいてあったのでこっちもテストプログラム
作ってみたら確かに認証通ってメール送信できた。。

何とかならないだろうか・・・

97:デフォルトの名無しさん
10/02/10 23:47:44
>w

などと不真面目な奴には教えない

98:96
10/02/10 23:52:15
>>97
それは大変失礼しました

結構真面目に悩んでいるので何かおわかりなら
教えて下さい

99:デフォルトの名無しさん
10/02/10 23:58:57
>>97
どうせわかんねーんだろwwwwww

100:デフォルトの名無しさん
10/02/10 23:59:26
>結構真面目に

ふざけるのもいい加減にしろ!

101:96
10/02/11 00:02:45
>>100
ふざけてないですよ?

102:デフォルトの名無しさん
10/02/11 00:07:53
ほっとけよ


103:デフォルトの名無しさん
10/02/11 00:26:43
ほっとけーきよ

104:デフォルトの名無しさん
10/02/11 00:31:02
hotkey

105:デフォルトの名無しさん
10/02/11 00:33:00
ほーほけきょ

106:デフォルトの名無しさん
10/02/11 01:51:06
知らぬなら
教えてあげよう
ホトトギス

107:デフォルトの名無しさん
10/02/11 04:09:14
>96
うちは587でもSystem.Net.Mail.SmtpClientは正常に動作してる
書いてるコードも晒さないで何とかしてもらおうというのがまず無理だと思う
つぶやいてみたかっただけならtwitterへどうぞ

108:デフォルトの名無しさん
10/02/11 10:08:39
>>107
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

109:デフォルトの名無しさん
10/02/11 10:26:25
IsErrorがtrueのObsolete属性が付いたメンバを使おうとしたときに出るコンパイルエラーを回避する方法はありますか?

110:デフォルトの名無しさん
10/02/11 11:11:34
>>108
>>58-62

111:デフォルトの名無しさん
10/02/11 11:48:27
>>108
ふらっとに池ボケ
最新50くらい嫁

112:96
10/02/11 11:51:58
>>107
すまん。晒すわ
本当サンプル程度で申し訳ないが

昨日もあれからやってみたが会社のメールサーバーは
認証不可。GeneralFailure。25番はポート自体閉じてるので
どうにもならない

自宅のBiglobeは587番ポートだとメールボックス使用不可
25だと正常にメール送信できる

113:96
10/02/11 11:54:26
using System.Net;
using System.Net.Mail;
(略)
public void SendMail(string from, string to, string subject, string body)
{
MailMessage message = null;
SmtpClient client = null;

try
{
message = new MailMessage(from, to, subject, body);

client = new SmtpClient();
client.Host = "(smtpサーバーアドレス)";
client.Port = 587;

client.Credentials = new NetworkCredential("認証ユーザー名", "パスワード");

client.Send(message);
}
catch (SmtpException ex)
{
SmtpStatusCode code = ex.StatusCode;
}
finally
{
message.Dispose();
}
}
(略)

114:96
10/02/11 11:57:36
EnableSslやTimeoutも明示してみたりしたが特に
効果はなかった。何かわかればお願いします

115:デフォルトの名無しさん
10/02/11 11:57:59
.NETのやつと、うまく行くメーラーで、パケット取って見てみればいいじゃん。

116:デフォルトの名無しさん
10/02/11 12:00:08
どこでエラー吐くのかわからんのだが
エラーなしで通信だけできないの?

117:デフォルトの名無しさん
10/02/11 12:03:45
>>115,116
client.Send(message);
まで普通に動いてしばらくしたらcatchに流れてくる
しばらくって言っても10秒も経たないかな

パケットキャプチャか・・・。それはまだやってなかった
検討してみる。ありがとう

118:デフォルトの名無しさん
10/02/11 12:22:38
SMTPサーバは生きてるけど
587ポートが通信拒否状態なだけだったらワロス

119:デフォルトの名無しさん
10/02/11 12:37:39
>>118
会社もBiglobeもメーラーなら587番ポートでも
上手く行くんだが・・・

そもそもメールサーバー側の設定とかに詳しくないので
その辺も調査・勉強してみる。ありがとう

120:デフォルトの名無しさん
10/02/11 12:57:57
>>108
レスはしてくれるけど答が返ってくる保証はないんだよなぁ

121:デフォルトの名無しさん
10/02/11 13:02:24
>>119
GeneralFailure  トランザクションを発行できませんでした。指定した SMTP ホストが
           見つからない場合にこのエラーが発生します。

本当にGeneralFailureがきてるなら、認証以前の問題じゃないのか

>>120
そもそも>>1は無効

122:デフォルトの名無しさん
10/02/11 13:11:41
>>121
そうなんだよね。認証不可ってのは例外Messageが
「認証に失敗しました」ってなっているだけの話

MSDNで仕様みるとご指摘通りで、確かにそれはあると
思ってる。ただ、メーラーで設定して成功しているサーバー名
とユーザー名、パスワードで間違いなく設定してるんだが・・・

比較用に自宅のBiglobeでやったら587だとメールボックス使用不可だし・・・
25ならOKだけど

設定周りの確認&パケットキャプチャから地道にやってみる
ありがとう

123:デフォルトの名無しさん
10/02/11 13:14:18
25で通るなら25でいいような…587じゃないダメってのは仕様なの?

124:デフォルトの名無しさん
10/02/11 13:19:19
>>123
25ならOKなのはBIGLOBEで会社は25でも駄目

特定顧客ならそれでも良いかもしれないけど、複数顧客向けの
システムで、機能が導入できるかどうかの技術調査中なんだ

実際自分の会社も25番ポート閉じてるし、そういう顧客が
いると想定される時点で「587番ポートについては環境次第で
メール送信出来ないかもしれません」って仕様では苦しい。。

125:デフォルトの名無しさん
10/02/11 13:22:59
えーとさーばせっていをおこなわずにあぷりけーしょんのみでつうしんしたいのですか?

126:デフォルトの名無しさん
10/02/11 13:31:02
そろそろうざーい。

127:デフォルトの名無しさん
10/02/11 20:47:44
>>126
うざーい

128:107
10/02/11 23:26:58
>122
うちの環境だけど、メールサーバーがLinuxでPostfix使ってる
んでクライアント側はWebサービス(asmx)使って投げてるから参考なるかわからんが

public bool sendMail(string fromAddress, string toAddress, string subject, string body)
{try{
MailMessage message = new MailMessage();
message.From = new MailAddress(fromAddress);
message.To.Add(new MailAddress(toAddress));
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = false;
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = false;
smtpClient.Send(message);
return true;
}
catch (Exception ex)
{略}
}
NetworkCredential使わないでWeb.configに
<system.net><mailSettings><smtp>
<network host="SMTPサーバー" port="587" userName="認証ユーザー名" password="パスワード"/>
</smtp></mailSettings></system.net>
で送れてるよ
俺もサンプルというか基本的なことしかやってないのにエラそうなこと書いてスマン

129:デフォルトの名無しさん
10/02/11 23:33:15
自分の環境でできない=不特定多数の環境では使い物にならない
でFA

130:デフォルトの名無しさん
10/02/12 00:07:11
>>129
あ?

131:デフォルトの名無しさん
10/02/12 04:19:17
とりあえず結論から言うと、使っているMTAがゴミである可能性が高い。

AUTH-LOGINには明確な規格がないが、デファクトスタンダードではクライアントが送るデータは2パターン。
もし、SmtpClientが送っている方のパターンにMTAが対応していなければ、エラーとなるのは必至。

132:デフォルトの名無しさん
10/02/12 04:51:11
エラーとなるのは必至ですね。

133:デフォルトの名無しさん
10/02/13 20:51:35
加算代入されたdelegateをまとめて実行した時、それぞれの戻り値を得る方法はどうすればいいの?

134:デフォルトの名無しさん
10/02/13 20:56:46
Delegate.GetInvocationListでバラバラにしてから呼び出す
マルチキャストは基本的にイベント専用の機能なので戻り値が必要なら普通にコレクションに入れた方がいい

135:デフォルトの名無しさん
10/02/13 21:02:36
[画面のプロパティ] → [詳細]タブ → [ディスプレイ]を選ぶ →
[Windows デスクトップをこのモニタ上で移動できるようにする]
のチェックボックスを切り替える相当のことって可能でしょうか?

136:デフォルトの名無しさん
10/02/13 22:36:44
うん!

137:デフォルトの名無しさん
10/02/13 23:31:05


138:デフォルトの名無しさん
10/02/14 04:39:46
ちょっとマルチスレッド化の速度について質問なんだけれど…

今ThreadPoolと、複数スレッドにQueueで仕事を分配する処理を競争させてるんだけど
(ようするに自前ThreadPool。ただ、まだ複数スレッドを作ってそれぞれが共通のQueueからデリゲートを取ってくるだけの簡単なもの)
どうやっても.Net製のThreadPoolに勝てないんだが理由が分からない。とりあえず試したQueueの種類としては

クリティカルセクションを使った割と定番のブロックするキュー
ロックフリーキュー
スレッド専用キュー

一応条件次第では勝てるんだけど、その条件がキューにデリゲート10000個とか極端な場合なんでなんとも
(キューとのやり取りは自前のほうが早い?)

キューのロック以外で思いつくのは、ThreadがSystemアセンブリ内なんで、
アセンブリ超えるオーバーヘッド?ぐらい ThreadPoolは確かSystemアセンブリだったと思うんで
超えなくてすむから?とか不確定なもの

環境はOS WindowsVista CPU Intel Core2Quead 2.40GHz 2.39GHz
テストの仕方はMath.Sqrt()を一定回数ループするデリゲートを一定個

思いっきり車輪の再発明で愚の骨頂だと思うんだが、ちょっと気になったので
一応、キューにデリゲートが少ない場合は全部のやりかたでマルチスレッド化したほうが早くはなってる
自前 1.7倍程度 専用キューと.NetのThreadPoolが2.7倍程度
専用キューと.NetのThreadPoolが互角なのが解せぬ


139:138
10/02/14 04:42:41
Core2Queadってなんだ Quad ですorz


140:デフォルトの名無しさん
10/02/14 05:04:45
sscli読んでみたら?
ちょっと見てみたけどThradPoolはネイティブメソッドのラッパーだね


141:デフォルトの名無しさん
10/02/14 05:07:41
.netはソース見てみるのが一番いい
誰でもダウンロードできるんだし

142:デフォルトの名無しさん
10/02/14 05:17:38
>>141
PCが無くても?へえ

143:デフォルトの名無しさん
10/02/14 05:20:20
うん

144:デフォルトの名無しさん
10/02/14 05:53:13
>>141
どこで落とせる?

145:デフォルトの名無しさん
10/02/14 06:13:43
転載だけど


ふらっとC#,C♯,C#(初心者用) Part54
スレリンク(tech板:708番)

これこれ
URLリンク(www.atmarkit.co.jp)

>Visual Studio 2008(Express Editionは除く)でデバッガを使用する際に、クラス・ライブラリの
>メソッド内部までソースコード・レベルでのトレース(ステップ・イン実行)が可能になるというものだ。
デバックの際にトレースができないだけでExpress Editionでもソースは入手可能なのかね?

このやり方で落ちてくるんだが
URLリンク(blogs.yahoo.co.jp)

NetMassDownloader -d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 -o [ローカルの保存先ドライブ]

146:デフォルトの名無しさん
10/02/14 06:15:14
すいません。とりあえずのテストなんでスレッド終了を待機する時whileループで待機していたんですが、
これメインスレッドさぼってると気づいてメインスレッドにも仕事させたらThreadPoolに追いつきましたorz
あと、計測結果を見やすくしたら2.7倍どころではなく3.7倍程度でしたorz

自前の実装も3.7倍程度と大体期待通りになりました。
やはり駄目なのは自分だった…

>>139
>>140
はい。とりあえずネイティブメソッドを呼んでいるところまでは追いかけたんですが、
もうちょっと見てみます。ありがとうございます。


147:138 146
10/02/14 06:17:54
更新してなかった

>>145
はい。ソースコードは既に手元にあります。
ですが、ありがとうございます。


148:デフォルトの名無しさん
10/02/14 10:09:26
URLリンク(www.vector.co.jp)
このツールマルチコア対応って書いてあるんだけどこういうのってどういうこと?
マルチスレッド化してるってこと?
一応リバースエンジニアリングは特に禁止されてなかったので
Reflectorで見てみたけどわけが分からなかったorz
一応BackgroundWorkerは使ってるっぽいんだけど


149:デフォルトの名無しさん
10/02/14 12:46:29
単に一つのハッシュ計算に一つのスレッドを使ってるだけ。
その手のソフトなら10分もあれば誰でも作れるよ。

150:デフォルトの名無しさん
10/02/14 13:50:00
アプリケーション終了時に
とある実例(インスタンス)の破棄処理(Dispose)を走らせたいんだけど
Mainのあるところでusingステートメント使えばいいの?

151:デフォルトの名無しさん
10/02/14 13:58:58
ファイナライザ書いとけば?
ファイナライザが呼ばれずに終了してしまうような状況では
usingによるDisposeもfinallyも呼ばれる保証はない
CriticalFinalizerObject使えばより確実

152:デフォルトの名無しさん
10/02/14 14:00:31
そんなものがあったのか。
C++にあったデストラクタがなくてクソいと思ってたけどMSDN見たらなんだか格好いいな。
URLリンク(msdn.microsoft.com)(VS.71).aspx

ゴッドファーザーみたいな名称だ。

153:デフォルトの名無しさん
10/02/14 14:06:27
自分のクラスで直接抱えてるアンマネージリソースを開放したりするのはいいが
ファイナライザの中で他のオブジェクトのDisposeを呼んだらダメだぞ
あとファイナライザを書くと確実にGCのパフォーマンスが落ちるのでどうしても必要な場合だけ

154:デフォルトの名無しさん
10/02/14 14:19:41
というかよく見たらApplication.Exit()しても終了してないみたいだ。
なんだこれ。

155:デフォルトの名無しさん
10/02/14 14:24:54
調べたら別スレッドがあるとApplication.Exit()でも終了しないみたいだけど
グローバルフックもこれに含まれるの?

156:デフォルトの名無しさん
10/02/14 14:27:45
自己解決しました。

157:デフォルトの名無しさん
10/02/14 14:28:18
Application.ExitはApplication.Runを抜けるだけ

158:デフォルトの名無しさん
10/02/14 17:24:50
SystemExplorer見ると初回起動後以外はExitしてもプロセスが死なないんだけどどうして?

159:デフォルトの名無しさん
10/02/14 17:35:41
動かしたまま放置するようなスレッドは
.IsBackground = true


160:デフォルトの名無しさん
10/02/14 17:54:35
FormClosingでe.Cancel = trueしてただけでした^^;
お騒がせして申し訳ありませんでした^^;;

161:デフォルトの名無しさん
10/02/14 18:38:21
しねよ(´・ω・`)

162:デフォルトの名無しさん
10/02/14 19:57:12
>>149
少し考えてみただけでいくつも疑念がわいてくるから、
ホントかよって思ってざっと見てみたが、だいぶ違うじゃねーかよ。
そりゃ大枠でマルチスレッド化してるってのは違いないが。

自信満々書いてるからなんか知ってんのか調べたのかと思ったが、
てきとーに言ってみただけかよ。

まあでも逆アセのコードは読むにはしんどいから、
誰でも10分でできるってんなら見本を書いて見せてほしいけどな。
ファイル読んで計算するとこだけでいいから。


163:デフォルトの名無しさん
10/02/14 20:13:19
一般的なマルチスレッド対応についての話なんだから、適当に一般論を答える
のが筋だろフツー。何を期待して熱くなってるんだか。
調べてみたら特殊な事してるって分かったなら、はよ報告しろや。

164:デフォルトの名無しさん
10/02/14 20:14:53
つーか、2ちゃんに何を期待してんだよ、って話。

165:デフォルトの名無しさん
10/02/14 20:17:13
>>163-164
>>161

166:デフォルトの名無しさん
10/02/14 20:20:38
自己解決しました。

167:デフォルトの名無しさん
10/02/14 20:24:05
>>166
よかったね

168:デフォルトの名無しさん
10/02/14 20:35:42
>>148
>>149
>>162
>>163
くすくす



169:デフォルトの名無しさん
10/02/14 20:37:25
URLリンク(ja.wikipedia.org)

170:デフォルトの名無しさん
10/02/14 20:42:39
URLリンク(ja.wikipedia.org)

171:デフォルトの名無しさん
10/02/15 00:12:38
>>162
リフレクションしてみたら>>149の言うとおりでした
ほんとうにありがとうございました

作者乙

172:デフォルトの名無しさん
10/02/15 00:15:59
> リフレクションする
ってなんだよ
鏡でも見てんのか

173:デフォルトの名無しさん
10/02/15 00:18:03
>>172
鏡ぐらいみようよ…

174:デフォルトの名無しさん
10/02/15 00:26:22
どっちやねん

175:デフォルトの名無しさん
10/02/15 00:29:55
え?

176:デフォルトの名無しさん
10/02/15 00:32:40
気にすんな
ただの誤爆だ

177:デフォルトの名無しさん
10/02/15 01:11:50
>>171
違うじゃん、ほんとに見たのかよ


178:デフォルトの名無しさん
10/02/15 01:22:58
真面目に聞くけど
>単に一つのハッシュ計算に一つのスレッドを使ってるだけ。
の場合、ファイルの読み込み部分はどうなるんだ?


179:デフォルトの名無しさん
10/02/15 01:38:50
※複数ファイルを同時に計算することはできません。あくまで1つのファイルを対象に計算するためのツールです。

なんだから、読み込み部分はひとつだろ。

180:デフォルトの名無しさん
10/02/15 01:54:21
いや、そのひとつの読み込みとハッシュ毎の計算スレッドの連携って言うか。


181:デフォルトの名無しさん
10/02/15 02:08:34
>>178
readに特化したコストの低いロック手法があってだな・・・
その後にスレッド毎にメモリにロードしてだな・・・
そういうこった

182:デフォルトの名無しさん
10/02/15 05:25:37
そうだろうねぇ

183:デフォルトの名無しさん
10/02/15 06:06:20
質問ですが
C#でDMM.COMで使われているようなexeの中に画像を埋め込んだアプリケーション
作れるんでしょうか?試しにVS2008で画像をビルドをリソースに埋め込んだものをEXEで
書き出してリフレクターで見てみたら画像丸見えでした。
難読化ツール Spices.NET 5Jみたいなものを使って画像見られなくするのは可能でしょうか?認証とかphpとかにIDとPASSを投げて承認させることはできますが他に何が必要なんでしょうか?
URLリンク(www.newtone.co.jp)


184:デフォルトの名無しさん
10/02/15 06:32:32
>>183
方法はいろいろあるけど完璧はないよ
それにソースの難読化は関係ないんじゃないかな?

画像を暗号化などする場合はその戻しロジックを難読化させるくらいか・・・

185:デフォルトの名無しさん
10/02/15 06:40:51
暗号化速度を気にするなら簡単な方法としては

画像ファイルの先頭何バイトかを特定のアルゴリズムで書き換える。その後exeに内蔵
表示の際はexe内部のデータの書き換えた部分を復元して表示

とかかな

ファイルを一定バイト単位をブロックとして並び替えするとかでもいいかも

186:デフォルトの名無しさん
10/02/15 07:13:04
単純に最初16バイトぐらいをビット反転させるだけでも…

187:デフォルトの名無しさん
10/02/15 07:38:27
定番のxorでいいよ

188:デフォルトの名無しさん
10/02/15 07:55:28
>>181
何それ?


189:デフォルトの名無しさん
10/02/15 08:02:55
Read-Write Lock?

190:デフォルトの名無しさん
10/02/15 09:54:36
>>184-186

なるほど参考になります。
ありがとうございます

191:デフォルトの名無しさん
10/02/15 11:36:52
XmlDocumentで名前空間のprefixを指定せずにXPATHを使いたいのですが、
そのためにXmlDocumentからxmlnsを削除しようかと考えています。

設定できるプロパティがないようなので、一度文字列に変換して
xmlns属性を消してXmlDocumentに読み直すという方法を
とるつもりなのですがこれはまずいでしょうか?



192:デフォルトの名無しさん
10/02/15 11:43:43
removechildとかなかったっけ?

193:デフォルトの名無しさん
10/02/15 11:44:50
removeattributeとかなかったっけ?

194:デフォルトの名無しさん
10/02/15 11:47:27
名前空間を無視すること自体が間違ってるので
それでもやるんだったらその手段の良い悪いなんか意味がないだろ

195:デフォルトの名無しさん
10/02/15 12:00:33
>>193
xmlnsはXmlNode.Attributesに含まれてないっぽくて。

>>194
HTML(SgmlReaderでXML変換)とXHTMLのXPATHを共通化したいのです。
XmlNamespaceManager使って何とかできるのかしらん。

196:デフォルトの名無しさん
10/02/15 19:41:34
気ままにリフレクションって歌が昔あったような....
確か焼きそばUFOのCMソングだったような

197:デフォルトの名無しさん
10/02/15 20:07:39
おいジジイ
くたばれよクソ面白くねえんだよ

198:デフォルトの名無しさん
10/02/15 20:20:57
>>189
それはないわさすがに。
いまだに>>181の意味は不明だけど。


199:デフォルトの名無しさん
10/02/15 20:23:22
わからないなら教えて下さいだろ?
あっ?

200:デフォルトの名無しさん
10/02/15 20:24:28
分からないので教えてください。


201:デフォルトの名無しさん
10/02/15 21:08:45
んあっ・・・

202:デフォルトの名無しさん
10/02/15 22:31:04
んっ・・・

203:デフォルトの名無しさん
10/02/15 22:50:32
そう、そこをもっと、、うん、、、いい感じっ///

204:デフォルトの名無しさん
10/02/15 22:55:32
つまんねーよおっさん

205:デフォルトの名無しさん
10/02/15 22:58:03
ヘ:::::::::;;: -‐''''""( )1
 ゙、::::::::-‐''""" ̄"'i
  :V;;||:::: '~ニ=ッ, r='|  ショカツリョウ
  i!f !:::::      ゙、i  諸葛亮曰く
  i!ゝ!::::     ‐/リ
  i::/:、 :::、  /''ii'V  「他にすることは無いのですか?」
  ̄ハ:::::\ "''il|バ'

206:デフォルトの名無しさん
10/02/16 20:59:28
なぜおっさんと分かった

207:デフォルトの名無しさん
10/02/16 22:06:01
なんか>>149みたいに単純にスレッド分けてやろうとしたが、なんか結構難しいぞorz
まだバグ持ちの状態で無理やり動かしたが、パフォーマンスは微妙。
コア数以下のハッシュ同時計算なら同等になるが、
コア数以上で計算負荷に偏りがあると負ける。
進捗表示も何もしてないのに…
やる気がなくなってきた。

スレッドプール使ったら多分もっと簡単にできそうだが。


208:デフォルトの名無しさん
10/02/16 22:09:42
>コア数以上で計算負荷に偏りがあると負ける。
間違えた、コア数を超える同時計算ね。


209:デフォルトの名無しさん
10/02/16 22:15:57
ProducerConsumerパターン使って論理コアと同等数のスレッド数で回すだけじゃん
何が難しいのかさっぱりわからん

210:デフォルトの名無しさん
10/02/16 22:17:02
じゃあやってみてくれよ。


211:デフォルトの名無しさん
10/02/16 22:19:47
いやまあそりゃ、俺が未熟なだけだけどね。
でも単純にProducerConsumerとはちょっと違うような気がするけど。


212:デフォルトの名無しさん
10/02/16 22:23:50
何でProducerConsumer使うかわからないんだな
話にならん
一からやりなおせ

213:デフォルトの名無しさん
10/02/16 22:26:32
だって普通のProducerConsumerと違うじゃん。
一つのデータを全スレッドがそれぞれで処理するんだから。


214:デフォルトの名無しさん
10/02/16 22:28:28
論理コアと同等数のスレッドってのがみえんのかいな
パフォーマンス云々いうわりには論点がわかってないんじゃな
出直せ

215:デフォルトの名無しさん
10/02/16 22:33:53
それじゃ>>149と違うじゃん。
元々そこに突っ込みたくてそれぞれスレッドにしてやったんだけど。
まあいいけどね。

それで論理コアと同等数のスレッドでやる場合はどうなるわけ?
どういう風にそれぞれのハッシュ計算に処理を割り当てるの?
例えばスレッド数2で計算するハッシュが3個の場合、
2スレッドをどういう風に3つの計算に割り当てるの?

まあ割り当ては分かるにしてもそれを実装するの結構面倒なんだが、
何が難しいかわからんくらい簡単なの?
いや簡単かもしれんがそれなら見せてくれ・


216:デフォルトの名無しさん
10/02/16 22:37:09
計算するハッシュ数は未定
論理コアが48コアある環境もある
だから>>149と違う事にはならんね
定義が曖昧だからな

割り当てに使うパターンがProducerConsumerパターンだろうが
その辺にごまんと散らばってるパターンを難しいとか、マジで勘弁してくれよ

217:デフォルトの名無しさん
10/02/16 22:37:55
僕はすぐにわかったよ。
うん、この場合はProducerConsumerパターンだよ!

218:デフォルトの名無しさん
10/02/16 22:38:39
まあ、スレッドプール使うと簡単になるけどね。


219:デフォルトの名無しさん
10/02/16 22:41:19
パターンが難しいんじゃなくて、今回のケースで実装が面倒って言ってるの。

>だから>>149と違う事にはならんね
コア数なんて計算数より少ない場合も想定するのが当たり前なのに
>>149って書いてんだから、普通に読み取ったら意味が違うように見えるわ。


220:デフォルトの名無しさん
10/02/16 22:46:09
10分でできるんだから誰か見本を見せろよ


221:デフォルトの名無しさん
10/02/16 22:49:17
ProducerConsumerは@ITにサンプルソースがあっただろw
あれコピペしてハッシュ計算する部位だけちょちょいと書けばいいだけじゃんw
こんなの出来ないとかdaseiw

222:デフォルトの名無しさん
10/02/16 22:57:26
某テトリス動画と同じように何度も反復して10分なんだよ!

223:デフォルトの名無しさん
10/02/16 22:58:38
そのタイプの実装だと余計複雑になるぞ。


224:デフォルトの名無しさん
10/02/16 23:02:19
これぐらいの実装ならまゆちゃんでも10分で出来るんだよ?

225:デフォルトの名無しさん
10/02/16 23:04:21
>>224
けつあたまは黙って苛められてろ

226:デフォルトの名無しさん
10/02/16 23:12:00
>>223
へー

227:デフォルトの名無しさん
10/02/16 23:26:46
Producer-Consumerパターンで何が問題なのかが知りたい
まさか、productを何にすべきか分からないとか?

228:デフォルトの名無しさん
10/02/16 23:35:43
URLリンク(msdn.microsoft.com)
OAEP パディング (PKCS#1 v2)
Microsoft Windows XP 以降。
剰余サイズ -2 -2*hLen (hLen はハッシュのサイズ)。
これっていくつになるんでしょうか?
乗除がどれの事なのか全く分からず・・・orz

229:デフォルトの名無しさん
10/02/17 00:27:10
おかしいと思って、英語の方を見たらmodulusになってるw
つまり、正しくは剰余ではなく法だな

あとは、RSAのアルゴリズムを考えれば分かると思うが、
アルファベットが剰余類に限定されるのでそのサイズに収まる必要があると
で、規格については詳しくないが単純な推測として、
おそらく(データ,ハッシュ)をシンボルとしているからハッシュの分を引けと

230:デフォルトの名無しさん
10/02/17 00:37:08
(´・ω・`)…

231:デフォルトの名無しさん
10/02/17 00:56:26
>>227
だれも問題とは言ってない件

>>221
みたいな実装をもとにしたら余計ごちゃごちゃになるだろって話

処理方法の大枠で見たらそりゃ誰が作ってもProducerConsumer的な流れにはなる

だからいい加減作って見せてやればみんな納得するだろ


232:デフォルトの名無しさん
10/02/17 00:57:40
>>229
OAEPパッティングが無い場合は最大長117ってわかったんですが
未だにOAEP有りの場合の>>228の長さが分かりません
一応1024bit長なんですがどう計算すればいいんでしょうか?

233:デフォルトの名無しさん
10/02/17 01:11:47
あとパフォーマンスを最大限発揮させるのにどうするのがいいか少し悩む。


234:デフォルトの名無しさん
10/02/17 01:33:28
普通のProducerConsumerパターンでどうやるのか書いてみなって。
一度に処理するデータブロックごとのシーケンスをどう制御するのかとか興味深い。
もっともそういう制御が入る時点でもう単純なProducerConsumerパターンとは
ちょっと様子が変わってくるけどね。


235:デフォルトの名無しさん
10/02/17 01:36:51
この辺は読んだ?
URLリンク(dobon.net)

236:デフォルトの名無しさん
10/02/17 01:39:51
そこには何もヒントがない件


237:デフォルトの名無しさん
10/02/17 01:48:52
URLリンク(nwikiproxy.appspot.com)

238:デフォルトの名無しさん
10/02/17 01:52:15
ハッシュはSHA1って決まってるの?


239:デフォルトの名無しさん
10/02/17 01:55:27
C#でFPSゲームが作りたいんですがどうすればいいですか?

240:デフォルトの名無しさん
10/02/17 02:02:39
ゲ製作板へGo

241:デフォルトの名無しさん
10/02/17 02:15:45
URLリンク(www.codeproject.com)
URLリンク(support.microsoft.com)

242:デフォルトの名無しさん
10/02/17 07:17:29
(´・ω・`)…

243:デフォルトの名無しさん
10/02/17 21:16:43
結局何なんだよ、>>148
>>149みたいに単純にスレッド化されてんのか
>>209みたいにProducerConsumerパターンを使ってんのか
それともそういうのとはまた違うやり方をしてんのか

なんだよ誰も分からないのかよさすが口だけ2ちゃんねらどもだ


244:デフォルトの名無しさん
10/02/17 22:34:45
見たところ特に目新しい手法は使われていないみたいだよ

245:デフォルトの名無しさん
10/02/17 22:55:50
かなりくだらない質問だと思いますが、、、

C# .NET の Form アプリケーションで、ウィンドウの外周を線がぐるぐる回るというのがやりたくて
タイマで一定周期で Invalidate して OnPaint ハンドラでウィンドウに DrawLine しています
線は問題なく表示されますが、タイマの周期や一回の移動距離を調整してもどうしてもちらいてしまって
滑らかな動きになりません
ちらつかずに描画する何か特別な方法があるんでしょうか?

246:デフォルトの名無しさん
10/02/17 23:01:43
>>245
URLリンク(www.atmarkit.co.jp)

247:245
10/02/17 23:16:12
>>246
ちらつきが特盛りになりました(´・ω・`)
ちらついているというより、表示されたすぐ後に消されているような感じです

248:デフォルトの名無しさん
10/02/17 23:20:19
OSはXP?
ゲームと違ってちゃんとしたvsyncの同期はやってないだろうから
ティアリング回避は無理なんじゃないかな?

249:デフォルトの名無しさん
10/02/17 23:23:29
こっちじゃね?
URLリンク(www.atmarkit.co.jp)

250:245
10/02/17 23:33:39
>>248
無理ぽですか・・・

>>249
線は出ますが、消している部分が消えないので一周したら全部塗られてしまいます
ウィンドウの真ん中へんも表示されないです やり方がまずいんでしょうが

ひょっとして、ちらつくのは描画する線の全体を消したり塗ったりしているだからで
移動する部分だけ背景色や線の色で書けばよいのでは?
ちょっと試してみます

251:デフォルトの名無しさん
10/02/17 23:42:04
>>247
表示したあとすぐ消すようなコード書いてるんでしょw

252:デフォルトの名無しさん
10/02/17 23:47:57
>>251
windowsの場合その辺の制御が面倒なんだよな
ゲームのようにフレームの開始がはっきりしてて描画終わったらvsync待ちしてバッファ切替とか
そういうのじゃないしねえ

253:デフォルトの名無しさん
10/02/17 23:48:56
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);

こいつ入れてn秒ごとにRefleshすれば?

254:デフォルトの名無しさん
10/02/17 23:51:53
前のを消して新しいのを描く→時間待ち→前のを消して新しいのを描く→時間待ち→
ってやってる?
まあどっちにしてもちらつくんだけど

255:デフォルトの名無しさん
10/02/17 23:52:13
>>250
というか、線は自分で消すの
背景を描画しなければ普通にClearするだけでも変わるはず

256:デフォルトの名無しさん
10/02/17 23:52:57
だからちらつきはwindowsのシステム上の問題なんで無理
vistaはOSそのものがゲームまがいなことやってるのでちらつかないかも

257:245
10/02/18 00:14:33
試しに、線を描くのみにして跡を消す処理を中止したら
さほどちらつかずに動くようになりました
Invalidate で再描画する処理が走って、さらにプログラムで消す処理が動くから
ちらついてたんですかね
期待してたヌルヌルとは違いますが、とりあえずこれでよしとします

258:デフォルトの名無しさん
10/02/18 00:29:54
俺ならGIFはっつけるな・・・
その上にパネルでも置いて周りだけ見えるようにする

という意味のないくだレス

259:デフォルトの名無しさん
10/02/18 00:36:00
>>257
ソースうpすれば何かヒント出せるかもしれんぞ

260:245
10/02/18 01:25:32
>>259
かなり恥ずかしいですが、、、
どれをうpすればいいのかよくわからなかったので
ボタン(button1)を一つだけ置いた状態の Form のソースです
URLリンク(77c.org)

261:デフォルトの名無しさん
10/02/18 01:35:00
>>248
>>256
問題にしてるちらつきのレベルが全然違う話をしても意味ないよ。
大体今時液晶ディスプレイばかりなんだからティアリングの様子も変わってるし。


262:デフォルトの名無しさん
10/02/18 01:37:18
>>261
基本的な仕組みはかわってないよ
液晶だってPC側から貰った映像を元にピクセルを操作してるんだし

263:デフォルトの名無しさん
10/02/18 01:38:45
CRTの走査と液晶の表示じゃ元は同じでも表示のしくみが全然違うから。


264:デフォルトの名無しさん
10/02/18 02:35:19
脊髄で話を飛躍させるなw
問題はプログラムミスによるチカチカだろ

265:チカ
10/02/18 02:54:37
気軽に私の名前を呼ばないでくれる?

266:デフォルトの名無しさん
10/02/18 03:20:35
>>245

とりあえずやっつけで
元のまんま適当にいじった

URLリンク(77c.org)

これでとりあえずどうだろ?


267:デフォルトの名無しさん
10/02/18 05:33:02
>>260>>245
こんな感じのでもいけるはず (デザイナでDoubleBuffered=trueに)

URLリンク(77c.org)

ついでにロジック部分もいじってみた
・計算と描画を分離して、計算はタイマーで実行
・計算部分を整理

>>266
> int res = BitBlt(dc, 0, 0, Convert.ToInt32(width), Convert.ToInt32(height), dc, 0, 0, SRCCOPY);
これって何か特別な意味あるの?

268:デフォルトの名無しさん
10/02/18 06:37:51
validateの範囲を最小限にするとか

269:245
10/02/18 07:18:39
>>266-267
おお!ありがとうございます!!
まったくちらつきませんね ヌルヌルです
これで心置きなくぐるぐるできます

270:デフォルトの名無しさん
10/02/18 09:04:42
液晶がどうの言っていたバカはどこ行った

271:デフォルトの名無しさん
10/02/18 09:09:58
ん、誰か呼んだ?

272:デフォルトの名無しさん
10/02/18 10:03:50
この場合、バカなのはvsyncがどうのって言ってたほうだろw

273:デフォルトの名無しさん
10/02/18 10:21:52
こういう視覚効果はWPFが強いな。
URLリンク(www7a.biglobe.ne.jp)
URLリンク(www7a.biglobe.ne.jp)
URLリンク(www7a.biglobe.ne.jp)

画材や画像はニコ方面からの拾い物なので早めに消す。

274:デフォルトの名無しさん
10/02/18 10:26:02
ぶらくら?
問題が生じたので WPFを終了しますとか何とかいっておわった
俺死ぬの?

275:デフォルトの名無しさん
10/02/18 10:31:08
死ぬだろうな。

276:デフォルトの名無しさん
10/02/18 10:33:27
>>274
上2つはルーズXAMLで.NET3.0以上が必要、
3つめはSilverlight3が必要かもしれない。
いずれもスクリプトだけでアセンブリさえ使ってない。

277:デフォルトの名無しさん
10/02/18 10:37:31
Google Chrome でもSilverlight動くんだな。知らんかった。

278:デフォルトの名無しさん
10/02/18 11:03:31
>>267
帰り値を受け取ってるところ?
それともBitBlt使ってるところ?

279:デフォルトの名無しさん
10/02/18 17:20:34
例えば、System.Xml.XmlReaderクラスはabstractで定義されてるのに
XmlReader.Create()メソッドでXmlReaderクラスのインスタンスが作られるってのは
いったいどういうことなのでしょうか?

280:デフォルトの名無しさん
10/02/18 17:27:58
抽象のCreateってC++見たいだな

281:デフォルトの名無しさん
10/02/18 17:38:14
実際には中でXmlReaderの派生クラスのインスタンスを作って返してる
staticメソッドを使ったファクトリメソッドパターンってやつ

282:デフォルトの名無しさん
10/02/18 17:44:45
>>281
やはり内部で派生クラス作ってるんですか
コンストラクタから作るのじゃなければ、言語規約としては矛盾しないのかな…

デザインパターンの知識ってこういうとこでも役に立つんですね、勉強してみます

283:デフォルトの名無しさん
10/02/18 17:47:29
>>282
c#は本筋で関係してそうなクラス(Objectなど)以外にxxBaseとか元になってる似たような
名前のもあるしReaderが作ってことは内部でxxReaderを使ってるってことだしねえ

284:デフォルトの名無しさん
10/02/18 17:48:18
>Readerが作って
Readerが名前に使われてるって

285:デフォルトの名無しさん
10/02/18 18:18:51
C#というよりVisualStudioの話になるんですが、
同一ソリューションの中の
複数プロジェクト(アプリケーション)の
同時デバッグってどうやるんですか?


286:デフォルトの名無しさん
10/02/18 18:22:19
開発環境のデバッグ機能って使ったこと無い

287:デフォルトの名無しさん
10/02/18 18:23:55
System.Diagnostics.Debugger.Break()とか

288:デフォルトの名無しさん
10/02/18 18:25:13
msgboxとprintfしか使ったこと無い

289:デフォルトの名無しさん
10/02/18 18:28:25
ご冗談を

290:デフォルトの名無しさん
10/02/18 18:29:06
>>286
どうやってデバッグやられているんですか?


291:デフォルトの名無しさん
10/02/18 18:30:59
ソースをプリントして脳内で追う

292:デフォルトの名無しさん
10/02/18 18:54:26
dynamic myClass = IronPythonなどでクラスを表すオブジェクト;
dynamic myClassObj = new myClass(); //エラー
C#ではdynamicにnew使えないのはなんで?
dynamicの仕組み上は可能なはずだけどどういう意図で制限してるんだろ

293:デフォルトの名無しさん
10/02/18 18:54:56
ソリューションのプロパティでマルチスタートアップ

294:デフォルトの名無しさん
10/02/18 19:01:54
>>292
DLRのdynamicがC#のクラス用でないというだけ。

295:292
10/02/18 19:19:56
>>294
たとえばSilverlight4ではこんなことができる
HtmlPage.Window.Eval("function f() { alert('エラー'); }");
dynamic func = HtmlPage.Window.GetProperty("f");
func();
もちろんHtmlPage.Window.GetProperty("f")の戻り値はデリゲートじゃなくて変なラッパーだけどちゃんと動く
よく考えたら、C#ではnewの右は型名と決まってるから>>292をやろうとしたら文法に手を入れないといけなくなるね

296:デフォルトの名無しさん
10/02/18 19:23:40
>>295
分かってるなら聞くなよ。
わざわざ書き込みに来て何がしたいんだ?

297:デフォルトの名無しさん
10/02/18 19:48:29
>>293
おー、素晴らしい。
ありがとうございます。

298:デフォルトの名無しさん
10/02/18 21:36:07
.NETで作ったソフトって配布するとVisual Studioを登録した名前がバレちゃう?

299:デフォルトの名無しさん
10/02/18 21:44:51
>>298
pdbファイルののフルパスが入ってることがあるから気になるならオプションで外しておけばいい。

300:デフォルトの名無しさん
10/02/18 21:52:05
アセンブリ情報の中に著作権者は含まれるが、デフォルトで設定されるのは会社の方だけだったかな

301:デフォルトの名無しさん
10/02/18 22:14:23
>>292
これはだめ?
dynamic myClassObj = Activator.CreateInstance(((object)myClass).GetType());

302:デフォルトの名無しさん
10/02/18 22:15:55
DllImportで引数がC/C++でLPCSTR/LPCWSTRの型の関数を使う時にC#側ではstringとして宣言してるんだけど
C/C++ではNULLを渡す場面が発生するみたいで、C#も同様にnullを引数に入れるとコンパイル時にエラる。
どうやって同様の値を表せばいいの?

303:デフォルトの名無しさん
10/02/18 22:17:57
>>301
それだとDLRの仕組みが考慮されない
>>302
IntPtr.Zero

304:デフォルトの名無しさん
10/02/18 22:20:55
(string)IntPtr.Zeroが変換エラー

305:デフォルトの名無しさん
10/02/18 22:27:33
string として宣言せずに、IntPtr として宣言しとけばいいだけ。

306:デフォルトの名無しさん
10/02/18 22:28:13
どうもありがとう!

307:デフォルトの名無しさん
10/02/19 06:36:13
いえいえ。次回のお礼時は贈り物をよろしくね。

308:デフォルトの名無しさん
10/02/19 10:55:03
えっ
昨日も贈り物送ったんだけど届いてない?

309:デフォルトの名無しさん
10/02/19 11:48:27
独自パケットを使った通信で
パケットの中身をXMLにして
XmlSerializer使ってらくに通信したいんですけど
参考サイトとかないですか

310:デフォルトの名無しさん
10/02/19 11:50:45
>>309
わけた方がいいんじゃねーの?

通信で送受信する内容はメモリにおいて置けるし
XmlSerializerの方はMemoryStreamで読み書きできるはずだし

311:デフォルトの名無しさん
10/02/19 12:04:07
・・・

参考サイトとかないですか!

312:デフォルトの名無しさん
10/02/19 12:07:22
そもそも独自パケットなんてできるのか?

313:デフォルトの名無しさん
10/02/19 12:41:33
独自パケットといってもTCP/UDPの上に載せる部分を独自にしたいだけです。

var ns = new NetworkStream(new TcpListener(11111).AcceptSocket());
var obj = new XmlSerializer(typeof(Packet)).Deserialize(ns);

こんな感じでやってみると、Socketが閉じるまでシリアライズし続けるみたいなので。
こういうことをやる楽な方法はないかなと思いまして。

314:デフォルトの名無しさん
10/02/19 12:43:24
>>310
見落としてました。
やっぱりいったんメモリに溜めてからですかね。
うーん。

315:デフォルトの名無しさん
10/02/19 13:07:07
Girl nagisa = new Girl("凪沙", 13, 148.0F, 43.0F, Attribute.Twintail | Attribute.Magical);
while(true) nagisa.Insert(new Stick(Material.Hard));


316:デフォルトの名無しさん
10/02/19 13:08:53
↑は面白いと思ってやってるらしい

317:デフォルトの名無しさん
10/02/19 14:27:07
素直にWCF使えばいいのに

318:デフォルトの名無しさん
10/02/19 15:09:18
何でわざわざ自作すんのかねぇ

319:デフォルトの名無しさん
10/02/19 15:50:23
WCF試してみます。

320:デフォルトの名無しさん
10/02/19 16:33:55
お礼くらい言え

321:デフォルトの名無しさん
10/02/19 16:49:36
お礼は三行以上でお願いします

322:デフォルトの名無しさん
10/02/19 16:59:52



とうございません

323:デフォルトの名無しさん
10/02/19 17:29:22
WCFってさぁ

324:デフォルトの名無しさん
10/02/19 17:50:38
WCF地味に凄いんだよな。
地味なんだけど。

325:デフォルトの名無しさん
10/02/19 19:26:32
WCF自演乙

326:デフォルトの名無しさん
10/02/19 21:40:36
人工知能かよ
WCFすげえなおい

327:デフォルトの名無しさん
10/02/19 21:43:33
expressだと使えない・・・。


328:デフォルトの名無しさん
10/02/19 22:00:10
VWD2008Expressなら使える

329:デフォルトの名無しさん
10/02/19 22:03:35
Express使うならVC#よりもVWDの方がいいよ
VC#からテンプレート抜き出せばVC#のスーパーセットになる

330:デフォルトの名無しさん
10/02/19 22:42:29
VWDええの?
ASP.NETやる時だけ使ってて、C#はVC#EX使ってたよ。

331:デフォルトの名無しさん
10/02/19 23:28:43
プロジェクトとアイテムのテンプレートをVC#から持ってくれば
VWDでWinFormsもWPFもコンソールも使えるようになるよ

332:デフォルトの名無しさん
10/02/20 01:07:31
Windows Formに数個のRadioButtonと1個のButtonを並べておいて、
適当なタイミング(例えばButtonのクリックイベント)でButtonのEnabledをfalseにすると、
(たぶんTabOrderが一番若い)RadioButtonのClickイベントがクリックしてもいないのに
発火するようなんだけど、これバグでなければどう理解したらいいんだろう?

333:デフォルトの名無しさん
10/02/20 01:18:26
Enableとかしなくても貼り付けてフォーム表示するだけで普通に発生するね
ラジオチェックしてボタンをEnable=falseにしたらチェックの入ってるラジオのクリックイベントが発生したわ

クリックなんか使わないから初めて知った・・・





334:デフォルトの名無しさん
10/02/20 01:24:56
ラジオボタンにフォーカスが移る=クリック扱いのようだな
カーソルキーでぐりぐりとフォーカス移動させるとクリックイベント発生しまくる


335:デフォルトの名無しさん
10/02/20 01:51:25
>>334
なるほど。
でもTabキーでフォーカス移動したときには発生しないようだし、
なんだか妙な仕様に感じるなあ。

しかし、AutoCheckをtrueにできない用途(通信がらみとか)だと、Clickイベントを
使わざるを得ないわけでこういう仕様は困るなあ。

MouseClickを使えってことなのか。
でもそれだとSpaceキーとか拾えないしなうーん。

336:デフォルトの名無しさん
10/02/20 07:59:45
ボタンにフォーカスがあるのにEnterキーでクリックにならない。
で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると
なぜかこんどはEnterが使えるようになる。
.Netのコントロールはなんかおかしい。
そんなんプログラマが意識しなくてもデフォルトでそうなってくれてるもんだよな。

337:デフォルトの名無しさん
10/02/20 08:24:29
確かにEnterキーでクリックイベントは起きないな
> で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると
> なぜかこんどはEnterが使えるようになる。
でもこれは再現しない
Enterじゃなくてスペースキーなら使えるよ

結局、フォーカスが移るのは関係なくて、ラジオボタンの○が◎になったときに
クリックイベントが発生してるみたいだから、別に問題ないじゃん
タブで移動やEnterで○のままならクリックしてないのと同じだし
カーソル移動やスペースで◎になるならクリックしたのと同じだし

338:デフォルトの名無しさん
10/02/20 11:08:51
え?

339:デフォルトの名無しさん
10/02/20 11:25:12
>329,331
URLリンク(bluewatersoft.cocolog-nifty.com)
プロジェクトに関してはこういう記載ありましたが、
テンプレートの抜き出しとは何をすれば良いのでしょう

340:デフォルトの名無しさん
10/02/20 12:42:54
何をすれば良いのでしょう

341:デフォルトの名無しさん
10/02/20 14:26:48
comboBox1.Items.Add("hoge");
comboBox1.Text = "HOGE";

とすると Text の値が "hoge" の方になってしまうのですが、
大文字・小文字を区別して"hoge"が選択されないようにするには
どうしたらいいでしょうか?


342:デフォルトの名無しさん
10/02/20 14:39:31
>>339
Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VCSExpress\ItemTemplates\1041フォルダを
ドキュメントフォルダのVisual Studio 2008\ItemTemplates\Visual Web Developperにコピー
同様にItemTemplatesのところをProjectTemplatesに読み替えてコピー
WPFアプリケーションのプロジェクトはちょっとだけvstemplateファイルを弄らないといけなかったような気もする

343:デフォルトの名無しさん
10/02/20 14:41:37
内部で LB_FINDSTRING してるところを無視する。

344:デフォルトの名無しさん
10/02/20 15:21:34
無視するんですね

345:デフォルトの名無しさん
10/02/21 15:22:29
C++/CLIでC/C++の標準ライブラリをラップに包んでC#で利用しようとしているのですが
C#で利用できる名前空間をC++/CLIで定義するにはどうすればいいか教えてくだされ。

346:デフォルトの名無しさん
10/02/21 15:24:56
C++のスレの範囲じゃないの

347:デフォルトの名無しさん
10/02/21 15:27:39
そもそもC#からC++製のマネージドなアセンブリ使う場合/clr:pureでコンパイルしないと使えないんじゃないか?

348:デフォルトの名無しさん
10/02/21 15:29:15
>>345
普通にC++の名前空間にする
>>347
そんなことはない

349:デフォルトの名無しさん
10/02/21 15:30:45
>>348
どうもありがとう!!できました!!!!

>>346
C#から参照してるからC#関係あるだろうが適当な事いうな分からないなら黙ってろクズ

>>347
知ったかぶりはやめましょうね^^

350:デフォルトの名無しさん
10/02/21 15:32:51
TcpClient使ってアクセスしてるならWebAPIの使い方聞いていいって事になるな。
こいつはこじつけが楽でいい。

351:デフォルトの名無しさん
10/02/21 15:33:25
そうだね^^

352:345
10/02/21 15:35:13
>>349
成りすましはやめてください。

353:デフォルトの名無しさん
10/02/21 15:35:48
C#使って351を殺す方法を教えてくださいもOKだね

354:デフォルトの名無しさん
10/02/21 15:37:38
多分同一人物だろうけど、勝手に「自己解決しました。」って発言するやつとか>>349みたいなのがいるからこの板もIDつきにして欲しいな。

355:デフォルトの名無しさん
10/02/21 15:41:17
何度も却下されてるから考えるだけ無駄

356:デフォルトの名無しさん
10/02/21 15:42:33
「なりすましされたくなければ鳥付けて質問しろ」
と次から書いとけ。

357:デフォルトの名無しさん
10/02/21 15:44:13
ム板の花だから

358:デフォルトの名無しさん
10/02/21 15:56:06
>>353
回答したら、幇助になる可能性はあるけどな。

359:デフォルトの名無しさん
10/02/21 16:01:31
動的に生成したPanelにラベルやらピクチャーボックスやらを載せているんですが、
panel.MouseClick += panelClick;
とした場合には、パネル上の他のコンポーネント(ラベルやらピクチャーボックス)
がクリックされた場合は反応しませんよね。
上に載っているラベルとかも含めてパネルがクリックされたら反応させるってことできませんか?

360:デフォルトの名無しさん
10/02/21 16:02:40
そっちのイベントをPanelのイベントに関連づければいい。

361:デフォルトの名無しさん
10/02/21 16:03:08
鳥つけるのもいいけど、ここをよく利用する人にとっても面倒だしなあ
ましてや2ch利用者の多くはテンプレ読まないの多いのにそんなルール
作っても・・・とか思うわ

IDつけてくれとかどこかに要望だしてやってくれるのかな?

362:デフォルトの名無しさん
10/02/21 16:04:12
>>359
panelってむき出しになってる部分あるの?

363:デフォルトの名無しさん
10/02/21 16:05:12
>>360
関連付けってなんです?
panel.MouseClick += panelClick;
label.MouseClick += panelClick;
pictureBox.panelClick += panelClick;
みたいなことをしろってことですか?

364:デフォルトの名無しさん
10/02/21 16:06:58
>>363
うん。

365:デフォルトの名無しさん
10/02/21 16:07:04
>>362
あります
パネルの部分をクリックすると反応します

>>363
panel.MouseClick += panelClick;
label.MouseClick += panelClick;
pictureBox.MouseClick += panelClick;
でした

366:デフォルトの名無しさん
10/02/21 16:09:08
>>364
わかりました、そうします
ありがとうございました

367:デフォルトの名無しさん
10/02/21 16:09:34
>>365
デザイナーが用意するイベント処理関数はいかにも・・という名前付くけど
実際のところは共通の処理にしても問題ないよ
ただそうなると実際どのコントロールでイベントが発生したかわからなくなるので
コントロールのNameで工夫するかTagがあいてるので識別に使うとかすれば
いけるでないの?

368:デフォルトの名無しさん
10/02/21 16:27:32
>>367
こういうときはその方法(NameかTagで区別する)が定石なんですか?

private void panelClick(object sender, MouseEventArgs e)
という関数で
sender instanceof Panel
ってやれるといいんですがinstanceofないんですね
sender.GetType().ToString() == "System.Windows.Forms.Panel"だといけそうですが
ちょっと冗長ですよね

369:デフォルトの名無しさん
10/02/21 16:31:07
as

370:デフォルトの名無しさん
10/02/21 16:36:47
>>368
上にでてる
>panel.MouseClick += panelClick;
>label.MouseClick += panelClick;
>pictureBox.MouseClick += panelClick;
こういう共通関数で処理する場合
object senderで送られてくるのはpanelだけじゃなくなってるので
どこかで識別しないとたぶんキャストでこけるよ

panel.MouseClick += panelClick;
panel.Tag = 1;

label.MouseClick += panelClick;
label.Tag = 2;

pictureBox.MouseClick += panelClick;
pictureBox.Tag = 3;

といった感じで識別コードでも用意して

int ControlCode = (int)sender.Tag;

371:デフォルトの名無しさん
10/02/21 16:41:36
>>370
一部訂正

private void panelClick(object sender, MouseEventArgs e)
{
    int ControlCode = (int)sender.Tag;
//どのコントロールから来たか判断

    //instanceofの代わりにキャストすればいい
    Panel panel = (Panel)sender;
}
それかイベントハンドラの入り口だけはきっちりわけちゃって

そこから共通の処理関数を呼び出すとか
private void panelClick(object sender, MouseEventArgs e)
{
  Panel panel = (Panel)sender;
  commonfunc(panel.hoge1,panel.hoge2);
}
//labelやpictureBoxも同じようにする

372:デフォルトの名無しさん
10/02/21 16:44:57
>>370-371
Tag使ったほうが比較も早そうですね
ありがとうございます

373:デフォルトの名無しさん
10/02/21 16:47:46
>>372
Tagはobjectなんでなんでもぶら下がるからいいよ~

374:デフォルトの名無しさん
10/02/21 16:48:09
TagなんてVB6かよ・・・

375:デフォルトの名無しさん
10/02/21 16:52:28
>>374
グローバルでフラグ持ったりするよりはいいんでないの?
他にコントロール間の関連付けとかいい方法あったっけ?

376:デフォルトの名無しさん
10/02/21 17:12:32
そもそも、まとめてやりたいはずだったのに、わざわざ区別するのもわからん。
それなら、別のイベントプロシージャでやればいいんじゃね?

で、わざわざTagなんぞ使わなくても、is なり == なりで判定すればいいだけ。

377:デフォルトの名無しさん
10/02/21 17:12:40
>>374
C#って過去の言語の寄せ集めみたいな設計だから
Java臭がしてVB6.0臭がするC/C++ぽい言語ってところだよ

378:デフォルトの名無しさん
10/02/21 17:45:34
それ言い始めたら代入文(=)って全てFORTRAN臭がするってことになるしな。
「・・・かよ」は罵倒にすらならないね。

379:デフォルトの名無しさん
10/02/21 17:48:02
キチガイが来ました-。

380:デフォルトの名無しさん
10/02/21 18:51:25
お前のDNAから猿臭がする

381:デフォルトの名無しさん
10/02/21 19:44:39
MemoryStream ms = new MemoryStream();
XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8);

xtw.WriteStartDocument();
xtw.Formatting = System.Xml.Formatting.Indented;
xtw.WriteStartElement("HAGE");
xtw.WriteElementString("HOGE","HOGE");
xtw.WriteEndElement();
xtw.WriteEndDocument();

で、msにXMLを書き込めると思ったら書き込めないんです
何か間違ってるんでしょうか・・・。

382:デフォルトの名無しさん
10/02/21 19:48:17
XmlWriterをClose/Flushしてない

383:デフォルトの名無しさん
10/02/21 19:54:27
Tagは便利だけど、これはどうなんだ?って思いながら使ってる。
もっとスマートな方法ないのかね。

384:デフォルトの名無しさん
10/02/21 20:01:22
Dictionaryなり使って外から管理する手もある

385:デフォルトの名無しさん
10/02/21 20:03:16
>>383
ないんじゃね?
2ch専ブラのスレ覧のタブ部分とListViewの連動とか
スレッドのタブ部分とブラウザー部分の連動はTag使った方が
スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ

386:デフォルトの名無しさん
10/02/21 20:04:22
>2ch専ブラのスレ覧のタブ部分とListViewの連動とか
>スレッドのタブ部分とブラウザー部分の連動はTag使った方が
>スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ
これは割りと見慣れてるGUIの実装の例ってことで・・

387:デフォルトの名無しさん
10/02/21 20:19:07
専ブラの例なら、データ構造内に持つのが素直じゃね?

388:デフォルトの名無しさん
10/02/21 20:28:26
>>387
内部構造は別途持つよ
最終的なそれぞれのリンクの話

目印つけたりして判断ロジック入れるのもいいけど
動的にオブジェクト作るときは関連については全部
わかってるんだから、イベント受けた側で条件式使
わないで何をすればいいかわかるようにすればいい


controls.Addでの関連(表示だけの関連)
上panel <-Button
下panel <-ListView

Button.Tag
└ListView.Tag
  └内部のデータ構造への関連

ListView
└ListViewItem.Tag
  └内部のデータ構造への関連

内部のデータ構造
・・・・

こうすればキャスト数回ですぐに処理可能になる

389:デフォルトの名無しさん
10/02/21 20:49:05
ごめん。全然意味がわからん。

390:デフォルトの名無しさん
10/02/21 20:51:44
俺は28%ぐらい理解した

391:デフォルトの名無しさん
10/02/21 21:01:19
そもそも動的にパネルを生成するのはいいとして、その上のコントロールまで
動的に生成する、などという泥臭いやり方に問題があると思うんだけどね。

上にのっけるコントロールの種類や配置を状況によって変える必要がある、
とかでなければ、UerControlを使うべきじゃないのか。

392:デフォルトの名無しさん
10/02/21 21:41:59
Tag使うくらいならIExtenderProvider


393:デフォルトの名無しさん
10/02/21 22:14:10
>>392
やるじゃん

394:デフォルトの名無しさん
10/02/21 23:13:44
TcpListenerが気がついたら破棄されてるんですが何ででしょう・・・orz
変数としてはずっと保持してるはずなんですが・・・意味がわからん

395:デフォルトの名無しさん
10/02/21 23:20:23
変なことしてるからだろう

396:デフォルトの名無しさん
10/02/21 23:21:59
設定画面用のフォームを作成してXMLファイルから設定を読み込み。
メニューから設定画面を呼び出すと1度目は表示されるのですが2度目からは破棄されたオブジェクトとなってしまいます。
FormをClose()しているのですがClose()すると破棄されてしまうんでしょうか?

397:デフォルトの名無しさん
10/02/21 23:25:37
フォームが閉じると、オブジェクト内で作成されたすべてのリソースが閉じ、フォームが破棄されます。

398:デフォルトの名無しさん
10/02/21 23:25:39
うん。

399:デフォルトの名無しさん
10/02/21 23:36:28
ああ・・・そうだったんですね・・・orz

1から作り直してきます

400:デフォルトの名無しさん
10/02/22 00:33:34
モードレスならHideでも行けるぜ


401:デフォルトの名無しさん
10/02/22 00:40:15
C#って画像を任意の三角形で切り抜いて表示とかできる?

402:デフォルトの名無しさん
10/02/22 00:44:31
できる

403:デフォルトの名無しさん
10/02/22 00:45:17
unsafe使わないと遅い

404:デフォルトの名無しさん
10/02/22 01:15:28
例えば単にClip領域を設定して描画するだけの話で、そう遅いとも思えんけどね。

405:デフォルトの名無しさん
10/02/22 03:54:01
>>391
まあサンプルが2ch専ブラの話だしねえ
既存の2ch専ブラを模倣するとそういう実装になるってことじゃないの?

406:デフォルトの名無しさん
10/02/22 08:44:15
//  Form: DoubleBuffered = true
 private void Form1_Resize(object sender, EventArgs e) { this.Invalidate(); }
 Image im = Properties.Resources.画像;
 FontFamily fontf = new FontFamily("Times New Roman");
 StringFormat stringf = new StringFormat();
 private void Form1_Paint(object sender, PaintEventArgs e) {
  Graphics g = e.Graphics;
  using (GraphicsPath path = new GraphicsPath())
  using (Brush ib = new TextureBrush(im)) {
   path.AddPolygon(new[] { new Point(200, 50), new Point(50, 250), new Point(250, 250) });
   path.AddString("Drawing", fontf, (int)FontStyle.Bold, 72, new Point(0, 0), stringf);
   float sc = this.ClientSize.Width / 300.0f;
   path.Transform(new Matrix(sc, 0, 0, sc, 0, 0));
   g.SmoothingMode = SmoothingMode.AntiAlias;
   g.Clear(Color.Black);
   g.FillPath(ib, path);
 }}


407:デフォルトの名無しさん
10/02/22 09:05:55
>>406
そのコードは何をしたいんだ

408:デフォルトの名無しさん
10/02/22 09:11:51
>>401への回答だろ。流れ的に

409:デフォルトの名無しさん
10/02/22 10:31:07
>>406
アンカーくらいつけろよ、くちべた君(笑)

410:デフォルトの名無しさん
10/02/22 11:58:37
必死に考えて、ケチつける所が「アンカー付いてない」だけなんてwww

411:デフォルトの名無しさん
10/02/22 12:11:54
しかも「くちべた君」w

412:デフォルトの名無しさん
10/02/22 12:16:59
C##

413:デフォルトの名無しさん
10/02/22 12:27:08
>>401-408で何事か起きたわけでもないのに>>409でなぜ罵倒に至ったのか…

414:デフォルトの名無しさん
10/02/22 13:19:07
>>406
やってみたらできました
ありがとうございます

415:デフォルトの名無しさん
10/02/22 16:01:42
C#初心者です。
以下のようにタイマー割り込みが来るたびに
newでインスタンスを上書きするような記述はおかしいでしょうか?
なんかどんどん処理が重くなってる気がするんですが・・・
原因がここじゃないかと思って質問しました。
よろしくお願いします。

class hoge1
{
public hoge1(int i)
{
//コンストラクタ
}
}

class hoge2
{
timer割り込み()
{
myHoge1 = new hoge1(i);
i++;
}

hoge1 myHoge1;
int i=0;
}

416:デフォルトの名無しさん
10/02/22 16:04:24
>>415
そのnewをやめて軽くなるならそれが原因じゃね?

417:デフォルトの名無しさん
10/02/22 16:15:00
DisposeやFinalizeがあるクラスでなければ、
ほとんど問題にならないと思うよ。

418:デフォルトの名無しさん
10/02/22 16:17:40
何がどれぐらい重くなるのかも調べずに「気がする」って言われてもなぁ

419:デフォルトの名無しさん
10/02/22 16:17:49
ほとんど問題にならないと思うよね。

420:デフォルトの名無しさん
10/02/22 17:01:54
問題は毎回 new する必要が本当にあるのかどうか

421:デフォルトの名無しさん
10/02/22 18:02:57
普通に考えると、この程度で体感できるほど重くなる筈がない。
勘違いか見当違いの所探してるだけだろ。

422:デフォルトの名無しさん
10/02/22 18:33:36
へえ

423:デフォルトの名無しさん
10/02/22 18:35:44
別の場所かコード端折ったとこに原因があるか

424:デフォルトの名無しさん
10/02/22 19:11:50
newしてるクラスがかなり小さく、かつ内部でアンマネージ捕まえてたりすると重くなるかも

425:デフォルトの名無しさん
10/02/22 20:41:19
たしかに

426:デフォルトの名無しさん
10/02/22 22:41:00
適当に重くなったときにCGに強制回収させてみて、それっから処理が軽くなったら・・・とかで調べてみるとか

427:デフォルトの名無しさん
10/02/23 05:18:54
>>408
>>406だけ見ると>>401が試行錯誤してコード書いたけどうまくいかなくて質問
来た様にも見えるしなあ

結論とすれば>>409のいうことだよ

428:デフォルトの名無しさん
10/02/23 07:22:45
くちべた君(笑) これははやるかもしれん

429:デフォルトの名無しさん
10/02/24 19:21:55
某フォーラムで提供されているライブラリー(URLリンク(mmf.codeplex.com))を使って、
メモリーマップドファイル版のListのジェネリッククラスを作った。
URLリンク(www6.atpages.jp)
15MBのテキストファイルで実験したら、31MBぐらいディスクスペースを消費して、プロセスのワーキングセットが80MBを超えた。
おまけに、読み終わるまで3分近くかかって、使い物にならない。
構築がこれよりも早いデーター構造はない?

430:デフォルトの名無しさん
10/02/24 19:28:28
CLRでファイルマッピングがサポートされるのはV4からだっけ?
どういう構造のライブラリーか知らないが、普通にP/InvokeでファイルマップのAPIを使うと、
ネイティブのViewからマネージドメモリへマーシャリングが起きると思うんだけど。

431:デフォルトの名無しさん
10/02/24 19:44:04
SQL Server Compact Editionでも使えばと言いたくなるのだけれど

432:デフォルトの名無しさん
10/02/24 23:32:17
自宅でgoogleで「C#」で検索してもCしかかからないんだけど
会社で検索するとちゃんと出る…
なんか設定とかあるのかねこれ

433:デフォルトの名無しさん
10/02/24 23:43:30
アドレスバーにq=C%23って出てるか?

434:デフォルトの名無しさん
10/02/25 00:37:45
他のキーワードとあわせてC#検索したらその後からC#単独で検索しても
引っかかるようになった。
どんなロジックなんだgoogle…

>>433
出てるよー

435:デフォルトの名無しさん
10/02/25 01:50:33
FILE_ATTRIBUTE_TEMPORARY指定の一時ファイルを使って、
擬似MemoryStreamを作ったことならある。


436:デフォルトの名無しさん
10/02/25 01:55:40
>>429
よく見てないがそれ以前にシリアライザなんか使ったら遅いに決まってる。


437:デフォルトの名無しさん
10/02/25 12:50:48
>>434
普通に前回までの検索結果が反映されてただけじゃないの?

438:デフォルトの名無しさん
10/02/26 22:31:57
>>430
P/Invokeってそんなにコストがかかるの?
ライブラリーのソースを調べたら、思いっきり使いまくってるんだが・・・

439:デフォルトの名無しさん
10/02/26 22:41:59
P/Invokeのセキュリティチェックと、場合によってマーシャリングはそれなりにコストはかかるが、
メモリマップした後の単なるポインタアクセスじゃそんなの関係ないからそう影響はない。
もちろん、例えばタイトなループ内でP/Invokeを繰り返したら影響はでかい。
それとは別に、カーネルモードへの移行が必要となるようなAPIでは、
P/Invokeとは関係なくかなり負荷が高い。
カーネルオブジェクトの操作する場合など。


440:デフォルトの名無しさん
10/02/26 22:44:20
セキュリティチェックを省いたり、bittableなやり取りだけになるように工夫すれば、大した負荷はない。


441:デフォルトの名無しさん
10/02/26 22:44:23
メモリーマップドファイルて普通の業務アプリ使ってて何に使うのかぱっとおもいつかん・・
DBとかだと有効かもしれんが普通DB使うだろうし・・・
ん~・・・
だれかおいしい使い道教えてくれ

442:デフォルトの名無しさん
10/02/26 23:16:01
>>441
エディターの類。
巨大なファイルもファイルマッピングで編集すると、効率がいいらしい。

443:デフォルトの名無しさん
10/02/26 23:34:08
巨大なファイル使う時ぐらいでしょ。
業務アプリでは考える必要ないと思う。

444:デフォルトの名無しさん
10/02/26 23:34:25
プロセス間である程度大きいデータを共有したいときとか。
で、かつ、ファイルやDBとか使えないときに使ったことがある。

445:デフォルトの名無しさん
10/02/26 23:48:51
どなたかDelphi使いでC#に乗り換えた方いますか?

DelphiでのTGraphicControlみたいに簡単にグラフィック系のコンポーネントを作るには
C#だとなんてクラスを使うんですかね?

C#でメータとかグラフとかのコンポーネントを作りたいんだけど・・・



446:デフォルトの名無しさん
10/02/26 23:50:51
WPFつかえばらくちんぽんで出来るYO!

447:デフォルトの名無しさん
10/02/26 23:53:45
Controlから直接派生してOnPaintをオーバーライド
まあWPF使えばコード一行も書かずに何でも描けるけどね

448:デフォルトの名無しさん
10/02/27 00:01:16
あら、即効で・・・

WPFですか。
ちょっと勉強してきます。

ありがとうございます。


449:デフォルトの名無しさん
10/02/27 00:23:36
>>442-444
サンクス
なるほど・・・勉強になった


450:デフォルトの名無しさん
10/02/27 01:13:25
SqlCommandにパラメータ付のSQL文を設定した場合、プロファイラでトレースすると
exec sp_executesql N'SELECT * FROM TAB WHERE COL = @VAL',N'@VAL char(1)',@VAL='a'
上記のような文字列(上記は例)が取得できます。
この文字列をプログラム上からログに落としたいと思っています。
どうにかして文字列を取得することはできないでしょうか?
SqlCommandのパブリックなメンバでは取得できないので
リフレクションとか使えば取得できるかと思ったのですが、
この文字列を保持しているプライベートなプロパティが見つかりませんでした。

451:デフォルトの名無しさん
10/02/27 02:14:01
むしろSQLクライアントでログ取ればいんじゃね?
少なくともOracleのにはあったハズ

452:デフォルトの名無しさん
10/02/27 08:56:17
パケットキャプチャすればいいよ

453:デフォルトの名無しさん
10/02/27 11:43:51
俺はparametersを自力で展開してたけど、いいやり方あるのかな
Nullの扱いと’のエスケープをちゃんとすればログのSQLをコピペして使えたけどどうなんだろう

454:デフォルトの名無しさん
10/02/27 13:29:17
オレもいい案があれば知りたい

455:デフォルトの名無しさん
10/02/27 18:57:02

bool createPanel(){
  ...
  bodyLabel.Text = "テスト";
  bodyLabel.Width = this.Width - 20;
  bodyLabel.BorderStyle = BorderStyle.FixedSingle;
  ...
  panel.Controls.Add(bodyLabel);
  return panel;
}

こういう関数を繰り返し呼び出して、
出来たパネルを、別のメインとなるパネルに縦に並べていっているんですが、

メインパネルのサイズ以上に並べたあたりから(メインパネルはAutoScrollをtrueにしてあります)
bodyLabelの見た目の長さが違ってくるんですが、なぜでしょう?

見た目としては↓みたいな感じです。

[テスト ]
[テスト ]
[テスト  ]
[テスト  ]
[テスト  ]

デバッガで止めてみると、bodyLabel.Widthの値自体は同じものでした。

456:デフォルトの名無しさん
10/02/27 19:41:08
きちんと切り抜きして出直し。
boolのControlsプロパティにAdd?
問題はpanelの方だろさ。

457:デフォルトの名無しさん
10/02/27 19:51:39
>>456
すいません

bool createPanel(){
  Panel panel = new Panel();
  Label bodyLabel = new Label();
  ...
  bodyLabel.Text = "テスト";
  bodyLabel.Width = this.Width - 20;
  bodyLabel.BorderStyle = BorderStyle.FixedSingle;
  ...
  panel.Controls.Add(bodyLabel);
  return panel;
}
パネルとパネル上のラベルは関数内で生成してます。

458:デフォルトの名無しさん
10/02/27 19:56:42
>>457
ふざけてるのかw

459:デフォルトの名無しさん
10/02/27 20:02:22
>>458
え、なんでしょう?まじめなつもりです

460:デフォルトの名無しさん
10/02/27 20:13:40
これ、コンパイル通るのか?

461:デフォルトの名無しさん
10/02/27 20:18:14
どうやったらコンパイル通るんだろう
using bool = System.Windows.Forms.Panel;は通らないね
Panelは質問者自身が作ったクラスで、boolへの暗黙の型変換演算子をオーバーロードしてるのか

462:デフォルトの名無しさん
10/02/27 20:33:18
あああすみません、今気付きました;
関数の戻り値のほうですか
もちろんboolではなくてPanelです

463:デフォルトの名無しさん
10/02/27 23:29:59
うん、で、panelのプロパティ設定には問題ないのか?という話。

464:デフォルトの名無しさん
10/02/28 00:03:14
というかまあ、問題が再現可能なコードを書いてそのままコピペしてない時点で、
言っちゃ悪いけどもう「問題」は質問者自身の問題解決能力にあることがはっきりしてる。

こういう人ってどういう思考回路してるんだろう。
マジで理解不能。

465:デフォルトの名無しさん
10/02/28 01:14:54
多分だけど、まるごとコピペすることが手抜きに思えたりするんじゃない?
だから手動でわかりやすく抜粋しているつもりなんだよ。
はた迷惑だけどね。

466:デフォルトの名無しさん
10/02/28 10:59:02
抜粋じゃなくて隠蔽だけどな

467:デフォルトの名無しさん
10/02/28 13:21:57
.NET 2.0のlistviewで質問です。
View=Details、オーナードロー、仮想モード、MultiSelect=true、HideSelection=falseにしています。
カラムをクリックしたらソートするようにしてるんですが、選択行が変化しません。
たとえば3行目が選択されていたとして、ソートの結果3行目のデータが2行目に移動しても
相変わらず3行目のみ選択された状態になります。
このあたりの処理も何となく自分でやらなきゃとは思うんですが、どうしたらいいでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch