- 1 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 23:56:27 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part47 pc12.2ch.net/test/read.cgi/tech/1257067411/
- 220 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:01:56 ]
- >>216
ぜんぜん違うだろ。 時間[1]っての見てだれが"ひる"だってわかんだよ。 それに Now に "まよなか" ってまちがって入れちゃった場合だれが気付いてくれるんだ? もし時間の種類に "ひづけへんこうせんをこえるまではよるのつもりでいます" なんて長いパターン入れたら 比較に時間かかるわ無駄なメモリ使うわでもったいないよな。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:05:30 ]
- >>220
突っ込み所はそこなのか? >>216は上ではNowに時間[1]ってのを代入してて、下じゃ比較してるだけなんだぞ
- 222 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:07:55 ]
- enum は定数のラベル
実態は 1 とか 2 とか 3 なわけよ。 プログラムを組むときって状態を管理することが多いんだけど(あさだったらXX、ひるだったらYYとか) 状態の数が3つとか4つなら文字列なんか使うより数字使った方がメモリが無駄にならないし 処理も速いよね。 でも 1 とか 2 とかをプログラム中に直接書くと、書いてる人が混乱しちゃうし間違いやすい。 一人で数百行ぐらいのコード書くならまだしも2人3人ぐらいでやってるとあっというまに破綻する。 で、その 1 とか 2 のマジックナンバーに名前を付けることにしたのが enum なわけだ。 C時代は enum の他に #define なんてのもあったけど。 enum のいいところは変数にあらかじめきめられた数字「しか」代入出来なくしてくれる作用があって、 1 とか 2 で管理してる場合に間違って 9 とかが入っちゃって誤動作するのをコンパイルする段階で 見付けてくれるのよ。
- 223 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:11:46 ]
- お前ら釣りに優しいなw
enum使ってくる時点で初めてではないだろ
- 224 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:15:19 ]
- 経験者があの質問するのは釣りでも無理だろ・・・
- 225 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:17:23 ]
- 時間.ひる == "ひる" だと思ってるのか?もしかすると。
- 226 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:20:27 ]
- >>205
レスの流れからして、読み込み済みデータで描画して何秒なら分かるが。
- 227 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:21:06 ]
- >>217
いや、なんというかアプローチの仕方が違うんじゃないかなって思ってさ 最初は縦スクロールの表示判定だったけど、その真意は横いっぱいに 表示したカラムのせいでアイテム数が増えて縦スクロールが出ると 結果的に横スクロールバーも出るっていう話ではないの? そうであるなら、例えば縦スクロールバーのみ出しっぱなしにすれば 処理はシンプルになると思うし、縦スクロールバー隠しておくつもりなら 横スクロールバーは出ないようにしてしまったほうが、カラム調節で チラツキの押さえ込みと格闘するより楽なんじゃないかなぁと・・・
- 228 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:26:39 ]
- enumすら説明出来ないクズスレ
- 229 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:29:37 ]
- >>226
半分の印刷で、時間が半分になるのか1/4になるのか、まさかの1/9になるのか と言うことの確認。つまり二重ループ三重ループの疑い。
- 230 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:35:20 ]
- 1/9ってなんだオレ…三重なら1/8だorz
- 231 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:56:13 ]
- なんでいちいちちょっとしたことするだけなのに
Mainを意味のないクラスで囲まなければならないんだ!不便!
- 232 名前:デフォルトの名無しさん [2009/11/22(日) 19:58:46 ]
- >>205
50項目のときは5秒でした。 サブルーチンの中で ※背景の塗りつぶしが必要ならFillRectangleを実行する。 ※文字列を囲むならばDrawRectangleを実行する。 ※文字列については常にRectangle構造体の中で水平垂直位置をパラメーターから与える …これを150項目分行うようにしています。 項目が増えれば増えるほど、倍以上に遅くなっています。 FontなどのオブジェクトのDisposeが足りないのかなと思って直しましたが、結果はやはり15秒弱です。
- 233 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 19:59:52 ]
- Font?
一項目ごとにフォント読み込んだりしてない?
- 234 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:06:57 ]
- >>231
そこまで考えてるのになんで ちょっとしたことするだけなのに Main なんて意味のないメソッドで囲まなければならないんだ!不便! まで発想が飛ばないのかねぇ。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:08:29 ]
- どう見ても>>231はわかってる奴の発想だな
>>209にはとても及ばない
- 236 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:16:45 ]
- >>181
- 237 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:24:43 ]
- >>229
え、多重ループの疑いがあったとして項目数減らしても計算量は線形でしか減らないキガス・・・ ああ、そもそもルーチンを何回も何回も呼び出している疑いか。あるね、そんな事。
- 238 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:25:44 ]
- >>227
用途は趣味で作っているメディアプレーヤーだから、1行の時もあれば100行近い場合もあるんですよ で、曲名のカラムを調整して縦スクロールバーが無い時はいっぱいまでカラムを延ばして バーが出たらバーの分だけ曲名を縮める。 そうしないと縦スクロールバーが無いとOwnerDrawしたカラムヘッダーの最後が真っ白けになっちまうし、 逆に縦スクロールバーが出ている時に伸ばしたら横スクロールバーが出るのがちょっとウザイ 現状、調整後に横スクロールバーが残っても、縦または横にスクロールした瞬間に消えるんですけどね
- 239 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:29:26 ]
- 一回5secとして三回回って15sec。項目半分に減らして2.5secとして三回回って7.5sec。
減らした比率でしか計算量は減らないから、237は勘違い。
- 240 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:30:52 ]
- >>235
しかしながらC++とかに慣れてるとは・・・とてもじゃないが思いにくい 不便とかを超えてもう当たり前になっている所だからぶっちゃけどうでもいい そして、そんな一か所がなんだってんだ もっといろいろあるだろう orz
- 241 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:34:40 ]
- >>232
1/3だと微妙だけど二重ループの可能性は高いな ありそうなのは、 項目1つ目の場合は1つ目を描画し、2つ目の時は1つ目と2つ目を描画し…のパターンと 項目1つ描画するつもりが全項目描画している関数を呼び出している…のパターン
- 242 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 20:36:07 ]
- >>232
disposeしたところでGCに回収してもらわないと意味がない そんで強制的に回収させてたら余計に遅くなるんではないかと・・・ メモリがないわけではないんなら ところで150項目てあるけどループ回数は何回? 単純に150? それとも違う? 1項目は そのサブルーチンを何回使う? フォントはでいるだけ使いまわしてる? (例えば明細用を最初に定義して使いまわす)
- 243 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:04:27 ]
- 描画するデータをその都度どこかから持ってきてるとかかな
- 244 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:09:01 ]
- スタティック変数使って、何回通ったか数えてみてから考えても良いかも
- 245 名前:241 mailto:sage [2009/11/22(日) 21:12:26 ]
- オレ算数できてなかったorz
1/3の数の描画で1/3の時間だったら、1項目の描画の途中で変に遅い部分があると言うだけだな
- 246 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:16:24 ]
- >>238
それなら、縦スクロールバーは常に出しっぱなしにして、 横スクロールバーは常に非表示にしておけば一番スッキリするんじゃないの? 少なくともカラムの幅に関係なく横スクロールバーは出ないようにしてしまえば かなり問題は簡単になると思うんだがなぁ
- 247 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:16:57 ]
- >>232
さっきから埒が明かないな。ソースコードさらしたほうが早いんじゃね? おそらく相当ひどい実装になってるんじゃないかと予想。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:55:21 ]
- >>246
どうもListViewでは、スクロールバー自動と無ししか選択できないみたいです ShowScrollBarをテストしてみたんですが、無効化されるようですね 他にやり方有りましたら教えていただけませんか?
- 249 名前:デフォルトの名無しさん [2009/11/22(日) 22:01:17 ]
- FontオブジェクトやRectangleオブジェクトを生成するのって
そんなに負荷がかかるものなのですか? 明朝体やゴシックが入り混じっているときも、 変更があるときだけ生成し直すのが良策なのかな。
- 250 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:03:28 ]
- Fontはアンマネージリソース抱えてるので特に生成が重い類
Rectangleは構造体だからほとんどノーコストで作れる
- 251 名前:デフォルトの名無しさん [2009/11/22(日) 22:10:22 ]
- >>250
アンマネージリソース…? はじめて聞いた。 クグルとするか (>_<;)。
- 252 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:20:52 ]
- Fontを150回作るだけで何秒もかかるものでもないんだから、気にするだけ無意味
- 253 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:22:20 ]
- 原因でないのは間違いないが普通は避ける
- 254 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:31:43 ]
- >>232
一度FillRectangle、DrawRectangle、DrawStringを全部外して時間を計測してみて それで1,2秒になるならそのどれが遅いかをどれか一つだけ描画するようにして試して さっぱり速くならないなら、描画処理以前の問題と言うことで。
- 255 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:53:47 ]
- 問題の切り分け方から説明しないといけないのか
言語以前の問題では?
- 256 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:56:53 ]
- >>181
- 257 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:02:23 ]
- >>256
あれ、単なる非矩形ウィンドウだろ。
- 258 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:06:31 ]
- form.FormBorderStyle = FormBorderStyle.None;
form.ShowInTaskbar = false; はい終わり
- 259 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:09:35 ]
- >>248
ShowScrollBarするという基本的な方針は間違ってない 俺はこんな感じで制御してる(thisは独自のスクロールバークラス) どうしても分からなければメアド晒せばソースあげるよ protected void ShowScrollBar(bool show) { if (show != this.Visible){NativeMethods.ShowScrollBar(this.Handle, this.Orientation, show);} if (show == true) { SCROLLINFO info = new SCROLLINFO(); info.cbSize = Marshal.SizeOf(info); info.fMask = ScrollInfoFlags.RANGE | ScrollInfoFlags.PAGE; NativeMethods.GetScrollInfo(this.Handle, this.Orientation, ref info); this.Enabled = (info.nMax >= info.nPage); } }
- 260 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:27:12 ]
- >>255
まぁ初心者スレだから・・・・ 荒れているC#相談室では叩かれるかもしれんがw
- 261 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:31:29 ]
- >>258
それでWin+Dの時はどうなるのか分かる?w
- 262 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:39:45 ]
- そんな後出し言われてもなぁ・・・。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:44:25 ]
- いやガジェットのようにって書いたじゃん・・・
- 264 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:58:18 ]
- でも、Win+D のときの話なんてひとつも書いてないじゃん。
ガジェットのように、なら、JavaScript で実装できること、とかも条件になんの?
- 265 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:08:19 ]
- 火病った
きもちわるい
- 266 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:11:07 ]
- >>264
C#スレでJavaScriptとは? Vistaは使ってなくて、お聞きしたいのですがガジェットはWin+Dでデスクトップから見えなくなる、 つまりWindowStateはMinimizedになるのですか?
- 267 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:18:11 ]
- >>264
いい加減にしろオマエの知識じゃ無理
- 268 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:37:34 ]
- ネイティブC++のDLLを作成→C++/CLIでラップ→C#で参照しています。
ネイティブDLLに含まれる列挙型AをC#で変数宣言しようとすると、 "'AI.Schedule' はアクセスできない保護レベルになっています。"とエラーになります。 これを何とかC#上で利用できるようにする方法はないでしょうか?
- 269 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:40:21 ]
- そのAをどのように宣言しているのか・・・
- 270 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:47:16 ]
- ネイティブの型はC#では扱えない
- 271 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 01:00:21 ]
- >269
enum A{A1,A2,A3...}; このようなかんじです。 >270 やっぱりそうなりますね。C++/CLIで対応する列挙型を宣言し、 キャストして使うことにします。ありがとうございました。
- 272 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 01:34:30 ]
- aの文字列の中に、bの文字列が何回入っているか調べて
intで回数を返すメソッドはどうやって作るんですか?
- 273 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 02:04:49 ]
- string A = "こんにちはああこんにちはあははこんにちは" ;
string[] kugiri = { "こんにちは" }; int i = (A.Split(kugiri, StringSplitOptions.None).Length-1); //3 一例
- 274 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 02:31:56 ]
- a = "abaababa"
b = "aba" の結果は普通に3でいいのか?
- 275 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 02:36:20 ]
- >>273
あー、配列で区切って長さを取得してるんですね。 とても参考になりました。ありがとうございます。 >>274 そうですね。
- 276 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 08:40:20 ]
- >>272の見てて思いだしたけど
もしString.IndexOf()使って処理する場合は気をつけた方がいいかもね。 blogs.wankuma.com/naka/archive/2009/11/11/182901.aspx d.hatena.ne.jp/siokoshou/20091112/p1
- 277 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 08:45:58 ]
- >>276
こっちのが良い d.hatena.ne.jp/siokoshou/20091111#p1
- 278 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 08:49:45 ]
- >>275
>>273のやり方では>>274は2になるのに気づいているか?
- 279 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 10:30:19 ]
- FxCop使ってないと絶対気付かんわな
- 280 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 10:58:45 ]
- >>277
デフォルトのIndexOfはなんであんな変な結果になるんだろな
- 281 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:05:30 ]
- String.ToLowerとかもカレントカルチャで動くから、そうおかしな琴ではないだろう
- 282 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:08:38 ]
- MS自身がおかしな挙動だと思ってるからFxCopで警告出たりするんだろう
- 283 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:09:00 ]
- Console.WriteLine( "AA".IndexOf("〇A") ); // 0
Console.WriteLine( "〇A〇A".IndexOf("AA") ); // 1 これは「〇」がなかったことにされるってことなのかね? やっぱりよくわかんない・・・
- 284 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:11:27 ]
- うおーうおー
なんで同じことをするのにいくつもやり方があるんだよおおおおおおおおお
- 285 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:13:53 ]
- >>283
それはUnicodeの規格がおかしいのを忠実に実装したらそうなってるだけ
- 286 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:15:06 ]
- >>284
それぞれに顕著な差(状況毎の性能差とか)があればいいんだけど そんなでもないときは叫びたくもなるわなw
- 287 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:15:57 ]
- >>285
なるほど。実装がおかしいんじゃなくて規格がおかしいのか。 ありがとう!
- 288 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:21:15 ]
- これって最初からそろってるものが高性能すぎて自分で文法を覚えたりクラス作る必要ないね。
最初からそろってるフォーム等のクラスや構造体の使い方覚えるだけで十分そうだ。
- 289 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:27:14 ]
- >>288
いや文法は覚えないと書けないだろw あと、ポトペタで書く分にはそれでいいかもしれないけど ちょっと何かしようと思うとすぐクラス書きたくなると思うよ。
- 290 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:37:00 ]
- >>288
そうでもあるし、そうでもない。 またフォームのような基礎的な部品も時々アーキテクチャーが変わったりするから (System.Windows.Forms→Windows Presentation Foundation) いつまでも同じ部品を使い続ける、という方針はあまりお勧めできない。 クラスにせよメソッドにせよコードの仕切りに過ぎないので、 分ける必要のないコード量なら分けなくても別にいいし、 分けるべきだと判断すれば分ければいい。
- 291 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:48:10 ]
- >>288
やればわかるけどそれで出来ることには限界があるよ もっとも、教科書に載ってるようなアルゴリズムの実装なんかは ほとんどしなくてよくなったとは思う
- 292 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:48:45 ]
- ローカル変数とグローバル変数の中間みたいなのないの?
class Test{ private int x; public void func1(){ } public void func2(){ } public void func3(){ } } func1とfunc2でxは共有したいけど func3などそれ以外の部分でxを書き換えられなくない みたいな。
- 293 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:50:47 ]
- そんなものはありません
func3を別のクラスに移してください
- 294 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:50:51 ]
- 同一クラスの中で把握しきれないようなのならクラスの分割を考えた方がいいんじゃないか
- 295 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:53:10 ]
- >>292
なんでわけたいのかとか設計によるけど ■継承 class Test{ private int x; public void func1(){} .... } class Test2 : Test { public void func3(){} } とか ■移譲 class Test2 { Test test = new Test(); public void func1() { test.func1();} ... public void func3(){} } 実装を見せたく無い場合は普通はクラスをわける設計になるはず
- 296 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:55:05 ]
- ×移譲
◯委譲 でした・・・
- 297 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 11:58:07 ]
- 基本的にはない。クロージャ使うとか、そういうテクニックはあるけど。
- 298 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 12:01:37 ]
- こういうことか
class Test { public readonly Action func1, func2; public Test() { int x; func1 = () => { Console.WriteLine(x); }; func2 = () => { MessageBox.Show(x.ToString()); }; } public void func3(){ /*xは見えない*/ } } 「こういうこともできる」というだけに留めておいてくれ 絶対使うな
- 299 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 12:12:32 ]
- 委譲の変形パターンだな
- 300 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 12:42:21 ]
- それ int x; 大丈夫なのか?と思ったら、ラムダ式における変数のスコープって
いう新しい規則で保証されてるのか・・・やっぱラムダ式は敵だ。
- 301 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 12:48:25 ]
- クロージャはその場限りのコールバックとして使うだけならきちんと理解して使えば全く問題ない
>>298みたいにローカル変数の寿命が延びるような使い方はあんまりよろしくない
- 302 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 13:25:33 ]
- オブジェクトが生存する限り生存するという、インスタンス変数と
たいして変わんないものなんだけどなぁ。
- 303 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 13:32:23 ]
- スタックがそのまんま残るとでも思ってるんじゃね
- 304 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 13:33:14 ]
- クロージャは、俺にとってはあれば便利だけど、なけりゃないで困らない、
ってレベルだなぁ。
- 305 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:01:57 ]
- スレッド活用しようとすると無ければ困る。
- 306 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:25:11 ]
- >>259
色々ありがとうございました。原因がわかりましたので仮の修正で一応動き出しました 原因はItem追加をDrawItemで検出していたんですが、この時はBeginUpdateと EndUpdateの間である為、数値的にはカラムもクライアント領域の大きさも変更されているのに 描画が更新されないことでした。仮の処理ですがタイマー起動してEndUpdate後にカラムを弄ると 水平スクロールバーを消すことが出来ました まだ、不具合があるから色々煮詰めないと行けないけど何とかなりそうです
- 307 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:33:40 ]
- 研究室の先輩から引き継いだC#のプログラムがあるんですが、当方はQtでC++しか触ったことがありません。
それでこのプログラムを簡単にC++に変換できるのでしょうか? それとも諦めてC#を覚えた方がいいでしょうか?
- 308 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:34:42 ]
- あきらめた方がいい。
- 309 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:36:03 ]
- C++/QtからC#/WinForms or WPF・・・
簡単にはいかないけど プログラムが綺麗に作られてるならクラス設計とかはそのまんま引っ越せるとは思う。
- 310 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:36:52 ]
- そういえばQt#ってあったな
今回の話とは一切関係ないだろうけど
- 311 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:36:59 ]
- 研究室ならどうせ中身はほとんどベターCだろ
GUI周りだけちょっと練習すれば十分
- 312 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 15:59:39 ]
- まて、本人がC++の人でソースはC#だ。
- 313 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:01:05 ]
- 実際、C++はアセンブラ扱いだから、C#のほうが楽だよ。
- 314 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:02:26 ]
- 何を言っているんだ
- 315 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:28:56 ]
- >>306
よかったね 質問と関係ないけど、タイマー使うよりメッセージ投げた方がスッキリするよ const int LVEX_COLUMNRESIZE = WM_APP + 1; // 独自のメッセージ定義 PostMessage(this.Handle, LVEX_COLUMNRESIZE, 0, 0);
- 316 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:34:13 ]
- ・研究室の先輩から引き継いだC#のプログラム
・当方はQtでC++しか触ったことがない という状況で A.簡単にC++に変換できるのでしょうか? B.それとも諦めてC#を覚えた方がいいでしょうか? という質問に、 C#を覚えた方が楽と薦めてみたんだが・・・どっか勘違いしてるかな?
- 317 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:35:19 ]
- C++がアセンブラ扱いってのが問題発言だろ。
- 318 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:36:56 ]
- C++やっててJavaもやったことあるならすんなりいけるけど
C++だけだとちょっとはまるかもね。 移植するにしてもC#の知識は必要になるから、そのままC#覚えたほうが早そう。
- 319 名前:デフォルトの名無しさん [2009/11/23(月) 16:39:36 ]
- 覚えたほうが早いに1票
- 320 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 16:47:30 ]
- >>315
WinForm的にはBeginInvokeだろう
|

|