561 :
デフォルトの名無しさん :
2006/07/10(月) 00:11:07 Referer 情報を保持したいのですが HttpWebRequest.Referer プロパティってどのように設定すればいいんでしょうか?
どのようにと言われてもサンプルのようにとしか。
文字列を代入するんだよ、そんなことも分からないんじゃプログラムを作るのはやめたほうがいい
IntPtrってcでいうchar*、int*、void*とかのの総称でしょ? 名前からするとint*みたいな。 しかもなぜかISerializable。
565 :
デフォルトの名無しさん :2006/07/10(月) 00:30:33
>>562 サンプルなんてありました?
CとPHPとアセンブラくらいしかやったことないので
まだオブジェクトっていう考え方よくわかってません・・・・
HttpWebRequest.Refere= "
http://hoge_nurupo.com ";
とこんな感じに指定はできないんではないですか?
567 :
デフォルトの名無しさん :2006/07/10(月) 00:40:36
568 :
デフォルトの名無しさん :2006/07/10(月) 02:16:57
初歩的な質問ですがお願いします。 TabPageの派生クラスを作成しTabControlに追加したいのですが デザイナで追加したTabPageの型をコードのほうで変更するやり方だと デザイナで「変数が割り当てられていません」というエラーが出てデザイナが使用不能になってしまいます。 独自に作成したコントロールをデザイナで使用するためにはどうしたらよいのでしょうか?
>>569 今日は「ゴミ以下」が多いから気にするな
すでに夏厨の季節か
>>564 どっちかというとそういう名前の整数型と言う方が近いかもしれない。
Cでいうところのintptr_t。
C#で明示的にSSEとかのSIMDを利用することってできますか?
>>568 designの方のコードはいじらないで、まず派生クラスをつくってからコンパイル。
すると、ツールボックスに自作のコントロールが出てくるから、
それをポトペタ。
>>555 >>543 に加えて
private void textBox1_DragEnter( object sender, DragEventArgs e )
{
if( e.Data.GetDataPresent( DataFormats.Text ) )
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
TextBox.OnPasteをオーバーライドしてWndProcから呼ぶようにしたら、 貼り付け後のアンドゥができなくなってしまいました。どうしたら いいですか? OnPasteでは、貼り付け可能な文字かどうか判断して SelectedTextを更新しているだけです。
Problem フォームに動的にコントロールを追加したい ボタンのクリックイベントハンドラで以下のコードで実現できるが この方法では作成したコントロールを別の場所から制御できない Button btn = new Button(); //プロパティをいろいろ設定 this.Controls.Add(btn); //この後ハンドラのブロックを抜けるためbtnはGCの対象になり、 //アクセスできなくなる メインフォームクラスでprivate変数を持てばそれを通して別の 場所からもアクセスできるが、それではコントロールを数十個 追加するなどすれば破綻してしまう
>>577 根本的にC#を判ってないと思う。
何で破綻するのか3行で書いてみ?
579 :
577 :2006/07/10(月) 16:10:45
はい public class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Button btn = new Button(); //btnのプロパティを設定 this.btn = btn; } private Button btn; } これでインスタンス変数btnを通してあとからでもButtonをいろいろといじれる でも、このままではButtonは一個しか増やせない。3個にしようと思えば その分インスタンス変数を増やさないといけなくなる あ、Buttonを格納できるコンテナを使えばいいのかな?
580 :
524 :2006/07/10(月) 16:13:54
581 :
524 :2006/07/10(月) 16:23:02
>>579 最初に必要なだけ並べておいて全部Hide()
必要になったらShow()じゃダメ?
>>579 this.Controls.Addしたんだから
this.Controlsの中に入ってるじゃんよーw
もっと単純にかんがえようよ(・∀・)
584 :
583 :2006/07/10(月) 16:58:55
インデクサ使えるよな・・・ (Button)this.Controls[n]でOKだよな・・・
585 :
579 :2006/07/10(月) 17:11:07
いいんです… 僕は頭が悪いんですから… もういいんです… ありがとうございました…
>>585 お前は頭が悪いのか?
つまり
>>582 や
>>583 を見ても解決できなかったということか?
もし解決できたんなら、それでいいじゃないか。
みんな、そうやって知識を蓄えて成長するんだよ。
解決できなかったなら頭悪い死ね。
慰めてるのかけなしているのか
Problem TabControlのラベル部分の背景色を変更したい TabControlのImageListプロパティを設定することで ラベル部分にアイコンを表示することは出来るが、 背景色や文字色は変更できない
Click Event とかで特定の Tab を開かせるのは どうやればいいですの
>>590 意味ワカンネ
とりあえずTabControlなら
SelectedIndex やSelectedTab で設定できるけど。
まさかヘルプ読めば書いてあって気違いでも分かるような
超低能な質問するわけないよね?
ピクチャーボックスにDrawRectancleした四角形をスムーズに移動させたいです。 いまは、前の位置を背景色で塗ってから新しい位置に四角を書いています。 もっとよいやり方があったら、ヒントをお願いします
593 :
デフォルトの名無しさん :2006/07/10(月) 20:25:34
それでいんじゃね
595 :
592 :2006/07/10(月) 21:03:45
いえ、使っていません 一気に1000個描画してから切り替えているようですが、移動させると考えると、その都度切り替えるということですかね?
596 :
588 :2006/07/11(火) 01:55:42
>>589 へぇぇオーナードローってのがあったんだ
勉強になりますありがとうございます
Formのサイズを定数で指定したいです InitializeComponent()の中でthis.Sizeなどをいじっても いつのまにか初期設定にリセットされています InitializeComponentのコメントにも 「デザイナサポートに必要なメソッドです。このメソッドを コードエディタで変更するな」 と書かれています かといってFormクラスのコンストラクタで InitializeComponent(); の直後にサイズを変更するコードを書くのは サイズの設定をわざわざInitializeComponentの中と外の 二箇所で指定することになりスマートじゃないです
>>597 デザイナでサイズ指定しなきゃ良いじゃん
599 :
デフォルトの名無しさん :2006/07/11(火) 03:05:46
作業ディレクトリの指定に関する質問です。 fileOpenDialogで実行ファイルまでのパスを取得した後に Process.Start()で実行しようと思っています。 この際に実行ファイルがあるディレクトリをWorkingDirectoryにしたいのですがどういう方法があるでしょうか? 実行ファイルまでのパスから取得する方法はあるのか、或いはfileOpenDialogする際に取得する方法があるのか、 また他の方法があるのか教えてください。
600 :
599 :2006/07/11(火) 03:13:17
訂正:fileOpenDialogじゃなくてOpenFileDialogの間違いです
System.IO.Path
602 :
597 :2006/07/11(火) 09:29:02
>>598 どういうこと?
デザイナでFormのSizeを0,0に設定するってこと?
コンストラクタでやれ
>>602 デザイナで好みのサイズにしたら、あとはサイズ変更しなきゃいいんじゃないの?
あとはFormBorderStyleを固定(Fixidが付いてるやつ)にして
MaximizeBoxにFalseを設定すりゃ、実行時もサイズは変更できないよ。
でも、直接いじったからって初期設定にいつの間にかリセットなんてされないはずだが・・・?
そのFormは継承Form?
定数てのがミソなんでせう。
SizeにしてもLocationにしてもコンストラクタ内で再設定しても プロパティ自体は新しい値を保持するけど、実際に表示された ときに、反映されるとは限らない。実際はデザイナの設定の とおりに表示される場合がほとんど。 コントロールの表示属性を変更するような処理は コンストラクタの中で書いちゃいけないのは常識。 Loadイベントの中で行うべし。
>>597 は「定数」の意味を理解していないに100ペソ
もしくはオレ流定義をしているに100ペソ
>>597 ところで、「定数」はどこに定義してるの?
デザイナでセットしても実行時にどっかでそれをセットしてるんだから祖こんところを調べろよ。
System.Type A と System.Type B を与えられたときに、 「A から B に変換可能か?」という判断と 「可能ならば変換する」という処理をしたいんですが、 どうすればいいでしょうか? Type は In32 とか Single とか基本的なクラス のみでいいんですが。
>>610 int とか float の相互の型変換は、C# 自体がその機構持ってるわけじゃなくて、
単にそれらの数値型に implicit なキャスト operator が実装されてるだけだった気が。
うろ覚えだから違うかもしれないけど。
なので、型変換可能かどうかという判断をするメソッドはないんだけど、
GetMethods とか使って、implicit キャストが実装されてるかどうかを検索すれば
多分可能だと思うけど、なんかそもそもの設計が変な気もする。
>>610 「変換可能」の定義が曖昧
実数型を整数型にキャストして小数点以下が落ちるのは「変換可能」なの?
有効桁数を超えるキャストをして丸められたりするのは「変換可能」なの?
パターンを考えないと意図しない結果になると思うよ
動的に数値型の型が不明っていうのはどういう場合なんだ?
614 :
597 :2006/07/11(火) 13:34:18
>>604 いいや勝手に書き換えられてるよ
ただ初期設定に書き換えられるというのは勘違いだったみたい
以下再現法
VC2005なんだけど
普通にWinアプリプロジェクト作成して、
デフォルトで作成されてるFormのInitializeComponent()の中
で、例えばFormのClientSizeが決定されたあとでそのForm.ClientSize
を使って別のコントロールのSizeを決定したくても、デフォルトで
作成されるFormの初期化では、例えばFormにButtonが一個
あるだけだと以下のようになっている。
//button1
this.button1.Size = new Size(30,30);
//Form1
this.Size = new Size(300,300);
で、これを以下のように変更する
//Form1
this.ClientSize = new Size(300,300);
this.button1.Size = this.ClientSize;
これでbutton1のサイズがFormのクライアント領域に合わされる
で、この後例えばFormのNameプロパティを変更したりすると、
なぜか上記のコードの変更が勝手に書き換えられる
以下のようになってしまっていた
//button1
this.button1.Size = thisl.ClientSize;
//Form1
this.ClientSize = new Size(300,300);
//あれここに書いていたはずなのに上に移動してしまっている
このままコードを実行すると、画面一杯になったButtonが一応表示される
しかし、例えばFormのSizeを400,400に変更したりすると、
Buttonは300,300のままで変化しない
プロパティ変更してるじゃん……
InitializeComponentはデザイナ用のコードなんだから当たり前 何のためにpartialになってると思ってんだ
>>614 それ、
>>597 でやろうとしてることと違うじゃん。結局なにがしたいの?
定数で指定したいとか言ってたのに定数が見当たらないけど?
>>616 も言ってるけど、InitializeComponentってのはデザイナ用のコードなんだ、
直接いじったあとに、デザイナーで何かしらいじれば、
デザイナがInitializeComponent内のコードを再び書き直すよ。
617に書き忘れたけど、 ボタンのサイズをフォームと同じにしたいんなら ボタンのDockプロパティにFillを設定してやれば解決だよ。
要するにフォームの起動時の位置と大きさを設定したいなら Loadイベントでやれってこった 保存するときはRestoreBounds を使えってこった
>.NET Framework 2.0 の Form オブジェクトに RestoreBounds プロパティが追加されました。 >これは、フォームが最小化または最大化しているときでも、通常表示状態のフォームの位置とサイズを保持する Rectangle 型を返すものです。 うお、知らなかった。 今まで最小化最大化時は保存しないってことにしてたよ……
オレ流コーディングを見せ付けるスレはここですか?
>>619 コンストラクタのInitializeComponentの後の方が良くない?
StartPositionをCenterScreenにしてLoadイベントでSizeを変更すると画面中央にならないよ。
>>619 オレも知らなかったよー
今まで
---
this.Opacity = 0;
this.WindowState = FormWindowState.Normal;
---
の後にサイズと位置を保存していた・・・
でもさぁ、RestoreBounds ってどうゆうとき使うの? 最小化や最大化しちゃった後でもシステムが記憶してるじゃない
最小化・最大化するとWidthやHeightの値はそれに合わせて変更される その状態で元のサイズを知る方法が今まではAPIしかなかった どういうときにつかうかといえば、フォームのサイズを記憶する必要があるソリューション 最大化のWidth/Height/Left/Topを保持し、次回起動時にそれを設定したら、最大化を解除しても画面いっぱいのままでしょ それを防ぐには本来のサイズを保持して、最大化・最小化のステートとは別にしておく必要がある つか少しは考えろよ
デレツン
構造体のEmptyフィールドって、 public static readonly StructA Empty = new StructA(); とすればいいの?
Xpマシンに.NET2003(C#)で作ったAP入れて動かしてるんだけど、 ごく稀にForm上に設置した特定のラベルコントロールが赤×表示されてしまう 事があります(赤×表示=ラベル一杯にバッテンが赤線で表示される)。 Webで調べたんだけど、日本サイトでは何も見つからなくて、海外サイトでは 何やら同様の現象について議論は交わされてるんだけど、はっきりとした 原因・解決策が載った所に行き着きません。。。 どなたか経験者・有識者の方、アドバイス下さい。
>>628 そのコントロールのPaintで失敗してるんじゃないかな
>>629 返信ありがとうございます。
確かにPaintに失敗してるとは思うのですが、原因と解決策がわからんのです。
再現も出来ないんで、五里霧中状態です。。。
>>630 そうですか。としか言いようがないが。
ソースか実行ファイルうp
>>628 あー、それ俺も Release バージョンでよくなる。
なにか例外が発生しているようで例外ダイアログボックスが出るんだけど、
そのダイアログ上のコントロールも全部赤×で表示されてるので詳細がわからない。
Application.Run を try ... catch ... で囲ったり AppDomain.CurrentDomain.UnhandledException を
設定たりしてるけどトラップされていない模様。
一度それが発生するとメニューバー・ツールバー・ステータスバーなどが赤×で表示される。
再現方法もわからないしなんの解決にもなってないけど報告まで。
>>627 new する必要もない。
構造体なら宣言だけしとけば自動的にインスタンスが作られる。
// new で初期化するのとじゃちょっと意味合いが変わったような希ガス
サスペンドから戻った時に、 System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 てな実行時エラーを出す常駐ものがあって、なんとなくFormに貼り付 けたタイマーあたりでエラーが起きてるぽいんだけど、サスペンド対応の 定石みたいなものってあったりする?いったんタイマーを停止させない といけないとか。
VC#2005 Expressでプロパティウィンドウの下に 説明が表示されるじゃないですか。 何かの拍子でこれが消えて項目だけになるのですが、 なにか解決方法とかってあるのでしょうか?
>>635 あーなるなる。2003の時もそうだった。
消えるというか説明の領域が最小になるんだよね。
その都度領域を広げなおすしかないんじゃない?
そんなに手間でもないしね。
>>634 何となくとか言わず原因を追及しろよ。
サスペンドや休止はハードウェアやドライバの依存が強くて困るんだよな。
>>636 ステータスバーとプロパティウィンドウの間にカーソルを持って行くと
カーソルが境界線っぽい形になるけど
何故か摘もうとすると矢印状態に戻って上手く摘めません
で、今さっき、右クリック->コマンドにチェックを入れたら
コマンドの領域と一緒に説明パネルが出てきました
前はその辺りを弄っても変化なしだったような気がするけど
一応解決なのかな?
639 :
デフォルトの名無しさん :2006/07/11(火) 20:05:52
VC#EE重くない?タイプしていっても表示が追いついてない感じ
640 :
デフォルトの名無しさん :2006/07/11(火) 20:14:55
いや、全く
重い。 がしかしそれは私の環境が貧弱なせいなのは明らかだ orz
642 :
624 :2006/07/11(火) 20:51:40
643 :
デフォルトの名無しさん :2006/07/11(火) 23:23:00
C#ってアロー演算子ある?
そんなもの、あろうはずもなく。
646 :
デフォルトの名無しさん :2006/07/11(火) 23:56:02
どっちですかー
言語仕様読めよ
ねーよ
649 :
デフォルトの名無しさん :2006/07/12(水) 00:47:42
ヒント:読めない事情がある
メンバにアクセスするには "." を使う。 ポインタが使えるのはunsafeコードだけ。 ポインタには->演算子が使える。 いじょ。
651 :
デフォルトの名無しさん :2006/07/12(水) 03:00:24
おk、把握した
なつかしいな ->演算子 Cやってた頃よく使ったなぁ・・・
>>631 >
>>630 > そうですか。としか言いようがないが。
> ソースか実行ファイルうp
返事遅れましてすいませぬ。
ソースですが、内容を以下に簡単に書きますと、
@Form上にLabel生成(サイズ、色等以外のプロパティはほぼデフォルト)
※InitializeComponentsで。
AFormLoadイベント時に、Labelのtextプロパティに外字をコードで設定
といったところです。他のLabelコントロールと違うのはAの処理くらいで、
それ以外では特に操作・描画は行っていません。。。
構造体に関する質問です。 public struct ST { int Val } public class TestApp { public static void Main() { ST s; s.Val = 1; // 代入 object o = s; // --- (A) // 関数の引数 object として渡す Func(s); } public static void Func(object o) { // -- (B) } } 上記 (A) で構造体 ST の実態 s を object の参照 o に代入した場合に BOX化というのが行われるとあるのですが、objectの参照に何が入るのかがわかりません。 構造体 ST をラップした無名のクラスのインスタンスとかが生成されるのでしょうか? また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
何と言われてもオブジェクトはオブジェクトだよ。ボクシングされた。 ローカルスコープで宣言された値型は値がスタックという領域に取られる。 参照型は参照がスタックに、値はヒープに取られる。 ボクシングされると値のコピーがヒープに作られ、その参照がスタックに残る。 アンボクシングされるとヒープからスタックに値が再びコピーされる。 > また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか? 無理だね。 やりたきゃ ref/out を使うんだが、まあそう言う場合大抵は構造体を使うべきところじゃない場面だ。
>>655 よくわかりました。ありがとうございます。
>>654 の場合 (A) が実行されるとスタック上の s と o が参照するヒープ上のインスタンスが存在して
これらは、まったくの別物って考えなんですね。
逆に、(A) の後に
ST s2 = (ST)o;
を実行した場合、スタック上に値 s2 が確保されて o が参照するヒープ上のインスタンスの
内容をコピーするということになるんですかね?
しかし、値のコピーをヒープに作って、その参照を保持なんて器用なことをしているとは・・・
C#・・・あなどれん・・・
漏れ、構造体って最初の頃は使ってたけど、 今は全然使わなくなったな。 構造体でできることはすべてクラスでできるし、 さいしょは構造体として設計しても 結局、「クラスにしときゃよかった」ってことになる ことが多くて、今じゃさいしょからクラスにしている。
659 :
デフォルトの名無しさん :2006/07/13(木) 09:07:14
Cのときしか使ってない
660 :
デフォルトの名無しさん :2006/07/13(木) 09:13:08
>>658 レベルが上がってくると最適化で必要になる。
漏れはあえて区別してる orz
俺が低レベルだとーぷんすかぽんぽんっ!
萌えた
俺は変数3つぐらいの構造体をよく使うな
ベクトルとかは構造体にしてる
666 :
658 :2006/07/13(木) 11:19:00
その最適化でどれだけスピード上がるのかと。その部分案マネージにしたほうが委員ジャマイカ?
結構変わるぜよ
669 :
デフォルトの名無しさん :2006/07/13(木) 11:47:30
>>667 レベルが上がってくると高速化以外の最適化も必要になる。
メモリ?
>>667 stringを連結しまくるのじゃなくてStringBuilder使うとかなり速くなるだろ。
スタックに積まれるのも重要ではあるんだが配列時のほうがクリティカル
になりやすくこっちのが重要。
意味的には既定動作がコピーというのは値として扱うのに向く。
そしてジェネリックじゃないコレクションに巨大な構造体を大量に… なんてのがあった。 高速化のためだそうだw
>>671 あまりそういうところでクリティカルになったことなかったけれど今度試してみるわー
メンバ変数の数というか、トータルバイト数が4とか8以下の物で、
仮想関数絶対使わない確証あるときだけ構造体にしてる。
他はクラス。
>>672 速度比較検証でもしてやったらいいんじゃないか?
ジェネリック使ったほうが速いよね・・・
>>672 具体的に何をしてるかわからないとコメント出来ないね。
>>675 えっと、でっかい構造体 HugeStruct とかがあったとして、
HugeStruct[] a = new HugeStruct[N];
a[0] = new HugeStruct();
HugeStruct b = a[0];
だといちいちでっかいデータのコピーがあって糞重たいはず。
要素として object 型を取るような非ジェネリックコレクション(例えば System.Collections.ArrayList) 使う場合、
ArrayList a = new ArrayList();
a.Add(new HugeStruct());
a[0] = new HugeStruct();
HugeStruct b = (HugeStruct)a[0];
だと、いちいち boxing, unboxing、キャストが必要だから、その分遅い。
ジェネリックコレクション使えば、boxing, unboxing、キャストが不要な分だけは早くなる。
あっ、
>>677 の最後の行、
ジェネリックコレクションでも boxing, unboxing はなくならないか。
なくなるよ。
ジェネリックコレクションって内部でキャストしてるんじゃないの?
>>679 じゃあ、糞でかい構造体に対して、ジェネリックな
ArrayList<HugeStruct> とか使うと非ジェネリック ArrayList 使うよりやばい?
コレクション自体をCloneする場合以外は別にboxingなんてないほうがいいに決まってるだろ
683 :
デフォルトの名無しさん :2006/07/13(木) 17:05:19
ブラウザでリンク先が指定されているボタン等を、自分のアプリにドロップされた時に
そのリンクの文字列(例えば "
http://2ch.net ")を取得したいんですが、
どうすればいいんでしょうか。
>>680 キャストしないですむようにコードを生成するんだよ。
>>681 頻繁にソートと化するのなら関係あるかもしれんね。試したことナイから知らん。
まずボタンをドロップどうやってするのかとこ一時間
688 :
683 :2006/07/13(木) 17:36:50
そんなにおかしな日本語だったかなぁw リンク先が指定されているボタン等を、webブラウザ上からから自分のアプリに ドラッグ&ドロップされた時に ・・・ ということでお願いします
689 :
デフォルトの名無しさん :2006/07/13(木) 17:37:19
単純に、値の意味を持たせたい時に構造体にすると思うが。
>>680 >>681 調べてみたらジェネリック用にILを拡張してるようで、
ILレベルで<T>のまま情報を保持しててJITで型ごとに別のネイティブコードを生成してるようだ。
確かに馬鹿でかいValueTypeだと非ジェネリックコレクションよりやばいかも知れない。
マニュアルのこの記述には従ったほうがいいかもしれんね。
>struct 型は、通常、四角形の座標や在庫品目の特性など、関連のある変数の小さなグループをカプセル化するために使用します。
692 :
691 :2006/07/13(木) 19:34:52
文脈を間違えた 馬鹿でかい値型だと遅くなるよ、当たり前だけど
屏風の虎を捕まえろって言われたときに、 それではまず虎を屏風から追い出してください、って言うのと似てるね
,′ l ファイル名を日付順で取得する方法を ', 教えておくれよ。にょろ? 〉 l _ノ \ ___ノ` ── ′ {/ ______ _.:.:´:.:.:.:.:.:.:.:.:.:.:.:\ /.:/.:/ ヽ:.:.:i:.:.:.:.:.:.ヽ {:.:/:./ l:.:.j:.:.:.:.:.:.:. ∨!/ ⌒ |:./:.:|:.:.:.:.: |′ ● jイ:.:.:.|__:.:.: |! r‐‐v (_) |:.:.:.| }:.:. ハヽ ノ |:.:.:.|ノ:.:.: (` = -r-rム:.:.:|:.:.:.:.: ト、 | / | |:.:.∧:.:.:.: |:.:.:T7_/_,j .|:./ ヽ:.:.
>>693 ん?「ボタン」がわからないのか?それとも「ドロップ」がわからない?
>>695 なんのためにDateTime構造体に<演算子や>演算子があると思ってるのよ
プンプン
>>696 どっちも単体ではよく分かるんだが、組み合わせると途端に難解になるな
>>698 比較演算以前に DateTime は IComparable だから……
702 :
デフォルトの名無しさん :2006/07/14(金) 00:46:27
MacみたいなButton,Radioボタンコントロール知りませんか? 有料でも可っす
703 :
デフォルトの名無しさん :2006/07/14(金) 08:22:45
UseControlから自分で作れ
Mac使えば
Mac風なVisualStyle使えば
Vista使えば
Manko使えば
709 :
デフォルトの名無しさん :2006/07/14(金) 18:35:41
StringBuilderクラスについての質問です。 >連結する String オブジェクトの数が決まっている場合は、String クラ >スを使用した方が効率的です。この場合、個々の連結演算は、コンパ >イラによって 1 つの演算に結合されます。 MSDNによると、上記のようにStringクラスが効率的とあるのですが Stringオブジェクトの個数によって、Stringクラスを使用するか判断する 点がわかりません。 個人的には、連結文字列がバッファ容量のInt16に対して多いかどうかで 使用を判断するように思えるのですが。 教えてください。
コンパイル時に、連結する String オブジェクトの数が静的に定まる場合という意味だと思う
711 :
デフォルトの名無しさん :2006/07/14(金) 19:00:12
>>710 レスありがとう御座います。
もう少し考えてみます。
ILを見てみると文字列の結合にSystem.String#Concat 使ってる。こっちのほうが効率がいいのかな。 string a = "aaaaa" + "bbbbb" + c + "ddddd" + "eeeee" + c; だとこんな風に展開されてる。 string a = System.String#Concat("aaaaabbbbb", c, "dddddeeeeee", c);
>>712 Javaと同じでこうゆう処理をやってるのかと思ってた。
string a = new System.Text.StringBuilder("aaaabbbb").Append(c).Append("ddddeeee").Append(c).ToString();
ループで大量の文字列を結合するのでなければコンパイル時の最適化がきくから StringBuilderよりstringの結合のほうが効率いいよ
>>712-713 超予測だけど、string#Concatは一気に引数を渡すから必要なLengthが分かるけど、StringBuilderは初期値で固定されてしまうという点で高速化に繋がる予感
string str = "123456789012345678901234567890"; for (int i=0; i<100000; i++) { /* パターン1 */string s = new System.Text.StringBuilder().Append(str).Append(i).Append(str).Append(i).Append(str).ToString(); /* パターン2 */string s = string.Concat(str, i, str, i, str); } 1 : 453ms 2 : 297ms
>>717 毎周newするのは不利なんじゃなかろうかと。
StringBuilder の場合でも ToString で string を new してるだろ
StringBuilder 使う時はインスタンス作成時にキャパシティ明示するのも重要だぜ。 特に717みたいなパターンだと。
>>717 は例としてのコードが不適切
StringBuilderはループに入る前に外側でnewするべきだし
ToStringは不要
723 :
デフォルトの名無しさん :2006/07/15(土) 08:47:46
じゃ、やってみてよ
暗黙的キャストで ToString を呼んでいるだろうから ToString があろうがなかろうが変わらんだろ
そもそもキャストできたっけ?
VBならそうだがC#は暗黙のキャストは無かったはずでstringに変換するにはToStringが必要。
ループの外でStringBuilderのインスタンスを作ればstring#Concatと同等以上になるのは確かだが、
>>717 は測定可能なようにループを使ってるだけで例とし適切である。
もし、ループの外でStringBuilderのインスタンスを作るのを基準としてstring#Concatを比較するなら
object [] buf = new object[400000];
buf[0] = str;
buf[1] = 0
:
buf[399998] = str;
buf[399999] = 399999;
string s = string.Concat(buf);
と比較しなければならない。
てか不適切だから。
>>722 StringBuilderやConcat()の連結速度を計るなら確かにそうだが、現実的に100000個ものstringやintなどを連結する機会はある?
717のように、だいたい5個、多くて十数個くらい連結するのが普通だと思うのだが。
ボタンをドラッグしたいんだけど
730 :
717 :2006/07/15(土) 11:09:36
暇だし、せっかくだからいろいろ条件を変えて計測してみたけども、スレに書き込むには長すぎるし、こういうのを貼る良い場所ない?
731 :
デフォルトの名無しさん :2006/07/15(土) 11:39:29
WindowsFormのComboBox。 矢印ボタン押すと普通は文字列の候補が出てきますが これを例えば(枠なしの)カラー選択ダイアログなどを出したいのですがどうすればよいでしょう? どっかでMSのサンプル見たのですがご存知ないでしょうか
>>730 無料のWikiなりBlogなりホームページなりにアカウント取ってリンク張ればいいじゃない
>>731 DrawModeをOwnerDrawVariable等にして、
DropDownイベントでダイアログをオープンしたらいいんじゃね?
734 :
デフォルトの名無しさん :2006/07/15(土) 12:35:14
>>731 だったらComboBoxでなくただのボタンでいいんじゃないか?(・∀・)
735 :
デフォルトの名無しさん :2006/07/15(土) 13:34:29
MSのサンプルで 型による処理の振り分けで Dictionary<Type, object>を使えばいい(と思う)のに、わざわざDictionary<string, object>にして 辞書からinstance.GetType().ToString()のようにキーを生成してアクセスしてるところがあるんですけど 型でリファレンスを持つと何かマズイことでもあるのでしょうか?
736 :
デフォルトの名無しさん :2006/07/15(土) 14:04:50
VS2005のmenuStripをMDIフォームに使うと 子フォームに水色の帯が残るんだけど バグ?
(・∀・)←これって流行ってるの?
738 :
デフォルトの名無しさん :2006/07/15(土) 14:29:00
シラネ(´・Ω・`)
>>741 おつかれ〜
ちなみに、StringBufferを再利用するときはこれでいいですよ。
stringBuilder.Length = 0
>>735 MSのサンプルはあくまでさらっと参考にするくらいの方がいいかも…
おいおいな感じのサンプルも多いから。
>>740 サンクス
オブジェクトのGetTypeが違う参照を返すことでもあるのかと思ったらそうでもなかったし、
なんでstringにしてたんだろう。
連結する個数が分かっているならString#Concat、つまり+の連結で十分ということか。 しかしint to stringは激重だな…
string#concatは引数4つまではそのままオーバーロードがあるけど、 string#concat(string) string#concat(string, string) string#concat(string, string, string) string#concat(string, string, string, string) 5つ以上になると配列を作ってしまう。4つまでならConcat推奨。 string#concat(params string[] values)
ベンチを見るとObjectの配列を作る方が(引数を5つ並べるより)かなり速いようだけど…
ベンチにコードが無いからなんともいえないけど、次の二つは同じILを生成してて結果も同じ。 string s = string.Concat("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"); string s = string.Concat(new string [] {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"}); ところでベンチのWIKIに次の記述があるが誤記だよな? string.Concat(str + i + str + i + str);
ObjRefを自分でシリアライズ、デシリアライズしたら 勝手に透過プロキシに変換までされたんだけど、そういうもん? 透過プロキシへの変換は手でやるもんだと思ってたんだけど。
>>742 サンクス。速くなった。
>>747-749 StringBuilder消すのを忘れていた…
ちゃんと同じバイナリが生成されて同じ速度になった。
+はどう見ても写し間違いです。本当にありがとうございました。
整数と文字列が+演算子で結べることを俺は知らなかったぞ!!! 今まで何回ToString()書くのめんどくせえなあと思ったことか・・・
>>752 できたとしてもToString()ちゃんと書いた方がいいですよ。
VS だったら .T ぐらいまで打てばインテリセンスがよろしくやってくれるでしょ。
>>754 >できたとしてもToString()ちゃんと書いた方がいいですよ。
理由は?何のためにToString()はObjectにあるんだ?
1 + "たす" + 1 + " は" + (1 + 1) + "です" こういうとき紛らわしいからじゃないの?
758 :
デフォルトの名無しさん :2006/07/16(日) 12:02:28
変なコメントが入ってるだけで可読性が下がるとか言うのにね
>>758 可読性を下げるような妙なコメント書くからだと思うが。
文字列連結はD言語やBASICみたいに別の記号のほうがいいなあ
いちいちToString()したら無駄なstring生成しまくりじゃん こういう時こそString.ConcatやStringBufferを使うべきじゃないの
>>761 一行のメッセージにそんなもん持ち出す方が面倒だ。
StringBufferはStringBuilderの間違い。
生成しまくりというのはint2stringのことね。念のため。
>>760 同意
しかしPerlみたいにいまさら変更されるのも困るなあ
o(n)
もはや余ってる演算子が…
C#使ってるような奴が可読性とか言っちゃってるよ(プ
(ププッ
768 :
デフォルトの名無しさん :2006/07/16(日) 15:10:23
string s1 = s2; って、s1とs2に同じポインタが入るのじゃないのか?
>>765 ->とか>>とかasとかinおとかもOKなんだからさと。
>>768 文字列の場合はコピーじゃないですか?なんとなく。
>>771 コピーと追記じゃ訳が違うのでどっちにしろStringBuilderは必須。
VB6とそれ以前がそんな構造だが、StringBuilderなぞないよ?
CSV形式に成形するメソッドなんか見ると 全レコード文字列としてくっつけて返すやつなんかある。 ああいうのは連結のしかたで大きく負荷が変わるが、 その前にその仕様変えろといいたくなる。
>>753 string#Formatのベンチマークも取りました
# 盲点だった
>>775 じゃあどうすればいいの?
interface ICSV{public string this[col][row];}とか?
Builderを引数とか、Stream形式とか。一行に対してIEnumerableとかじゃない?
用途の柔軟性から行けばTextWriterあたりがいいかな。 Streamのオーバーロードもあってもいいか。 ま、まず9割くらいはTextWriterでいい気がする。
780 :
デフォルトの名無しさん :2006/07/16(日) 20:28:28
char型の配列で終端に\0でも入れて、 自分で文字列を扱えば、全て解決。
??
Regex.Replace(line, "(", "("); のように半角"("を全角に置換えしたいのですが エラーがでてしまいます。うまく動作させるにはどのように記述すれば よいでしょうか?
エラーが出るキタ━━━━━━(゚∀゚)━━━━━━!!!!
(をエスケープしとけ
785 :
782 :2006/07/16(日) 22:09:06
>>784 ちゃんと動作しました。ありがとうございました。
正規表現の意味ねぇ━━━━(´・ω・`)━━━━ッ!!
確かに言われてみればStringクラスで事足りるな
ブラウザの「リンクバー」みたいなのはどういうコントロールで 実現できるのでしょうか?
Visul C# EEで、デザイナいじるたびに DataGridViewのカラムの順番が勝手に変わるんですが なんとかなりませんかね?
790 :
デフォルトの名無しさん :2006/07/17(月) 03:01:48
>>771 ソースある?俺は普通にs2と同じポインタがs1に入ると思ってたんだが。
ポインタじゃなくて参照な。 771 も参照の代入であると言ってるようだが?
リファレンスじゃないの?
>>792 リファレンスは日本語に直したら参照だろ?
単語すらわからないんだったらプログラムやめたほうがいいんじゃね?
794 :
デフォルトの名無しさん :2006/07/17(月) 10:09:31
正直どうでもいい
>>793 そんなつまらない所であげ足取るくらいなら人間辞めた方がいいんじゃね?
100MBぐらいの文字列で試せばすぐ分かるだろ
つまらないところって
>>792 の言ってることの全否定なんだが。
D♭
100MBの文字列を確保しようとしたらOverflowExceptionが出たよママン
801 :
デフォルトの名無しさん :2006/07/17(月) 11:44:19
嘘つけ
いや、reference を参照と訳すのは C# に限らず特に所謂 IT 系で広く使われてるが……。
>>804 2番目に参照とあるのに何をもって無理やりといってるのかと
>>806 「参照すること」
参照すると言う動詞を無理矢理名詞化してるんですな。
訳したらなるだろぼけ!とまで言えるほど大きな顔が出来る単語でもなし。
ごめん何がいいたいのかわからない
参照(すること) 何のための括弧だよ
ワロリン
英語を訳すときに大事なのは厳密な解読じゃなくてフィーリングだぞ
そもそも外国の言葉が自国の言葉に一対一対応するわけでもないし自国の言葉すら各人の対応する概念が一致してるとは必ずしも言いがたい。
>>814 極論とか論理の飛躍とか好きじゃないです。
いったい何が言いたいんだ。
ネタがないからくだらない言い合いしてるだけだ
C#で有名な曲っていうと、ヴィヴァルディの「四季」より「春」 ってのがあるな。
あらかじめ100MBの文字列 st1 を用意しておいて、 st2 = st1; を何回やってもメモリ使用量は増えない。 しかし、 st2 = st1; st2 += "s"; だと当然メモリ使用量は増える。 あと、100MBの文字列を作るときにStringBuilder使ったんだけど、 st1 = sb.ToString(); だとメモリ使用量は増えないのね(sbはStringBuilder)
>>819 >だと当然メモリ使用量は増える。
気になるなら手動でGCすればいいですよー。
あほす
>>820 お前は何を言ってるんだ?日本語が読めないのか
お前は、何を、言ってるんだ?、日本語が、読めないのか、
百回死ね
まあC#しか知らない糞ガキどもだから
どうやったら100回死ねるの?
知らんがな(´・ω・`)
829 :
デフォルトの名無しさん :2006/07/17(月) 18:48:28
とりあえず1回から試してみるといいよ
D♭っていうセンスは好き。
Cωはどうなった?
Cω→WinFX XAML→.Net3.0→あぼーん
CωはC#3.0に取り込まれる。 元々世に出す予定はない。
Cちんこ
835 :
デフォルトの名無しさん :2006/07/17(月) 21:43:43
ふぐりだろ
すほうれいこだよ
このスレレベル低すぎw
だからVB.Netを使えとあれほど・・・
つうか、きくならVSUGかgetDotNet、その他メーリングリストのほうがまし。
Cωの次はCυ(しーいぷしろん) これでちんことまんこが完成!
C z → C z zwei でいいじゃん
初心者スレの方がよっぽどレベル高いな
マ板にはめずらしいVIPクオリティーを感じるスレ
ここは相談室。相談しない方にはお引き取りねがいたい
愛は死にますか?
もちろんです
触り始めたところなんだけど、もしかしてC#ってconst参照渡しとかconst関数とか存在しない?
C# というか .NET に存在しない
マジか。困ったな。死ねばいいのに。
.NETでC++のconst同様のことをするならget専用のinterfaceを公開するって感じになる? でも値の変更を許可しないことを言語がサポートしてくれるわけじゃないからな…
>>850 そりゃ言語の範疇だろう。.netかんけいない。
>>853 C#はCILを生成するのでCIL上に存在しない=.NETに存在しないって
表現は正しい。
まぁなんだ、実装見せたくないのと参照がメンバの中心になるんで
意味がないのと、リフレクションにはまったく無力だし、そもそも
delegateやevent先なんて追跡可能じゃねーよなぁとか考えると
あんまりいい実装思いつかないし、仕方ないと思うよ
>>854 いや.NET上でなくても、言語上でconstの仕様をコンパイル上でチェックすることは可能でしょう。またそれで十分かと。
アンマネージはどうするの?
せめてCLSの範囲内でないと無理がある。
>>855 だからな、constを保証するためには自身のメンバの型のconst保証したメタデータの
マークがなけりゃできないだろ。CILのメタデータ表現としてそんなものないのに
C#コンパイラがどうやって検証するんだよ。
中身みて分析でもするか?コンパイルにどれだけかかるんだろうな?
外部型情報使用したらconst禁止にするか?使える場面まったくなくなるな。
>>858 んじゃ、C++で同様のことどうやってると思ってるんだ?
最初はconst無くて不便と思ったがだんだんどうでもよくなってきた。
正直、C++のconstは俺には複雑すぎて使いこなせてない。 const char * くらいだなC++で使ってるのは。C#ではstringがimmutableだから問題ないしな。
readonlyマンセー
>>859 ネイティブC++に関して言えば型情報にconstがあるからだ
「CILにそういう型情報がないからC#が簡単にどうこうできる問題でも
ない」って言っているんだが理解しているか?
この制限は言語に依存せず、実際同じCILの型情報を使うC++/CLIの
マネージ型ではconstは使えない。VB.NETもな。
何で.NETにないのかといわれればこれは俺の考えだが、C++とは激しく
状況が異なるからだ。とても実現可能に見えない。
わかんないんです><
>>863 あーconstめんばへんすうはむりね。
それほとんど使わないから気にしてなかったすまん祖。
const メンバ変数なんて使った事ない気がするなあ。 static const メンバ定数しか使わない。
>ネイティブC++に関して言えば型情報にconstがあるからだ じゃ型情報無効にしたらconstつかえないのか? 単にヘッダ見てるだけじゃないか?
>>867 ヘッダに型情報が書いてあるのがC++なのに型情報無効にして
ヘッダ参照って何?
869 :
デフォルトの名無しさん :2006/07/18(火) 19:05:51
.NETは関係なし言語側(C#)の問題だ、と言ってるヤツの根拠が全くなく思いつきだけだな
他モジュールの面罵constを実現できないだけで、ほかのconstは言語側で実現できるでしょ。
C#って、TestClass.Item[i]みたいな感じで使える配列プロパティみたいなものって インデクサを使ったTestClass[i]っていう形式の1つしか作れないの?
>>872 [ ] のオーバーロードは不可で、インデックサでのみ使用可能。( )で代用するか、
コレクションやインデックサを持ったクラスを作って
それを返すプロパティを設ければいいんじゃない。
>>872 いわゆる「名前付きインデクサ」って奴ね。
IL 的には名前付きインデクサも作れるみたいだけど、C# では無理。
多分、コレクションを返すプロパティと区別が付かないのが嫌だったんだと思う。
>>873 の言うように、インデクサを実装したクラスを1個余計に作って、
それを返すプロパティを作るのが C# 的には正しい。
>>871 >他モジュールの面罵constを実現できないだけ
これがconst機構上致命的なんだが…
これがないと、それこそconst参照渡されても何もできない(getterにさえ
アクセスできない)
class Foo { private: int x; public : int getX() /* const */ { return x; } };
void Bar(const Foo& value) {
int x = value.getX(); //コンパイルエラー
}
876 :
デフォルトの名無しさん :2006/07/18(火) 20:17:08
今日のテーマは『C#がこの先生きのこるには』です。
877 :
デフォルトの名無しさん :2006/07/18(火) 20:18:37
キノコヾ( ゚д゚)ノ″キノコ
どうせC#は日曜プログラマ限定でしょ
>>876 _,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
| ( ゚Д゚) <C♯きのこる!
|(ノ |つ
|.先生.|
ヽ _ノ
U"U
>>873-874 ありがとう。インデクサを持ったプロパティを別に作るのは思い浮かばなかった。
その方向でいくことにするよ
881 :
にゃんぽん :2006/07/18(火) 23:40:04
こんにちは。 どうか、Windowのリサイズについてご教授ください。 画像を表示するプログラムを作成しています。 画面をマウスドラッグでサイズ変更をしているとき、 マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。 FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。 いい方法がありましたらご教授願います。
>>875 属性で拡張すれば言語レベルで対応できると思う。
C#にない理由は実装が手間なわりに効果が薄いとみなされたためだろう。
同じ理由で多重継承やC++タイプのFriendも削除されたり単純化されている。
多重継承の実装の面倒くささは桁違いだろ。 ついでに言うとfriendはinternalが相当すると言えるかもしれない。
884 :
デフォルトの名無しさん :2006/07/19(水) 00:14:20
簡単につれるね
>>882 その対応だと使えるクラスと使えないクラスができてしまって激しく
気持ち悪いんだが。
ついでにいうと、動的機能を使用することが常態になっている.NETで
静的に閉じたconstなんか採用したら抜け道だらけで収拾がつかなくなる。
System.ComponentModelが動的(いわゆるリフレクション)を基礎として
構築されていることは分かっているよね?
日曜に仕事してるのか
なんかもうC#が気になりまくりだけど、移行できないJava厨が多くて嫌だね Javaなんて、あと3年で消えるのに
世界観の狭い人だね
3年で消えるんならもう終焉気味じゃないとおかしいぞ
J#に謝れ
892 :
デフォルトの名無しさん :2006/07/19(水) 03:28:17
おまえら! System.ComponentModelが動的(いわゆるリフレクション)を基礎として構築されていることは分かっているよね?
つーかComponentModelが何なのか今市よく分かってない
>>886 >その対応だと使えるクラスと使えないクラスができてしまって激しく
>気持ち悪いんだが。
それ以前の問題としてintすら外部アセンブリなんだけどね!
最低限CTSに手を加えないで、C#だけでどんなクラスが作れるのか
おじさん知りたいな!
おじさん乙
おじさん萌え
使用済み男根
ComponentModel名前空間は自分から使ったことないな
で?
ComponentModelってCOMがらみ?
ちがう
IContainerくらいは使うでしょ
Javaって死滅しちゃうのぉ?
おれが救ってやる
JavaもC#も死んでVBとC++だけが残る
C#は、生きてるというレベルにすらまだなってない
生きろ
結局VB.NETのほうが生き残るんですね、VBの書き方苦手なんだよな・・・慣れの問題かもしれんが
釣れますか?
C#でもVB.NETでもどっちでもいいじゃん、何をそんなに気にしてんの? 漏れはそのときの気分によって使い分けてるよ。開発上どっちかの言語に 有利なアプリケーションなんて別に無いしな。
ネタにマジレス
914 :
デフォルトの名無しさん :2006/07/19(水) 21:59:46
夏休みのためかすっかり雑談スレになってるが、ご相談の方も遠慮なくどうぞ。
C#でテンプレートつけてくれればあまり文句ないんだが・・・
>>915 Genericsで不満なとこあるんか?
917 :
デフォルトの名無しさん :2006/07/19(水) 23:18:14
タイプパラメータを継承元とできない点 コンストラクタやenum等の制約がかけれない点
型を指定しないとメソッド呼べないところ。 C++みたいになんでもありありにしてほしい。
ILとの兼ね合いからそこまでは難しいと思う。 それよりもやっぱりtypedefが欲しい。
だったらC++をやれと… 安全性と自由度はトレードオフだっつーのよ
readonlyのローカル変数が使えないのは何でだぜ?
>>920 行為売れすする人って例外なく頭悪いよね
変換くらいちゃんとしろ
>>918 あれをやろうと思ったら、C++ みたいに、
ジェネリッククラスを実体化するたびに別のクラスのコードが生成されて、
コンパイル結果が爆発的に肥大化するから駄目なんじゃ。
>>920 安全性だけじゃなくて、↑みたいな効率の問題も大きいよ。
>>924 でもそのおかげで総称性にかなり制限が加わってる。
しかしC#は硬くしたおかげで、推論しても大丈夫な世界を構築しているから 難しいところだよ。本来ならこっちのほうが正統な発展な希ガス。 明示を何とかせんと応用が利かんぞっつーのは確かにあったわけで。 whereの表現力が低いっつーのとinterfaceの表現力が低いっつーのは (そしてそれが現状の不満につながっているのは)認めるところだが、 これは別の解決策があるだろうと思うし。C++の方法は何か違う。
.NET1.1ネイティブなJPEG2000のライブラリを教えてください。 既に動いているノータッチデプロイメントのシステムなのですが、 「JPEG->JPEG2000によせ」という要求がきて困ってます。
ClickOnce にしちゃえば
.net別の名前にしてくれないかな・・・・ 検索しづらくてたまらん・・・orz
あるあるw
932 :
デフォルトの名無しさん :2006/07/20(木) 13:56:43
お前がどこで躓いているかが理解できない
934 :
932 :2006/07/20(木) 14:08:30
ありがとうございます。 System.Windows.Forms.ComboBox' に 'AutoCompleteMode' の定義がありません。 と出てしまうので、1.1じゃ無理なのかと思ったのですが…
>>932 上段のurlの対応バージョンがうそっぽいな
MSDNでComboBox.AutoCompleteSource をみると次のように赤字で表示される。
>メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。
936 :
932 :2006/07/20(木) 14:22:02
>>935 ですよね。
どうやって実現すればいいでしょうか。
そんぐらい自分で実装したまへよ
>>936 サポートしてないのなら対応は限られるだろう。
1.あきらめる
2.VS2005にかえる
3.KeyPressイベントあたりに自分でたくさんコードを書く
4.同等の機能を持った市販かネットで入手可能なコントロールを探す(あるかどうかは知らん)
939 :
932 :2006/07/20(木) 14:34:03
>>937 >>938 そうですね。自分でたくさんコードを書いてがんばろうと思います。
ありがとうございました。
940 :
デフォルトの名無しさん :2006/07/20(木) 15:20:22
すいません。誰かこの質問に答えられるひといますか? C#のFormをコピーしてwordなどの文章に貼り付けることは可能ですか?
>>940 PrintScreenで好きなだけどうぞ
942 :
デフォルトの名無しさん :2006/07/20(木) 15:26:57
>>940 ありがとうございます。
PrintScreenの使い方がよくわからないのですが、
紹介しているサイトとかご存じですか!?
944 :
デフォルトの名無しさん :2006/07/20(木) 15:57:47
誰か、PrintScreenの使い方教えてください。
Windowsキーを押してキーボードのUを連打
Windows+R regedit Enter どれか好きなのを右クリック-削除
947 :
デフォルトの名無しさん :2006/07/20(木) 17:10:57
VC#2005EEでManagedDirectXをいじってるんですが FormのOnSizeChangedで勝手にDevice.Reset()を呼び出すのが激しくウザいです。 なんとか勝手に呼び出すのをやめさせる方法はないでしょうか?
>>940 自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
言葉が足りないからです。
C#のFormをコピーって意味が分かりません。
スクリーンショットを貼り付けたいのですか?
それを動的にプログラムで実現したいのですか?
Form上のテキストを貼り付けたいんですか?
wordのドキュメント内部でFormを実現したいのですか?
それとももっと想像を絶するようなことですか?
普通に推測できますが。
950 :
デフォルトの名無しさん :2006/07/20(木) 19:05:12
お前はエスパーだからな
おそらく「もっと想像を絶するようなこと」だな
ム板に来る前にパソコン初心者スレ行くべきだな
推測できた内容書いてくれよエスパー
PrintScreenすら知らないヤツって・・・ 知らなくてもググるとかしろよ
955 :
デフォルトの名無しさん :2006/07/20(木) 19:56:32
>>928 クライアントに.NET1.1で動く別システムが入っている為、
「NTDが動かなくなるので.NET2.0は使うな」と言われており
ClickOnceは使えません。
>>955 .NET 1.0 1.1 2.0 はSxSで混在可能なのだが、よほど妙な作り方をしてるのだろうか。
>>948 >自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
>言葉が足りないからです。
それは多分あなたのことです。
分かっているのなら、多分解決出来ています。
何故なら、調べるにしても簡単に調べられるからです。
分からないから的確なキーワードも分からず、調べるにも、なかなかヒットしません。
何が分からないのかを適切に聞き出せないなら、同じように社会生活で苦労します。
それは、言葉が足らないからです。
プログラム言語学ぶ前に日本語学んで来い
推測できた内容書いてくれよエスパー
>>959 は出来るだけ死体が見つからない方法を考え、2日後に自殺する。
誤差2ms以内でスレッドを管理したいのですが Thread.Sleepが20msほど帰ってきやがらないので辟易しています。 C++/Win32APIならtimeBeginPeriod(1)で環境によっては Sleep(1)が1msで帰ってくるようになりますが、Thread.Sleepは 独自処理らしくwinmm.dllをインポートしてtimeBeginPeriod(1)しても 相変わらず20msほど処理が戻ってきません。 SpinWaitは半端な知識で使うのは危なそうだし何か良い方法はないでしょうか。
当たり前 Windows 自体そんな精度出せない
>>962 いや…C++/Win32APIで書いたものは精度出てるんですけど…
timeBeginPeriod(1)をしてsleepするアンマネージなDLLを用意するしかないんじゃない?よくわからんけど
MM系のtimeBeginPeriodはSleepにも影響するの?
で、推測できた内容はまだか?
>>966 質問の回答が得られないからって自演で煽ってるヤツなんかと仲良くしちゃいけませんっ
>>948 相手の言っていることがわからなくて社会生活で苦労したりしませんか?
IQが足りないからです。
で、推測できた内容はまだか?
何がそんなに悔しかったんだろう?
型を示す文字列(例、"System.Windows.Forms.Form","System.Drawing.Font")から その型のインスタンスを作成する方法ってありますでしょうか?
そこの説明だめだめだからやめた方がいい。
ま、System.Windows.Forms.Form だけでは型を示すには不足だな。
文字列からソースを作ってビルドして動的にリンク
976 :
971 :2006/07/21(金) 07:05:42
>>972-974 Assembly が取得できれば CreateInstance できるということですね。
その方向で、作ってみます。
ありがとうございました。
>>975 ちょっと方向性が違うのでその方向はミリ
977 :
デフォルトの名無しさん :2006/07/21(金) 08:56:59
質問です。 テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと 考えています。 指定行にテキストを書き込む方法(ヒント)を教えてください。
979 :
デフォルトの名無しさん :2006/07/21(金) 09:07:14
>>978 すいません、できればクラスまでお願いします。
さらにできたらメソッドまで。
981 :
979 :2006/07/21(金) 09:10:39
ふらっとC#スレへ異動します
982 :
デフォルトの名無しさん :2006/07/21(金) 12:53:42
>>956 通常なら混在可能だが、NTDは2.0入れたらダメじゃなかったか?
質問失礼します。 初めて C# DirectX でソフトを作成した者です。 ソフトを作成し、開発マシンで正常に動作するのを確認しました。 が、いざ配布してみると「共通言語ランタイムデバッグサービス アプリケーションで、ハンドルできない例外が発生しました。」 という警告ダイアログが出て動作しないマシンがあると判明しました。 問題のマシンでは .Net Framework 1.1 及び、DirectX は導入済みである事を確認しております。 原因はおろか原因を特定する方法すら全く分からない状態です。 分かる方お願いします。 開発マシン WinXP Home VS2003 C# DirectX 9.0 問題のマシン WinXP Home
デバック版配布してみれば?
例外の内容次第だよなぁ NullReferenceException と FileNotFoundException じゃ全然違うし
986 :
983 :2006/07/21(金) 22:51:16
返答ありがとうございます。
>>984 渡して起動してもらったのですが、結果は同じでした。
>>985 内容ですが、
処理 ID=0x2d0(720)、スレッド ID=0x7a4(1956)
となってました。
Exception云々ではなく、それ以前の起動時にこけてる印象を受けます。
>>983 DirectXは機種によって動作しない場合があるね。
ハンドルされてない冷害を処理するハンドラ登録できたと思うのでそこでみてみそ。 書き方は忘れた。ぐぐれ
C丼
銀座 天國 A丼〔海老2尾・きす・イカかき揚・野菜2点〕. 1470円. B丼〔海老2尾・イカかき揚・ 穴子・野菜2点〕. 2100円. C丼〔海老2尾・きす・文甲イカ・大海老・野菜2点〕. 2835円
C丼高級だな
Java最強!!
スレ違い
よーし このスレはJavaが頂いた C#なんて、誰も使ってないから必要無いだろ?wwwwww Java最強!!!!!!!!!!!!!!1111
?
1000?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。