1 名前:デフォルトの名無しさん [03/10/04 01:02] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。 前スレッドはこちら pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4) pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3) pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2) pc2.2ch.net/test/read.cgi/tech/1023766485/l50
481 名前:デフォルトの名無しさん mailto:sage [04/10/31 19:07:04] >>479 その場合、 using System.Windows.Forms; ↓ using No479.Windows.Forms; みたいに企業名(Systemの部分)を変えたほうがいいんじゃないか。 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpgenref/html/cpconnamespacenamingguidelines.asp
482 名前:479 mailto:sage [04/10/31 19:11:46] >>481 ちゃうちゃう System.Windows.Forms と System.Windows.NetForms の中に、 型は同じだけど挙動の異なるクラスがあったときに、 using 文でどちらを採用するか切り替えるのは邪道かな?って事
483 名前:479 mailto:sage [04/10/31 19:12:21] >>482 別に名前空間名はなんだって良いんだが
484 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:48:00] >>482 そういうクラスが大量にあるソースを目の前にしたときに激しい絶望感に襲われるのでやめてください。 using書いてるのにnamespaceフルに書いて別のnamespaceのクラスを使用されたりして混沌に拍車がかかったりします、してます……
485 名前:479 mailto:sage [04/10/31 20:52:06] 何となく分かりました。皆さんも回答有難う御座います >>484 がんがって下さい orz
486 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:57:35] >>484 using Hoge = System.Windows.Forms; Hoge.Form = new Hoge.Form(); で随分楽になると思うけど。 まあ479みたいなのは見たくもないと言うのはよく分かる。
487 名前:デフォルトの名無しさん mailto:sage [04/11/01 02:18:40] >479 そういうののためにAbstractFactoryとかあるとおもうのだけど。 あれは切り替えできるとともに、システム上での選択肢をひとつに強制するという使い方でもある。 ソースごとにusingで切り替えられるのは>>484 のいうとおりたちの悪いバグの元。
488 名前:デフォルトの名無しさん mailto:sage [04/11/02 04:49:20] FormクラスのActivate()メソッドを使用してます >>アクティブなアプリケーションであるフォームをアクティブにした場合は、そのフォームが最前面に移動します。 >>アクティブなアプリケーションではないフォームの場合は、そのフォームのウィンドウ キャプションが点滅します。 とあるのですが、他のアプリケーションに切り替えてるときにこのメソッド呼び出されると、最前面に来る場合があるのですが、 他のアプリケーションにフォーカスしている ≠ その他のアプリケーションのフォームがアクティブである ということなのしょうか・・・? MSNメッセンジャーのように、通知が来たときに点滅するだけでいいのですが、 これってWin32API叩くしかないんでしょうか・・・。
489 名前:デフォルトの名無しさん mailto:sage [04/11/02 09:28:31] >>488 なるねー。 .NET2.0ならFlashメソッドってのがあるんだけど。
490 名前:488 [04/11/02 14:36:14] 1.1じゃムリかなぁ(つД`)
491 名前:デフォルトの名無しさん mailto:sage [04/11/02 17:24:17] VSの画面にはドッキングウィンドウなどありますが、あのコンポーネントは何処にありますか? あの画びょうのマークのついたドッキングウィンドウ・コンポーネントと、 プロパティを設定するためのコンポーネント(VS右下の、Nameとか設定できる奴)を 探していますが見つからない。
492 名前:デフォルトの名無しさん mailto:sage [04/11/02 17:36:37] >>491 とりあえず > プロパティを設定するためのコンポーネント(VS右下の、Nameとか設定できる奴)を はPropertyGridだな。こいつは.NET Framework標準。 ドッキングウィンドウは……the Code Projectにあったようななかったような。
493 名前:デフォルトの名無しさん [04/11/02 18:59:20] richTextBox1.AppendText( recMessage.ToString() + " : " + recMessage.Message + "\r\n" ); を richTextBox1.AppendText( recMessage.ToString() + " : " /* + recMessage.Message + "\r\n" */); string[] splString = recMessage.Message.Split(new char[] {'#'}); for ( int count = 0 ; count + 1 <= splString.Length ; count++ ){ if ( count != 0 ){ String colorCode = splString[count].Substring(0,1); switch ( colorCode ){ case "1": richTextBox1.SelectionColor = System.Drawing.Color.Blue; richTextBox1.AppendText(splString[count].Substring(1)); break; (中略) default : richTextBox1.AppendText(splString[count]); break; } }else{ richTextBox1.AppendText(splString[count]); } } richTextBox1.AppendText("\r\n"); } にしたところ、エラー音が出るようになりました(処理は正常に行われてるっぽい) なぜでしょう・・・?
494 名前:デフォルトの名無しさん mailto:sage [04/11/02 23:03:59] >>491 DockPanelSuite sourceforge.net/projects/dockpanelsuite/ 無償でオープンソース。現在ベータ版で、メニューの統合がうまくいかないなどバグが残る。 DotNetMagic www.dotnetmagic.com/ 機能的にはおそらく最強。でも有償。 MagicDocking www.codeproject.com/cs/miscctrl/dockingmanagerextender.asp DotNetMagic の旧バージョン。ライセンスはよくわからん。 SharpDevelopに使われるなど実績あり。 Docking Suite www.divil.co.uk/net/controls/dockingsuite/ 現在ベータ版。非商用利用に限り無償。 代表的なところでは、こんなものか。見た目や動きが微妙に違うので、実際に使ってみて選んだ方がいい。
495 名前:デフォルトの名無しさん mailto:sage [04/11/03 10:49:11] 鯖から非同期に送られてきたデータをバックグラウンドで取得し、イベントとして通知するようなライブラリ作ってます 1:TcpClient を使っているとき、サーバから切断されたことをすぐに知るにはどうすればいいか 2:異常切断されたときイベントなどで通知することを考えているが、 通常切断したときも同じイベントを発行したほうがライブラリを使う側にとって便利なのかどうか ちょっとアンケートがましいですが意見をお聞かせくださいm(_ _)m
496 名前:デフォルトの名無しさん mailto:sage [04/11/03 12:41:36] プログラム歴2ヶ月で答えると叩かれそうだが・・・ 1, byte[] byteAry = 受信データ; if ( byteAry.Length <= 0 ) { パイプカット } 2, ライブラリがエラーの処理をどこまでするかによるんじゃないでしょうか でしゃばってスマソ
497 名前:デフォルトの名無しさん mailto:sage [04/11/03 23:25:41] >495 1.物理的に切断を瞬間的に不可能。 TCPのキープアライブ使ってもいいが融通がきかん、自分でキープアライブパケット投げるようにしておけ。 2.同じイベントでも(・∀・)イイ!!が、通常なのか異常なのかわかるようにしておけ。エラー原因などもプログラムで扱えるよう定義してふんだんな情報を送っておけ 以上。
498 名前:杏仁 [04/11/05 17:39:49] 最近C#を始めました。良く分からないので質問させてください。 いま、Cで作成されたDLLをDllImportで呼び出しています。 そのDLLの仕様を見ると関数は void hoge(UINT *pWidth, UINT *pHeight); とポインタで呼び出していました。 [DllImport("hogehoge.dll")] public static extern void hoge(int w, int h); としても当然うまくいきませんでした。 C#でこのような場合ようやってDllImportすればいいのでしょうか? お手数ですが、お教えください。よろしくお願いします。
499 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:46:06] >>498 ref System.UInt32 にする。 (まぁ小さげな値だろうから ref System.Int32 でもいいだろうけど)
500 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:53:35] System.IntPtrで外部関数のパラメータを定義し System.Runtime.InteropServices.Marshal.AllocCoTaskMemでメモリを確保、 System.Runtime.InteropServices.Marshal.WriteInt32で確保したメモリに書き込み、 関数に渡す。 結果をSystem.Runtime.InteropServices.Marshal.ReadInt32で読み込んで System.Runtime.InteropServices.Marshal.FreeCoTaskMemでメモリを破棄する。 uint*程度でやる事じゃありません。
501 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:58:17] 関数がどんな性質なのかにもよるんだよなー。 これがよくもあり悪くもあり。
502 名前:杏仁 [04/11/05 18:34:05] 回答ありがとうございます。 >>499 > ref System.UInt32 にする。 [DllImport("hogehoge.dll")] public static extern void hoge(ref System.UInt32 w, ref System.UInt32 h); ということでしょうか?この場合、どうやって呼び出せばいいのですか? int w=0; int h=0; hoge(w,h); としてもうまくいきません。 >>500 回答していただいたのにさっぱり・・・。 もう少し分かりやすくお願いできますでしょうか? 最近始めたばかりで、さっぱり右も左も分からない状態です。 よろしくお願いします。
503 名前:デフォルトの名無しさん mailto:sage [04/11/05 18:39:42] >>502 ヘルプでrefキーワードぐらい調べようよ〜。 呼び出す時もrefキーワードが必要。 hoge(ref w, ref h); 500はただのジョークだから。こんな手段もあるよってだけ。 //と最後の行で言ったつもりだったんだけど。
504 名前:デフォルトの名無しさん mailto:sage [04/11/05 19:04:46] >>502 蛇足の補足。たぶんこの場合は関係ないだろうけど、ポインタ値が指す領域にある値だけではなく、 そのものに意味がある場合には、System.IntPtr 型にしておいて、ポインタの指す先のアクセスは >>500 風にやるようなこともある、ってのが >>501 ね(たぶん)。 例えば hoge の正体が hoge(UINT* w, UINT* h) { delete [] w; delete [] h; } みたいな場合とか。
505 名前:デフォルトの名無しさん mailto:sage [04/11/05 19:05:31] >>そのものに意味がある ↑ 「ポインタ値そのものに意味がある」の編集ミスですた。
506 名前:デフォルトの名無しさん [04/11/06 00:54:32] this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel); private void pictureBox1_MouseWheel(object sender, MouseEventArgs e) { Console.WriteLine(e.Delta); } と記述してるのですが、マウスホイールくるくるしてもpictureBox1_MouseWheelイベントが発生してくれません。 そもそもなんで、MouseWheelだけは手動で書かないといけないのかと(ry
507 名前:デフォルトの名無しさん [04/11/06 01:01:47] >>506 Console.WriteLine();を、MessageBox.Show("",""); にしても駄目?
508 名前:506 mailto:sage [04/11/06 01:08:21] だめっぽいです ブレークポイントしかけても反応してくれません。 Panelの上に張ってるのでPanelにもイベントハンドらを記述したのですが どっちもイベントが発生しないみたいです。
509 名前:デフォルトの名無しさん mailto:sage [04/11/06 01:10:57] >>508 >Control.MouseWheel イベント > コントロールにフォーカスがあるときにマウス ホイールが動くと発生します。 PictureBoxやPanelはユーザの通常操作ではフォーカスを得る事はない。
510 名前:508 mailto:sage [04/11/06 01:18:35] なるほど。 Mouse_EnterしたらFocus()するようにするとうまくいきました。 お騒がせしました。
511 名前:デフォルトの名無しさん [04/11/06 18:29:40] 今C#の文法書を読んで勉強中なんですが 文法などを一通り理解したら次は何をすべきなんでしょうか? guiアプリケーションを作れる人は文法などを理解したら次は何をしたんですか?
512 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:32:41] 作りたいアプリを作りつつ GUIパーツをいろいろ試したり細かいプロパティ・メソッドを調べたり 非GUIなクラスの使い方を覚えたりどんなクラスが存在するのかを調べたり。
513 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:32:45] >>511 作りたいものを作れ。手を動かせ。 「習うより慣れろ」ということわざがあるが、 プログラミングの場合「習ったら慣れろ」ってところか。
514 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:41:15] わからないことがあったらここに質問しにきていいんですかね? タブ型メモ帳を作ろうとしてお世話になったのが自分なのですが。 MSDNライブラリをみながら作るだけではちょっとムリがあるかなと思いました。
515 名前:495 mailto:sage [04/11/06 20:36:09] >>496-497 亀ですがdくすです。 む〜。実際にデータ送らないと切断検出できないですか〜。 送信、受信が別スレッドに分かれているんで、リターンを待つ同期に一苦労^-^;
516 名前:デフォルトの名無しさん mailto:sage [04/11/06 20:44:40] >>515 送信と受信を一つのスレッドでやるとエライ事になるよw あとTcpClientは結構ゴミだからクライアントアプリでもSoket使った方がいいかも。
517 名前:495 mailto:sage [04/11/06 20:51:11] >>516 >クライアントアプリでもSocket 具体的にどのような点が優れているんですか? ちょっとワカラン orz
518 名前:デフォルトの名無しさん mailto:sage [04/11/06 20:58:32] >>517 NetworkStreamでしか送受信出来ない、細かい制御(受信側のみ切断とか)も出来ない ついでに非同期送受信も出来ない・・・ TcpClientで作っても後々書き直すことになると思うw
519 名前:495 mailto:sage [04/11/06 21:00:06] >>518 ラジャ^-^;
520 名前:495 mailto:sageここはお前の日記j(ry [04/11/06 21:01:24] あ〜送受信系統を1つのクラスに押し込めて置いてよかったw このクラスの中身だけ変えればおkだわ
521 名前:デフォルトの名無しさん mailto:sage [04/11/06 22:26:52] do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=81&fi=no こんな感じで送受信してます、たまにデータが続けざまに来るとエラーでるんですが、どうしたらよいでしょう・・・。
522 名前:デフォルトの名無しさん mailto:sage [04/11/07 00:13:29] えーと・・・ BeginReceiveしてEndReceiveした後は、また非同期受信するなら再度BeginReciveしないと駄目なような・・・ それにこの用途ならNetworkStream使った方が楽かも・・・(俺ならそうするw) あと、一度の受信でバッファ全部捨ててるけど、 非同期受信は何バイト受信するかわからないから、先取りしたデータは捨てるんじゃなくて プールしてその上でさらにバッファを貯めるみたいにすべき。 あと(ぉ終了処理はShutdownの後でCloseしよーw
523 名前:521 mailto:sage [04/11/07 01:12:53] 了解です!(BeginRecieveするメソッドにソケット渡し忘れてた・・・(/ω\)) NetworkStream調べてみます〜 >あと、一度の受信でバッファ全部捨ててるけど、 >非同期受信は何バイト受信するかわからないから、先取りしたデータは捨てるんじゃなくて >プールしてその上でさらにバッファを貯めるみたいにすべき。 int recBytesSize = socket.EndReceive( ar ); ↑で受信データサイズ抜いた時点で必要とするbyte配列は確定してない・・・ということですか?
524 名前:495 mailto:sage [04/11/07 16:00:26] 何か似たような事やっている人がいるなぁ ^-^; おまいは俺か?
525 名前:杏仁 [04/11/07 21:51:38] >>498-503 ありがとうございました。おかげで動作しました。 もう一つ質問なのですが、DLLの仕様を見ると BYTE *HOGE() という関数があります。 この場合は、どうやって呼び出せばいいでしょうか? よろしくお願いします。
526 名前:521 mailto:sage [04/11/07 21:56:34] >>495 あなたの子よ!認知してよ! 非同期NetworkStreamのサンプル見つからない(MSDNのだと断片的でわからず・・・)
527 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:04:54] ところで Bigin〜 したら必ず End〜 しなきゃいけないの? やりっぱなしじゃ駄目?
528 名前:527 mailto:sage [04/11/07 22:05:19] 凄く打ち間違い orz
529 名前:デフォルトの名無しさん [04/11/07 22:16:49] ランダムにping送って、応答があった場合、応答先のPCのNICのMACアドレスを取得する方法ってありますか?
530 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:34:26] よく分からないけど通報しますた
531 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:55:54] ブロードキャストがしたいんじゃないかな…
532 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:57:25] ARPのことなのだろうか・・・・ それとも今世界のどこかから自分のMAC抜かれたいのだろうか
533 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:21:05] マックでバーガー三つ買って来るか・・・ハァ・・・
534 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:38:51] 漏れのもたのむ
535 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:55:40] >529 pingパケットにその情報があるか見てみれば?
536 名前:デフォルトの名無しさん [04/11/08 00:14:47] C#のクラスを継承してManageC++のクラスを作りたいんですが、 メンバ関数のオーバーライドがうまくいきません。 C#のクラス↓ public abstract class ClassCS { public abstract void Func(ref int c); } void FuncC(int __gc& C) や void FuncC(int &C) ではだめでした。 この関数FuncをオーバーライドするにはC++でどのように記述すればいいんでしょうか?
537 名前:デフォルトの名無しさん mailto:sage [04/11/08 01:38:42] >>525 それはもう関数次第としか言えない。 >500みたいなことをする可能性が高いが。 >>536 ええとポインタを引数に取るんだからvoid FuncC(int* c)じゃないのかな。
538 名前:デフォルトの名無しさん mailto:sage [04/11/08 02:37:53] >>535 それだと、同一ネットワーク内ならOKだけど、L3装置かましたときに中継点のMACになるような
539 名前:杏仁 [04/11/08 10:14:41] >>537 >それはもう関数次第としか言えない。 画像バッフアのアドレスが格納されて帰ってくる関数みたいなのですが・・。 > >500みたいなことをする可能性が高いが。 ・・・・。大変そうですね。私にできるかどうか・・・。 サンプルとか参考になるサイト等ありますでしょうか?
540 名前:デフォルトの名無しさん mailto:sage [04/11/08 13:18:34] >>539 関数次第なんだからサンプルも何もないと思うけど?
541 名前:デフォルトの名無しさん mailto:sage [04/11/08 13:32:01] >>539 unsafe で IntPtr を byte* にでもキャストして、画像バッファのメモリをアクセスすれば良いと思う。 メモリの中身にアクセスする必要がないなら、IntPtr で受け取っておいて、他に渡す必要があるなら また IntPtr で渡してあげるだけ。 Susie のプラグインを C# から使いたいとか、そういうことですか?
542 名前:杏仁 [04/11/08 15:20:19] >540 541 解答ありがとうございます。 ん〜。勉強不足で折角の解答の意味があまり理解できずに申し訳ありません。 とりあえず、IntPtrをもう少し勉強してみます。 >Susie のプラグインを C# から使いたいとか、そういうことですか? 画像入力ボードのDLLを使って画像の取り込みを行いたいと思っています。
543 名前:デフォルトの名無しさん mailto:sage [04/11/08 16:15:09] 此処で質問して良いのかどうか、ちょっと不安なのですが・・・ 現在、既存システム(C+VB6)をC#で移植しています。 既存システムはVB6でユーザインターフェースを作り、 CでDLLを作って、VB6からDLLを呼び出しています。 VB6のインターフェース部分は特に問題無くC#に移植できたのですが、 Cで作ったDLLの関数が結構多く、またC#から呼び出すのも厄介な状況です。 MSの技術情報でWin32APIと.NETFrameworkの対応表で幾つかはそのままC#で実装しましたが、 残りのDLL関数をManagedC++でDLLを再度作り直し、そのDLLをC#から直接使う事になりました。 そこで質問なのですが、ManagedC++でSTLのmapを使いたいのですが、 コンパイル時にエラーとなってしまいます。 ManagedC++ではSTLなどテンプレートを使う事はできないのでしょうか? また、ManagedC++で作った関数で、.NETのHashtableなどを返す関数は作れないのでしょうか?
544 名前:デフォルトの名無しさん mailto:sage [04/11/08 16:22:06] >>543 managed C++ やろうぜ!! pc5.2ch.net/test/read.cgi/tech/1014486422/ //沈んでるなぁ……。
545 名前:536 [04/11/09 00:34:22] >>537 >ええとポインタを引数に取るんだからvoid FuncC(int* c)じゃないのかな。 返答ありがとうございます。 試してみましたが、うまくいかないようです。 自分でもいろいろ試してみて、Manage C++側はFunc(int __gc &c)になるはずだと思ったんですが、 下のプログラムを実行すると『抽象クラスまたはインターフェイス 'CPP.CPP' のインスタンスを作成できません。』といったエラーが出ます。 CPPのFuncをオーバーライドできてないってことだと思うんですが、どうすればちゃんとオーバーライドできるんでしょうか? Manage C++↓ namespace CS { public abstract class CS { public abstract void Func(ref System.Int32 c); } } C#↓ namespace CPP { public __gc class CPP : public CS::CS { public: void Func(int __gc &c){} }; } static void Main(string[] args) { CS.CS S = new CPP.CPP(); }
546 名前:デフォルトの名無しさん [04/11/09 01:08:36] 突然ですがお知らせです。 大阪(西梅田)、新宿(JR駅前)のそれぞれ一等地に 拠点を構え、業績急上昇中!未経験者大募集中!の ソフトウェア開発会社 グリーンシステムを応援するHPです。 www.geocities.jp/grs_hp/ このスレの読者の人のような、レベルの高い人にぴったりかと 思います。 最高の会社にするため、みんな頑張ってます!
547 名前:デフォルトの名無しさん [04/11/09 01:16:15] このスレの読者の人のような、デンパレベルの高い人にぴったりかと 思います。 最高の会社にするため、みんな頑張って2chに投稿してます!
548 名前:デフォルトの名無しさん [04/11/09 02:02:26] >>546 俺はチョコレート嫌いでチーズケーキ好きだから無理ぽ(´・ω・`)
549 名前:デフォルトの名無しさん [04/11/10 14:32:04] 以前からよくVisualStudioがポコポコこける原因が判ったのですが、 その原因というのは、ソリューション中にControlのプロジェクトと 利用するアプリの複数のプロジェクトを作って アプリのプロジェクトからControlのプロジェクトを参照して、 Controlのプロジェクトのコントロールをツールボックスにいれると頻繁に落ちます。 VisualStudio からしてみれは参照しているコントロールを突如更新されては堪らないというのは分るのですが TestツールのNUnitでも外部から書き換えを検出して見事にやっているので、 更新している本人の VisualStudio にできないはずが無いだろうと思うのですが、できていないようです。 結局コントロールのDLLは別のソリューションで作って解決したのですが、まとめてビルドできなくて結構不便です。 誰かこうしたら便利だ!! って方法がある人がいたら教えてくださいです。
550 名前:デフォルトの名無しさん mailto:sage [04/11/10 14:37:21] >>549 同じような事したことあるけど、VSがポコポコ落ちるような事なかったけどなぁ・・・ 他の開発環境のせい? それともマシンの性能? やっぱり、日頃の行い?
551 名前:デフォルトの名無しさん [04/11/10 15:03:12] >>550 ほんと? 相当やりこんでほぼこれだと特定した物なんだけど……
552 名前:デフォルトの名無しさん [04/11/10 15:05:09] 漏れも未体験だな。
553 名前:デフォルトの名無しさん [04/11/10 15:08:17] すんません、 その問題おこらないソリューション一式をアップローダに上げてもらえませんか? もしこれが原因でないとすれば、かなり悩みます。
554 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:17:40] >>553 そんなソリューション一式、アップできると思うのか? 会社でやってる仕事のものなら、特に上げられない。 新手の産業スパイかなにかですか? 買うと言うなら送りますよ。 勿論、ソースから何から。 ドキュメントは要らないだろうから、値引きするけど、それでも数百万は貰うよ?
555 名前:デフォルトの名無しさん [04/11/10 15:22:09] >>554 もちろん全部上げろという意味じゃないですよっ、そんなの当たり前です そんなものアップできるほど小さくも無いでしょうし、見る側のこっちもたまりません。 最低限でって話ですよ。 てゆうかアンタただの煽りでしょ。
556 名前:デフォルトの名無しさん [04/11/10 15:23:35] どうやったら再現できるのか知りたいくらいだw
557 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:24:04] >>554 きちがい?
558 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:26:22] 取りあえず再現"する"最低限のソリューションから検証してみるべきだな。
559 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:27:44] 煽りはお腹いっぱい、もういいです。
560 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:33:38] ま、553もかなり人に面倒を押し付けているな。 最低限に切り分けてアップローダにアップしろと。
561 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:06:17] ていうか549=553=559が釣りにしか見えない。
562 名前:デフォルトの名無しさん [04/11/10 16:08:12] 1台のPCで、仮想デリゲート串みたいなこと出来ませんか?
563 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:10:05] たぶん >>549 のコントロールが、DesignMode 見て適切な処理をしていないってあたりに一票。
564 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:12:56] \ ∩─ー、 ==== \/ ● 、_ `ヽ ====== / \( ● ● |つ | X_入__ノ ミ そんなエサで俺様がクマー!! 、 (_/ ノ /⌒l /\___ノ゙_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ (´⌒; (´>>
565 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:53:29] つうか、普通はちゃんと動作する最小限のものをアップするんじゃなくて、 依頼者の”動作しない”最低限のものをアップするのが筋じゃないか? でもって、それを他の奴等が正常に動作するなら、PC環境が原因かもしれない。 他の奴も異常な動作をするなら、ソリューリョンが原因かもしれない。 とりあえずは動作しない最小限のソリューションをアップして、 そのソリューションのどの部分をどう変更したらVSが落ちるのかを明記しろ。 話はそれからだ。
566 名前:デフォルトの名無しさん mailto:sage [04/11/10 18:36:46] >>565 内部で完結してしまっている(というかpanel一枚おいただけ)ので DesignMode は関係ないのではと・・・思うのですが・・・ いろいろやってみた所、コントロールのDLLをプロジェクトコンパイルした後、 一度VSを起動しなおしてから、目的のプロジェクトをコンパイルすれば 同一リソリューション中にプロジェクトを入れても問題は発生しないようです。
567 名前:デフォルトの名無しさん mailto:sage [04/11/10 18:37:58] >>566 間違いです×>>565 ○>>563
568 名前:デフォルトの名無しさん mailto:sage [04/11/10 19:01:02] >>565 あんたが正しい。>>549 は厚かましいにもほどがあると思う。
569 名前:デフォルトの名無しさん mailto:sage [04/11/10 20:27:41] >>566 今ためしてみました。 1. 新規のソリューションに UserControl プロジェクトを追加。パネル1枚とLabelを配置。 2. Windows アプリケーションプロジェクトを追加。デザイナで上記のUserControlをFormに配置。 (参照は自動的に追加される) 3. (ビルドしたりする) 4. UserControl の Label の文字列を変更⇒「デザイナに反映するにはリビルドが必要です」とか言われる 5. おとなしくリビルド。Form 側のデザイナに文字列の変更が反映される。 という感じで特に問題は起きません。 同一ソリューション内のユーザーコントロールは、ツールボックスの「マイ ユーザー コントロール」に 自動的に追加されるわけだし、「同一リソリューション中にプロジェクトを入れても問題は発生しない」のが 普通なんだと思います。
570 名前:デフォルトの名無しさん [04/11/10 21:10:42] int a,b; Point p; p = new (a,b); ってするのと p.X = a; p.Y = b; ってするのとどっちが早いんですか? 生成されるコードは同じですか?
571 名前:デフォルトの名無しさん [04/11/10 21:21:07] >>569 わざわざどうも有難うございます、そうするともっと別のところに原因がありそうですね。 さらに調べてみます。 ちなみに僕のところでは「デザイナに反映するにはリビルドが必要です」が出ないんですよね。 何故だろう? 実は、xmlドキュメントも反映されないのですが、これはそちらでは反映されるものでしょうか? これも 1.dll側のプロジェクトをビルドする 2.VSを一旦落とす 3.再起動してアプリ側プロジェクトを操作する という形でないと、僕の所では自働補完が機能しません。 これもちょっと気になるのですが、もしお邪魔でなければ試してもらえませんでしょうか?
572 名前:570 mailto:sage [04/11/10 21:22:06] int a,b,c,d; Point p = new Point(c,d); に最初の二行を訂正します。
573 名前:デフォルトの名無しさん mailto:sage [04/11/10 21:42:17] >>570 自分で試せるし調べられるだろ?
574 名前:デフォルトの名無しさん mailto:sage [04/11/10 22:24:16] >>571 EXE側コード編集時にはインテリセンスは効くものの、XMLドキュメントで書いた情報は出てきません。 オブジェクトブラウザで見るとちゃんと見えるんだけど。 調べてみると、参照を追加した時点で XMLドキュメントが無いと出てこないみたいです。 参照を一旦削除して、再度追加してあげればOKでした(アセンブリ直指定ではなく、プロジェクト出力を追加しました)。 しかしこの状態では、DLLを更新した際にXMLドキュメントファイルのローカルコピーがVSによって使用中のため更新できずに、EXE側はビルドエラーになります(DLL自体は更新できるのに・・・)。 DLLへの参照について一旦ローカルコピーをFalseにしてビルド、再びONにしてビルドとか、 一旦終了してDLL側から順にビルドという手順が必要でした。 以下はXMLドキュメントを更新しようとした際のエラー >ファイル 'WindowsControlLibrary1.xml' を実行ディレクトリにコピーできません。 プロセスはファイルに >アクセスできません。別のプロセスが使用中です。 一時ファイルを出力ディレクトリにコピーできませんでした。 こういう構成の時には、DLL開発中はXMLドキュメントを生成しない方が良さそう・・・
575 名前:570 mailto:sage [04/11/10 22:44:24] Point[] p = new Point[9999999]; Point[] q = newPoint[9999999]; Point[] r = newPoint[9999999]; Point[] s = newPoint[9999999]; って一杯point作ってためしたら X,Yそれぞれに代入するほうが早かったです。
576 名前:デフォルトの名無しさん [04/11/11 17:47:02] XMLSerializerを使ってさんざんスレ汚しやってる>>454 その他です 度々で(´・ω・`)ですがおながいします public void func (Object obj) { MemoryStream ms = new MemoryStream(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(ms,obj); ・・・・ } 引数でボクシングされたオブジェクトをシリアライズしようとしたとき、 メンバがシリアライズされません(つД`) ><?xml version="1.0" encoding="utf-8"?> ><class2 xmlns:xsd="www.w3.org/2001/XMLSchema " xmlns:xsi="www.w3.org/2001/XMLSchema-instance " /> こんな感じになります。ちなみにClass2にはためしにstring型1個つっこんでます XmlSerializeを使ってボクシングしたオブジェクトのメンバをまるごとシリアライズする手段ってありますか?
577 名前:デフォルトの名無しさん mailto:sage [04/11/11 18:00:01] >>576 >ちなみにClass2にはためしにstring型1個つっこんでます それちゃんと public になってますか?
578 名前:デフォルトの名無しさん mailto:sage [04/11/11 18:11:58] >>577 できました ありがとうございました吊ってきます ・・・・オレのバカバカバカ・・・・
579 名前:デフォルトの名無しさん [04/11/11 19:53:05] homepage3.nifty.com/midori_no_bike/CS/ 上のページの、「実行時間の高精度な計測」というのを使ってみたくていろいろやってたのですが、 どうしてもusingと;のところで「無効なトークン・・・」というビルドエラーが出でしまいます。 どうしたらよいでしょうか。 VSのC#使ってます
580 名前:デフォルトの名無しさん mailto:sage [04/11/11 20:01:25] >>579 usingはコードの先頭、他にも色々usingされてるところに書く。
581 名前:デフォルトの名無しさん mailto:sage [04/11/11 20:04:57] >>579 そのページのコード、間違ってるような気がする。using ステートメントのカッコの中は、 1. 式 2. 型名 変数名 = 式 [, 変数名 = 式 ] ... のどちらかという形式で、そのページにあるように変数宣言やら式やらを混ぜてカンマで並べたりはできない。 >>578 のいう using はたぶんまた別の using なので無視。