C#, C♯, C#相談室 Part42
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/08/26(日) 12:42:25前スレ
C#, C♯, C#相談室 Part41
http://pc11.2ch.net/test/read.cgi/tech/1184840053/
過去スレは>>2-5あたり。
0153デフォルトの名無しさん
2007/08/31(金) 16:27:520154デフォルトの名無しさん
2007/08/31(金) 16:35:470155デフォルトの名無しさん
2007/08/31(金) 17:45:35・Action<object>を使う
・Action<string> action = delegate(string x){};などとして引数にactionを渡す
自分の想像力の範囲で挙げてみた
0156デフォルトの名無しさん
2007/08/31(金) 17:59:05private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter stream = new StreamWriter(@"c:\hage.txt", false, Encoding.GetEncoding(932))) {
for (int i = 0; i < 100000000; i++) {
stream.WriteLine("12345678901234567890123456789012345678901234567890\n");
}
}
}
を実行したら2G書いたところでで落ちた
Encoder.Resetのヘルプ見たらなんとなく理由は分かった気がするけど解決法はシラネ
0157デフォルトの名無しさん
2007/08/31(金) 18:11:290158デフォルトの名無しさん
2007/08/31(金) 18:34:190159デフォルトの名無しさん
2007/08/31(金) 18:53:46【開発環境】
visual studio 2005 、言語はC#です
【やりたいこと】
・「クラス名」を変数として、newしたい
(newする対象となるクラスを可変にしたい、ということです)
【例:正しいコードではないけど、やりたいことのイメージ】
// newしたいクラス名を引数として、newしたクラスインスタンスを返す関数
object getCreatedClass(string iClassName) {
return new iClassName();
}
ClassExample1 ex = getCreatedClass("ClassExample1 "); // ClassExample1 を作る
ClassExample2 ex = getCreatedClass("ClassExample2 "); // ClassExample2 を作る
※ 「ClassExample1 ex = new ClassExample1()」でダメなの?と思われるかもしれませんが、
上の関数はあくまで簡潔にした例で、実際にはgetCreatedClass内で
new以外にも、クラス名を使った処理をしたいのです。
0160デフォルトの名無しさん
2007/08/31(金) 18:59:460161デフォルトの名無しさん
2007/08/31(金) 19:20:56Activator.CreateInstance
そんなことそんなに頻繁に行われることなの?
やるとしてもちゃんとわかってる人がやるものじゃないの?
0162デフォルトの名無しさん
2007/08/31(金) 19:59:490163148
2007/08/31(金) 20:42:26156さんの例もあるので、CP932絡みの問題ではないようです。
>>156
やはり落ちましたか。
根本的な解決ではないですが、とりあえずファイルを分割して
最後にDOSコマンドで連結する事で逃げることにしました。
>>157
なるほど。その発想はありませんでした。試してみます。
0164デフォルトの名無しさん
2007/08/31(金) 20:47:44バイト配列のマーシャリングは、どうすればよいのでしょうか?
BOOL native_func(LPBYTE pBuff, DWORD dwBuffSize, LPDWORD lpByteReturned);
文字列や構造体のサンプルはいくつか見つけたのですが。。
0165デフォルトの名無しさん
2007/08/31(金) 21:06:310166デフォルトの名無しさん
2007/08/31(金) 21:09:31MSDNライブラリ読んで理解できないのなら(まあ、君は最初から読んでなさそうだけど)
やらない方がいいんじゃないの?
人に聞くような難解な話とも俺には思えないから言うんだけど。
でないと危険だと思うけどね。
それとも、分からないことや意図しない動作に遭遇する度にいちいち人に聞くつもり?
0167デフォルトの名無しさん
2007/08/31(金) 21:17:120168164
2007/08/31(金) 21:24:24ありがとう。
System.Array で受けようとしてはまっていました。
Blittable型は、特別なコーディングいらないってことなので、
[DllImport("LargeBuffer.dll")]
private extern static bool native_func(
byte[] pBuff,
uint dwBuffSize,,
out uint lpByteReturned
);
で、
とりあえず、大きな 領域を new byte[] して取得してから、
Arrayにセットするようにしました。
0169デフォルトの名無しさん
2007/08/31(金) 21:24:33で良いんじゃなかったっけ?
0170デフォルトの名無しさん
2007/08/31(金) 21:25:230171デフォルトの名無しさん
2007/08/31(金) 21:31:56おまえはそんなことを言うためにこのスレにきてんの?
0172デフォルトの名無しさん
2007/08/31(金) 21:37:490173デフォルトの名無しさん
2007/08/31(金) 21:40:11俺はよく迷う
まぁMSDNみろよって話に収束するんだけどさ
0174デフォルトの名無しさん
2007/08/31(金) 21:46:310175デフォルトの名無しさん
2007/08/31(金) 23:46:03引数がCOMインターフェイスへのポインタの場合、
objectで汎用的にしてるとか
IntPtrにしてほっとかれてるときとか
特定のインターフェイスに決め打ちしてるときとか。。
0176デフォルトの名無しさん
2007/09/01(土) 00:48:21していたのだけど、久しぶりに使ったら、エラーになって使えなくなってました。
読み取りはできるのだけど、書き込みでエラーになります。
mdbファイルをローカルにおいてもだめでした。
他のPCからだと、同じexeとmdbで、正常に動いているので、Windowsの設定や環境のせいだと思うのだけど、
なにか心当たりのある人いませんか?
0177デフォルトの名無しさん
2007/09/01(土) 01:39:12MDBを修復してみる
0178デフォルトの名無しさん
2007/09/01(土) 15:31:49今、NumericUpDownコントロールの値を増減すると、その値でフォントの大きさを増減するプログラムを
作りたいと考えています。
この場合、全コントロールのフォントサイズを一括で増減させるようなプログラムって
可能なのでしょうか?
一つ一つフォントサイズを指定しなおさないといけないのでしょうか?
0179デフォルトの名無しさん
2007/09/01(土) 15:34:49foolproofな方法をわざわざ用意するだろうか?
0180デフォルトの名無しさん
2007/09/01(土) 15:48:23いっちゃん親のFontを変えれば
特別にフォントが指定されてないコントロールは同じになるよ
0181デフォルトの名無しさん
2007/09/01(土) 15:53:39よう、fool
0183デフォルトの名無しさん
2007/09/01(土) 19:22:51foolproofってなんて意味?
0184デフォルトの名無しさん
2007/09/01(土) 19:41:35どなたか Gilma (=ILMerge のGUIツール) および ILMerge を使ってる方が
居たら教えてください。
http://pc11.2ch.net/test/read.cgi/tech/1184037822/853-854
で質問していたのですが、お答え得られず。こちらでどなたかわかる方いたら
お願いしたく。よろしく。
0185デフォルトの名無しさん
2007/09/01(土) 21:20:28Google使えないのか?
0186デフォルトの名無しさん
2007/09/01(土) 22:56:47使える
>179に答えて欲しいだけ
0187デフォルトの名無しさん
2007/09/02(日) 00:16:53海外みたく、活発な交流をして色々な知識を吸収したいと思っているんだが
0188デフォルトの名無しさん
2007/09/02(日) 00:54:59すいません、海外ってどんなところで活発に交流しているのですか?
よかったらおしえてください
0189デフォルトの名無しさん
2007/09/02(日) 00:56:03なんか手っ取り早くGUIで残り何秒とか表示する方法ないかな。
エクスプローラのコピーコマンドとかあるかなっておもったが、
explorer.extって特定のフォルダを表示するしか出来ないのね・・・
0190デフォルトの名無しさん
2007/09/02(日) 00:56:23ところで、アンビエントプロパティで親から引き継がれてるか、
個別に設定されてるかを確認する方法ってないんかな?
0191デフォルトの名無しさん
2007/09/02(日) 00:59:53Microsoft.VisualBasic.FileIO.FileSystem でも使ってればいいんじゃない
0192デフォルトの名無しさん
2007/09/02(日) 01:01:32エラーの内容くらい書けバカ
0193デフォルトの名無しさん
2007/09/02(日) 01:03:58SHFileOperation使う。
でもVBのライブラリ参照したらその機能あった気がするのでそっちのがいいかな?
0194デフォルトの名無しさん
2007/09/02(日) 01:04:31そこまで書いてるんだから
エラーの内容くらい想像しろバカ
0195187
2007/09/02(日) 01:05:49ttp://d.hatena.ne.jp/goinger/20070814/1187111616
こちらのブログを見ていただければわかるかと。
0197デフォルトの名無しさん
2007/09/02(日) 01:10:38どうも、.NETでかかれたものを金出してまで使おうとは思えん
0198デフォルトの名無しさん
2007/09/02(日) 01:18:380199189
2007/09/02(日) 01:31:54Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(
@"C:\test\", @"e:\", UIOption.AllDialogs
でいけそうだ。
でも、このメソッド、ダイアログを表示して、かつ自動的に上書きという
引数はないんですね・・・
上書きだけか、ダイアログを表示するだけか、しかない
出来れは自動的に上書きして、進行状況がわかればうれしいんですが…
0200デフォルトの名無しさん
2007/09/02(日) 01:39:16コピペ?
0201デフォルトの名無しさん
2007/09/02(日) 01:47:38そう思う理由を教えてくれ
0202デフォルトの名無しさん
2007/09/02(日) 02:20:21リストに毎回描画するから糞重たくてむかついたことはある。
結局、最終的にアプリの出来はスキルで待ったく別物が出来上がるんだと
つくづく感じた。
0203デフォルトの名無しさん
2007/09/02(日) 02:22:490204デフォルトの名無しさん
2007/09/02(日) 08:31:16Environment.GetFolderPath(Environment.SpecialFolder.StartMenu))
で取得できますが、
全ユーザー共通のスタートメニューのフォルダを
取得するメソッドは用意されていないのでしょうか?
ユーザー固有のスタートメニューのパスに含まれるユーザー名を
All Usersに置き換えればいいような気もしますが、
あらゆる環境で動くかどうか心配なので、
できれば、あらかじめ用意されている方法を使いたいと思っています。
0205デフォルトの名無しさん
2007/09/02(日) 11:07:38実行時にenumの範囲チェックしやがるので
SHGetFolderPathを直に使うしかないと思う
0206デフォルトの名無しさん
2007/09/02(日) 16:25:560207デフォルトの名無しさん
2007/09/02(日) 17:40:56EmEditorに比べるとほんと鼻くそ
やっぱ.NETで有名なネイティブアプリに勝つなんて無理でしょうか?
0208デフォルトの名無しさん
2007/09/02(日) 17:42:100209デフォルトの名無しさん
2007/09/02(日) 18:44:52秀丸と比べるとほんと鼻くそだよね>Em
0210デフォルトの名無しさん
2007/09/02(日) 18:50:270211デフォルトの名無しさん
2007/09/02(日) 20:07:140212デフォルトの名無しさん
2007/09/02(日) 20:17:190213デフォルトの名無しさん
2007/09/02(日) 20:32:23.txtなんかはEmEditorに関連付けてる
0214デフォルトの名無しさん
2007/09/02(日) 20:57:01MouseDownは取れます。以下はVBですが。
http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserMouseDownEvent.htm
Spy++で見てもLBUTTONUPとか表示されないので、そもそもムリなんですかねぇ。
0215デフォルトの名無しさん
2007/09/02(日) 21:42:12アプリ&開発者が違うのに、開発ツールを比較するか?w
0216デフォルトの名無しさん
2007/09/02(日) 23:39:06.net framework + 在庫管理や工程管理でぐぐったら出てくるよ。
0217デフォルトの名無しさん
2007/09/02(日) 23:46:12これとか。
ttp://www.microsoft.com/japan/products/expression/expression-blend/default.mspx
0218デフォルトの名無しさん
2007/09/03(月) 00:03:57正規表現をつかったらperlに負けた
スクリプトに負けますか・・・
0219デフォルトの名無しさん
2007/09/03(月) 00:05:51プログラムを読もうと思っていたのですが難しすぎて分かりません
みなさんはある程度文法の勉強をしてからどのようにして勉強していきましたか?
0220デフォルトの名無しさん
2007/09/03(月) 00:06:260221デフォルトの名無しさん
2007/09/03(月) 00:15:02正規表現エンジンの質やI/Oが主要なボトルネックになる類のプログラムでは
言語の差など微々たるもんだ
書き方にも拠るが、C++で書こうが普通にスクリプトのが速かったりする
0222デフォルトの名無しさん
2007/09/03(月) 00:33:11毎回正規表現をコンパイルするコードなんて書いてないだろうな?
0223デフォルトの名無しさん
2007/09/03(月) 00:37:25正規表現の処理がスクリプトで書かれてんじゃないだろw
0224デフォルトの名無しさん
2007/09/03(月) 00:39:59そんなに速くないだろ
スクリプトの場合は、それがCで書かれているだろうしな
0225デフォルトの名無しさん
2007/09/03(月) 00:45:340226デフォルトの名無しさん
2007/09/03(月) 00:46:51文法しかわからない奴が、SourceForge等で公開されているソースを読めるわけないだろ
0227デフォルトの名無しさん
2007/09/03(月) 00:48:28C#で正規表現の性能を競ったらPerlやらPythonやらに普通に勝てんよ
そういう競争なら、相手はスクリプトではなくて、実質的にはCでカリカリに
チューンされたモジュールになる
勝てるわけが無いだろ
0228デフォルトの名無しさん
2007/09/03(月) 00:57:08だったら、C#の存在意義ってなに?
0229デフォルトの名無しさん
2007/09/03(月) 01:01:45さあ
無いと思えば無いんじゃね
性能はネイティブにゃ勝てんし
スクリプトみたいに手軽じゃないし
Javaみたいにwrite once, run anyware標榜してるわけでもねぇし
0230デフォルトの名無しさん
2007/09/03(月) 01:06:020231デフォルトの名無しさん
2007/09/03(月) 01:16:10一応言っとくが、自分で計算処理する分にはC#のがスクリプトよりは
格段に速いぞ
ネイティブのがさらに速いがw
自分の計算が主要なボトルネックになるタイプのプログラムかどうかが
一つのポイントだな
そうでないようなケースは案外多い
0232デフォルトの名無しさん
2007/09/03(月) 01:24:44記述できない低水準の処理以外の部分でネイティブコードと速度に差なんて出ようがないと思うが。
0233デフォルトの名無しさん
2007/09/03(月) 01:25:22体感できるほど遅くなるアプリなら最初からネイティブしか選択肢ないし
そんなんめったに書くことない
0234デフォルトの名無しさん
2007/09/03(月) 01:25:22早いとか、遅いとかって言ってる奴は、証拠のソースを出せよ
だってさ
PerlもPythonも、コンパイル時に正規表現のコンパイルと最適化をしている
C#やJavaは実行時
どうやってコンパイルと最適化に消費する処理時間を考慮するの?
0235デフォルトの名無しさん
2007/09/03(月) 01:27:24速いことより、遅い方がいいことってあるのかしらん?
0236デフォルトの名無しさん
2007/09/03(月) 01:27:52C#は安全性を気にして余計な処理をしてるだろ
Cとかと比べたらどうしたって遅くなる
0237デフォルトの名無しさん
2007/09/03(月) 01:28:44速度の違いが体感出来ないならC#使ってもデメリットはない
プログラミングが楽になるからC#使った方がいいというわけだな
0238デフォルトの名無しさん
2007/09/03(月) 01:29:28そりゃJITだけどCにゃ負けるようだよ
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
これはMonoだが、Java Server VMの性能が参考になるだろう
0239デフォルトの名無しさん
2007/09/03(月) 01:32:20大体.NETは実行スピードと生産性のバランスの中のひとつの解に過ぎないだろ
0240デフォルトの名無しさん
2007/09/03(月) 01:34:25起動がのろいのとGUIもっさりはどうしようもねぇな
0241デフォルトの名無しさん
2007/09/03(月) 01:36:40やっぱり法螺吹きか
0242デフォルトの名無しさん
2007/09/03(月) 01:37:14CLIランタイムをロードする時間に比べりゃ、正規表現のコンパイルにかかる時間など
微々たるもんだろw
0243デフォルトの名無しさん
2007/09/03(月) 01:38:130244243
2007/09/03(月) 01:38:590245デフォルトの名無しさん
2007/09/03(月) 01:41:19DDBのblitはGDI+の10倍は速いらしいな
その時点でWinFormsだめぽ
0246デフォルトの名無しさん
2007/09/03(月) 01:45:05そんなに気になるんなら自分でためせばいいのに
以前俺が実験したソースをあげるよ
ttp://www.borujoa.org/upload/source/upload14325.zip
青空文庫のテキストを適当に置換するプログラム
inputというフォルダにサンプルの入力ファイルがあるが、300K程度の
サイズだから、気になるならデカくしてみるんだね
0247デフォルトの名無しさん
2007/09/03(月) 01:53:14それはあくまで作る側の屁理屈
使う側からすれば、生産性なんてどうでもいい
あなたが、よく使うアプリケーションが次バージョンから.NETで書かれたらどう思う?
LightWaveが.NETなんかで書かれたら俺は間違いなくMAXへ移行する
0248デフォルトの名無しさん
2007/09/03(月) 01:57:26えーとね、生産性悪くなるとコストがかかるんだよ。
それは製品価格に反映されたり、次バージョンで実装される機能が少なくなったりすることになるんだよ。
0249デフォルトの名無しさん
2007/09/03(月) 02:05:21なんでアセンブラでつくらねーんだっていってみろ。
0250デフォルトの名無しさん
2007/09/03(月) 02:06:39C#がバランス上最適解かどうかだろうなw
0251デフォルトの名無しさん
2007/09/03(月) 02:06:52機能も少なくなるぞ。
品質が下がることもあるぞ。
0252デフォルトの名無しさん
2007/09/03(月) 02:07:02C#しかつかないやつはVC++で開発してる部署に行ったらほぼ終わり
■ このスレッドは過去ログ倉庫に格納されています