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

ふらっとC#,C♯,C#(初心者用) Part67

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/12/16(木) 18:23:33
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/

■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0334デフォルトの名無しさん2010/12/27(月) 03:32:42
>>333
A側にメッセージ返すインターフェイスなりイベントもA側のアセンブリに書けばOK。
アセンブリの循環参照は避けれる。

あとは、双方向バインディングとかの出番。
0335デフォルトの名無しさん2010/12/27(月) 03:49:01
>>334
よく解らんが(´・ω・`)
例えばBがTCP通信しててデータ受け取ったよ的な通知とか
BがFormでボタン押されたよ的な通知とかはIBにイベント持たせればいいってことかね
0336デフォルトの名無しさん2010/12/27(月) 03:52:52
>>335
TCP通信ならイベントね。

Form なら、WPF のコマンドのバインディングがいいと思う。
0337デフォルトの名無しさん2010/12/27(月) 03:57:48
イベントならイカじゃなくて、デリゲート持てばいいよ
相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
0338デフォルトの名無しさん2010/12/27(月) 04:14:36
>Form なら、WPF のコマンドのバインディングがいいと思う。
WPFじゃない場合はIAみたいなのを作るってこと?

>相互に依存って言ってたからお互いの複数のメソッドを利用しているように見えちゃった
そのつもりですた
0339デフォルトの名無しさん2010/12/27(月) 08:04:47
非常にざっくりした質問で申し訳ないのですが・・・
自作のアプリが、他の市販のアプリと同時に使うと、
市販のアプリを誤動作させてしまうようです。
まだ自分は初心者で、自分のやりたいことを調べてやってるだけで、
安全対策も何もしてないので、原因はこっちにあるのでしょう。
こういう場合、原因の突き止め方とか、他に影響を与えない安全対策とか
参考になるサイトとかあれば教えてください。
0340デフォルトの名無しさん2010/12/27(月) 08:09:53
糞#ってww
選ぶのは言語使ってるができないのもあるww
まじワロタ、wwwひ
0341デフォルトの名無しさん2010/12/27(月) 08:29:51
>>340
大丈夫か?なんかへんだぞ
0342デフォルトの名無しさん2010/12/27(月) 10:24:28
>>339
何か特別な変なことをやっているんだろう。
一般的な対策とか原因なんかない。何も考えずに作っても普通はそんなことありえないんだから。
0343デフォルトの名無しさん2010/12/27(月) 10:29:34
WPFもやろうかなと思っているのですがおすすめですか??
習得が大変そうな感じがするので迷っています。

フォームでも結構満足していますがさらに
便利になったりするのでしょうか?(難しいのが楽に作れたり)
0344デフォルトの名無しさん2010/12/27(月) 10:42:05
別に難しくはないけどね

結局は慣れだよ
0345デフォルトの名無しさん2010/12/27(月) 10:43:14
WinFormsと同じ感覚で使う分にはWPFも使い方はほとんど変わらん。ぜんぜん難しくない。
WPFは外観の自由度が高い。コントロールの見た目を変えようとして
WinFormsで大量のコードを書いた経験があるなら、そういうことはWPFの方が圧倒的に楽。
それとデータバインディングが強力。コントロールとデータの紐付けは全部バインディングで作れる。
WPF特有の部分は必要に応じて追々覚えていけば大したことない。
0346デフォルトの名無しさん2010/12/27(月) 10:47:26
むしろそのバインド処理を今までのWinFormsで使ってなかったから戸惑う・・・
確かにデザインはすごく楽
モッサリさえなくなればいいんだが・・・
0347デフォルトの名無しさん2010/12/27(月) 11:03:59
?
0348デフォルトの名無しさん2010/12/27(月) 11:05:58
public class test
{
public string text = null;
}
test d = new test();
d.test = "test";
d = null;

こういう書き方でnullを入れる人をみた事があるけど、この場合のd.textはnullを入れた
時点で消滅するのかな?。

それとも
d.test = null;
d = null;
にしないとd.test の内容はすぐに消えない?
l
0349デフォルトの名無しさん2010/12/27(月) 11:07:26
どっちにしろGCが走るまで消えない
だからってGC.Collect入れると余計に遅くなるよ
気にしても無駄
0350デフォルトの名無しさん2010/12/27(月) 11:08:30
>>348
アクセスしてみればいいw
0351デフォルトの名無しさん2010/12/27(月) 11:09:56
よっぽど実行時間の長いスコープでない限りローカル変数へのnull代入は無意味
気にしない・放置が基本
0352デフォルトの名無しさん2010/12/27(月) 11:12:28
>>348
http://ideone.com/DHPdZ
03533482010/12/27(月) 11:15:36
みんな、ありがと
メモリ上からd=nullだけで全部消えるのかと少し期待したのですが残念
0354デフォルトの名無しさん2010/12/27(月) 11:19:49
>>353
あくまで参照を切り離しただけでGCはまだ持ってる可能性はあるよ
ただ、参照を切り離したので>>352を実行するとエラーになる
0355デフォルトの名無しさん2010/12/27(月) 11:23:27
>>348のケースに限って言えばGCが走ろうと"test"は永遠に消えないけどな
リテラルはCLRが参照保持してるので絶対に消えない
0356デフォルトの名無しさん2010/12/27(月) 13:26:27
C# で質問です。XMLでシリアライズする時に既にインスタンス化されたクラスはできないのでしょうか?
0357デフォルトの名無しさん2010/12/27(月) 13:28:34
>>356
できるでしょ
でもシリアライズ用のクラスってpublicでいろいろ開放してないと使えなかったような
0358デフォルトの名無しさん2010/12/27(月) 13:36:08
規定のコンストラクタがあって
かつ
読み書きのできるパブリックフィールドとプロパティだけだったと思うんだけど

嘘だったらごめん
0359デフォルトの名無しさん2010/12/27(月) 13:41:58
>>356
俺はインスタンス化しないとシリアライズできないと思ってるけど。

インスタンス化されたクラス?がよくわからん。
0360デフォルトの名無しさん2010/12/27(月) 13:51:25
したいこととしては
あるクラスをシリアライズする場合に、プロパティにインターフェイスを継承している
項目をシリアライズしたいのです。
(Ex)
public class TextClass
{
public stirng Ex1 { get; set }

public int Ex2 { get; set; }

public IInterface { get; set; }

}

のようなクラスをシリアライズしたいのです。。
0361デフォルトの名無しさん2010/12/27(月) 13:52:36
追伸:
public IInterfaceがとあるインターフェイスを継承したものを格納しています
0362デフォルトの名無しさん2010/12/27(月) 13:54:41
>>344 >>345 >>346
ありがとうございます。
複雑な外観・バインディング(データの同期?)
などをしたい時にWPFを勉強しようと思います
0363デフォルトの名無しさん2010/12/27(月) 14:25:36
>>360
インターフェースを格納したいって話?
0364デフォルトの名無しさん2010/12/27(月) 14:31:35
>360と>356が全然結びつかないけどまあいいや

XmlSerializerは構築されるときにシリアライズ・デシリアライズするすべての型を知ってる必要がある
interfaceとかabstract classがメンバに含まれるなら、そのメンバが取り得るすべての型を教えておかないといけない
普通はXmlElement属性でそういうメンバにこういう型こういう型があり得るってことをマークする

属性ベースで静的に設定できない場合、XmlSerializerのコンストラクタ引数で指定する

> public IInterfaceがとあるインターフェイスを継承したものを格納しています
IInterface以外(だけ)を継承してたらびっくりだ
0365デフォルトの名無しさん2010/12/27(月) 14:57:03
>>363インターフェイスを継承したインスタンスを格納します><

>>364ありがとうございます。XmlElementは3.0からのサポートなので
2.0で開発している現在は使えれませんね;w;

コンストラクタの引数の方法で試してみたいと思います。
0366デフォルトの名無しさん2010/12/27(月) 15:18:43
>>365
> >>364ありがとうございます。XmlElementは3.0からのサポートなので
> 2.0で開発している現在は使えれませんね;w;
んなことない
XmlElement属性(XmlElementAttributeクラス)は.NET 1.0から存在する
0367デフォルトの名無しさん2010/12/27(月) 15:22:43
存在するね
0368デフォルトの名無しさん2010/12/27(月) 16:11:20
C#は参照リークするからなぁ
0369デフォルトの名無しさん2010/12/27(月) 16:11:52
C++ってデリゲートってあるんけ?
0370デフォルトの名無しさん2010/12/27(月) 16:56:41
>>369
C/C++でいうところの関数ポインタだよ
0371デフォルトの名無しさん2010/12/27(月) 17:22:45
そう、関数ポインタだよ
0372デフォルトの名無しさん2010/12/27(月) 18:19:18
でも関数ポインタだよ?
0373デフォルトの名無しさん2010/12/27(月) 18:20:18
C#のデリゲートは関数ポインタのように直接ポインタを扱うわけじゃないし
+とか-で登録削除可能なので違うといえば違うんだけどねw
0374デフォルトの名無しさん2010/12/27(月) 18:27:01
全然違うよ
デリゲートは関数ポインタ+呼び出し先のインスタンスへのポインタ
0375デフォルトの名無しさん2010/12/27(月) 20:41:13
Windows SharePoint Services 3.0: ソフトウェア開発キット (SDK)
に含まれているSPUtility クラスを使ったプログラムをC#で作った場合、
Windows SharePoint Services 3.0をインストールしていないパソコンでも動きますか?
0376デフォルトの名無しさん2010/12/27(月) 20:55:22
>>253
チュートリアル : オブジェクトによるダイアログ ボックス情報の一括取得
ttp://msdn.microsoft.com/ja-jp/library/cakx2hdw.aspx
0377デフォルトの名無しさん2010/12/27(月) 20:59:21
>>375
SPUtilityクラスが含まれてるDLLはSharePoint Servicesに含まれてるんだろ?
動くわけないじゃん
当該DLLのローカルコピーを配布してしまえば動くかもしれないけど
おそらくライセンス違反(要確認)
03783752010/12/27(月) 21:29:52
>>377
SPUtilityクラスの使用は諦めたいと思います
ありがとうございます
0379デフォルトの名無しさん2010/12/27(月) 22:03:28
糞#のせいでいまだにDTだ
0380デフォルトの名無しさん2010/12/27(月) 22:38:48
>>362です
調べてるうちにWPFの勉強したくなりました。
XAMLは意外と馴染みやすかったので大丈夫そうです。
機能面がいまいち分からないのですが、
これ便利・かなり使うからやっとけって機能ありませんか??
0381デフォルトの名無しさん2010/12/27(月) 23:06:17
まずはBindingをマスター。

というわけでWPFスレへどうぞ
0382デフォルトの名無しさん2010/12/27(月) 23:28:54
private void Substitute()
{
presskey(VK_SPACE, 20);

startcap((int)Math.Ceiling(power * 360 / 100) + 3);
presskey(VK_SPACE, 20);

if (power >= 80)
{
startcap(175);
}

startcap(hidoffset);
presskey(VK_SPACE, 20);
}

↑にGetAsyncKeyState()を使用してCtrlを押している時はスペースを押さないという構文を入れたいのですが

short sw;
sw = GetAsyncKeyState(17);
if (sw == 0)
{
presskey(VK_SPACE, 20);
}

GetAsyncKeyState()使用宣言をした上でこれを入れても上手く行きません。
どなたか入れ方等のアドバイスを頂けませんでしょうか?全くのド素人なのでメチャクチャな事を言っていたらすみません。
0383デフォルトの名無しさん2010/12/27(月) 23:37:28
VS入れたら、アプリがエラーが起きた時に
デバッグ確認が毎回出てうざいんだけど
無効に出来ませんか?
0384デフォルトの名無しさん2010/12/27(月) 23:41:12
出来ません
0385デフォルトの名無しさん2010/12/27(月) 23:42:17
まじかよ、何でこんな嫌がらせみたいな機能つけるんだよ・・・
0386デフォルトの名無しさん2010/12/27(月) 23:43:26
>>382
http://dobon.net/vb/dotnet/form/keypreview.html
http://sourceforge.jp/projects/cs2h/svn/view/Tetris/Tetris/Form1.cs?view=markup&root=cs2h


0387デフォルトの名無しさん2010/12/28(火) 01:13:50
ASP.NET2.0 C#で開発しています。

ページに入れたPanelオブジェクトをチェックボックスのONとOFFで表示/非表示を
JavaScriptで制御する作りを実装しました(仕様としてポストバックでのチェックはできません)

単にvisibleで制御しても出来ないため、Panelのstyle属性にdisplay:blockを埋め込み、とdisplay:noneと切り替えて
とりあえず表示と非表示の制御はできるようになったのですが、ボタンを押した時のイベントのコードビハインドで、
Panelオブジェクトが表示されているか、非表示かも取得したいのですが、どうにも上手くいきません

1.JavaScriptで処理実行時にsetAttributeも一緒に入れて、style属性のdisplayも切り替える→チェックできず
2.いっそPanelのvisibleプロパティを無理やり取ってみる→そもそも設定していないので全てtrueで返ってくる
3.style.valueを取得してチェックしてみる→aspx側で設定した値しか返ってこない(1と類似)

と、色々やってみたのですが…。
無知で申し訳ないのですが、どなたか上手い方法を知っていらっしゃる方いますでしょうか?
Panelを使っていることがそもそも間違っているのかもわかりません

スレ違いでしたら申し訳ありませんが、宜しくお願いします
0388デフォルトの名無しさん2010/12/28(火) 07:06:21
HiddenFieldとか用意しといて、onsubmitとかでJavaScriptで値を入れてやれば?
コントロールじゃないただのhiddenを置いても、Request.Paramsに反映されるはず

どのDOMイベント/JavaScript関数で処理するのがベストかは忘れたんで自分で調べてね
0389デフォルトの名無しさん2010/12/28(火) 12:06:01
正規表現を使う、使わない両方の置換を行いたいのです。
正規表現を使う場合は、最初にヒットしたものを置換というのは調べればできそうなのですが、
使わない場合はたとえば
string s = "ccc\naaa\nbbb\naaa\n";
s = s.Replace("aaa","ddd");
とやると両方のaaaが置換されてしまいます。
これを最初のaaaや2番目のaaaだけ置換するというのはできないでしょうか?
0390デフォルトの名無しさん2010/12/28(火) 12:07:42
>>389
いきなり置き換えじゃなく検索して列挙した後お好きなように調理すればいい
0391デフォルトの名無しさん2010/12/28(火) 12:10:44
>>390
あーーーーなるほど!
ReplaceじゃなくてIndexOfでやればいいんですね。
ありがとうございます。
0392デフォルトの名無しさん2010/12/28(火) 13:19:00
C#でつくった自分のプロジェクトを元に更に機能付加していって新バージョンをつくり
Ver1,2,3,4…としたいです。それぞれのバージョンは残していきたいです。

今のところ既存のフォルダをコピーしてフォルダ名とプロジェクト名を変更していきながら作っていこうかと思っているのですが、
このような場合のスマートな方法があるなら、教えてください。
0393デフォルトの名無しさん2010/12/28(火) 13:20:28
バージョン管理使いましょう
03943922010/12/28(火) 13:28:54
>>393
どうもっす。バージョン管理ってのがあるんですね。ググッて調べてみます。
ありがとうございました。
0395デフォルトの名無しさん2010/12/28(火) 14:02:21
俺バックアップという意味であえて別HDにバージョン毎フォルダコピーして残してる
0396デフォルトの名無しさん2010/12/28(火) 14:34:19
C#にお詳しい方にお聞きします
{smartassembly} とういうソフトで、
難読化されたアセンブリをソースコードレベルに戻したいんですが
どうすればよいでしょうか?
また、解除できるなら、難読化解除を100パーセント防ぐにはどうしたらいいでしょうか?
0397デフォルトの名無しさん2010/12/28(火) 15:00:56
プログラム自体を暗号化してメモリ上でのみ複合化させる
0398デフォルトの名無しさん2010/12/28(火) 15:35:10
返信ありがとうございます。
しかし、マルチスレッドを用いるプログラムや、インポートしたアセンブリ、
プラグイン等でも簡単にデバッグが行える
VisualStudioでコンパイルできることを想定した場合、その方法だと
実現できるでしょうか?
Reflector等で、メソッドやフィールドの難読化された名前は
見られてしまうのは仕方ないかもしれません。
結局有効なのは、上記のsmartassembly他と同様に、
実行速度を犠牲にし
メソッドの開始時点に不要なジャンプ命令を組み込むしかないのかもしれません


0399デフォルトの名無しさん2010/12/28(火) 15:54:46
何を守りたいのか分からんが、名称を難読化するだけで流用する価値はなくなるだろ
重要な情報を隠すという意味ではローカルである限り、どんな暗号化でも完全にはならないし
0400デフォルトの名無しさん2010/12/28(火) 17:02:34
質問が漠然としてました、申し訳ないです。具体的には
Reflectorや、spices.NET等のツールを用いて
IL以外のC#やVB等の言語で
メソッドの中身を容易に見れなくしたいのです。
例えばrefleectorであれば
"// This item is obfuscated and can not be translated."
が表示されるか、または例外を発生させるようにしたかったのです。
0401デフォルトの名無しさん2010/12/28(火) 17:44:04
ネットワークアプリケーションにユーザ認証機能を乗せたいと考えています。
参考になるサイトや、参考書などありましたら教えていただけたら幸いです。
0402デフォルトの名無しさん2010/12/28(火) 17:45:13
C#にはAPIないのですか? C#ではWIN32 APIしかありませんか?
C#のAPI一覧とかのってるサイトあったら教えてください お願いします。
0403デフォルトの名無しさん2010/12/28(火) 17:46:54
嫌です
0404デフォルトの名無しさん2010/12/28(火) 17:47:43
>>402
C#とAPI(Win32API)との関係をよく分かってないだろ
0405デフォルトの名無しさん2010/12/28(火) 18:07:55
http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html
ここを参考にテキストボックス内へファイルのドラッグ&ドロップというのはできたのですが、
フォルダのドラッグ&ドロップで中身のファイル名を取得するというのがわかりません。
最終的にDragDropイベント・ハンドラ内の
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
この部分をフォルダがドロップされてもファイルがドロップされても取得できるようにしたいのですが
どうしたらいいでしょうか?
System.IO.Directory.Exists(d))で分岐させればいいのかなとは思うのですが、
e.Effect = DragDropEffects.Copy;
この部分にどうつなげるかわかりません。

0406デフォルトの名無しさん2010/12/28(火) 18:08:06
メニューストリップにショートカットを付けたいのですが、
MenuItemクラスの Shortcutプロパティの値は、
Shortcut列挙体のメンバー以外は指定できないのでしょうか?
0407デフォルトの名無しさん2010/12/28(火) 18:12:31
>>401
http://dobon.net/vb/dotnet/internet/usecredentials.html
.NETなら標準のコントロールやメソッドが用意されて簡単に作成できるかもしれませんが
開発期間に余裕があり、後々のことを考えると、
まずはHTTPの仕様などwebの基礎から勉強し、
.NETの基礎を@IT等のサイトで調べるのがいいかもしれません。
書籍なら"プログラミング.NET framework"や
"プログラミング Microsoft ASP.NET"が、私はまったく読んでませんがよく
お勧めとされているようです。
コードがそのままのっている本はその場限りで理解につながらないもしれません
その他、サンプルコード等は英語ですがcode project,source forge.net,koders.com,code plexが
あります。
http://www.pinvoke.net/等もwin32APIを使う上で参考になります。
また、googleのコード検索もかなり使えます。
0408デフォルトの名無しさん2010/12/28(火) 18:24:18
>>402
C#でWin32APIを使うには、dllを定義をしないといけないんだよ。
PInvokeてサイトをググって、サンプルコード探すのが速いかな。
ほかにマーシャリングって知識も必要かもしれない。
おれもよく分からないんだけど、その辺調べたら使えるようになった。
0409デフォルトの名無しさん2010/12/28(火) 18:33:47
できるかどうか不明ですが
private void _DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}

private void _DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
string[] strs = e.Data.GetData(DataFormats.FileDrop, false) as string[];

if (strs == null || strs.Length == 0)
{
return;
}

for (int c = 0; c < strs.Length; c++)
{
if (Directory.Exists(strs[c]))
{
string[] fileNames = Directory.GetFiles(strs[c]);
}
else
{

}
}
}
0410デフォルトの名無しさん2010/12/28(火) 18:57:29
>>406 おそらく指定できません。
できるかどうか不明ですが
public Form1()
{
InitializeComponent();
this.KeyPreview = true;
shortCutkey = Keys.A;
menuitem.Text = "A";
menuitem.Shortcut = Shortcut.F1;
menuitem.Click += new EventHandler(menuitem_Click);
MainMenu ms = new MainMenu();
ms.MenuItems.Add(menuitem);
this.Menu = ms;
}
MenuItem menuitem = new MenuItem();
Keys shortCutkey = Keys.None;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (shortCutkey != Keys.None &&
shortCutkey == keyData)
{
menuitem_Click(menuitem, new EventArgs());
}
return base.ProcessCmdKey(ref msg, keyData);
}
0411デフォルトの名無しさん2010/12/28(火) 21:33:00
C#で,複数のアクセスポイントからの無線LANの強度から
位置を測定するプログラムを書いています.

現在接続中の無線の強度を獲得することは出来たのですが,
接続していない他の無線の強度の獲得の仕方がわかりません.
別のところに繋ぎ変えないでやるという制約がありますが,どうでしょうか.

よろしくお願いします.
0412デフォルトの名無しさん2010/12/28(火) 21:39:50
あの〜(´・ω・`)
byte配列に格納したwavデータをPlaySoundで再生してたんですが、
☆PlaySound(wavData.wavVolChange(bytes, vol), 0, SND_MEMORY | SND_SYNC);

