[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/29 10:32 / Filesize : 198 KB / Number-of Response : 931
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

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

ふらっとC#,C♯,C#(初心者用) Part56
pc12.2ch.net/test/read.cgi/tech/1267348401/


関連スレ
C#, C♯, C#相談室 Part55(実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/1

VB.NET質問スレ(Part33)
pc12.2ch.net/test/read.cgi/tech/1263738929/1

C++/CLI part3
pc12.2ch.net/test/read.cgi/tech/1206447234/1

592 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:36:10 ]
流れを読まずに質問です。
C#で使えるコントロールのライブラリってないでしょうか?
・ゲージやメーター
・Officeっぽい、Vistaっぽいコントロールのスキン表示
・スキン機能
こんな機能があるライブラリがあれば名前だけでもいいので教えてください。
商用ではいくらでもあるのですがライセンス料が高すぎるのでできればオープンソース
のライブラリを教えて頂ければと思います。
日本語・英語は問いませんが、日本語を使用しても問題のない方が望ましいです。
注文だらけですが、もし知っておられる方がいましたらお願いいたします。

593 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 10:36:58 ]
WPF

594 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:02:22 ]
いやWPFはNFW3.5以降ということなので、NFW2.0以降で使用できるライブラリを
お願いします。
というか最初に言い忘れてました、ごめんなさい

595 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:06:23 ]
NFWって略は初めて見たかもしれない

596 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:17:50 ]
聞いたことないな
.NETのオープンソースが盛り上がりだしたのって最近MSがオープンソースに積極的になってからだからな
WPF使えば一瞬でできる報われないことをわざわざやる人もいないだろ

597 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:40:38 ]
いやNFW3.5にするとWin2000を切り捨てざるを得なくなるので、それを避けたいだけなのです。
フリーではライブラリはないか、または聞いたことがないぐらいマイナーということですね。
昔はいくつかあったみたいですが、今はすべて商用に変わっていてがっくりですorz

598 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:46:22 ]
2000は切り捨ててもいいのよ

599 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:52:05 ]
UIだけActiveXでHTMLやSilverlightベースにしてしまえ

600 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 11:58:59 ]
jQueryがあるじゃないか



601 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:32:27 ]
ふーん

602 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 12:57:25 ]
はーん

603 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:37:09 ]
10年前のOSだもんなあ。
IE6も10年前でみんな葬り去りたくてウズウズしてるんだから、2000も葬っていいわな。

604 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 13:40:24 ]
2000のSP4は、7月にサポート切れだったろ。
そのタイミングで俺的には終了だな。

605 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:25:57 ]
MSだけじゃなくて開発側も古いWindowsサポートって頭があるからな
切っちゃっていいでしょっていうか切っていこうよ。.netなら尚更

606 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:29:06 ]
逆にMSがサポートしないものを「サポートします!」とか、
すごい勇気だなぁ、って思いますよw

607 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:36:27 ]
>>592
RoboFormとか、skinstudioかねぇ?

後者はDirectX用だからやや違うかもしれないけど。
他は皆がレスしてるようにWPF自体がスキン機能そのものの(機能とデザインの分離)だから
それを使うのが一番の王道だな。

608 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:36:45 ]
MSじゃないどこかの企業がそれを大々的にするって言ってたな。

609 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:40:42 ]
DevExpress .NET Windows Forms Skinning Library
SPREAD for .NET Windows Forms Edition
AppStylist for Windows Forms

ぐぐったら色々あるみたいね。もちろん、みんな商用プロダクトだが。

610 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:41:33 ]
スキン突っ立ってオーナードローするだけ出しな
そんなに手間じゃないだろ



611 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:42:28 ]
十分手間だろ
一つやったら全部やらないと空気読めてない感じになる

612 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:42:38 ]
SPREADは違うだろ。

613 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 14:52:17 ]
とりあえず、オープンソースの範囲ではこんなのがあった。
weys.codeplex.com/
UIのカスタマイズと言うよりか、Windows Media Playerのスキンっぽい感じだな。

614 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:00:47 ]
みなさん、いろいろとありがとうございます。
私が今開発しているのはとあるゲームなのですが、それがWin2000以降に対応していたもので
Win2000ユーザーを切り捨てるのもどうかと考えてたのです。
数年前ならコントロールのライブラリも意味があったかもしれませんが、今ではWPFが一番
いいみたいですね。
WPF検討してみます。
しかし、日本語だと書籍はないですね...

いろいろとありがとうございました。


615 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:18:49 ]
WPFならXPの古いマシンは切り捨てることになるよ
まあゲームなら問題ないな

616 名前:デフォルトの名無しさん [2010/03/28(日) 16:35:08 ]
配列に条件によって値を入れたいと思います。
(1) int[] table = {01, 0, 120, 270};
(2) int[] table = {02, 0, 180, 90};
と2種類の値を入れたいとします。

(1)の場合の条件と、(2)の場合の条件が違う場合、

if(条件) int[] table = {01, 0, 120, 270};
else if (条件) int[] table = {02, 0, 180, 90};

//以下tableを使った処理。

とすると、処理をするところで、
tableがないとエラーになります。

int[] table;
if(条件) table = {01, 0, 120, 270};
else if (条件) table = {02, 0, 180, 90};
//以下tableを使った処理。

とすると、この書き方ではだめだと、大量にエラーになります。
配列の書き方という基本的なことなのですが、書けずに悩んでいます。
アドバイスお願いします。


617 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:37:17 ]
>>615
ちょっとそれ詳しくお願いします。
要求スペックが高いから古いマシンでは駄目
XP SP3以降じゃないと駄目
という意味ですか?

618 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:37:19 ]
>>616
そりゃあ、その2箇所を通過してしまうような条件が残ってるからだ。
当たり前のことじゃないか。

619 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:37:58 ]
素直にnew int書くだけでいいと思うの

620 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:38:26 ]
int[] table;

これはifの前に宣言だけして
table = new int[]{02, 0, 180, 90};
とかでできない?



621 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:41:40 ]
>>617
前者
どんな環境でも動くことは動くけどバリバリのDirect3Dで描画されてるから
ハードウェアアクセラレーションが十分に効かない環境では厳しい

622 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:44:30 ]
>>616
これで一応エラーでないけどコメントの箇所何かいれないと何も設定されない条件ができないか?
ideone.com/JFPMtwVZ

623 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:44:41 ]
>>616
int[] table = null;

にするか

if()
〜〜
else
〜〜
とするか
お好きなのをどうぞ

624 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:46:13 ]
>>621
回答ありがとうございます。
なるほど、やはりそのような理由ですか。
了解しました。
スレチなのでWPFのことは別スレで聞いてみたいと思います。
みなさん、いろいろとありがとうございました。

625 名前:デフォルトの名無しさん [2010/03/28(日) 16:47:21 ]
>>620
new int[]でできました。
ありがとうございました。
これをつけるのとつけないのとでは、どう意味が違うんですか?


626 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:50:23 ]
>>625
いろいろ短縮したのが

table = new int[]{01, 0, 120, 270};

これね

長くかくと

table = new int[4];
int[0] = 01;
int[1] = 0;
int[2] = 120;
int[3] = 270;

こうなる

627 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:50:50 ]
>>625
アホか。エラーメッセージに全部書いてあるだろ。

628 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:53:15 ]
ああああああ
間違えた

table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;

629 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 16:57:27 ]
table = new int[]{01, 0, 120, 270};
こうやって書くメリット?は

table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;
この配列に
table[4] = 100;
とか増やしたい場合は
table = new int[4];
これを
table = new int[5];
としないといけないけど

table = new int[]{01, 0, 120, 270,100};
こうするだけで{}で囲った中の要素分だけ勝手に配列を確保してくれる。

数を知りたければ配列の場合.Lengthでわかるはず

630 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:05:07 ]
>>590
こっちはまだわかりやすいね
訳が適当だとどうにでも解釈できるよな



