ふらっとC#,C♯,C#(初心者用) Part21
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001ななしぃ#
2007/11/18(日) 15:53:41「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレ: ふらっとC♯, C#(初心者用) Part20
http://pc11.2ch.net/test/read.cgi/tech/1191036844/
0877874
2007/12/14(金) 02:34:30レスありが�d
>>875
GetWindowTextって使わない方が良いのですか?
>>876
SetWindowsHookEx試してみたいと思います
0878デフォルトの名無しさん
2007/12/14(金) 02:44:270879デフォルトの名無しさん
2007/12/14(金) 02:47:560880デフォルトの名無しさん
2007/12/14(金) 02:50:38Environment
0881デフォルトの名無しさん
2007/12/14(金) 04:15:340882デフォルトの名無しさん
2007/12/14(金) 06:30:47Length = 0 で代用できるのと、十分に軽量にしているから
使いまわしせずに必要になったら作り直せというお達しだと思う。
0883708
2007/12/14(金) 10:28:420884デフォルトの名無しさん
2007/12/14(金) 10:46:29ToolStripDropDownMenuのチェックとかアイコンの枠を描画するときじゃね
Refectorで追いかけてみればどうよ
0885デフォルトの名無しさん
2007/12/14(金) 12:58:42やり方知らねーなら素直に分かりませんって書けやカス
ほんと役立たずのゴミしかいねーなここ
こんな低脳の溜まり場なんかで聞いた俺が馬鹿だったわw
0886デフォルトの名無しさん
2007/12/14(金) 13:01:34そういうときに使える有名なレスを授けよう。
「知らないんだったらレスしないで下さい!!」
0887デフォルトの名無しさん
2007/12/14(金) 13:09:55アンインストール用のソフトがあるんだね。これ使ってればよかったのに
手順が間違っていたのか、アンインストールもインストールもできなくなった
どうすればいいんでしょうか?
0888デフォルトの名無しさん
2007/12/14(金) 13:10:350889デフォルトの名無しさん
2007/12/14(金) 13:18:46http://support.microsoft.com/kb/290301/ja
>>888
できません。
自前で各行の差し替えを実装して頑張ってください。
0890デフォルトの名無しさん
2007/12/14(金) 14:01:450891デフォルトの名無しさん
2007/12/14(金) 14:27:01即レス感謝します
なんとかインストールはできるようになりました
あとは、もう一度アンインストールしてうまくいくかどうか・・
0892デフォルトの名無しさん
2007/12/14(金) 15:51:36APIとかいうのを使うしか無理?
0893デフォルトの名無しさん
2007/12/14(金) 18:29:520894デフォルトの名無しさん
2007/12/14(金) 18:39:47他アプリ(非.NET)のデータを取得するのはc#でもできるということですか?
0895デフォルトの名無しさん
2007/12/14(金) 18:41:180896デフォルトの名無しさん
2007/12/14(金) 19:31:21API使うとメモリリークとかを意識しないとだめなんですよね
0897デフォルトの名無しさん
2007/12/14(金) 20:21:44[ { col1 => "val", col2 => "val" }, { col1 => "val", col2 => "val" } ]
上記のような表示形式で見たいのですが方法はありますか?
0898デフォルトの名無しさん
2007/12/14(金) 20:25:08autoexp.cs弄ればできるかも
0899デフォルトの名無しさん
2007/12/14(金) 21:30:490900897
2007/12/14(金) 21:40:28List<Dictionary<string,string>>
>>898
おお。まだちゃんと調べてないけどこれでちょっといけそうな気がします。
ありがとうございます。
Javaだと構造が一発でみれて楽なんだけどなぁ・・・
0901デフォルトの名無しさん
2007/12/14(金) 21:43:030902デフォルトの名無しさん
2007/12/14(金) 21:48:490903デフォルトの名無しさん
2007/12/14(金) 21:55:340904デフォルトの名無しさん
2007/12/14(金) 21:57:08VSは基本的にはToStringを表示するだけだし
0905デフォルトの名無しさん
2007/12/14(金) 22:23:020906デフォルトの名無しさん
2007/12/15(土) 00:25:49を読んだのですが、シリアル化の意味がよくわかりません。
シリアル化とはどういう意味なんでしょうか?
0907デフォルトの名無しさん
2007/12/15(土) 00:33:05オブジェクトをファイルとかに保存できるようにデータ列に変換すること。
ファイルに保存=永続化って考えちゃえば良い。
0908デフォルトの名無しさん
2007/12/15(土) 00:33:21Serializableなインスタンスをここに入れると、 バイナリデータになったりXMLデータになったりします。
ネットで転送したり、ファイルに書き込めますね。
こんどはそのバイナリデータやXMLデータをいれて、横にある「デシリアライズ」というボタンを押すと、
あら不思議、もとのインスタンスがフィールドデータとかそのままで復元します。
0909デフォルトの名無しさん
2007/12/15(土) 00:34:45アプリが終了した後も永続的に状態が残るようにすること。
要するに、アプリ設定のセーブ/ロードとかに使う。
0910デフォルトの名無しさん
2007/12/15(土) 03:27:53ウィンドウにButtonを2個配置した場合、カーソルキーの左右でボタン1と2の間でフォ
ーカスが移動しますが、これと同じ動作をPictureBoxに対しても行いたいと考えており
ます。
PictureBox.TabIndexプロパティで何とかなるかとも思ったのですが、CFMのPictureBox
はTabIndexプロパティが実装されておりません。
当初ははPictureBoxでなくButtonで行いたかったのですが、Button上にイメージを貼り
付けたいのですが、Button.Imageがサポートされておらず、PictureBoxにした次第です。
PictureBoxにフォーカスを当てる方法か、Button上にイメージを貼る方法どちらか実現
出来ないでしょうか?
0911デフォルトの名無しさん
2007/12/15(土) 03:56:17↓ここらへん参考にしてみてはどうでしょう
http://www.microsoft.com/japan/msdn/thisweek/10lines/extra_bottoncontrol.aspx
0913デフォルトの名無しさん
2007/12/15(土) 08:01:29勉強していくうちに理解できることかも知れないけど質問させてください。
クラス、名前空間など処理を分ける(?)概念は
処理のグループ化、階層化などによって作成、管理、修正、解読などを
しやすくする狙いがある(または狙いのひとつである)のでしょうか。
Cは授業で基礎を習った程度の知識と経験がありますが、
その初段階で教わった「プログラムの構造化」を
言語自体の持つ性格としてより明確に打ち出されているものと考えてよいでしょうか。
0914デフォルトの名無しさん
2007/12/15(土) 08:20:09簡単にいうとネームが競合しないようにするためだね
*クラス
人が「歩く」
犬が「歩く」
同じ「歩く」でも歩き方などが違うわけで、「人が歩く」というクラス名にしてもいいけど
長くなるので同じクラス名でも別の機能を持たせたいのでクラスという概念ができた
*名前空間
田中さんが作った「人が歩く」プログラム
山田さんが作った「人が歩く」プログラム
同じ「人が歩く」プログラムでもプログラマによって歩かせ方が違うわけで
「田中さんが作った人が歩く」というクラス名にしてもいいけど
長くなるので同じクラス名でも別の機能を持たせたいので名前空間という概念ができた
0915デフォルトの名無しさん
2007/12/15(土) 09:57:19>>908
>>909
目的はよくわかりました。
たとえば、
class Widget {
public int x = 10;
public int y = 20;
}
のようなクラスのインスタンスを
シリアライズ化してファイルに保存
する場合、何が保存されるのでしょうか?
class obj = new Widget();
シリアライズ化
ファイルに保存
逆シリアライズ化
xとyを参照すると正しく10と20が読める。
こんな感じですか?
0916デフォルトの名無しさん
2007/12/15(土) 10:36:34つか自分でやってみろよ
0917デフォルトの名無しさん
2007/12/15(土) 13:26:34違います
言語を使ってみる前にこういうものかと言葉で理解しようとするのは誤りです
0918デフォルトの名無しさん
2007/12/15(土) 13:47:26間違いだらけでワロスw
0919デフォルトの名無しさん
2007/12/15(土) 13:47:28.NETも含めてより深く理解するために
Windowsアプリに応用しようかと思う
のですが、自作クラスを作成しない簡単な
フォームアプリでもdelegateととかは使われる
ものですか?
0920デフォルトの名無しさん
2007/12/15(土) 13:48:300921デフォルトの名無しさん
2007/12/15(土) 13:50:100922デフォルトの名無しさん
2007/12/15(土) 13:52:43気づかないだろうけど。
0923デフォルトの名無しさん
2007/12/15(土) 13:54:470924デフォルトの名無しさん
2007/12/15(土) 14:29:490925デフォルトの名無しさん
2007/12/15(土) 16:23:220926デフォルトの名無しさん
2007/12/15(土) 20:07:17まともに答えず話の方向ずらすだけ
0927デフォルトの名無しさん
2007/12/15(土) 20:21:19説教がましく言ってくるやつがいても、言い返せばOK。
0928デフォルトの名無しさん
2007/12/15(土) 21:30:38Aという処理の○○msec後にBという処理を行う
ということをTimerより高精度で行いたいのですがどうすればいいのでしょう?
QueryPerformanceCounterを使うといいよと言われたのですが、
ぐぐっても実行時間の計測方法しかわからなくて困ってます・・・
0929デフォルトの名無しさん
2007/12/15(土) 21:30:49メモリ開放しないとだめなのでしょうか?
c#は自動でメモリ開放してくれるのでしなくてもいいのでしょうか?
もしダメならなぜなのでしょうか?
今作っているプログラムはクラス内にAPIを使っていますが
メモリ開放をしなくても何も問題は起きていないです。
自動で開放できているということでしょうか?
0930デフォルトの名無しさん
2007/12/15(土) 21:32:32API って何? Win32API?
普通はハンドルは最後に解放するよ。それは C# でも C++ でも一緒。
0931デフォルトの名無しさん
2007/12/15(土) 21:33:44なんのハンドルか知らないけど
呼び出し側が解放するように指定されてるAPIなら解放しとけ
0932デフォルトの名無しさん
2007/12/15(土) 21:47:10System.Threading.TimerかSystem.Timers.Timerは?
0933デフォルトの名無しさん
2007/12/15(土) 21:50:59まずは精度を提示してください。
0934928
2007/12/15(土) 22:06:180935デフォルトの名無しさん
2007/12/15(土) 22:12:21まずは、C#を捨てるところから始めましょう。
0936デフォルトの名無しさん
2007/12/15(土) 22:14:450937デフォルトの名無しさん
2007/12/15(土) 22:15:29恥ずかしいからやめとけよ。
まともに答えてるのもわからんのなら。
わかるのなら答えてやれよ。
0938デフォルトの名無しさん
2007/12/15(土) 22:16:23GCが動いたら軽く吹っ飛ぶ
0939928
2007/12/15(土) 22:21:370940デフォルトの名無しさん
2007/12/15(土) 22:24:38>>934
何の実験かは知らんがWindowsをその用途に使うの多分向いてないよ。
仮に1msec以下の精度で時刻が分かっても
スレッドスケジューラが問答無用で実行権を奪っていくこともあるし
行儀の悪いドライバが長時間CPUを離さないと、
その間ユーザモードのプロセスは原理上なんもできん。
QueryPerformanceCounterとかStopwatchクラスでポーリングすれば、
100回のうち何十回とかは要件を満たせるかもしれんが、
一回のミスも許されないような用途ならそもそもWindowsを選ぶべきじゃない。
C#じゃなくてC++なら可能とかそういうレベルですらない。
FPGAとか使った方がいいんでは? と目的も聞かずに適当アドバイス。
0941デフォルトの名無しさん
2007/12/15(土) 22:32:030942デフォルトの名無しさん
2007/12/15(土) 22:34:060943デフォルトの名無しさん
2007/12/15(土) 22:35:110944デフォルトの名無しさん
2007/12/15(土) 22:40:22APIを呼び出しているクラス内の最後にclose(hwnd)みたいな感じやるということですか?
でも、hwndがメソッド外でフィールド?で定義していた場合
クラス自体を終了しなければ解放されないですよね?
で、クラスならいちいち解放しなくてもガベージコレクションで自動で開放されるから
わざわざしなくてもいいと思うんですがどうなんでしょうか?
>>931
他のプロセスのハンドルです
VirtualAllocExで仮想メモリを割り当てて、開放しなかったけれども
何も異常が起きないんですが、このクラスを呼び出す別クラスのメソッドが
終了すれば、自動で開放されているということかな?
0945デフォルトの名無しさん
2007/12/15(土) 22:46:120946デフォルトの名無しさん
2007/12/15(土) 22:52:132マイクロ秒くらい(これは俺の環境の場合だが)
かかるんだが、これってQueryPerformanceCounterの速度か
それともアンマネージ呼び出しなんかのオーバーヘッドかどっち?
0947デフォルトの名無しさん
2007/12/15(土) 22:53:52まあ普通はハンドル自体はSafeHandleでラップして、
さらにDisposableなクラスでラップするけどね。
0948デフォルトの名無しさん
2007/12/15(土) 22:56:54だよね?
0949デフォルトの名無しさん
2007/12/15(土) 22:59:29意味の分からんことを言うな
0950デフォルトの名無しさん
2007/12/15(土) 23:02:58に確保されるんだよね?
0951デフォルトの名無しさん
2007/12/15(土) 23:05:07DirectoryInfo()にパス名を引数として渡す場合、
C#では@"c:\temp"のように先頭に@マークをつけるのは
何故ですか?VC++やVBでは付けないみたいですが。
0952デフォルトの名無しさん
2007/12/15(土) 23:08:250953デフォルトの名無しさん
2007/12/15(土) 23:08:31aspx.csでやりたいのですが、これはTextBoxオブジェクトをインスタンス化して
表示するということは可能でしょうか?
Response.Writeでタグを吐けば表示可能ですが、この方法以外でやりたいのです。
なぜデザイナでタグをペチペチ配置しないかというと
例えばURLのパラメータによってテキストボックスの数が異なるからです。
なので、動的に生成する方法を知りたいのです。
よろしくお願いします。
0954デフォルトの名無しさん
2007/12/15(土) 23:09:44ハンドルそのものは値型で保持されるけど
ローカル変数じゃないからスタックとか関係ないよ。
0955デフォルトの名無しさん
2007/12/15(土) 23:10:57Designer.csを読めばわかる
0956デフォルトの名無しさん
2007/12/15(土) 23:13:19意味わかんね
プロセスハンドルをどうやって解放するつもりか
>VirtualAllocExで仮想メモリを割り当てて、開放しなかったけれども
解放しなかったのはメモリなのか?
0957デフォルトの名無しさん
2007/12/15(土) 23:14:38@をつけると\がエスケープ文字でなくなる。
VBはエスケープ文字がないし、C++は"c:\\temp"と\を重ねることでエスケープ文字でなくす。
0958デフォルトの名無しさん
2007/12/15(土) 23:18:10ありがとうございます。
会社の環境はVS2005なのですが、ちゃんと
aspx
aspx.cs
designer.cs
とワンセットで表示されるのですが、家の環境はWebDevelopperで
designer.csがソリューションエクスプローラに表示されません。
aspxなどの場所にdesigner.csファイルもありません。
これはどうやって表示させるのでしょうか?
WebDevelopperはソリューションファイルやプロジェクトファイルも無いんですよ(^^;
なので、いつもファイルをダブルクリックして立ち上げるのではなく
WebDevelopperを開いて、スターと画面から最近実行したソリューションの一覧から選択してる・・・
0959デフォルトの名無しさん
2007/12/15(土) 23:22:35メモリもプロセスハンドルも両方です
VirtualFreeしていないということです
0960デフォルトの名無しさん
2007/12/15(土) 23:30:17そんな初歩的なことを聞くな
会社で聞いたら一言で済む
0961デフォルトの名無しさん
2007/12/15(土) 23:35:010962デフォルトの名無しさん
2007/12/15(土) 23:35:42プログラミング構造に問題があるか、簡単なアドバイスをもらえたりするんでしょうか?
趣味で自分専用にやっているだけなので動けばいいんだけど
一人で黙々とやっているだけなのでだめなところに気づきにくい
0963デフォルトの名無しさん
2007/12/15(土) 23:36:14会社じゃあWebDevelopperなんて使ってないもんで誰もわからないと思われまする。。
0964デフォルトの名無しさん
2007/12/15(土) 23:42:29とにかく見てくれと言っても反応は得られにくいよ
0965デフォルトの名無しさん
2007/12/15(土) 23:44:01,l、::::::::::::::::::::::::::::::::::|:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:l
,ハ::`丶、:::::::::::::::::::::::|:;:;:;:;:;:;:;:;:;:;_,, -‐:〈
{;;;;ヽ、:::::`丶、:::::::::::::l:;:;:;:;:;:; ィ";:;:;:;:;:;:;:}
,l;;;;;;;;;シ丶、:::::::`:`:ー'‐::'':"::::::::_, ィ"´;;l
fうl;;;ミミ、 ``丶 、::::::::,: - ''"´ リ;;;;;;f-、
{ l l;;;;;ッ=` (三> `^´ (三シ ム;;;;;;ソl}
t !;;;リ _,,...,,_ _,,..,,_ l;;;//
゙l ヾ;l :'ィテヘ9ンミ ,: ',シヒ9ン、 l;//
`ーll! `''==ヲ' l:.:^''==彡'" ,!リノ
ll ` '' " l:.:.:` '' " ,i;;l´
li, ,r .: :.ヽ、 ,:,り
t、 / ゙ー、 ,r '゙ヽ /,K′
ゝ、 ,:' :~: } // /ヽ、
/{lヽ ,ィ==ニニ==,ノ,ノ7 /:.:.:.:ヾニヽ
, ィ/:.:い ヽ `` ー一 ''"/,/,/:.:.:.:.:.:.:.:ソ }- 、、
/ /:.:.:.:ヽヽ `' ー‐ -- '"//:.:.:.:.:.:.:/ / ` 丶、
,, - { ヾ:.:.:.:.ヽ丶 //:.:.:.:.:, -'" ,/ ` 丶 、
,, - ''" 丶、 `` ーゝ、ヽ.,_,,ィ"ェくユ- ''" , ィ"
0966デフォルトの名無しさん
2007/12/15(土) 23:47:43ゲ製板とかに行った方がいい
C#ってそんなに特殊な言語じゃないからC#知らなくてもC++かJava知ってる人なら読めるはず
0967デフォルトの名無しさん
2007/12/15(土) 23:48:19なるほど。わかりました。
0968962
2007/12/15(土) 23:51:36そうですか・・・
オブジェクト指向でプログラミングできているのかよくわからないんですけど
私の1000行のソースが上級者なら500行ぐらいに簡潔に表せたりするのかな?
同じ機能をあらゆるメソッドで何度も使う場合、それらをクラスにするようにしていれば
一応オブジェクト指向プログラミングできているのかな
>>965
な・・・なんですか?w
0969デフォルトの名無しさん
2007/12/15(土) 23:54:15気楽に行こうぜ相棒
0970デフォルトの名無しさん
2007/12/16(日) 00:19:13>一応オブジェクト指向プログラミングできているのかな
。 。
/ / ポーン!
( Д )
0971962
2007/12/16(日) 00:28:510972デフォルトの名無しさん
2007/12/16(日) 00:30:55あなただけ特別と思ってる
出会いは偶然で何処にでも在るとしても
二人なら永遠のストーリー
0973デフォルトの名無しさん
2007/12/16(日) 00:40:23オブジェクト指向っていうのはあくまで「指向」つまり考え方なわけで
「これをやればオブジェクト指向だぜ!」という明確な決まりはありませんのよ
0974デフォルトの名無しさん
2007/12/16(日) 01:48:40オブジェクト指向・・・
部品を作ってそれを組み合わせるって認識してるけど・・・どうなんだろう
エロゲなら例えば、
背景、画像、テキストなどの描画を管理するコンポジションクラス(レイヤー管理とか)
・背景、登場人物描画管理パーツクラス
・テキストボックス、テキスト描画管理パーツクラス
全体の動作・入力を管理するコンポジションクラス
・通常テキストの管理するパーツクラス
・選択肢発生・処理パーツクラス
・セーブ・ロード、オプションなどを管理するパーツクラス
描画・動作・入力対応を統括するクラス
登場人物のクラス(名前、画像、内部パラメータetc)
テキストをtxtファイルから読み込むクラス(後で修正を楽に行うため)
分岐情報やテキストの割り当て・管理を行うクラス
見たいにそれぞれの部品を作って、組み合わせるとか?
どういう風に部品分解するかは人それぞれだし、個人的には上記の例はさらにパーツクラスに分解されていき、
大体最大でも500行程度のクラスになると思う。(大体50〜200行程度になることが多いけど)
0975デフォルトの名無しさん
2007/12/16(日) 01:56:21戻り値の型をTと書こうとすると、IntelliSenceが勝手にThreadStaticAttribute
と入れてしまうのですが、うまい回避法はないですか?
Escを押せば回避できるのはしってますが、もっとスマートな方法はないでしょうか
0976デフォルトの名無しさん
2007/12/16(日) 02:15:06まったく関係ないが、初めてその属性を知った
こんなんあったんだ
レス数が950を超えています。1000を超えると書き込みができなくなります。