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
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 なので無視。
582 名前:581 mailto:sage [04/11/11 20:05:50] 首吊ります・・・ orz 嘘
583 名前:579 [04/11/11 20:07:15] >>780 ごめんなさい、自分の貧弱な脳みそでは理解できないのですが、 こういうことですか? using System.Runtime.InteropServices ; // for DllImport ・・・ private void button1_Click(object sender, System.EventArgs e) { ・・・ }
584 名前:デフォルトの名無しさん mailto:sage [04/11/11 21:46:32] >>579 うろ覚えだから難だがコピペして実行しようとしたときオレも using System.Runtime.InteropServices ;でコケた んで、なぜかintelliSenseで同じ内容指定したら動いた
585 名前:デフォルトの名無しさん mailto:sage [04/11/11 21:54:37] } がありません って言うコンパイルエラーがなぜか出て ファイル内のテキストを丸ごと切り取って貼り付けたら 正常にコンパイルできたことがあったなあ
586 名前:579 [04/11/12 07:48:29] 解決しました。 using.System.Runtime〜を一番上の using〜というのがたくさんある所 に置いたら実行出来ました。 ありがとうございました。
587 名前:デフォルトの名無しさん [04/11/12 10:54:21] C#ちょこっと触って、やっぱVB.netにして、「すげえー便利最高」って 思って、やっぱC#の方がいいかなとおもって、迷ってんだけど。 絶対C#がいいってとこある?
588 名前:デフォルトの名無しさん mailto:sage [04/11/12 10:58:40] べつに〜
589 名前:デフォルトの名無しさん mailto:sage [04/11/12 11:03:34] VB系に慣れてたらVB.NET、C/JAVA系に慣れてたらC#。 私はVBの文法が大ッ嫌いなのでC#。
590 名前:デフォルトの名無しさん [04/11/12 12:06:42] >588 別にーってお前なー。なんか言うことないんか? >589 マイコンはCで、PCはVB6で EXCELとAutocadとVisioと、、、、はVBAなの。 JAVAって20年?も前の言語だろ。 今頃になって真似してマトモニなっても、VBで脳みそ破壊されてるからなー。
591 名前:デフォルトの名無しさん mailto:sage [04/11/12 12:11:47] まず日本語から勉強するべきだな。
592 名前:デフォルトの名無しさん [04/11/12 13:29:41] 植民地だし、英語だろ。
593 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:26:54] PictureBoxにAllowDropのプロパティがないのに、Drag&Dropのイベントハンドラがあるのは、ライブラリの設計ミスか? デフォルトでnoneになって、メッセージ発生しないんだが・・・。
594 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:49:42] >>593 なぜかEditorBrowsableAttributeもBrowsableAttributeも不可視の設定になってるから インテリセンスにもプロパティグリッドにも表示されないけど、 AllowDrop{get; set;}はあるしtrueにしてやれば普通にD&Dも可能。 //やっぱり中途半端……。
595 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:51:06] >>593 つ[インシデント]
596 名前:デフォルトの名無しさん mailto:sage [04/11/12 17:42:36] >>574 OCNがアク禁になっていたので遅レスです、どもわざわざ有難うごさいます。 XMLに関しては同じです、コントロールのところだけの問題か……むむむ 取りあえず助かります。
597 名前:デフォルトの名無しさん [04/11/12 23:37:17] CreateDIBSectionを使っているのですが、 どうやったら、PictureBOXのhDCを取得できますでしょうか? C#でCreateDIBSectionを使ったサンプル等ありましたら、 お教えください。よろしくお願いします。
598 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:43:11] \ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ! Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
599 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:47:59] PictureBox.CreateGraphics().GetHdc() ReleaseHdc()とGraphics.Dispose()もセットで。 ttp://www.codeproject.com/bitmap/dibsection.asp?select=287473&df=100&forumid=56&exp=0 DIBSectionのラッパクラスだそうだ。
600 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:59:30] NUnitだけど、exeファイルをテストする事は出来ないよね? で、以下のような仕組みにしている。 作成中のプロジェクトをWindowsアプリからクラスライブラリに変更 -> MyAppCore.dll 作成中のプロジェクトを走らせるだけのWindowsアプリ・プロジェクトを作成 -> MyAppRunner.exe(MyAppCore.dllを参照に追加) 内部的なコードはMyAppCore.dllの起動関数を呼び出すだけ。 テストプロジェクト -> Test.dll(MyAppCore.dllを参照に追加) まぁなんというか、もっとスマートなやり方はないのかなと思った次第。
601 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:17:15] >>600 少なくともVer2.2ならできるよ
602 名前:600 mailto:sage [04/11/14 10:00:00] 2.2使ってます。 自分はテストコードをアプリ本体に入れたくないんですよね。 テストとアプリのプロジェクトを分けるとテスト側からアプリのコードを呼ぶために アプリ側をDLLにしなくちゃいけない・・・ って、今、思いついたんだけど、テストコードを全部#if DEBUGで くくっとけばいいのか! なわけで、解決っぽい。
603 名前:デフォルトの名無しさん mailto:sage [04/11/18 16:46:30] ShowDialogで表示したダイアログを移動した時 元のフォームも一緒に移動したいのですが 可能でしょうか? 可能な場合どのようにすればいいのでしょうか
604 名前:デフォルトの名無しさん mailto:sage [04/11/18 17:07:01] >>604 お兄さんそりゃFormでダイアログもどき作った方が楽でっせ
605 名前:603 mailto:sage [04/11/18 17:26:57] すいません。言葉足らずでした。 メインフォームがあって編集用のフォームを メインフォームの上にモーダルで表示したとして、 編集用のフォームを移動した時に、 メインフォームも一緒に動かしたいなと思ったのです。
606 名前:デフォルトの名無しさん mailto:sage [04/11/18 17:52:59] >>605 ダイアログフォーム呼出時に、ダイアログフォームのOwnerプロパティに親フォーム自身を設定する。 ダイアログフォームの方で、 位置保存用のメンバ変数を作っておく。 Moveイベントで、Ownerプロパティから親フォームの位置を設定し、その後位置保存用変数を更新する。 基本はこんな感じ。 初めの位置保存はLoadかVisibleChangedでやるのが妥当かな。 Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。 //MoveがMoveEventArgsとか言って移動前の位置のプロパティを持っててくれれば楽なのになー。
607 名前:在日外国人参政権反対 mailto:sage [04/11/18 18:02:02] きくまえにMoveWindowとか試してみろよ。
608 名前:デフォルトの名無しさん mailto:sage [04/11/18 22:46:15] そうだな。それっぽい名前のを色々弄ってみるのは大事だと思うよ。
609 名前:603 mailto:sage [04/11/19 04:43:21] >>606 さん。レスありがとうございます。 とりあえず以下のようにやってみましたが上手くいきませんでした。 MainFormとEditFormがあったとして MainFormでButton1をクリックしたときに EditForm editDialog = new EditForm(); editDialog.ShowDialog(this); としてEditFormで public static int x,y; //Location用変数(publicはとりあえずで付けました) private void EditForm_Move(object sender, System.EventArgs e) { x = this.Location.X; y = this.Location.Y; ここにMainForm.Location = new Point(x,y); 見たいな事が出来れば良いんですよね? 色々弄ってみたのですが分かりませんでした (-- } >>Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。 すいません。この意味が分かりませんでした。
610 名前:デフォルトの名無しさん mailto:sage [04/11/19 08:01:59] public class Form1 : System.Windows.Forms.Form { //中略 private void button1_Click(object sender, System.EventArgs e) { Form f; f = new Form(); //f = new EditForm(); f.Move += new EventHandler(childForm_Move); f.ShowDialog(this); } private void childForm_Move(object sender, EventArgs e) { Form f = (Form)sender; int x = f.Location.X - 100; int y = f.Location.Y - 100; this.Location = new Point(x, y); } }
611 名前:603 mailto:sage [04/11/19 10:04:31] >>610 さん 見事に動きました! それにしてもインテリセンスで「TABキーを押してください」って こんな指示始めてみましたよ。(^^;; ありがとうございました。 MainFormがくっついて動いているのが嬉しくて意味もなく動かしニヤってしてみたり。。
612 名前:初心者 [04/11/19 21:49:40] C/C++でマウスの座標を表示させるにはどうしたらいいでしょうか。
613 名前:デフォルトの名無しさん mailto:sage [04/11/19 21:53:40] >>612 スレ違い。 www.kumei.ne.jp/c_lang/sdk2/sdk_101.htm でも読んでください。
614 名前:デフォルトの名無しさん mailto:sage [04/11/19 21:55:53] > 当ホーム・ページの一部または全部を無断で複写、複製、転載 > あるいはコンピュータ等のファイルに保存することを禁じます。 ブラウザのキャッシュ消すのまんどくせ
615 名前:初心者 [04/11/19 22:10:41] ありがとうございました。とりあえず何とかなりそうです。
616 名前:デフォルトの名無しさん mailto:sage [04/11/20 16:24:44] Formにいろいろ描きたいので private void Form3_Paint(object sender, System.Windows.Forms.PaintEventArgs e) に記述したのですが、 リサイズ時に再描画されるときとされないときがあるみたいです。 されないときは一度最小化してから元に戻すと再描画されるのですが リサイズ時に確実に再描画されるほうほうってないでしょうか?