631 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 17:11:45 ]
>>616
普通にこれだけでいける
table=new []{0,1,2,3,4}

632 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 21:49:36 ]
>>631
アホか。

633 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:50:29 ]
配列なんて使わずArrayList使おうよ

634 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:51:52 ]
intの配列の初期化がまともにできないレベルだからなあ
もうちょい先だろ

635 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 23:53:00 ]
うひゃあうひゃあ
配列とか扱うのはメモリ効率悪いwww

636 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:08:06 ]
男なら配列なんか使うな!

637 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:13:42 ]
いまどき配列を嫌う男の人って…

638 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:28:06 ]
大した弊害なくて使えるなら何だって良いさ

639 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:34:17 ]
ですね

640 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 03:59:41 ]
volatile の効果が実感できるソースコードの例は無いでしょうか?
簡単なコードでは実感できないような修飾子なのでしょうか。



641 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 06:16:01 ]
無理


642 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 06:19:56 ]
そもそも初心者には使う必要のない修飾子

643 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 06:39:07 ]
VSの設定保存機能って使ってる?
ビルドしたらなんとか.exe.configとかいう名前で生成されるやつ。
自分で用意してるから使わないんだけど、生成させないようにするのはどうするの?

644 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 06:47:40 ]
App.configを消せばいい。

645 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 06:51:00 ]
>>644
おー、サンクス。さっそく除外しとこう。

646 名前:デフォルトの名無しさん [2010/03/29(月) 09:13:16 ]
ArrayListって内部的にリスト構造なの?
Listとどう違うの?

リスト構造だとインデクサ[]は使えるとしてもアクセス効率
が悪いと思うけど

647 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 09:18:19 ]
>>646
いや配列

配列の容量あふれると別の容量大きめの配列作ってコピーするから時々追加にO(n)かかる

ArrayListはList<object>だった気がするなぁ〜
使わないから覚えてない…

648 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 09:20:00 ]
ListはArrayListのGenericだから比べるところじゃないだろう
ListとArrayListの中身は配列

>ArrayList は、null 参照 (Visual Basic では Nothing) を有効な値として受け取り、要素の重複を許可します。
>Count が既に Capacity に等しい場合には、内部配列を自動的に再割り当てすることにより ArrayList の容量が増加し、新しい要素を追加する前に既存の要素は新しい配列にコピーされます。
>Count が Capacity より小さい場合、このメソッドは O(1) 操作になります。新しい要素を格納するために容量を増やす必要がある場合、このメソッドは O(n) 操作になります。ここで、n は Count です。


649 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 09:21:07 ]
ArrayListは過去の遺物。要素がobjectの場合でもList<object>を使った方がいい。
Silverlightでは切り捨てられた。

650 名前:デフォルトの名無しさん [2010/03/29(月) 10:13:51 ]
ありがとう。Listという言葉が紛らわしいですね。

C#の参考書を見ると、Windows GUIが簡単にできそう。
MFCを整理してより使い易くしているかんじ。
C++のMFCを勉強してきたけど、きっぱりとあきらめて
C#で作り直した方が早いと思う。



651 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 10:47:41 ]
ArrayListやHashtableって実装をさらけ出した悪い名前だと思う

652 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 10:54:34 ]
そこがメリット

653 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 10:58:07 ]
Java由来の名前だが、実装を示唆するような名前でないと速度の見積もりができないので、あれはあれでよい。

654 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:01:25 ]
>>650
MFCを使ってる人がまだいたことに驚いた

655 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 11:05:19 ]
listといえばリンクリストを指すのは悪い慣習だな
.NETではインデックスでアクセスできるものをlistと呼ぶ
LinkedListもListと付いてるけどIListを実装してない

656 名前:デフォルトの名無しさん [2010/03/29(月) 12:24:01 ]
WPFのC#のコードビハインドでのウィンドウサイズの指定方法を教えてください。
xamlでは、
<Window Height="400" Width="400">
と指定します。
FormのC#では、
this.ClientSize = new System.Drawing.Size(1173, 861);
のようにできます。
WPFのC#の場合がわかりません。
Windowssize = new System.Drawing.Size(1173, 861);
としてみたところ、System.Windows.Window.Windowsizeはアクセスできない保護レベルになっています、
と表示されています。
どこで保護レベルを変更すればよいでしょう?
よろしくお願いします。


657 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:25:00 ]
保護レベル変更は無理

658 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 12:26:55 ]
this.Width = 1173;
this.Height = 861;
これだけ
それとWPFでSystem.Drawingは使うな

659 名前:デフォルトの名無しさん [2010/03/29(月) 12:27:07 ]
>>657
やりたいことはウィンドウサイズの変更なので、
ウィンドウサイズを変更できればよいです。


660 名前:デフォルトの名無しさん [2010/03/29(月) 12:29:59 ]
>>658
ありがとうございました。できました。感謝です。




661 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 17:27:28 ]
>>660
また俺が回答してやるよ
どーんとこい!

662 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:34:08 ]
いや俺が回答した

663 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 18:40:04 ]
いやいや俺が

664 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 19:08:57 ]
あ、じゃあ
俺がやったよ

665 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:47:38 ]
質問
現在、C言語で書かれたDLLが提供する関数を
C#から呼び出そうとしています。

悩んでるが、「引数に構造体の配列を持つ関数」の処理です。
下記URLにソースコードを張りました
codepad.org/SnH7gdwI

上でいう所のC側の「//<- ここで落ちる」というコメントのある所で不正アクセスで落ちてしまいます。
(stSample[0]に値が入ってるのは確認できました)

C#側の構造体の渡し方がおかしいとかなと思ってるのですが、
どこがおかしいのか分からず・・・。
ご存知の方いましたら、教えて下さい。


666 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:52:16 ]
public struct ST_SAMPLEDLL {
  public byte cCount;
  public fixed byte strBuff[256];
}
こうじゃね

667 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:18:54 ]
文字列にしてそれを渡してパースしてぶっこめば楽だな

668 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:35:23 ]
教えてください。

マルチスレッドを利用したプログラムがあります。
このスレッドのうち1本で、ローカルファイルにデータを出力する処理があり、そのファイル名を
ファイル選択ダイアログ(System.Widows.Forms.SaveFileDialog)を利用して求めることにしたいと思います。

実際にプログラムを組んで実行すると、ShowDialog() を実行する箇所でエラー終了します。
メッセージボックスに表示されるエラーの内容は以下の通りです。

>OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。

main 関数には STAThread の設定もしてあります。(元からついているようですが)

同じプログラムで、main 関数を実行したスレッド(以下、メインスレッドと記述します)でダイアログを表示すると正常に使用できます。
また、メインスレッドで開けばいいのかと、メインスレッドで表示しているフォームに Invoke を掛けて
ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
この状態でダイアログを表示しようとしても画面には出てきません。

メインスレッド以外からファイル選択ダイアログを正常に開く方法はないでしょうか。

669 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:44:03 ]
UIスレッド以外から操作すんなよ。

670 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:45:43 ]
ダイアログに見せかけたFormじゃだめなの?



671 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:49:18 ]
メインスレッド側でAPIで呼べばいいんじゃね?

672 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:50:38 ]
あー、Thread.SetApartmentStateってのがあってだね

673 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:50:49 ]
一応、Thread.TrySetApartmentState メソッド ってのはあるけどな・・・。

674 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:52:26 ]
>>669-671
この3人にtaskkillしてあげてください

675 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:53:44 ]
ひどい赤っ恥だ

676 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:56:37 ]
メインのUIスレッド以外からUIいじるのはお勧めできないけどな。

677 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:58:40 ]
>>674
何でtaskkillなんだよ
>ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
>この状態でダイアログを表示しようとしても画面には出てきません。
ダイアログで出ないとかいうからダイアログに見せかけたForm表示しろっていっただけ
オーナーとの関係で表示がされないだけだろ

