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


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

ふらっとC♯(Part5)



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

477 名前:474 mailto:sage [04/10/31 00:13:16]
ありがとうございました。
1回ブツが釣れれば十分なのでbreakかましたらうまくいきました

吊ってきますorz

478 名前:デフォルトの名無しさん mailto:sage [04/10/31 12:12:15]
「すれ立てるまでもない質問・・・」に書き込んだら怒られてしまいました。
同じ内容ですが、こちらに書かせてください。

VS.NetのC#でプログラム作ってるんですが、データセットから
テキストボックスにバインドする方法が分からないんです。
といっても、よくあるデータテーブルの列単位でバインドするやり方ではなくて
データテーブルのある条件に合致するレコードの項目をバインドしたいんです。

例えば

Key 列1    列2
001 1AAA 1BBB
002 2AAA 2BBB
003 3AAA 3BBB
004 4AAA 4BBB
005 5AAA 5BBB

みたいなデータテーブルから、TextBoxにはKey=003の条件によって
列1の内容(3AAA)をバインドしたいんです。
もちろん、バインドするからには変更結果も反映されていてほしいんですが・・・

お願いします。


479 名前:デフォルトの名無しさん mailto:sage [04/10/31 18:21:08]
ふと思ったんですけど、

using System.Windows.Forms;

という感じにしておいた部分を

using System.Windows.NewForms;

とかに書き換えることで、クラス構成をそっくり新しくする事って邪道ですか?

480 名前:デフォルトの名無しさん mailto:sage [04/10/31 18:22:36]
オレ的には邪道

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 になってますか?






[ 続きを読む ] / [ 携帯版 ]

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

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