PlaySoundだと再生と停止は出来ても、一時停止ができないことがわかりました。
しかし、一時停止可能な再生方法を調べてみても、やり方がさっぱりわかりません。
もしもbyte配列のwavデータを再生、停止、一時停止可能な再生方法をご存知の方がいましたら、
この卑しい豚に助言というエサをお与えください。
0413デフォルトの名無しさん2010/12/28(火) 21:48:04
>>409
できました!!ありがとうございます!!!
0414デフォルトの名無しさん2010/12/28(火) 21:50:27
どういたしまして
0415デフォルトの名無しさん2010/12/28(火) 21:51:39
あの〜(´・ω・`) ←これ失礼
0416デフォルトの名無しさん2010/12/28(火) 21:54:52
失礼といえば失礼だな
0417デフォルトの名無しさん2010/12/28(火) 21:57:16
失礼じゃないといえば失礼じゃないな
つまりどういうことだ?
0418デフォルトの名無しさん2010/12/28(火) 22:12:26
´・ω・`)
0419デフォルトの名無しさん2010/12/28(火) 22:15:03
>>412
DirectAudio
XAudio
ActiveXのWMP
WPFのMediaElement(一番簡単)
0420デフォルトの名無しさん2010/12/28(火) 22:16:50
´・ω・`) …
0421デフォルトの名無しさん2010/12/28(火) 22:28:40
>>419
ありがとうございます
下から試してみます
0422デフォルトの名無しさん2010/12/28(火) 23:38:07
うむ
0423デフォルトの名無しさん2010/12/29(水) 00:11:01
イベントについて教えてください。

イベントハンドラを複数登録した場合の実行順は未定義だと思います。
という事はカスタムコントロールではイベント拾っちゃダメですか?

例えば
TextBoxを継承し、Validatingイベントで大文字小文字、全角文字の有無、
文字数などの情報を自身のPublicプロパティにセットする
(利用者側がValidating時に判断材料として使う。)
という設計もダメですよね

OnValidating使えという話だとは思いますが、
グリッドの列やタブページ等、それが通用しないコントロールもあると思いまして。
0424デフォルトの名無しさん2010/12/29(水) 00:20:15
UserControlに貼り付けて包含して都合の悪いイベントは隠してしまえばおk
0425デフォルトの名無しさん2010/12/29(水) 00:27:04
>>423
別に継承後の設計なんだから自分の好きなように
0426デフォルトの名無しさん2010/12/29(水) 02:28:33
>>424
可能ならばそうしたいところです
>>425
悩みますね、もう少し調べてみます。
0427デフォルトの名無しさん2010/12/29(水) 02:39:45
〜は使うなっていうお約束で十分だろ
そういう約束が通じないような、不特定多数が使うちゃんとしたコントロールなら、
出来合いのコントロールの継承なんてやるべきじゃない
0428デフォルトの名無しさん2010/12/29(水) 03:07:23
実装依存だったんですね
ttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/28b87b7c-b408-4b50-8290-d552f39e945f
0429デフォルトの名無しさん2010/12/29(水) 03:16:44
SOAPで処理している2つのサーバがあって、双方にWeb.configが存在している
サーバAのWeb.ConfigにはmaxRequestLengthの記載をしている(2MBの設定)
サーバBのWeb.ConfigにはmaxRequestLengthの記載をしていない(既定値4MBの設定だという認識)
↓
サーバAでの処理でサーバBを通してCSVデータを出力する処理を実装
少量データでは問題ないが、数千件のデータを出力しようとするとエラーになる
試しにサーバBのWeb.ConfigにmaxRequestLengthの記載をすると正常終了する
正常終了した後でCSVデータのファイルサイズを見ると、2MBにも満たない


・何故サーバBにmaxRequestLengthを記載すると正常終了するのかわからない。既定値の4MBでは?
・何故出力したCSVデータサイズがサーバAで設定した2MB以下なのにエラーになるかわからない。ファイルサイズは関係ない?

処理はできたのですが理由がわからず悩んでいます・・・
どなたか馬鹿にでもわかるように教えていただけないでしょうか?



0430デフォルトの名無しさん2010/12/29(水) 03:42:00
「SOAPで処理している2つのサーバがあって」
「サーバAでの処理でサーバBを通してCSVデータを出力」
意味不明なので、日本語を見直してください。

web.configにmaxRequestLengthを設定しないときのMaxRequestLengthの
値を確認しましたか?
あなたの出力したCSVのサイズはどうでもよくて、maxRequestLengthは
Webサーバに対するHTTPリクエストのbodyサイズだと思いますが、
HTTPリクエストはどんな内容ですか?
0431デフォルトの名無しさん2010/12/29(水) 10:30:26
途中で制限越えるのに気がつくからでは?
0432デフォルトの名無しさん2010/12/29(水) 10:48:16
TextBox(MultiLine)を三つ使ってランダム振り分けを作りたいと思っています。
TextBox1に振り分けたいアイテムを改行ごとに入力していき、
ボタンひとつでTextBox2,TextBox3にランダムに振り分けていくのですが、
奇数のときの対処も含め教えてください。
0433デフォルトの名無しさん2010/12/29(水) 10:50:13
>>432
何を言いたいのか・・・
■ このスレッドは過去ログ倉庫に格納されています