678 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 21:59:11 ]
そのスレッドは自分で作ったスレッド?
それともスレッドプールのスレッド?
自分で作ったスレッドなら、差し支えなければ自分でSTAに設定すればいい(Start前しかできないよ)
もしスレッドプールとかなら、これはMTAから変更することはできない。
汚いけど、必要な部分で自分でスレッド作って、STAに設定してメッセージボックス表示、
元のスレッドでは新しいスレッドを勝ち合わせとかするしかないと思う。
最初からUIスレッドにIncvokeする方が無駄はないけど。


679 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:01:42 ]
そもそもSTAとかMTAって何なの

680 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:02:56 ]
ようやくシンプルだけどまともに動くものが作れるようになってきたけど
未だにマルチスレッドとかよくわからないな
>>679も何のことやら



681 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:05:41 ]
Inside OLE2 嫁。

682 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:09:36 ]
>>681
それ絶版じゃなかったっけ。

683 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:10:41 ]
うん。

684 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:11:22 ]
>STAとかMTA
VC++でATL使ってIEコンポーネント触ったときにちょっとかじった程度だな
ナビゲーション関連がこの辺を理解してないとメッセージが来ないとかなんとか

685 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:24:31 ]
うん。

686 名前:668 mailto:sage [2010/03/29(月) 22:26:02 ]
みなさん、ありがとうございます。
てか、はやっ。w

>>670
無知ですみません。
ダイアログに見せかけたフォームというのは、Form を継承したファイル選択ダイアログの
ようなフォームクラスを自分で作る、と言うことでしょうか。
だとすると、今回は遠慮できたらいいかな、と。すみません。

>>671
いまの状況からは少し難しく。すみません。

>>678
System.Threading.Thread を利用して自分で作ったスレッドです。

やっとエラーメッセージの意味がわかりました。
あれは必ずしも main 関数でやれってことではなくて、ダイアログを操作するスレッドに
STA を設定しろってことなんですね。
>>672>>673 さんの仰ってる方法で出来ると理解しました。明日、確認します。

>>669,676
自分も UI スレッド(この言葉を忘れていました)以外で UI の操作を行うのには抵抗があったのですが。
‥‥気をつけておきます。

687 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:27:30 ]
>>686
わかればよろしい
今後も精進しなさい

688 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:28:10 ]
偉そうに

689 名前:665 mailto:sage [2010/03/29(月) 22:32:50 ]
>>666
レスサンクス。
バッファの取り方がまずいという事ですか。
今手元に環境がないので試せないですが、
明日試してみます。

良いサイトか何かあれば、いいんですが、
なかなか見つからず・・・orz

ちなみに、環境は
XP,VC# 2008Express
(書き忘れました)

690 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:37:59 ]
バッファの取り方でなくて、C#とCの型の違い。



691 名前:665 mailto:sage [2010/03/29(月) 22:42:37 ]
>>690
サンクス
それで、最初の構造体はアクセスできるけど(たまたま出来てるように見えてるだけ?)、
次の構造体にアクセスしようとしたら落ちると・・・。



692 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:46:49 ]
型の制約があるものより汎用的なテキストでやり取りする方が無難かもねえ
相談かこっちか忘れたけど以前同じようなdllを呼び出すアプリの相談で
httpでやり取りする形にしてみたら?ってのがあったな

693 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:52:56 ]
>>691
よく見たらST_SAMPLE**だったのか
C#側の引数の型をIntPtr[]にしてそれぞれポインタの参照先に
ST_SAMPLEDLL一つ分のメモリを割り当てておかないと

694 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 22:53:47 ]
バイト配列が一番わかりやすいよ。

695 名前:665 mailto:sage [2010/03/29(月) 22:58:22 ]
>>692
時間がたっぷりあって、許されるなら、DLLをC++か何かで
書き換えたいところですが、そうもいかず・・・。
このインターフェースは我慢するしかないですね。

>>693
です。ダブルポインタです。
そこなのですが
codepad.org/SnH7gdwI
このサイトに張ったソースの37行目でDLLに渡すメモリの実態自体は用意しているので、
大丈夫かと思ってたのですが、それとは別に確保するという事ですか?

あと、宣言は、こっちの方がいいってことですね。
[System.Runtime.InteropServices.DllImport("MY_Dll.dll", EntryPoint = "test")]
unsafe public static extern int test_call( IntPtr[] pstList);


696 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:00:44 ]
IntPtrのみでいいはずだけどな。
Cでは、基本的に配列はメモリ上に整列するし。

697 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:04:37 ]
ダブルポインタだからポインタの配列を渡さないといけない(だからIntPtr[])
しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと

698 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:11:52 ]
配列はポインタで受けれるけど、ってやつか。

699 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:12:03 ]
>>696
私もそう思ってて、そこではまってます。。

>>697
>しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
そこなのですが、

testPtr1 = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)) * (int)10);

これで、領域を確保して、
次に

test_call(testPtr1);

渡してるので、少なくとも構造体ST_SAMPLEDLLを10個分はメモリとして
確保してると思ってますが、この処理のほかに必要とうい事でしょうか?

その後、取れたのをMarshal.PtrToStructure()で取り出す処理になってます。


700 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:15:27 ]
= () => って表記、他に候補なかったのかよ!と書く度に思う。タマゴとコンニャクでオデン喰いたくなるw



701 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:21:09 ]
C#でいう「参照型の配列」と同じだ。
並んでるのは実体じゃなくてポインタで,それぞれのポインタがどこか別の場所にある実体を参照してる。
IntPtr[] testPtr1 = new IntPtr[10];
for (int i = 0; i < 10; i++) { testPtr1[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL))); }
test_call(testPtr1);
こうする。
取り出すときはそれぞれの要素に対してMarshal.PtrToStructureを呼べばおk


702 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:27:48 ]
DLLとC#の間にもう一個DLL挟めばいいんだよ

703 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:29:37 ]
>>701
なんといいますか・・・。
頭が下がるばかりです。
なるほど、納得しました。


704 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:32:31 ]
もともと

x⇒x*2;

みたいな感じではなかったのあれ
1バイト文字に⇒がなかったから代用みたいな
よくしらんけど

705 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:35:16 ]
これで上手くいったと書こうと思ったら>>701に先越された。CallingConvention忘れないでね。
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack=4)]
public struct ST_SAMPLEDLL
{
public byte cCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public byte[] strBuff;
}
class Hoge
{
[DllImport("u.dll", EntryPoint = "test", CallingConvention=CallingConvention.Cdecl)]
unsafe public static extern int test_call([MarshalAs(UnmanagedType.LPArray), In, Out] IntPtr[] pstList);
static void Main()
{
IntPtr[] stSample = new IntPtr[10];
for (int i = 0; i < stSample.Length; ++i)
{
stSample[i] = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)));
}
// DLL呼び出し
test_call(stSample);
ST_SAMPLEDLL[] st = new ST_SAMPLEDLL[10];
for (int i = 0; i < st.Length; ++i)
{
st[i] = (ST_SAMPLEDLL)Marshal.PtrToStructure(stSample[i], typeof(ST_SAMPLEDLL));
Marshal.FreeCoTaskMem(stSample[i]);
}
Console.WriteLine((int)st[0].cCount + " " + (int)st[0].strBuff[0]);
Console.WriteLine((int)st[1].cCount + " " + (int)st[1].strBuff[0]);
}}

706 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:06 ]
なんでCdecl?

707 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:40:19 ]
>>705
なんていうか・・・俺って頭の回転速いから自然と先越しちゃうんだよ。(笑)
肩を並べる奴は誰も現れないって感じだ。(笑)

708 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:41:32 ]
>>707
おい
俺のフリをするな

709 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:42:58 ]
>>706
codepad.org/SnH7gdwI で__stdcallが指定されていないから。
まさかコンパイルオプションでstdcallを指定しているなんてオチがあるわけないと思ってCDeclと仮定した。

710 名前:701■Agei32s4 mailto:sage [2010/03/29(月) 23:44:05 ]
騙りばっかだな。トリつけとくわ。



711 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:44:35 ]
ですね

712 名前:665 mailto:sage [2010/03/29(月) 23:55:44 ]
>>705
>>709
具体例、サンクス!
少し話しが出たので、質問なのですが、
DLL側で__stdcallが指定されていた場合、話しは違ってくるのでしょうか?


713 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 23:59:11 ]
うん。

714 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:01:18 ]
文字列でやり取りするのが今時

715 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:02:31 ]
そんなことない。

716 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:03:15 ]
WinFormsのP/Invokeを全部標準入出力に替えたらとんでもないことになるな

717 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:06:56 ]
>>715
ネットワーク越しにwebAPI呼び出してxmlなどのテキストで回答を許容できる時代なんだから
スタンドアロンでやっても問題ないだろ

そうすればGUIだけC#で書いて古いDLLは常駐してhttpをリスナーする小さいプログラム書けば
いいのでVC++の無料でも余裕で開発できる

718 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:07:42 ]
どんだけ遅いと思ってんだよ。バカジャネーノ

719 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:08:00 ]
>>713
実は、会社の帰り際に「WINAPIは__stdcallで宣言するのが標準」という記事を見つけたので、
淡い期待を抱きながら、「明日試そう・・・」と思っていたところでした。
スタックの開放タイミングの違いとうい事ですか(う〜ん汗)


720 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:12:45 ]
直接は関係ない。関数から戻るときの問題だし。



721 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:16:05 ]
やれやれ

722 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 07:25:47 ]
テキストファイルでやりとりすべきだな

723 名前:665 mailto:sage [2010/03/30(火) 11:56:25 ]
回答を下さった方々、有難う御座いました。
無事、思うような動作が出来ました!
(感謝感謝)

私の後ろの初めてを捧げたいぐらいの感動です。
ここの所、ず〜っとこれで悪戦苦闘してましたので・・・。
有難う御座いました。


724 名前:デフォルトの名無しさん [2010/03/30(火) 11:57:01 ]
UserControl 作るとツールボックスに表示されますが、
表示させたくない場合はどうすればいいですか?

725 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 11:59:17 ]
>>723
よしではいくぞ

>>724
無理じゃね?
クラスライブラリで分離しておくとかすれば可能かな・・・

726 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:34:16 ]
>>723
2番目をくれ

727 名前:665 mailto:sage [2010/03/30(火) 12:55:41 ]
>>725
>>726
夢を打ち砕いてすまないのだが、
一応、私は「男」です

728 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:57:39 ]
>>727
あたりまえだろ。女なんて嫌だ

729 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 12:58:12 ]
知ってて言ったのにw
マジな返答くるとは思わなかった

ばっちこーいのAAでも貼ってくるかと期待したのに

730 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:05:19 ]
>>724
それらしい属性探して、無ければ諦めれ



731 名前:665 mailto:sage [2010/03/30(火) 13:25:07 ]
っく・・・
変態ばっかりだったとは・・・。


732 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:30:28 ]
軽いキャッチボールだよw

733 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 13:58:43 ]
おまえらToolboxItemAttributeもしらねえのかよ・・・

734 名前:デフォルトの名無しさん [2010/03/30(火) 19:27:29 ]
さぁって、今日はどんな馬鹿が釣れるかな? 枠々

735 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:15:14 ]
>>724
AutoToolboxPopulate
というのがVSにはあるらしい
でも単独配布のEEにはないんだよな

736 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:18:19 ]
何かうまく動かないなーと思ったらRectangleのBottomってTop+Heightなんだ
原点0で高さ64なら下の座標は63だとばかり思ってたよ…

737 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:26:56 ]
>Bottom プロパティの値は、Rectangle に含まれない、Rectangle の下端にある最初の点の y 座標を表します。

確認を怠るのが悪い。

738 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:43:10 ]
プログラミング自体初心者で、昨日初めてC#を始めて見ました。
visual C# 2008を使ってGUIでグラフを表示させたいんですが、どうすればいいんでしょうか?
参考になりそうなサイトなどあれば教えてください。

739 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 21:52:02 ]
www.microsoft.com/downloads/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=ja
実用的なのはこれ
プログラミングの勉強で関数のグラフを自分で描いたりするんだったら C# paint でググる

740 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:04:27 ]
>>739
ありがとうございました。
自己解決しました。



741 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:32:24 ]
C#は.net frameworkと同じ意味?

742 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:34:13 ]
違う

743 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:39:04 ]
同じ

744 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:40:03 ]
.net frameworkは土台
その上で動くプログラムを書けるのがVC#とかVB.netなど

745 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:52:42 ]
言語仕様上はC#は.NET Frameworkとは無関係ということになってる

746 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:53:15 ]
違う

747 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:53:59 ]
Monoはネイティブコード吐けるし…

748 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 22:56:24 ]
それラインタイム一緒に事前コンパイルしてるだけで無駄が大きいけどね

749 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:00:46 ]
一応言語仕様の上ではCLIにも依存してない
言語仕様に最低限必要なライブラリが書いてあるのでそれを一通り実装しさえすれば
C#と名乗れる

750 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:09:54 ]
名乗れるね



751 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:10:14 ]
違う

752 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 23:19:03 ]
もう何がなんだかw

753 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 00:00:07 ]
どこが「違う」か指摘できない馬鹿は放っておけ

754 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 00:12:05 ]
ですね

755 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 02:39:38 ]
>>739配布するときにも相手にはそれをインスコさせなきゃ駄目?
それとも、自動的に組み込んでくれる?

756 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 03:26:39 ]
90

757 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 04:59:13 ]
>>755
.netその物と同じで相手側にも入ってないとだめかもね

758 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 06:15:46 ]
だめかもね

759 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 07:36:45 ]
>>755
ライブラリの dll ファイルは
標準のアセンブリフォルダーの下か、
exe と同じフォルダーにあれば OK なんで
exe と同梱で配布すれば OK。

760 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 10:55:33 ]
include <stdio.h>
using System

int Main(void){
System::Console::WriteLine("にちゃんねらー死ね");
}



761 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:23:17 ]
>>760
ここはニュー速のプログラミングスレじゃないですよ

762 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:28:37 ]
なんでC++/CLIなんだよイライラするなあ死ね

763 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:37:00 ]
C++/CLIならmainだろ
include <stdio.h>
using System;も必要ない

764 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 11:39:16 ]
やたら丼を書いている奴だろ

765 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:45:58 ]
同じマシン、同じソフトで印刷プレビューするときにプリンタ2台で
1枚でも40秒と3分の差があるんですけど、印刷の実行速度は
プリンタドライバも関係してくるんですか?
3分かかるのは9年前発売のプリンタで、40秒かかるのは
最近発売のプリンタですけど。

766 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:50:17 ]
そりゃまあレンダリングするのはドライバだしな

767 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 12:59:46 ]
>>766
なるほど。
ありがとうございます。

768 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 13:51:04 ]
>印刷プレビューするとき
これはプリンタのほうでプレビューってことだよな?
自分でプレビュー画面作るってわけでもなく
だとしたら>>766の通りだけどC#関係なくね?


769 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:16:03 ]
プレビューの速さの話が途中から印刷の実行速度の話になってるからな

770 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:28:59 ]
フォームプロジェクトに追加したユーザーコントロールをデザイナで配置したいのですが、ツールボックスに表示されません。
調べてみると Windowsフォームコントロールライブラリ という別プロジェクトでDLLを作成し、
それを介する方法しか発見できませんでした。
DLLを介する以外に方法があれば教えてください。



771 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:51:56 ]
メニューのツールのオプションのWindowsフォームデザイナの全般で
ツールボックスのAutoToolboxPopulateをTrueにしてもダメかな?

772 名前:770 mailto:sage [2010/03/31(水) 14:59:20 ]
>>771
できました。ありがとうございました。

773 名前:765 ◆JdKMFRogo6 mailto:sage [2010/03/31(水) 15:25:55 ]
>>768 >>769
C#で作ったプログラムで印刷プレビュー出すときのことです。
出るまでにそれだけ時間がかかるんですよ・・・
ここらへんでプリンタも買い替えないと・・・

774 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 15:28:41 ]
勝手にしろよwww

775 名前:765 ◆JdKMFRogo6 mailto:sage [2010/03/31(水) 15:35:37 ]
>>774
たしかにwww

776 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:12:56 ]
codepad.org/YiT7oXst
上記のコードがあるとします

14行目でリストの0番目のアイテムにGetTypeしてアイテムの型を取得していますが
BindingList<T>のインスタンスが生成された段階でアイテムの型は決まってるので
0番目のアイテムにアクセスしなくても取れるはずです
これの取り方を教えて頂きたいのです

あくまでもテスト用のコードなので「Tから取ればいいだろ」みたいな突っ込みはご容赦下さい

777 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:13:43 ]
今から仕事なので日付変わった頃にお返事します

778 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 20:50:18 ]
>>776
listType.GetGenericArguments()[0]

779 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:00:29 ]
関数のパラメータについて、教えてください。

デバッグ用にその関数のパラメータの一覧をログなどに出力したいと考えます。
たとえばなのですが、
System.Diagnostics.StackFrame.GetMethod().GetParameters()
を利用すると、特定の関数のパラメータの一覧を得ることが出来ます。
ただ GetParameters() ではパラメータの型や変数名などの情報を取得することは出来ても
パラメータの値そのものは取得できないようです。当然と言えば当然なのですが。

これと同じような方法で、パラメータの値を取得する方法はないでしょうか。


なにをしたいのかというと、デバッグ用に特定の関数のパラメータの各値をログなどに
出力したいのですが、関数個別に "param1 = {0}", param1 などと書いていくのが手間なので、
関数のパラメータのすべての変数名とその値とを文字列にしてくれる関数を作れないものかと。

780 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:16:40 ]
>>778
お答え頂きありがとうございます

質問したかった事とコードが違ってる事に出勤してから気付きました
IBindingListの引数にclass BindingList : BindingList<string>{}のインスタンスを渡して
継承元の型パラメータを取得したいのでした
悩んでる最中は思い至らなかったのですが、単にType.BaseType.GetGenericArguments()すればいいだけでした
下らない質問してすみません



781 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:19:01 ]
>>779
無理

782 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:40:12 ]
>>779
型名でいいなら
public void Trace(params object[] o)
{
foreach(object obj in o)
{
〜(o.GetType().Name);
〜(o.ToString);

}
}

でいけるとおもうよ〜は出力命令ね

783 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:40:35 ]
フォームアプリケーションを作成している時、フォームのコードが長くなったので、
「コードファイル」を新規に作成し、コードの一部を作成したソースに移しました。
その後、フォームへコントロールを配置すると、移したはずの コントロール名_イベント名() が
元のソースに関数の中身が空の状態で生成されてしまうようになりました。
コントロールのプロパティ内でイベントの欄をダブルクリックした時以外は
コードが自動生成されないように設定する方法を教えてください。

784 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:45:55 ]
そんな設定ないよ。

785 名前:783 mailto:sage [2010/03/31(水) 23:55:44 ]
>>784
設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか?
それとも「コードファイル」を作成する以外の方法で別のソースを作成すべきなのでしょうか?

786 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 23:58:30 ]
>>785
> 設定がないということは、フォームのコードを複数ソースに分けることをやらない方がいいということでしょうか?

うん。

787 名前:783 mailto:sage [2010/03/31(水) 23:59:21 ]
>>786
ありがとうございました。

788 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:14:00 ]
>>787
うん。

789 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:14:02 ]
http;//○○○/〜〜〜
となっているURLの○○○を抽出するにはどうすればいいでしょうか?
正規表現を使ってみたのですが、うまく抽出されません。
例になるコードとかありませんか?

790 名前:779 mailto:sage [2010/04/01(木) 00:18:59 ]
>>781
>>782
ありがとうございます。
残念ながら型名などではなくて中の値そのものが欲しいので、今回は諦めます。



791 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:19:40 ]
>>789
URIクラスとかじゃねーの?

792 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:22:58 ]
"/"のSplitで[2]とか?

793 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:26:07 ]
>>792
'/'のSplitで[2]でしょ

794 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:29:17 ]
URIクラスのHostでもAuthorityでもDnsSafeHostでも

795 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:39:09 ]
http://〜〜/△△&pass=○○
のようなURLの場合に○○を取得したい場合はどうすればいいでしょうか?
さすがにこれはURIクラスでは処理しきれないと思うんですが

796 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:43:17 ]
EndOf

797 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:47:17 ]
>>795
System.Web.HttpUtility.ParseQueryString(string query, System.Text.Encoding encoding)

798 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:51:19 ]
>>795
'='のSplitで[1]

799 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:55:35 ]
みなさんありがとうございます。
今までは正規表現でどうにかしようとしてましたがいろいろやり方があることが分かりました。
もうちょっと頑張ってみます。

800 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:00:14 ]
>>799
みなさん?全部俺の回答なんだけどw



801 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:01:48 ]
4/1とはいえ他人の善意を潰す嘘は許さん

802 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:02:52 ]
自己主張したいならコテでもつけてろよ

803 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:03:41 ]
おまえがつけろクソ野郎

804 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:05:51 ]
4/1とはいえコテ付けない奴は許さん(キリッ

805 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:07:38 ]
ここまで全て俺の自演

806 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:08:43 ]
エイプリルフールはどんな嘘でもいいってわけじゃないんだよね。
人を怒らせるような行為はいただけないな。

807 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:09:05 ]
だな


808 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:47:08 ]
>>799
正規表現でも別にそう難しくはない気もしますが、まあ、
一番楽で素直で間違いのなさそうな方法を選ぶのが良いね。

809 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 02:07:49 ]
(new List<int>()).GetType().GetGenericTypeDefinition().Equals((new List<bool>()).GetType().GetGenericTypeDefinition())

上の評価はtrueになるんだけどさぁ
それを踏まえてMSDNを見ると

msdn.microsoft.com/ja-jp/library/system.type.getgenerictypedefinition%28VS.80%29.aspx
>2 つの構築型が同じジェネリック型定義から同じ型引数を使って作成された場合
>GetGenericTypeDefinition メソッドは両方の型に対して同じ Type オブジェクトを返します。

なんかこの説明おかしくね
この場合「違う型引数を指定して作成された場合でも」になるべきじゃね
同じのは同じなんだから当ったり前だろうそんなの
GetGenericTypeDefinition呼ぶまでもない

と思ったけど英語版もsame type argumentsなんだよなあ
なんでだ

810 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 06:33:16 ]
なんでだろうね



811 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 15:58:00 ]
未完成の汎用的なクラスを作れたのでいろんなプロジェクトで利用しているんだけど
既存の項目で追加とすると、その汎用クラスの変更がそのプロジェクトでしか行われない
汎用クラスの変更がすべての利用しているプロジェクトで反映される方法などありますか?
もしくは他に方法はありますでしょうか?

812 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 16:26:28 ]
>>811
既存の項目として追加するときに出てくるダイアログで、追加ボタンの隣にある三角ボタンを押してリンクとして追加すればいいじゃない。

813 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 18:07:35 ]
おほ〜〜いけた
ありがとう

814 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:34:31 ]
webclientのイベントハンドラをbuttonのイベントハンドラと同じように一覧から選んで記述ということはできないのでしょうか?

815 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 19:37:40 ]
わかんね

816 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:13:14 ]
foreach(var item in listview.items)

これだとlistviewitemと認識しないぞM$

817 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:18:03 ]
という独り言

818 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 21:54:16 ]
XMLにシリアル化の挙動がさっぱりわからん
なんなのこれは?
まったく使い物にならん
シネ

819 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:12:44 ]
無能は車輪の何とかでもやってなさいってこったw

820 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:20:21 ]
>>814
デザイナーからは設定できないぞ


>>816
varって糞VBじゃねーんだからちゃんと型つけろがボケ
ideone.com/jwBy2dbY
.netはいたるところで型が何か分かるようになってるぞボケ

>>818
publicじゃない要素があるとうまく動かん
c# XmlSerializerでぐぐってサンプルみてこい
public classだし中身もpublic付き



821 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:25:14 ]
>>820
>.netはいたるところで型が何か分かる
それは>>816の問題に関しては間違ってる。
foreach (ListViewItem item in listView1.Items)は
foreach (object _item in listView1.Items) { ListViewItem item = (ListViewItem)_item; と等価。
だからitemの型がListViewItemでなくてもコンパイルエラーにはならない。実行時エラーが出る。
ジェネリックが無かったころの名残の糖衣構文だ。

822 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:37:29 ]
>>821
糖衣構文だとか昔は〜とか言われてもよくわからんけど
現在はこう表示されるんだからそれでええんとちゃうの?
uproda.2ch-library.com/231844RNf/lib231844.png

823 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:46:18 ]
>>822
それ今も昔もListViewItemCollectionに普通にインデクサが定義されてるだけ。
ListViewItemCollection.GetEnumeratorがIEnumerator(非ジェネリック)を返すので
foreachを使うと要素がobject型扱いになる。だから>>816はvarの自然な挙動。

824 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:48:34 ]
>>822
この場合インデクサは関係ないだろ
関係あんのはEnumeratorの方

825 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:29:26 ]
JavaScriptでしばしばこういうコード書いているけど、これをC++(QT)で書くとどういう感じになる?
function getValue(Form,Target){
var value = document.getElementById(Form).value; // 変数Form名のIDのフォームの値をvalueに代入
value = window.prompt("文字を入力",value); // 入力フォームを表示。valueを入力プロンプトに渡す。(上の行と1本かできるの事は気にしないで)
document.getElementById(Target).value = value; // 変数TargetのIDのフォームにvalueを代入
}
これをQtで書くとどういう感じになるのかな?
FormとTargetの値(参照元のフォーム名と代入先のフォーム名)が変化するんだけど。

あと、
document.getElementById(Form+'_name').value
みたいな表現ってできない?

C言語は、関数型とかあってわかりにくい・・・。

826 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:39:48 ]
スレチ

827 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 08:00:37 ]
あ!?

828 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 09:22:02 ]
どうした?
バグか?


829 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:33:00 ]
richtextboxで指定した行に文字列を追加したいんだけどどうすればいいのでしょう
delphi見たいにrichtextbox.line[i].text=・・・なんてもんはないんですかね

830 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:29:30 ]
あんまRichiTextBox使った事ないけどレスしてみる

改行コードでsplitした配列取得して、指定行の文字列を編集
で、それをStringJoinに改行コード指定してやっちゃうとか




831 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:31:04 ]
その手って内部は行単位のstring管理じゃなかったっけ?
ちと確認してみる

832 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:32:10 ]
richTextBox1.Lines.Length

Lengthってことは配列?

833 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:32:20 ]
Linesプロパティはあるだろ。

834 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:44:31 ]
あれ・・・行指定して書き換えてもかわらねえな・・・

ideone.com/ojQnOhFF

835 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:48:50 ]
読み取り専用だから。

836 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:49:49 ]
>>835
それは挙動で想像付くが、読み取り専用って書いてる段階か
実行時にエラーになるよな?

これはそれすらないぞw

837 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:53:35 ]
ヘルプ嫁よ

838 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 11:54:22 ]
コピーして返してるからだろ

839 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:19:36 ]
デザイナでLabelとか貼り付けたら
デフォルトのフォントの大きさが9なんだけど、ちょっと小さいから
デフォルトのフォントを大きさを変えたいんだけどどうやったらいい?
あとタイマーが一番最初にEnableがfalseになってるのとか変えたい

840 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:21:34 ]
無理



841 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:24:02 ]
Labelとかのフォントサイズは、フォームのやつを引き継ぐから、
フォームのフォントサイズを変更しておけばOK。

842 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 12:56:03 ]
>>839
諦めろ
つうか、タイマなんぞ切り替えるのは普通Pgからやんないか?
LoadとかShownでTrueにして
ClosingとかでStop→タイマの内部処理終了待ちして


843 名前:829 mailto:sage [2010/04/02(金) 12:59:41 ]
うーんなんていうか、
-----
あいう
あいうえお
あい
-----
ていうrichtextboxがあるとする。
これの2行目の文章(あいうえお)を変数に代入するにはどうすればいいのかわからないんです。
delphiならa:=Memo1.Line[1];(たしかこんな感じ)て感じで取得できたのですが・・・

844 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:05:20 ]
あきらめろよ。

845 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:08:00 ]
ベタにテキストボックスとかでも使うやり方
別に異常なほど文字が多いわけじゃない時こんな感じでやってた

private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = GetInsertedText(richTextBox1.Text, 1, "\r\n" + DateTime.Now.ToString());
}

private string GetInsertedText(string baseText, int index, string inserttext)
{

string[] temp = baseText.Split("\r\n".ToCharArray());

temp[index] += inserttext;

return string.Join("\r\n", temp);

}

846 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:09:25 ]
>>843
>>834見て無いのかよ

847 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:09:37 ]
つーか、Linesプロパティって出てんじゃん。

848 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:11:32 ]
読み取りだけじゃなく行単位で書き換えもありそうなんでできるかどうかを試してたのに
読み取りすら理解してないのかよ・・・

849 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:14:37 ]
総攻撃ワロスw

850 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:17:11 ]
>>846
すいません見落としてました
これです!ありがとうございます



851 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:29:39 ]
しかしこれ内部管理が配列なのが勿体無いな
List<>でもやってくれりゃあ部分編集もしやすかったのに

852 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 13:42:56 ]
中の文書フォーマットがどうなってるか知らんけど
部分的に書き換えられると整合性で困るとかそんな話の予感
TextBoxならできるんだしね…

853 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 14:44:48 ]
管理も何も、Linesのgetterは持ってるTextをCRLF/LF/CRで分割してるだけだぞ
setterなんかCRLF挟んで連結したものをTextに設定しているだけだし

それにしても、プロパティの型が配列だったり、プロパティでコピーを返したり、
プロパティの中に必要以上の処理を入れていたりと無茶苦茶だなw

854 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 16:20:07 ]
コントロールは例外だ
デザイナやバインディングなどの都合

855 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:39:53 ]
var x=0.0としたとき、xの型はfloatですか?doubleですか?
組み込み型には使うなと教えられたんですがこれだけは気になったのでお願いします。

856 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:43:58 ]
やってみればいいじゃん。

857 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:44:33 ]
>>855
ttp://tsushima.2ch.at/s/news2ch56039.png

ちなみに気になる型とか返り値の型とか知りたければ
標準の物なら大体こうやって確認できるよ

858 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:45:27 ]
しもうた
カーソル消えてるけど
x.ToString();
のxの上でカーソル止めてるから

859 名前:855 mailto:sage [2010/04/03(土) 14:48:37 ]
>>856-858
なるほど、勉強になりました。
どうもありがとうございました。

860 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:51:32 ]
>>859
というかc#で小数点をそのまま書くとdouble,
0.0Fという感じでFをつけるとfloat



861 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:53:24 ]
>>855
860の助言を参考にして、ついでにリテラルとその型の概念も把握しておこう。


862 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:55:24 ]
便乗で悪いんだけど、質問させてくれ
floatの方がdoubleよりも速度が遅くなると聞いたんだけど理由がさっぱりわからん
doubleの方が扱う桁数が大きいんだから遅くなるんじゃないのか?

863 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:57:43 ]
>>862
ならない。最近のCPUじゃ割り算以外の処理はどちらも1クロックで終わってしまい、
速度上の差は見られない事の方が多い。

864 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:59:56 ]
>>862
それはCPUによるよ

865 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 16:58:41 ]
Microsoft Parallel Extensions to .NET Framework 3.5ってもうDLできませんか?
もし直リンなどあれば教えてください

866 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 17:04:52 ]
>>865
それは『Parallel Extensions to .NET Framework June 2008 CTP』のことだろう?
Parallel Extensionsが.NET 4.0の機能になったことはMSの公式決定なんだから今更どうにもならんだろう。

ここには「Reactive Extensions を見よ」なんて書いてあるが。
blogs.msdn.com/pfxteam/archive/2008/06/02/8567802.aspx

仮にそんなコンパチライブラリがあったとしても、余計な混乱を招く結果にしかならないだろうよ。

867 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:13:26 ]
ある程度作ってたプロジェクトの中から部分的に切り離してクラスライブラリを作る場合って
スマートにやる方法ないかな?

868 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:16:15 ]
>>867
名前空間の単位で整理して、
名前空間の単位でクラスモジュール化する。

869 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:23:17 ]
そういうのじゃなくて、クラスライブラリ用プロジェクト作った際のソースの移動とかね・・

870 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:28:49 ]
>>869
基本的に自己完結するようにクラスライブラリを書いていれば、
単にプロジェクトを分けて本体側で参照設定するだけで
そのまま動くようになってるんだから、
スマートにやる方法もないだろ。

上手くいかないなら設計が悪いだけ。



871 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:31:28 ]
変数のインスタンスから、その変数の変数名を取得する方法はある?

int a;
string b = a.(メソッド);

みたいにやると、b に "a" って入るみたいな。
無理だと思うけど、C# だとちょっと期待してしまう。w

872 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:41:00 ]
>>871
変数の名前というのはプログラミングの都合上便宜的に与えるものに過ぎず、
実行時にはなくなってしまうものだ。

一方、デバッガで止めると表示してくれるが、あれはpdbファイルにその情報が記述されている。

873 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:42:43 ]
intとかは無理じゃね?
クラスになるとNameがあるけどあれもつけなくても内部管理的には問題ないから
おそらくハンドルみたいなので管理されてるんだと思うしなあ

intだとそのハンドルに相当するものくらいしかないんじゃね?

874 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 18:52:45 ]
いや・・・もっとそのプログラム的な話じゃなくて・・・・

プロジェクト作ってフォルダ作って元のソースを移動して
既存の項目としてプロジェクトに入れて・・・という
やり方しかないのかなあって話


あとクラスライブラリとして分離した場合デバック用とリリース用
を別途分けてリンクさせるような設定はないんだろうか?

C++だと普通にあったんだがC#の場合それっぽい項目が見当たらない

875 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 19:57:02 ]
>>874
>プロジェクト作ってフォルダ作って
それのどこに問題が?
むしろ異なるアセンブリのソースコードはフォルダ分けしておかないと不便だぞ。

>あとクラスライブラリ
同じソリューションでクラスライブラリとメインプログラムを管理しておけば、
ビルドモードの切替で勝手にクラスライブラリの切り替えもやってくれる。

876 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:00:45 ]
>>874
それ以上のどんなバカチョン機能があれば満足するんだろう。
まあ、ファイルの移動はプロジェクトエクスプローラで
ドラッグ&ドロップしてもできるよ。

あと、ソリューション内のプロジェクトの構成(Release/Debug)の連動は
構成マネージャで設定する。

877 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:04:24 ]
>>875
ああ、すまんEEで開発してたのでソリューションの下で複数プロジェクト作れるとは思ってなかった

878 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:06:10 ]
>>876
>>877でも書いたけど俺が想像してたのは

ソリューションA プロジェクトA

とあって
プロジェクトAの一部を

ソリューションB クラスライブラリB
として切り出すしかないと思ってたんだ
すまんすまん

879 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 20:11:25 ]
複数プロジェクト入れられないソリューションがこの先生きのこるには

880 名前:871 mailto:sage [2010/04/03(土) 20:40:35 ]
thx
やっぱり無理なんだね。



881 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 22:00:04 ]
>>863
処理が一律1クロックなのは一部の大型機の話
パソコン用のCPUはそこまで単純じゃないし速くもない

キャッシュがヒットしたという前提で
intの足し算、引き算は0.33クロック、掛け算は0.5クロック、割り算は23クロックかかる
IEEE754形式の浮動小数点だと単精度でも倍精度でも時間は変わらなくて
加減算で1クロック、掛け算が2クロック、割り算が32クロック

882 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 23:55:24 ]
>>880
blogs.msdn.com/jmstall/pages/sample-pdb2xml.aspx
pdb2xmlのソースコードから学べるものがあると思うけど。
デバッガ作るわけでもなければそんな必要ない気がする。

883 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 23:55:44 ]
【FPU】 浮動小数点 【SSE】
pc12.2ch.net/test/read.cgi/tech/1199424344/
float 使うヤツはドシロートかおぢさん
pc12.2ch.net/test/read.cgi/tech/1222048909/

884 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 06:01:22 ]
>>881
結局のところ大容量キャッシュと高クロック化でごまかしてるだけで
x86の本質はそれほど変わってないのか

885 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 06:56:58 ]
floatはベクトル演算器を使う場合にはそっちの方が早い。

886 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:11:33 ]
ちと質問させてください。
VS2003.NETのC#を使用してプログラムしています。

参照の追加でdllを読み込み、プロパティでローカルコピーをTrueにして、コンパイル。
この時に、EXEと同じフォルダにdllがコピーされるのですが、
コピーされる場所を変更できるのでしょうか?

EXEと同じフォルダ内に、DLLというフォルダを作成し、
コンパイル時にDLLフォルダにdllがコピーされてほしいのです。

よろしくお願いします。

887 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:16:49 ]
ビルドイベントで移動するとか

888 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:21:08 ]
>>886
アプリケーション設定ファイルでアセンブリの読み込みフォルダを指定することができる。
ただし実行プログラムのサブフォルダのみ。

これはユーザーに配布するときの話で、
開発中はそういったことをやると却って話が面倒になるので
exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。

889 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 10:25:36 ]
>考え内容がいいと思うよ。
考えないほうがいいと思うよ。

失礼。

890 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:30:53 ]
>>884
クロックを上げるのは、主にコスト面の問題で限界に来てしまったので
今はパイプラインの段数とコア数の増加とバス幅の拡張でごまかす方向になってきてる。
だから1命令が1/2クロックとか1/3クロックなんていう中途半端な時間で処理できてしまう。

あとは実行環境の64bit化でlong/ulongの計算が一気に速くなったぐらい。



891 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:33:14 ]
パイプライン段数はここ数年逆に減少したとか言ってたような

892 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:33:46 ]
いい加減スレ違い。

893 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:36:56 ]
クラスライブラリで公開するクラスってpublicじゃないとだめなんだっけ?

894 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:39:17 ]
           ,,,_  _ァュ,,..__
        ィチュ::ミミ:.:三彡:.:: :.:.:ヽ
        /::彡'':.: :.::/:.:{{.::r‐‐ ::_:.: :.:..、
      ,ィ /:.: /:..: ::{{:..川||::!     ヾ::;;:、
     ,ィ:.: ::.: /:. :: 川:.:ヾ:.:.!{::      ヽ::!
   ///:.: :.:.:||ll: :.: .::.:.:ヾ::.::.i       ':!
   !:|:.:::ミ:: :.;;;川:.: :.:巛、ヾ::! 、       l
   ゙::ミミ h::. :;:.::||l|:.:: :.}}::!l {{ ヾ  _,,...ィ r'' 、
     ゙::ミミ:.: ::.;:.:ミミヾ:.: :.:| ヾ、  '´  ,  マ
     ヾ:: .:.:ミミ三 :.:州リリ    _,,..rテ'  ヽ
      ヾ::;ィ'´ ̄`''ヾ州!         ,.  ヽ
        ゙レ '⌒r ィ ,;;. ..        .:' ,rィ ’
         ヽ し  :.: ..         、  ヽ
       ,,ハ`ー- ..ィ            _,.. ィ
      ィ:::! \   ヽ.          ィ{:::...
       /:::::!   \    ` - ..__       丿::::::ヽ
    /:::::::ヘ    \      ` ーァ-一'::::.:::.:::.::.!ヽ
   /:::::.:..:::::::::ヽ    \      リ::. :::.:.:.:.:::.:.:.:.::::!:::.::!

      轌山相太郎 [そりやまそうだろう]
     (群馬.明治一九年〜昭和一七年)

895 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 11:50:18 ]
>>894
さんきゅー

896 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:37:36 ]
ifで済むようなところでも例外を使ったほうがいいんでしょうか?

897 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:38:44 ]
ifで済むならifで済まして下さい

898 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:39:47 ]
状況にもよるんじゃね?
継続可能なところのエラー程度ならifで判断してもいいだろうけど
継続しても仕方ないようなところは例外でいくとか

899 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 13:58:19 ]
>>896
コールスタックの呼び出し階層から一気に抜け出したい場合は面倒だから
エラーを返さず例外処理で実装してしまう場合もあるよ。

他に、既に例外処理を書いていて、普通にエラーを返すより
エラー自体を例外処理にしてしまった方が楽に実装できる場合か。

そういったことでないなら、通常のエラーを返す実装にしておいた方がいい。

900 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:03:03 ]
例外やエラーに関してもパターンが必要だと思う今日この頃。

俺はpublicメソッドでもなけりゃ自分で投げることは少ないなあ。
引数なんかは渡す前に確認するし。



901 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:05:51 ]
ただprivateメソッドの中でエラーチェックしてないってことはないよ。
Assert入れてるから。

902 名前:デフォルトの名無しさん mailto:sage [2010/04/04(日) 14:19:34 ]
そうですかよかったね

903 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 11:58:36 ]
しかしこの例外ネタは1スレに2回ぐらいは出るな

904 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:01:05 ]
明確な回答を返しづらいからじゃねーの
ほとんどマイルールだもの

905 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:03:31 ]
確かにお決まりパターンてないよな
ソフトの作りで例外でさくっと処理しちゃう場合もあるし
エラーコードとる場合もあるし

みなさんどうしてますかっていうよりこういうコードなんですがって
晒せる範囲でコードを見せてくれるといいんだけどな

質問の仕方の問題もあるな

906 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:33:12 ]
ライブラリとして自分以外に提供するのか
自分で使い切るのかでも変わってくるし

907 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 12:57:19 ]
こういう時に自称プロが出てきて語ってくれればいいのに。
要らん事にばっか口出すからなー。

908 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:04:44 ]
仕事で3日だけC#のアプリを初めて作った自称プロの俺に言わせれば、
そのときの気分、テキトー

909 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:06:10 ]
そういえば2chのほかに専門系の質問できるような場所ってあります?
なんか人減ってるしすぐ規制するしでw

910 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:09:17 ]
ttp://stackoverflow.com/




911 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:09:42 ]
今回のもかなり大規模っぽいねぇ
相談室の方も3日くらい放置状態だわ

912 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:10:33 ]
ブラクラかと思うような名前だ>stackoverflow.com

913 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:33:21 ]
>>909
日本語でもいくらかある
自分でぐぐってると、そんな質問はありえないと思うんだけど

914 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 13:33:25 ]
まっとうなサイトだし有用な情報もごろごろしてるけど、
如何せん名前のイメージが良くない…というか悪いんだよな

915 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:03:50 ]
>>910
ありがとう

>>913
いやあるにはあるんだが、なんていうかオンラインゲームの古参がいっぱい居るギルドに
入るようなちょっとやりにくさがあるんだよな・・・

その点2chは気軽っていうか

916 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:04:51 ]
NumericUpDown を継承したユーザコントロールを作成しています。
Enterイベント・OnEnter・OnGotFocus 内でそれぞれ、
Select(0,Text.Length)・(Controls[1] as TextBox).SelectAll()・OnDoubleClick を
全ての組み合わせで試してみましたが、
フォーカスを得た時にテキストを全選択させることができません。
その他にしていることはTextAlignをRightにすることと、
配置先(元?)で、小数点5桁・変更幅0.001と設定しているのみです。
前述の機能を実装する方法を教えてください。

917 名前:デフォルトの名無しさん [2010/04/05(月) 15:05:37 ]
列挙型(大正、昭和、平成、)を後で追加出来るように
テキストファイルの"大正、昭和、平成、"を読み込んで宣言するにはどうすればいいですか?

918 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:07:36 ]
おっと質問忘れるところだった

fileIo関連でwindowsの改行 0x0d0x0aを0x0aにするにはどこいじってましたっけ?

919 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:21:29 ]
>>918
TextWriter.NewLine

920 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:24:02 ]
>>919
TextWriter.NewLine = "\n";
こんな感じでしたよね?

ありがとうございます。



921 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 15:59:43 ]
>>887-889
早速の回答ありがとうございました。
結構な手順を踏む必要があり、大変そうですね。

> exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。
なるほど、分かりました。
一通りの開発が完了し、配布する際に読み込み先を指定する事にします。

ありがとうございました。

922 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:09:42 ]
DataGridView で、教えてください。

スクロールバーの表示設定を行う ScrollBars だったかがあったと思うのですが、
これで垂直スクロールバーを消すとマウスのスクロールボタン?による
スクロールを行えなくなります。

垂直スクロールバーを消していてもスクロールボタンによるスクロールを行えるようにすることは出来ませんか?

923 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:11:45 ]
ホイール?

924 名前:922 mailto:sage [2010/04/05(月) 21:20:12 ]
あ、そう。それです。

925 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:43:34 ]
便乗質問。
DataGridViewでセルをコピーペーストでデータを移せるようにするにはどうしたらいいの?
できれば縦方向に複数のセルを同時に選択した状態で
コピペできるようになるといいんだけど。

926 名前:デフォルトの名無しさん mailto:sage [2010/04/05(月) 21:57:42 ]
クリップボードへはDataGridView.ClipboardCopyModeをtるえにすればいい
クリップボードからはシコシコ実装するしかありません

927 名前:デフォルトの名無しさん [2010/04/06(火) 11:10:24 ]
質問があります。
WPFで、使わないテキストボックスを、テキストがからのときには表示しないようにしようと考えました。
if (textBox.Text == null || textBox.Text == "") textBox.Hide();
としたら、textBoxにはHideはないらしいんですけど、
こういう場合どうしたらよいでしょう?


928 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 11:13:15 ]
Visibility

929 名前:デフォルトの名無しさん mailto:sage [2010/04/06(火) 11:16:19 ]
WPFは専門じゃないけどさくっと見た限りでは>>928(先を越された

textBox1.Visibility = Visibility.Hidden;
textBox1.Visibility = Visibility.Collapsed;
上二つの違いは要素を表示しない上にレイアウト予約がどうのってあったな
マウスカーソルのせるとざっくりとした説明でたよ

textBox1.Visibility = Visibility.Visible;

930 名前:デフォルトの名無しさん [2010/04/06(火) 12:34:44 ]
>>928-929
さすがふらっとC#。
できました。マウスで出ますね。
ありがとうございました。









[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef