C♯, C#相談室 Part34
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/06(水) 22:34:17前スレ
C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/l50
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0002デフォルトの名無しさん
2006/09/06(水) 22:38:54Part31 http://pc8.2ch.net/test/read.cgi/tech/1145075577/
Part30 http://pc8.2ch.net/test/read.cgi/tech/1141448072/
Part29 http://pc8.2ch.net/test/read.cgi/tech/1138925245/
Part28 http://pc8.2ch.net/test/read.cgi/tech/1134514022/
Part27 http://pc8.2ch.net/test/read.cgi/tech/1131544541/
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
0003デフォルトの名無しさん
2006/09/06(水) 22:40:10Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 ttp://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 pc.2ch.net/tech/kako/977/977112364.html
0004デフォルトの名無しさん
2006/09/06(水) 22:41:04http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
MSDNライブラリ
http://msdn.microsoft.com/library/ja/
MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx
相互運用マーシャラによるメモリ管理
http://msdn2.microsoft.com/ja-jp/library/f1cf4kkz.aspx
Buffers のサンプル
http://msdn2.microsoft.com/ja-JP/library/x3txb6xc.aspx
文字列のマーシャリング
http://msdn2.microsoft.com/ja-JP/library/e8w969hb.aspx
0005デフォルトの名無しさん
2006/09/06(水) 22:46:46http://pinvoke.net/
0006デフォルトの名無しさん
2006/09/06(水) 22:54:53http://www.chinko-ondo.org/
0007前スレ973
2006/09/06(水) 22:59:24これはMarshal.StructureToPtrとかつかわんといかんのだな。
結局C#上でメモリ管理せんと駄目になった。
0008デフォルトの名無しさん
2006/09/06(水) 23:03:300009デフォルトの名無しさん
2006/09/06(水) 23:17:570010デフォルトの名無しさん
2006/09/06(水) 23:27:51勝手にbyte[]に変更したりできません。
0011デフォルトの名無しさん
2006/09/06(水) 23:30:220012デフォルトの名無しさん
2006/09/06(水) 23:32:440013デフォルトの名無しさん
2006/09/06(水) 23:43:13const GUID* pguid;
LPCWSTR pszName;
...
}
です。
で最初に教えてもらったのがpszNameです。StructureToPtrしなきゃ駄目なのがpguid。
ちとスレ違いになってきたのでおとなしくします。
0014デフォルトの名無しさん
2006/09/06(水) 23:56:39寝て起きればわかるさ!!!
0015デフォルトの名無しさん
2006/09/07(木) 00:22:100016デフォルトの名無しさん
2006/09/07(木) 00:31:040017デフォルトの名無しさん
2006/09/07(木) 02:06:27頻出でもない細かい話題をいちいちテンプレに入れてたらきりがないと思うんだが。
前スレ996もそういうつもりで書いたんじゃないだろうし。
0018デフォルトの名無しさん
2006/09/07(木) 23:11:42WindowsFormとかならApplication.Exit();で良いのですが
それ以外の時が分かりません。
神様お願いします。
0019デフォルトの名無しさん
2006/09/07(木) 23:13:58ただし意外にもセキュリティ制限でネットワーク越しに実行してたりすると終了できなかったりする。
0020デフォルトの名無しさん
2006/09/07(木) 23:30:02ありがとうございます。
しかしcsc.exeでコンパイル時にエラーが出てしまいます。
error CS1501: 引数を '0'個指定できる、メソッド 'Exit' のオーバーロードはありません。
0021デフォルトの名無しさん
2006/09/07(木) 23:31:310022デフォルトの名無しさん
2006/09/07(木) 23:32:000023デフォルトの名無しさん
2006/09/07(木) 23:32:03002464bitWinXPに移植したいダメ子です。
2006/09/07(木) 23:37:5532ビット環境でC++でプログラム作ってます。
使ってくれる人の要望で、
もっと大きな計算ができないの、と言われますが2GByteの壁があります。。。
そこで64ビットにコンパイルしたいです。
ただ広いメモリ空間が欲しいからです。倍でも十分です。
難しいことですか?
002518
2006/09/07(木) 23:41:28調べてみました。
どう見ても簡単に解決できました。
本当にありがとうございました。
0026デフォルトの名無しさん
2006/09/07(木) 23:42:58ためしに64ビットコンパイラでコンパイルしてみれば。
あとここはC#スレね。
0027デフォルトの名無しさん
2006/09/08(金) 08:51:082GBの壁に当たるような処理って何?
過去にも32KBの壁とか64MBの壁とか色んな壁があったけど、みんな試行錯誤で乗り切ってる
単にバカデカい作業領域を確保するより、メモリをやりくりしたほうが使用メモリ量的にも処理速度的にも効率的だったりすることもあるよ
0028デフォルトの名無しさん
2006/09/08(金) 10:49:31多要素間の相互作用を扱うシミュレータとかだと、各要素にまんべんなく
アクセスする場合があるのでスワップで逃げるにもHDDアクセスがボトル
ネックになって実用時間じゃ動かなくなる。
0029デフォルトの名無しさん
2006/09/08(金) 13:15:46それは2Gの壁とは何も関係ないんじゃまいか…
0030デフォルトの名無しさん
2006/09/08(金) 17:02:15そもそもの前提として 2G じゃ収まらないデータを扱うって話だろ。
0031デフォルトの名無しさん
2006/09/08(金) 17:12:55ツリービューで見えるようにしたらツリービュー全体が
すごい勢いで点滅するんですがなんとかならないですか?
一応、DoubleBuffered は true にしてあります。
走査してる場所の表示は相当するノードのフォントをBoldにしてるだけです。
点滅はノードが見える状態になっているかどうかは関係なく発生します。
まだノードのテキストを設定してるだけですが、将来的にはアイコンとか表示したいなとか思ってます。
0032デフォルトの名無しさん
2006/09/08(金) 17:21:530033デフォルトの名無しさん
2006/09/08(金) 17:27:09「難しいことはできないのですが」と書いている人が思う「2GBの壁」と、ハードリソースの扱いやプログラム技術に長けた人間が思う「2GBの壁」は違うよ
どこまで「2GBの壁」を具体的に理解しているかも分からずアドバイスなんてできない
それに壁にあたるロジックや仕様も出していない
そもそもC#のスレでC++の事を聞く当たり、とても技術レベルが高いとは思えないがどうかね
0034デフォルトの名無しさん
2006/09/08(金) 17:29:23頻繁に部分更新を行って、かつちらつきも避けたいのならツリービューとか使わずに
UserコントロールとかPanel に Paint イベントを書くとかして自前で描画した方が良い
と思う。
0035デフォルトの名無しさん
2006/09/08(金) 17:39:17よくわからないけど、未だに>>28は「2Gの壁とは何も関係ない」と考えてますか?
漏れは大量のデータをオンメモリで処理する(まさに>>28のような状況)のために
64bit OS が実用化されたんだと思ってたけど。
0036デフォルトの名無しさん
2006/09/08(金) 17:46:07確かに最速っぽいですね。
でも、それはめんどくさい^^;ので避けたいです
>31
してます。
・・・どこかにイベントをためておいて
一定時間ごとに一気に処理すればいいのかな?
public void イベント反応部(ScanEventArg e){
queue.push (e);
}
public void onTimer_Tick(object sender, EventArg e) {
SuspendLayout() // いらないかな?;
while(queue.count > 0) {
ScanEventArg e = queue.Dequeue();
イベント処理(e);
}
ResumeLayout(); // いらないかな?
}
0037デフォルトの名無しさん
2006/09/08(金) 17:59:33ScanEventArg e = queue.Dequeue();
イベント処理(e);
}
でがんがん再描画するから一緒じゃないの?
0038デフォルトの名無しさん
2006/09/08(金) 18:00:530039デフォルトの名無しさん
2006/09/08(金) 18:11:38> よくわからないけど、未だに>>28は「2Gの壁とは何も関係ない」と考えてますか?
おまい、>>28=24 だと思ってる?
「とかだと」って言葉を使っているから、>>28は一般例を挙げているだけだと思うんだけど
> 漏れは大量のデータをオンメモリで処理する(まさに>>28のような状況)のために
> 64bit OS が実用化されたんだと思ってたけど。
HPCクラスタと混同してない?
単体の向上は別物
0040デフォルトの名無しさん
2006/09/08(金) 18:29:19よそでやれ
004131
2006/09/08(金) 20:01:52SuspendLayout はいらないみたい。
イベントがいまのところ4つぐらいあったのでビジターパターンでやっちゃいました。
いちおうご報告まで。
0042デフォルトの名無しさん
2006/09/08(金) 20:22:330043デフォルトの名無しさん
2006/09/08(金) 23:41:06私の見立てでは
大規模処理じゃない限りCより高速。
書き方が簡素化された。
メモリ管理とかその辺が強化。
後はな〜んもかわらへんねん。
0044デフォルトの名無しさん
2006/09/08(金) 23:43:47私の見立てでは
大規模処理じゃない限りCOBOLより高速。
書き方が簡素化された。
メモリ管理とかその辺が強化。
後はな〜んもかわらへんねん。
0045デフォルトの名無しさん
2006/09/08(金) 23:48:16釣りにしては中途半端
もっと聞きかじった風を演出するためにカタカナを多く使いなさい
0046デフォルトの名無しさん
2006/09/08(金) 23:48:50私の見立てでは
大規模処理じゃない限りマ板より高速。
・・・そろそろやめよ〜
004743
2006/09/08(金) 23:56:12アナタはいつもそうやって はぐらかす
0048デフォルトの名無しさん
2006/09/09(土) 00:32:16> C#って結局Cと何が違うんですかね?
どんな違いを知りたいのよ
違いすぎて書き始めたらキリ無いんだけど
CもC#もそれぞれ万単位の人間がその確立に力を費やした
そんだけのものをたかが一人の人間で全部理解することは出来ないし、ましてや文章で全部説明することなんて出来ない
「違うものは違うんだ」で十分で、あとは自分の守備範囲でどちらが目的に合うか判断すればいい
0049デフォルトの名無しさん
2006/09/09(土) 01:52:37基本的な文法が近いくらいしかねーんじゃ?
0050デフォルトの名無しさん
2006/09/09(土) 10:45:02C#ってのはアナルセクースまでいってしまうこと。
常識だろ。そんなもん。殺すぞ。
0051デフォルトの名無しさん
2006/09/09(土) 10:58:380052デフォルトの名無しさん
2006/09/09(土) 12:39:30ListViewItem.Font はちゃんと反映されてるのに……
EndUpdate したあと Refresh するのも微妙 (;´Д`)
0053デフォルトの名無しさん
2006/09/09(土) 12:54:48マウスオーバーさせて再描画するとやっと反映される (;´Д`)
0054デフォルトの名無しさん
2006/09/09(土) 18:55:480055デフォルトの名無しさん
2006/09/09(土) 22:40:37メソッド呼び出しじゃなくてプロパティを取得するにはどうすればいいんですか?
0056デフォルトの名無しさん
2006/09/09(土) 22:43:20もっと整理して再提出
できれば具体的にな
0057デフォルトの名無しさん
2006/09/09(土) 22:51:280058デフォルトの名無しさん
2006/09/10(日) 00:27:540059デフォルトの名無しさん
2006/09/10(日) 00:58:100060デフォルトの名無しさん
2006/09/10(日) 01:21:02意味わかんないよママン
0061CheckForIllegalCrossThreadCalls = true推奨委員会
2006/09/10(日) 02:41:52を全国的に推奨中
0062デフォルトの名無しさん
2006/09/10(日) 03:35:11やはり日本での主流はJAVAなのか?アメリカでは結構シェアありそうなんだが…
C++とC#の違いは…C++→C#は超楽勝だけど
C#→C++は地獄を3度見るくらいの違いがある程度じゃないかな?
0063デフォルトの名無しさん
2006/09/10(日) 03:47:00ま、それでも Java の方が現状は優勢だろうがね。
趣味で 5 年ほど C# やってて最近仕事で C++ を使い始めたが、全く困ってないな。
C の基本は P/Invoke の為に最低限学んでいたが。
0064デフォルトの名無しさん
2006/09/10(日) 04:22:18>JAVAとC#のスレの伸びはJAVAが約3倍、
しかしあのスレでまとまな回答してるのはほとんどC#使いのオレだ。
0065デフォルトの名無しさん
2006/09/10(日) 05:27:01C#は事実上Windowsオンリーだし。
0066デフォルトの名無しさん
2006/09/10(日) 09:36:13それはやばいだろw
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html
0067デフォルトの名無しさん
2006/09/10(日) 09:55:30それとは関係ないとしか読めないんだが。
別スレッドで動いてる関数を呼び出すんだぜ? 再入ですらない。
// 別のスレッドで動いてる関数(から UI 部品のメソッド)を呼び出す
// 、となんで読み手がここまで読み解かなきゃなんねぇんだ
0068デフォルトの名無しさん
2006/09/10(日) 11:21:36>C#で別のスレッドで動いてる関数を呼び出すには
おまえはこれの意味が分かるのか?
そりゃまあ想像はつくっていうか、まあ分かるんだけど意味不明だろ。
0069デフォルトの名無しさん
2006/09/10(日) 11:46:21いちいち文章に指摘するのはプログラマの本分じゃないし
0070デフォルトの名無しさん
2006/09/10(日) 12:01:270071デフォルトの名無しさん
2006/09/10(日) 12:31:000072デフォルトの名無しさん
2006/09/10(日) 13:22:570073デフォルトの名無しさん
2006/09/10(日) 15:47:21いやそれSEの言い分だし。
クライアントの無茶苦茶な要求に晒されてるのは同情するけど、
PGとしては余計な想像しなくていいところまで明文化してくれないと。
0074デフォルトの名無しさん
2006/09/10(日) 15:48:57C# : Java = 1 : 3
0075デフォルトの名無しさん
2006/09/10(日) 16:50:28世の中の業務システムの比率 .NET : Java = 7 : 3
0076デフォルトの名無しさん
2006/09/10(日) 17:11:320077デフォルトの名無しさん
2006/09/10(日) 17:22:340078デフォルトの名無しさん
2006/09/10(日) 17:33:290079デフォルトの名無しさん
2006/09/10(日) 17:35:32やっぱりASP.NETとかのドカタ案件が多いの?
0080デフォルトの名無しさん
2006/09/10(日) 17:35:42スレ違い
0081デフォルトの名無しさん
2006/09/10(日) 18:25:06COBOL FORTRAN を忘れてもらったら困ります
0082デフォルトの名無しさん
2006/09/10(日) 21:46:330083デフォルトの名無しさん
2006/09/10(日) 22:18:44C : Java : C++ :C# ≒ 90:9:1:0
0084デフォルトの名無しさん
2006/09/10(日) 22:51:38ネットワーク系学科 C = Java >>> C+
グラフィック系学科 C++ >> C
0085デフォルトの名無しさん
2006/09/10(日) 23:01:41マ 板 で や れ
0086デフォルトの名無しさん
2006/09/10(日) 23:20:05>>85
うるせーバカ
0087デフォルトの名無しさん
2006/09/10(日) 23:26:38共通一次 BASIC
0088デフォルトの名無しさん
2006/09/10(日) 23:47:40Formの最大化ボタン・最小化ボタンは
MaximizeBox = false;
MinimizeBox = false;
で消せますが、キャンセルボタンが消せません。
MSDNにCancelButtonというメンバがありますが、あれは役割が違います。
キャンセルボタンを消す方法教えて頂けないでしょうか?
0089デフォルトの名無しさん
2006/09/10(日) 23:52:330090デフォルトの名無しさん
2006/09/10(日) 23:57:19Formの右上にある×印のことです。
0091デフォルトの名無しさん
2006/09/10(日) 23:58:49Form#ControlBox = false;
0092デフォルトの名無しさん
2006/09/10(日) 23:59:34ありはクローズボタンだったと思うが、ControlBoxプロパティをFalseで消える。
0093デフォルトの名無しさん
2006/09/11(月) 00:06:02ありがとうございます。
しかし上のステータスバーも消えてしまいました。
アレを残してクローズボタンを消す方法はございませんか?
Win32APIを使う事でも実現かのうでしょうか?
0094デフォルトの名無しさん
2006/09/11(月) 00:09:410095デフォルトの名無しさん
2006/09/11(月) 00:12:40Formの上部に青色のBarがあり、その列に通常最大化・最小化・クローズボタンがあります。
そのBarをさしています。
よろしくお願いします。
0096デフォルトの名無しさん
2006/09/11(月) 00:12:460097デフォルトの名無しさん
2006/09/11(月) 00:14:30うーんうろ覚え。
0098デフォルトの名無しさん
2006/09/11(月) 00:15:38たったそれだけの作業なのに何を間違えたんだ
0099デフォルトの名無しさん
2006/09/11(月) 00:17:34ま、半角空白でも使えば問題ないが。
0100デフォルトの名無しさん
2006/09/11(月) 00:18:32using System.Drawing;
using System.Windows.Forms;
namespace WinApp{
public class WinForm : Form {
public WinForm() {
SuspendLayout();
ClientSize = new Size(350, 90);
StartPosition = FormStartPosition.CenterScreen;
Text = "";
ResumeLayout(false);
FormBorderStyle = FormBorderStyle.FixedSingle;
→→→コレを挿入すると消えてしまいます。 ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
}
[STAThread]
static void Main() {
Application.Run(new WinForm());
}
}
}
いろいろご迷惑かけてすみません。上記ソースでやはり消えてしまいます。
0101デフォルトの名無しさん
2006/09/11(月) 00:19:130102デフォルトの名無しさん
2006/09/11(月) 00:19:50Text = " ";
0103100
2006/09/11(月) 00:19:55ありがとうございました!Textに半角入れたら
解決しました。色々ご迷惑おかけしてすみません!
0104デフォルトの名無しさん
2006/09/11(月) 00:21:16: : : : : /:,ハ } : : / : : : : : : : : : : : : : : : : : : : \: : i
: : : : : : : : :},.イ: : /. : : : : : : : : : : : : :ヽ : : : : : : : :\l
: : : : : : : :/ /: / : : : : : : : : : : : : : : ', : : : : : : : 、:ヽ
: : : : : : :/ノ: : / : : : : : : :/ : : : /: j: l: : l: ', : 、 : : : ヽ: :',
!: : : : : ,'、 : : ,' ,': : : : : : / /: : /: /j: !: : }斗‐‐',: : : !: i: :l
',: : : : :l : `ー! !: : : : : :/_厶∠∠.//l: :,ハ,ニ=ァ'i: :l :l: :}:lノ
: '、 : : l:\_ r{ {: : : : : :{´{=_;;云ァァ' ,ノノ 仂jイ}/: /:/ //
: : ヽ: :lヽ : :{ ヾ\ : ‐=f壬辷'丿; ゚ー〈ノ/ノイ´
: : :',:ヽl : \\ |\: {´¨''¬'"´ ` ``}: :l : :i:l バ カ ば っ か
: : : ',: :ヽ: : :`7`T|: : l`ー ヽヽヽ (_ア ,.イ: :.:l : :i l
: : : :.',: : :ヽ : {{ 「゙|: : |、ヽ、_ ,.イ: :l : :.l : :i l
: : : : :'、: : :ヽrく '、: '、\ `T¬ーrく: :! : !.:.:.:l : :i: l
: : : : : ヽ : : : ヽ \ヽ :ヽ \,ハ. ヽハ: : :| : :.l : :i: |
0105デフォルトの名無しさん
2006/09/11(月) 00:23:000106100
2006/09/11(月) 00:24:070107デフォルトの名無しさん
2006/09/11(月) 00:27:450108デフォルトの名無しさん
2006/09/11(月) 08:01:50それは専門学校だろ?
大学のネットワーク系専攻だとJavaはもっと少ない、というか授業じゃ使わん。
0109デフォルトの名無しさん
2006/09/11(月) 08:52:380110デフォルトの名無しさん
2006/09/11(月) 08:53:260111100
2006/09/11(月) 09:26:01作成したFormはメモリ12Mも使う重いものです。ソースは>>100
実は、これを軽くする方法などありませんでしょうか?
ご存知であれば教えてください。
0112100
2006/09/11(月) 09:43:030113100
2006/09/11(月) 09:47:43偽物さんおやめください。
解決はしておりません。
0114デフォルトの名無しさん
2006/09/11(月) 10:02:23強制終了されないように×を消すってことかな?
それなら自前のプログレスバー作って
Loading...って出すと良いんじゃないかな
だけど別スレッドで動くようにしないと
こっちも固ま(って見え)るかな
0115100
2006/09/11(月) 10:13:01>Formはメモリ12Mも使う重いもの
まさかタスクマネージャ上で起動前と起動後の
コミットチャージ比較してるんじゃないだろうな
0116100
2006/09/11(月) 10:23:09起動中にタスクマネージャのメモリ使用量という項目が12Mでした。
0117デフォルトの名無しさん
2006/09/11(月) 10:32:09該当する関数がありませんでした。
WinXP
0118デフォルトの名無しさん
2006/09/11(月) 10:40:310119デフォルトの名無しさん
2006/09/11(月) 10:43:43気にすんな
0120デフォルトの名無しさん
2006/09/11(月) 11:27:16すみません。簡単なサンプル頂けないでしょうか?
あつかましくてすみません。神様お願いします。
0121デフォルトの名無しさん
2006/09/11(月) 11:48:23メインのフォームがDeactivateになるとスレッドを眠らせて
Activatedになると再開させるにはどうすればいいですか?
ttp://codezine.jp/a/default.aspx?cid=279
ここやMSDNの説明を見ても[お奨めできない]とか[互換性に残してあるけど使うな]、ばっかりで。
0122デフォルトの名無しさん
2006/09/11(月) 11:59:18別スレッドは共有変数をポーリングしておく
0123デフォルトの名無しさん
2006/09/11(月) 12:05:320124デフォルトの名無しさん
2006/09/11(月) 14:09:09System.Security.AccessControl.RegistrySecurity など
サンプルはヘルプにのっとる。
0125デフォルトの名無しさん
2006/09/11(月) 15:04:15>>122
ManualResetEventでできました
0126デフォルトの名無しさん
2006/09/11(月) 16:26:59切羽詰まって死ぬかもしれません。
http://nienie.com/~masapico/api_GetAclInformation.html
0127デフォルトの名無しさん
2006/09/11(月) 16:30:00息子のオープンキャンパスについていったが、少なくとも立命、中京、三重はJavaを使う。
0128デフォルトの名無しさん
2006/09/11(月) 16:31:13ちょっとまってろ
0129デフォルトの名無しさん
2006/09/11(月) 16:39:23そのコードでVCでネイティブなdll作って、今だけP/Invokeでお茶を濁しておけば?
でもって、後からバージョンアップしました!という。
0130デフォルトの名無しさん
2006/09/11(月) 16:55:290131デフォルトの名無しさん
2006/09/11(月) 17:10:590133デフォルトの名無しさん
2006/09/11(月) 18:52:53誰か助けてください!!
0134126
2006/09/11(月) 19:27:07MSDNにサンプルは一部分しか載っていません。
誰かおしえてちょんまげ〜!
0135デフォルトの名無しさん
2006/09/11(月) 19:34:48はい。
ttp://pinvoke.net/default.aspx/advapi32/GetAclInformation.html
0136126
2006/09/11(月) 19:50:31ありがとうございます。
でもこれじゃダメなんです。コレだけじゃ分からないんです。
コンパイルすればすぐ使用可能なサンプル探してます。
0137126
2006/09/11(月) 20:11:400139デフォルトの名無しさん
2006/09/11(月) 20:17:37すっこんでろ。
0140126
2006/09/11(月) 21:35:35なんかガカーリしたよ。
0141デフォルトの名無しさん
2006/09/11(月) 21:44:020142デフォルトの名無しさん
2006/09/11(月) 21:59:56何をおっしゃる。君ほどではない。
0143デフォルトの名無しさん
2006/09/11(月) 22:07:320144デフォルトの名無しさん
2006/09/11(月) 22:14:210145デフォルトの名無しさん
2006/09/11(月) 22:21:19物事が差し迫ってどうにもならなくなる。抜き差しならなくなる。
切羽(せっぱ)は刀身を固定する金具のこと。
0146126
2006/09/11(月) 22:37:44きんもー!きんもー!
0147デフォルトの名無しさん
2006/09/11(月) 22:41:470148126
2006/09/11(月) 22:46:07ここは遠さねえぜ〜
け!ケンシロウ〜!!
ひぃ〜!
0149デフォルトの名無しさん
2006/09/11(月) 22:49:030150126
2006/09/11(月) 22:51:58。 。
/ / ポーン!
( Д )
0151デフォルトの名無しさん
2006/09/11(月) 22:54:25おもしれー
0152126
2006/09/11(月) 22:57:44\\
エ━━━━━━( Д ; )━━━━━━!!!
0153126
2006/09/11(月) 22:59:25あ あ
わ あ
う ぁ っ あ
ぁ !
あ
ぁ ! !
あ
ぁ
あ
ぁ あ
あ
0154デフォルトの名無しさん
2006/09/11(月) 23:08:500155デフォルトの名無しさん
2006/09/11(月) 23:20:15どこからどうみても釣りです
本当にありがとうございました
0156デフォルトの名無しさん
2006/09/12(火) 00:03:490157デフォルトの名無しさん
2006/09/12(火) 04:31:49エラーを発生させる文を書いたのですが、
実行させるとエラーは検出されず、何もなかったかのように
その文以降の行が実行されなくなるだけです。
正常にエラーが検出されるようにするにはどうしたらいいでしょうか?
0158デフォルトの名無しさん
2006/09/12(火) 05:06:090159デフォルトの名無しさん
2006/09/12(火) 08:45:050160デフォルトの名無しさん
2006/09/12(火) 09:06:40まず目的を果たす最小限のコードを書け
それが動かなかったらここにそれを書いてみろ
0161126
2006/09/12(火) 09:12:580162126
2006/09/12(火) 10:40:13┌――─┴┴─――┐
│ セルフサービス .│
└―――┬┬─――┘
││ ./
゛゛'゛'゛ /
/
| \/
\ \
\ノ
ガッ はセルフサービスになりました。
使用方法は以下のようになります
∧
ガッ< >_∧
= ()二)V`Д´)<ぬるぽ
\ヽ ノ )
ノ(○´ノ
(_ノ(__)
尚、使用方法を誤ると、最悪の場合、命を落とす危険性がございますので、
初めてご使用される方は、各都道府県に設置してある専門の窓口に相談下さい。
財団法人 全日本 ぬるぽガッ セルフ振興会
0163デフォルトの名無しさん
2006/09/12(火) 10:44:020164デフォルトの名無しさん
2006/09/12(火) 10:59:21>エラーを発生させる文を書いた
ってthrowしたのか?
自分でcatchしたんじゃないの?
それで>その文以降の行が実行されなくなる
のだとしたらcatchを削除しろ。
(ここはエスパースレじゃないんだけどな……)
0165デフォルトの名無しさん
2006/09/12(火) 11:03:09ときどき例外をキャッチしないでそのままうごいてることがあるよな・・・
0166デフォルトの名無しさん
2006/09/12(火) 12:56:03( ゚ Д゚)このスレは出来ない人の集まりですね
0167126
2006/09/12(火) 14:08:54( ,_ノ` )y━・~~~ そりゃあプログラマー気取りしかいないからさ
0168デフォルトの名無しさん
2006/09/12(火) 14:22:31ステップ実行だと発生しづらい例外はある
スレッドとかメモリとかの例外は特に
そういう場合はトレースとか別の方法で調べる
0169157
2006/09/12(火) 15:54:31最小限のコードを書いてみると、
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
string testMoji = "例外発生前です";
MessageBox.Show(int.Parse(testMoji).ToString()); // throw new ApplicationException(); でもいいです
testMoji = "例外発生後の行です";
MessageBox.Show(testMoji);
}
結果はtestMojiに「例外発生前です」を代入しただけで終わってしまいます。
「終わってしまう」というのは、ただプログラム全体が固まるわけではなく、
何もイベントが発生していない状態に戻ってしまうだけです。
(本来だったらプログラム全体の実行がとまり、Visual C#が
プログラムのエラー箇所でエラー内容とヒントのダイアログを出すはずです)
試行錯誤してみると、webBrowserのDocumentCompleted以外にもNavigatedや
Navigatingイベントも同様にVisual C#が例外を無視しました。
try〜catch文を入れれば例外をcatchで拾うことは出来るのですが、
try〜catchを入れない時ではVisual C#がそれを例外として検出してくれません。
プログラムのデバッグ時に、例外が検出されないとどこにバグがあるか探しにくいので困っていますorz
長文失礼しました。よろしくお願いします。
0170デフォルトの名無しさん
2006/09/12(火) 16:03:40>(本来だったらプログラム全体の実行がとまり、Visual C#が
>プログラムのエラー箇所でエラー内容とヒントのダイアログを出すはずです)
これが正しいと信じているのならば、確かに変な挙動だろうね
0171デフォルトの名無しさん
2006/09/12(火) 16:46:430172デフォルトの名無しさん
2006/09/12(火) 17:25:49WebBrowserとかそのイベントはCOMのラッパーで、
もっと上流で例外がcatchされてるみたいだね。
0173デフォルトの名無しさん
2006/09/12(火) 18:13:122003なら、メニューの[デバッグ]→[例外]のダイアログで、「Common Language Runtime Exception」→「System」→「System.FormatException」を選択し、「例外がスローされたとき」を「デバッガで中断」にする
2005なら、メニューの[デバッグ]→[例外]のダイアログで、「Common Language Runtime Exception」→「System」→「System.FormatException」の「スローされるとき」にチェック
なんでも引っ掛けたいなら、「Common Language Runtime Exception」に対してスローされた例外を中断に設定すればいい
0174デフォルトの名無しさん
2006/09/12(火) 18:16:57VSより上流なんてない
出力ウインドウ見ればスローされた例外が表示されていることが分かる
適当なこと書くな
0175デフォルトの名無しさん
2006/09/12(火) 18:38:35ドラッグ&ドロップでTreeNodeの移動を行いたいのですが
アプリケーション間でも使えるドラッグ&ドロップを使わず(コントロール内で閉じた処理なので)
何か間単にハンドリングする方法はありますか?
0176デフォルトの名無しさん
2006/09/12(火) 19:23:040177デフォルトの名無しさん
2006/09/12(火) 19:32:40マウスイベントひっかけてコピー元、先きめて移動ってコードかかないと駄目ですか。
やるか。。
0178デフォルトの名無しさん
2006/09/12(火) 19:49:13MonoやPortable .NETをC#の異なる実装というのはおかしくない?
そもそも言語としてのC#と、VC#が分離しきれてない点にも違和感があるのだけど。
http://ja.wikipedia.org/wiki/C_Sharp
0179デフォルトの名無しさん
2006/09/12(火) 19:57:47webBrowser1_DocumentCompletedは、webBrowserコンポーネントがCOMイベントとして
(ラッパ経由で)呼び出すものだ、というのはわかりますよね。
COMのイベントハンドラは例外を上げられないので、(COMには実装非依存の例外機構はないから)、
ラッパが例外を catch してエラーとして webBrowser に返すよりないわけです。
COMに限らず人の作ったコードが例外をキャッチしているかそのまま上げているかなど
わからない場合が多いわけですから、人の作ったコードからコールバックされる関数内では
どう処理されるかわからない例外を上げたりせずに、
自分でキャッチしてエラー処理を行うのが良いと思います。
0180デフォルトの名無しさん
2006/09/12(火) 19:59:01実際C#はVC#を強く意識して作られてる言語だからいいんじゃないの
0181デフォルトの名無しさん
2006/09/12(火) 20:04:51現状においてはVC#から入るのがデファクトだからそう思えるけど。
英語版を見てみると、Vが無くても独り立ちができるものなんだなと感心する。
http://en.wikipedia.org/wiki/C_Sharp
0182157
2006/09/12(火) 20:20:47アドバイスしてくれた方々本当にありがとうございました。
>>173さんの方法で解決できました!
>>179
すみません、仕組みが全然理解しきれてなかったんですが
すごく参考になりました!
不具合だと思ってたんですがただ単に私の勉強不足でした…。恥。
ありがとうございました。
0183デフォルトの名無しさん
2006/09/12(火) 21:04:02それ、デバッガとしてのVSの挙動と、アプリケーションの挙動をごっちゃにしてるから
0184デフォルトの名無しさん
2006/09/12(火) 23:35:46変だと思うならそれを提議しろ
Wikipediaはそうやって成長させるものだ
0185126
2006/09/12(火) 23:38:07┌――─┴┴─――┐
│ セルフサービス .│
└―――┬┬─――┘
││ ./
゛゛'゛'゛ /
/
| \/
\ \
\ノ
ガッ はセルフサービスになりました。
使用方法は以下のようになります
∧
ガッ< >_∧
= ()二)V`Д´)<ぬるぽ
\ヽ ノ )
ノ(○´ノ
(_ノ(__)
尚、使用方法を誤ると、最悪の場合、命を落とす危険性がございますので、
初めてご使用される方は、各都道府県に設置してある専門の窓口に相談下さい。
財団法人 全日本 ぬるぽガッ セルフ振興会
0186デフォルトの名無しさん
2006/09/12(火) 23:41:37だからここで問うてるんじゃあるまいか?
#個人的には、Wikipediaのノートでの議論は御免こうむりたい。。。
0187デフォルトの名無しさん
2006/09/12(火) 23:55:00(つまりはバックグラウンドのスレッド側)で例外投げたら
おんなじことになるんとちゃうの?
0188126
2006/09/12(火) 23:55:40┌――─┴┴─――┐
│ セルフサービス .│
└―――┬┬─――┘
││ ./
゛゛'゛'゛ /
/
| \/
\ \
\ノ
ガッ はセルフサービスになりました。
使用方法は以下のようになります
∧
ガッ< >_∧
= ()二)V`Д´)<ぬるぽ
\ヽ ノ )
ノ(○´ノ
(_ノ(__)
尚、使用方法を誤ると、最悪の場合、命を落とす危険性がございますので、
初めてご使用される方は、各都道府県に設置してある専門の窓口に相談下さい。
財団法人 全日本 ぬるぽガッ セルフ振興会
0189デフォルトの名無しさん
2006/09/13(水) 00:12:59WikipediaのことはWikipediaで議論しろ
まだ存在しない内容ならともかく既に存在するものなんだから、そこで議論するのが筋だろ
0190デフォルトの名無しさん
2006/09/13(水) 00:21:37>>157はスローされた例外をデバッガで受けて中断する方法を知りたかっただけ
で、その方法は例外の設定を行うだけの話
>>169の質問と>>182のレスを見て明確に分かる
多分それを知らない香具師が勝手に「絶対にIDEでキャッチできない」と思い込み、キャッチできない理由を思い込んで勝手に書いてるんだろ
そこから話がぶれて変な方向に流れている
特に>>179はデバッグ時の話であることも忘れて自分でキャッチしてエラー処理とか書いていてひどい
確かにコンポーネント内で完結してバブリングしてこない例外はあるが、明確に自分のコードで例外を書いていて上がってこないなんてのは無い
今回の何か出力ウインドウに明確に出てくるし、他のもデバッグ用の各種ウインドウを見ていれば気付くもんだと思うんだけどな
0191デフォルトの名無しさん
2006/09/13(水) 08:40:480192デフォルトの名無しさん
2006/09/13(水) 10:05:06まあよくわかんないラッパークラス使うときやDBアクセスの時は
try-catch入れるのは基本だろうけどな。
後々の為に最低でも自前でエラーハンドル用のDLLでも用意しておいて
イベントビューアーくらいには書き出すのが普通。
>>179の言ってることは最もだと思うが…
0193デフォルトの名無しさん
2006/09/13(水) 10:18:450194デフォルトの名無しさん
2006/09/13(水) 10:27:49それを使ってるパソコン音痴の人から"変なエラーが出てとまっちゃうんですけど"
とか言われたらどうするんだ?(ニヤニヤ
0195デフォルトの名無しさん
2006/09/13(水) 10:33:460196デフォルトの名無しさん
2006/09/13(水) 10:37:07デバッガなしで実行したときに例外が発生してること自体認識できないんだけどな。
0197デフォルトの名無しさん
2006/09/13(水) 11:05:17直に原因が特定できなくてクビ。"catch入れろよ、俺のバカ!俺のバカ!キャッチー、
キャッチにだまされたうわぁん…"といいながら後悔の暮らしを送ってしまうなw
0198デフォルトの名無しさん
2006/09/13(水) 11:38:38それはファイルやDBなどの物理アクセスや外部のデータを受け取って処理するところ
論理的に発生しないようなところは不要
そういうところで出た例外はApplication_Error/ThreadException/UnhandledExceptionEventHandlerで受け止めるべき
0199デフォルトの名無しさん
2006/09/13(水) 11:42:32>>196
0200デフォルトの名無しさん
2006/09/13(水) 11:45:28>デバッガで例外を取れない
これはVSの例外の設定で対応
>実行時に例外が起きているはずなのに何も起きないように見える
これはWebBrowserコンポーネントが例外を親に投げないために発生
内部でcatchするしかない
0201126
2006/09/13(水) 22:59:55┌――─┴┴─――┐
│ セルフサービス .│
└―――┬┬─――┘
││ ./
゛゛'゛'゛ /
/
| \/
\ \
\ノ
ガッ はセルフサービスになりました。
使用方法は以下のようになります
∧
ガッ< >_∧
= ()二)V`Д´)<ぬるぽ
\ヽ ノ )
ノ(○´ノ
(_ノ(__)
尚、使用方法を誤ると、最悪の場合、命を落とす危険性がございますので、
初めてご使用される方は、各都道府県に設置してある専門の窓口に相談下さい。
財団法人 全日本 ぬるぽガッ セルフ振興会
0202デフォルトの名無しさん
2006/09/14(木) 01:50:52struct {
int count;
char buf[1];
}
ただ実際はbufのサイズは1でなく可変でcountバイト数取られています。
これをC#で宣言するにはどうすればいいのでしょう?
char* bufではありません。
0203デフォルトの名無しさん
2006/09/14(木) 01:54:030204デフォルトの名無しさん
2006/09/14(木) 02:43:41int count;
char buf[0];
}
0205デフォルトの名無しさん
2006/09/14(木) 02:48:510206デフォルトの名無しさん
2006/09/14(木) 06:03:20C# 側では基本的に構造体を使えない。
0207デフォルトの名無しさん
2006/09/14(木) 06:20:42C#側でオフセット計算してMarshal.ReadInt16とかで自力アンマーシャルか。
今ヘルプみたらAllocHGlobalってLocalAllocのことか。わざわざDllImportしてたわ。
0208デフォルトの名無しさん
2006/09/14(木) 06:47:330209デフォルトの名無しさん
2006/09/14(木) 10:04:250210デフォルトの名無しさん
2006/09/14(木) 12:11:14MSDNに
「このメソッドは Kernel32.dll の LocalAlloc Win32 API を公開します」
って書いてあるんだよ。名前からしてGlobalAllocなのに。
>Win32 じゃ同じだけど
へー。
0211デフォルトの名無しさん
2006/09/14(木) 12:20:39どう読めばそう理解できるのか教えて欲しい
Marshal.AllocHGlobal メソッド (Int32) (System.Runtime.InteropServices)
http://msdn2.microsoft.com/ja-jp/library/s69bkh17.aspx
> Marshal.AllocHGlobal メソッド (Int32)
> GlobalAlloc を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。
> Marshal クラスにはメモリ割り当て API メソッドが 2 つ用意されていますが、AllocHGlobal はその 1 つです。
> (なお、もう 1 つは Marshal.AllocCoTaskMem です。このメソッドは Kernel32.dll の LocalAlloc Win32 API を公開します。
> LocalAlloc の詳細については、MSDN ライブラリを参照してください。
0212デフォルトの名無しさん
2006/09/14(木) 12:37:17閉じ括弧を脳内補完すればそう読めると言えないこともない。
まあ、一番上にGlobalAllocと書いてあるから普通は間違えないが。
0213デフォルトの名無しさん
2006/09/14(木) 12:44:43どうせカッコイイコメンツしようと思って慌てて斜め読みしたんだろ
0214デフォルトの名無しさん
2006/09/14(木) 12:52:55AllocHGlobal is one of two memory allocation API methods in the Marshal class.
(Marshal.AllocCoTaskMem is the other.) This method exposes the LocalAlloc Win32 API from Kernel32.dll.
For additional information about LocalAlloc, see the MSDN Library.
になってるな。英語版を見てたのかも知れんぞw
0215デフォルトの名無しさん
2006/09/14(木) 12:59:06説明の順序的にも意味的にも
0216デフォルトの名無しさん
2006/09/14(木) 13:09:380217デフォルトの名無しさん
2006/09/14(木) 13:10:02「このメソッド」はAllocHGlobalを指してる。
Reflectorで見たらAllocHGlobalは確かにLocalAllocを使ってるぞ。
0218210
2006/09/14(木) 13:53:41でMarshalのメンバ一覧のとこ。
0219デフォルトの名無しさん
2006/09/14(木) 14:29:32∩___∩ ∩___∩
♪ | ノ ⌒ ⌒ヽハッ __ _,, -ー ,, ハッ / ⌒ ⌒ 丶|
/ (●) (●) ハッ (/ "つ`..,: ハッ (●) (●) 丶
| ( _●_) ミ :/ >>212 :::::i:. ミ (_●_ ) |
___ 彡 |∪| ミ :i >>215 ─::!,, ミ、 |∪| 、彡____
ヽ___ >>217 ヽノ、`\ ヽ.....::::::::: ::::ij(_::● / ヽノ ___/
/ /ヽ < r " .r ミノ~. 〉 /\>>218 丶
/ /  ̄ :|::| ::::| :::i ゚。  ̄♪ \ 丶
/ / ♪ :|::| ::::| :::|: \ 丶
(_ ⌒丶... :` | ::::| :::|_: /⌒_)
| /ヽ }. :.,' ::( :::} } ヘ /
し )). ::i `.-‐" J´((
ソ トントン ソ トントン
0220デフォルトの名無しさん
2006/09/14(木) 14:44:54> Marshal.AllocHGlobal メソッド
> LocalAlloc を使用して、メモリ ブロックを割り当てます。
>
> Marshal.AllocHGlobal (Int32) GlobalAlloc を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。
どっちだよw
まあ、実際はLocalAllocなわけだが。
0221デフォルトの名無しさん
2006/09/14(木) 15:19:23関数名だけで判断しているとマイグレーションの時にやられるよ
0222デフォルトの名無しさん
2006/09/14(木) 15:24:460223デフォルトの名無しさん
2006/09/14(木) 15:25:46ヘルプの文面だけじゃなく、実装レベルでの回答希望
GlobalAlloc/LocalAlloc/HeapAllocの使い分けなんて16時代の遺物に振り回されるのはもういやだね
0224デフォルトの名無しさん
2006/09/14(木) 15:50:150225デフォルトの名無しさん
2006/09/14(木) 15:54:110226デフォルトの名無しさん
2006/09/14(木) 15:54:360227デフォルトの名無しさん
2006/09/14(木) 16:05:350228デフォルトの名無しさん
2006/09/14(木) 16:16:37おれ本当にわからん。
現状は大丈夫なんだけどMarshalクラスの実装が変更されても大丈夫なように
DllImportでLocalFree呼んだほうがいいのか?
0229デフォルトの名無しさん
2006/09/14(木) 21:57:290230デフォルトの名無しさん
2006/09/14(木) 22:04:360231デフォルトの名無しさん
2006/09/14(木) 22:23:35それみたんですよー。
複雑すぎるんですよー。
motion ditectと絡みが激しくないですか??
ちょっと消すとすぐバグが;
単純な機構を知りたいです。
0232デフォルトの名無しさん
2006/09/14(木) 22:49:42C♯でSystem.Net.WebRequestを使って、とあるPHPプログラムにPOSTするプログラムを組んでいます。
で、普通にpostするのは成功したのですが
//文字コード指定
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding("shift_jis");
//POSTするデータを作成,URLエンコードをする。
string postData = System.Web.HttpUtility.UrlEncode(str,enc);
//バイト型配列に変換
byte[] postDatabytes = System.Text.Encoding.ASCII.GetBytes(postData);
こんな感じで、URLエンコードをすると、PHP側の$_POSTが完全にNULLの状態になります。
PHP側かC♯側かで迷ったのですが、調べてみるとPHPはURLエンコードは自動でデコードするらしいので
URLエンコードしてない時に正常ならば、あちらは問題ないと判断しました。
で、C♯側を疑っているのですが、何か怪しいところはありませんでしょうか?
ちなみに、ヘッダ指定は
0233232
2006/09/14(木) 22:50:34System.Net.WebRequest req =
System.Net.WebRequest.Create("http://なんとか.net/");
//メソッドにPOSTを指定
req.Method = "POST";
//コンテンツタイプを設定
req.ContentType = "application/x-www-form-urlencoded";
//POSTするデータの長さを設定
req.ContentLength = postDatabytes.Length;
こんな感じです。
0234デフォルトの名無しさん
2006/09/14(木) 22:56:06http://dobon.net/vb/dotnet/internet/webrequestpost.html
ここのデータ見てやったでしょ?w
同じようにやってみて、コケた俺ガイル。
解決策なくて、結局投げた。
0235デフォルトの名無しさん
2006/09/14(木) 23:11:34そのPOSTってのは
age=17
とかだよね?
PHP側は、$_POST['age']って感じだろうけど
そのstrの中身はわからんので何とも言えんが、この例のage=までエンコードしてるんじゃないか?
0236デフォルトの名無しさん
2006/09/14(木) 23:24:08メモリ管理しっかりやりたきゃCやC++、
コンパイラでがたがた文句言うならインラインアセンブラ使えと
突っ込みたい人がいぱーいいるだろうね。
ガベージコレクションが100%信用できないC#なんて意味あるのかと…
0237デフォルトの名無しさん
2006/09/14(木) 23:30:510238デフォルトの名無しさん
2006/09/14(木) 23:43:57未だにVC++6/MFCでやってる部署はイタイですか?
0239デフォルトの名無しさん
2006/09/14(木) 23:51:080240デフォルトの名無しさん
2006/09/14(木) 23:51:330241デフォルトの名無しさん
2006/09/14(木) 23:58:190242デフォルトの名無しさん
2006/09/15(金) 00:06:19今、VC++6/MFCでやってるが開発効率悪くてやってらんね
0243デフォルトの名無しさん
2006/09/15(金) 00:12:43a |= 1;
の逆で特定ビットを0にするときはどうすれば?
0244デフォルトの名無しさん
2006/09/15(金) 00:14:440245デフォルトの名無しさん
2006/09/15(金) 00:14:450246デフォルトの名無しさん
2006/09/15(金) 00:16:19ありがとう
0247デフォルトの名無しさん
2006/09/15(金) 01:30:07と言う文字列を
TreeViewコントロールに
+ドリンク
-フード
+ハンバーガー
こんな感じで展開しないと行けないんですが、
Nodes.Addだと、出来ませんし、
何かうまい方法無いでしょうか?
もちろん,と+の法則はそのままに、文字列は動的に変動しますので・・・。
0248デフォルトの名無しさん
2006/09/15(金) 01:45:510249デフォルトの名無しさん
2006/09/15(金) 01:46:360250デフォルトの名無しさん
2006/09/15(金) 01:55:50その場合、2段以上の階層の深さに対応したりとかの、アルゴリズムがどうも思い浮かびません。
TreeView1.Nodes(0).Nodes.Addだったり、
TreeView1.Nodes(0).Nodes(0).Nodes.Addだったりで・・・
0251デフォルトの名無しさん
2006/09/15(金) 01:57:230252デフォルトの名無しさん
2006/09/15(金) 01:59:06再帰って知ってる?
0253デフォルトの名無しさん
2006/09/15(金) 02:07:04多分引っかかってるのは、そこに問題があるからだろうけど・・・
たとえば、フルーツとジュースがあり
フルーツの下に、バナナとリンゴがあって
バナナの下に、フィリピンバナナと台湾バナナがあるとする。
この場合、お前さんの考えてる構文だと表現できない。
0254デフォルトの名無しさん
2006/09/15(金) 02:09:15うあ、書いてみて気づいた書くまで気づかんかったorz
0255デフォルトの名無しさん
2006/09/15(金) 02:12:05とりあえず、紙の上にN分木の絵を描いてみな。
んで、それぞれのノードを表現するならば、後ろから順にROOTまでノードをたどればいいわけ。
そいつを表現すれば、ちゃんとツリー構造を作る事が出来る構文が出来るはず。
0256デフォルトの名無しさん
2006/09/15(金) 02:20:01それは確かにわかり易いかも知れないが、
無駄が多すぎるぞ。
階層が深くなったら、その1つ1つのノードのためにルートまでのノード全てを構文に残すのか?
実装すると、恐ろしくメモリを食うと思うが・・・。
この手の話には、もはや決まりごとのような方法がある。
それが
0257デフォルトの名無しさん
2006/09/15(金) 02:22:25分かれば苦労は無い。
0258デフォルトの名無しさん
2006/09/15(金) 02:25:05データと結果しかなく、どう展開するべきかの仕様が欠落している。
データと結果だけからすれば「,」「-」「+」をデリミタに分割してインデックスの若い順からデリミタに従って順に処理するだけで済む話。
再帰なんて不要でループと条件分岐だけ。
実際はそうじゃないだろ?
・同一レベルのノードの表現
・子ノードから親ノードへ戻る表現
・デリミタをエスケープする方法
色々考えるところがあるんじゃないの
C#云々以前に設計レベルで緩すぎるよ
0259デフォルトの名無しさん
2006/09/15(金) 02:57:18LiveMessengerのログイン画面のような
ログイン画面と、ログイン後の画面が同じフォームにあるようなタイプって
1つのフォーム上に全てのコントロールを配置してから、可視・不可視を切り替えてるのでしょうか?
それだと、ものすごくデザインがしにくいのですが・・・
0260デフォルトの名無しさん
2006/09/15(金) 03:02:530261デフォルトの名無しさん
2006/09/15(金) 04:04:09あとは、読み出し元の本物のフォームの、タスクバーやら何やらを全て不可視へ
これで、2つのフォームなのが1つのように見える
0262デフォルトの名無しさん
2006/09/15(金) 08:41:29「名称、数量、値段」(item)の数値が吐き出されてくるんですが
これをlistviewにDetail表示するために
文字列を結合して
"名称:数量:値段:名称:数量:値段"
のような文字列にし
作った文字列をtopicの数ごと分割、さらにitemごと分割して表示するクラスに渡して表示していたのですが
もっと上手な表示方法ありませんでしょうか・・・・
↓こんな表にしたいんです
┏━━━┳━━━┳━━┳━━┓
┃ ┃名称 ┃数量┃値段┃
┣━━━╋━━━╋━━╋━━┫
┃品名1 ┃りんご ┃10 ┃1000┃
┃品名2 ┃みかん┃30 ┃1500┃
┗━━━┻━━━┻━━┻━━┛
わかりにくくて申し訳ありませんが、よろしくおねがいします
0263デフォルトの名無しさん
2006/09/15(金) 08:46:410264デフォルトの名無しさん
2006/09/15(金) 09:02:58ごめんなさい
いってきます。
0265デフォルトの名無しさん
2006/09/15(金) 10:12:03機能別に作成したユーザコントロールを状況に応じて動的に切り替える
なんでも1フォーム上に放り込むのは避けるべき
0266デフォルトの名無しさん
2006/09/15(金) 11:09:04それやろうとしたけどタブの非表示方がわからない
0267デフォルトの名無しさん
2006/09/15(金) 14:21:52クライアントとサーバーの両方キボン。
0268デフォルトの名無しさん
2006/09/15(金) 15:14:47シリアライズ機能について質問があります。
フォームに自作コントロールを貼って、自作デザイナを開き
編集してあるプロパティにデータを書き込みます。
デザイン終了時に、resxファイルにシリアライズされたデータが出力されます。
resxファイルのシリアライズ情報を見ると目的のデータの先頭が以下のようになっています。
<data name="<コントロール名>.<プロパティ名>" mimetype="application/x-microsoft.net.object.binary.base64">
なぜか「type」が出力されません。
出力させるようにはどうしたらよいでしょうか?
ご存知の方がいらっしゃったら教えてください。
0269デフォルトの名無しさん
2006/09/15(金) 16:05:14http://207.46.196.75/vcsharp/programming/classlibraries/default.aspx?pull=/library/en-us/dndotnet/html/custcodegen.asp
参考にならん?
0270デフォルトの名無しさん
2006/09/15(金) 17:09:42http://www5.plala.or.jp/atata/net/
0271デフォルトの名無しさん
2006/09/15(金) 19:12:06どうしたらいいですか?
0272デフォルトの名無しさん
2006/09/15(金) 19:21:35閏秒どうなってんだろね?
0273デフォルトの名無しさん
2006/09/15(金) 21:10:59どうもです。
それでしてみます。
0274デフォルトの名無しさん
2006/09/15(金) 21:11:42でした。
0275デフォルトの名無しさん
2006/09/15(金) 23:27:20dataSet_ = new DataSet();
oleDbDAdpr_.Fill(dataSet_, "hoge");
Fillメソッドでエラーが発生します。
なぜですか?
0276デフォルトの名無しさん
2006/09/15(金) 23:44:520277デフォルトの名無しさん
2006/09/16(土) 00:18:52使っちゃいけないみたいなこと書いてあるけど、
じゃどうやってクリックイベントが起きないようにしろってんだ……
セパレータのくせに誤クリックに反応しやがってメニューが閉じてうざい。
いちおうEnabled= false で期待した動作にはなるけど
0278デフォルトの名無しさん
2006/09/16(土) 00:22:38その程度のコードのエラーが想像できないような奴は
どんなエラーかを知ったところで解決策がわかるとは思えんが・・・
0279デフォルトの名無しさん
2006/09/16(土) 00:34:34>>276ではないが、一般論として想像できようができまいがエラーの内容くらいは書くべき。
常識だろ。何をいまさら
0280デフォルトの名無しさん
2006/09/16(土) 00:43:170281デフォルトの名無しさん
2006/09/16(土) 00:43:46Wavファイルを扱う便利なクラスってありますか?
0282デフォルトの名無しさん
2006/09/16(土) 00:45:470283デフォルトの名無しさん
2006/09/16(土) 00:46:33うーそうですか
DirectXをちょっと見てみます
0284デフォルトの名無しさん
2006/09/16(土) 01:03:260285デフォルトの名無しさん
2006/09/16(土) 01:05:240286デフォルトの名無しさん
2006/09/16(土) 01:35:18ListViewコントロール使で、マウスでドラッグしてリストの中の項目の順番を入れ替えたいのですが
AllowColumnReorderプロパティーをTrueにしても、入れ替えが出来ません。
他に何かプロパティーがあるのでしょうか?
それとも、そういう処理は実装しないといけないのでしょうか?
0287デフォルトの名無しさん
2006/09/16(土) 01:44:07ListViewItem を並び替えたければ自分で組め
0288デフォルトの名無しさん
2006/09/16(土) 03:21:11自分で作ったToolTipならまだしも、
コントロールのinternalなフィールドのToolTipでエラーが出るときは
どうしたらいいんでしょうか。
特に終了時に例外がまれにでます。
スタックトレースみると
CheckReleaseやCreateHandle等で失敗(InvalidOperation)していますが、
再現性がありませんorz
0289デフォルトの名無しさん
2006/09/16(土) 06:52:35コーデックを入れたら、色んな形式に対応出来るようなのを作りたいのですが、
WMPって、MCIでしょうか?DirectShowなのでしょうか?
どちらも、プロパティにタグ情報を取得するようなのが無かったのですが・・・
また、C♯でWMPみたいなのを手軽に作るには、何かいい方法はないでしょうか?
0290デフォルトの名無しさん
2006/09/16(土) 09:13:31どういう使い方してるんだか。。。
漏れはToolTipを結構使ってるけど、発生したことがない。v1.1,2.0ともに
(デザイナでも、手動で両方とも使ったことがある。
>(自分の作った)コントロールのinternalなフィールドのToolTip
とりあえず、Designerで生成しているときのように宣言してる?
new ToolTip(this.components);とか
0291デフォルトの名無しさん
2006/09/16(土) 09:44:40WMPコントロールつかっとけ
0292デフォルトの名無しさん
2006/09/16(土) 11:12:34WMPのActiveXコントロール使うか、WPFのMediaElement使うと幸せになれるかもしれない
0293デフォルトの名無しさん
2006/09/16(土) 11:21:45VS2003 C# でコンソールアプリケーションを作成中です。
ユーザーが×ボタンを押したタイミングを拾いたいのですが可能でしょうか?
0294デフォルトの名無しさん
2006/09/16(土) 11:23:430295デフォルトの名無しさん
2006/09/16(土) 11:27:07確かに。
ユーザーによる終了のタイミングを拾いたいです。
無茶を言っていますが、C#ならもしや、、、と思い質問しました。
返答からすると無理っぽいですね。。。
0296デフォルトの名無しさん
2006/09/16(土) 11:53:32カスタマイズする方法は用意されていないのでしょうか?
0297289
2006/09/16(土) 12:52:05ありがとうございます。
なるほど、WMPのActiveXコントロールですが・・・
とりあえず、参照設定をしてみたんですが
使い方がわかりません。。。
MediaPlayerの中の名前空間の中を見てみたんですが、それっぽいのがMediaPlayerClassってのがありましたが
MediaPlayer.MediaPlayerClass mplayer = new MediaPlayer.MediaPlayerClass();
は出来ますが
mplayerと言うインスタンスは利用できないんです。
どのような方法で使うのでしょうか?
MSDNにも乗ってませんし、検索してもそれっぽいのはないんで・・・
0298デフォルトの名無しさん
2006/09/16(土) 13:17:190299デフォルトの名無しさん
2006/09/16(土) 13:37:33XmlSerializerのMSDNドキュメント
***OverrideAttribute
0300デフォルトの名無しさん
2006/09/16(土) 13:43:52がキャプション設定とかもできたりするので、ないとも限らんかもしれん。
まあ、ProcessExitだったかとか、DomainUnloadだったか、その辺のイベントでできるかもしれん。
この場合は×を押したか?なんてのは無理だが。
0301289
2006/09/16(土) 13:45:03ぉ、ポトペタは出来ました。
…が、.NETのフォームに貼り付けただけなのに、ソフトが起動しなくなりました。。。
貼り付けたのをはがすだけで起動します。
何か処理しなくてはいけない事があるのでしょうか?
コンパイル通るので、参照設定はうまく行ってる筈なんですが・・・
0302289
2006/09/16(土) 13:47:22'System.Runtime.InteropServices.COMException' のハンドルされていない例外が System.Windows.Forms.dll で発生しました。
追加情報: クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))
と出て、Form1.Designer.csの
((System.ComponentModel.ISupportInitialize)(this.axWindowsMediaPlayer1)).EndInit();
ここで止まります。
0303デフォルトの名無しさん
2006/09/16(土) 13:56:35WMP9から、何故かそのエラーが出るようになった。
本来はOCXが登録されてないため出るエラーだけど、確か他のマシンでもそうなるはず。
0304デフォルトの名無しさん
2006/09/16(土) 14:16:260305デフォルトの名無しさん
2006/09/16(土) 14:18:16Win64 だったとか。
0306289
2006/09/16(土) 14:27:44う〜ん、それをやっても駄目でした。
>>305
そうです!
すみません、最初に書いておくべきでした。
開発環境はWinXP x64なんです。
生成したバイナリは32bit機でも動きませんでした。
登録したWMP.DLLはSYSWOW64ディレクトリ内のものなのですが、それがいけなかったのでしょうか?
0307289
2006/09/16(土) 14:32:31生成したバイナリは32bit機では動きました。
なるほど、64bit環境自体での問題だったんですね。。。
どうもありがとうございました。
64bitでも動く方法があれば、ご提示いただけないでしょうか?
0308デフォルトの名無しさん
2006/09/16(土) 14:35:30動作環境をAnyCPUになってると思うけど
それをx86に限定する。
.NETは自動的に環境に合わせちまうから、多分64bitで動いてるんだと思う
そこに32bitのDLLのWMP.DLLを読み込むから、読み込めずに止まる(64bitアプリから32bitDLLは読めない)
0310デフォルトの名無しさん
2006/09/16(土) 18:22:45が使えないのでしょうか?
0311デフォルトの名無しさん
2006/09/16(土) 18:34:05MessageBox.Show(aa.GetHashCode().ToString());
こんな感じで出したハッシュコードが実行のたびに変わるんですけど
aaaって文字列ならずーっと同じハッシュコードを出すようにするにはどうすればいいのでしょうか?
あと、このハッシュコードのアルゴリズムを変える事は出来ないのでしょうか?MD5とかSHA1とかに
0312デフォルトの名無しさん
2006/09/16(土) 18:56:040313デフォルトの名無しさん
2006/09/16(土) 20:14:34いざとなったらC#でなくてもいいのでよろしくお願いします
0314デフォルトの名無しさん
2006/09/16(土) 20:16:500315デフォルトの名無しさん
2006/09/16(土) 20:25:14WM_CLOSE 送るのが正道だが
0316デフォルトの名無しさん
2006/09/16(土) 20:28:46>>314
ありがとうござします試してみます
0317デフォルトの名無しさん
2006/09/16(土) 21:00:460318デフォルトの名無しさん
2006/09/17(日) 00:38:07毎度変わるとは思えないんだが・・・?
0319デフォルトの名無しさん
2006/09/17(日) 00:46:36毎度変わるかは別として、
実行毎に同じオブジェクトのハッシュコードが同じであることは「保障されてない」。
ついでに言っておくと、同じことが保障されているのは、「実行時の同じオブジェクト同士」のみ。
# それ以外の場合は、変わっている場合もあるし、稀に同じ場合もある。
0320デフォルトの名無しさん
2006/09/17(日) 03:11:19そういうメソッドはありませんか?
片方のbyte[]データは、数Mのデータなので、一度stringに戻してから結合して〜って言う方法は使えないんで・・・
0321デフォルトの名無しさん
2006/09/17(日) 03:18:310322デフォルトの名無しさん
2006/09/17(日) 03:50:280323ご質問です。
2006/09/17(日) 03:58:57いらしましたらご伝授下さい。
下記形式にて日時(時間・秒)を取得したいのですがどの様にすれ
ば良いでしょうか?
<System.Date.Now.ToString()・・・>
具体的には【3時】の場合、24時間表示で【03】という風に
ゼロサプレスせずに表示させたいです。
【出力例】
2006 09 16 03 54
(年) (月) (日) (日) (秒)
0324ご質問です。
2006/09/17(日) 03:59:51【出力例】
2006 09 16 03 54
(年) (月) (日) (時) (秒)
0325デフォルトの名無しさん
2006/09/17(日) 04:09:25>>311は「stringオブジェクトの」ハッシュコードを得てるぞ。
文字列"aaa"のハッシュコードじゃない。
ヘルプをよく読むとわかるが、GetHashCode()で返ってくる値は
「文字列"aaa"を格納しているstringオブジェクト」のハッシュ値。
0326デフォルトの名無しさん
2006/09/17(日) 04:13:59Date は DateTime の間違いだと思うんだけど、一応
DateTime.Now.ToString("yyyy mm dd hh ss")
で
2006 09 16 03 54
になったような気がする。全く確かめていないが。
どうでもいいけど、「ご質問」って敬語の使い方として合っているのか……?
あと、0で埋めるのか埋めないのかをはっきりしてくれ。
0327デフォルトの名無しさん
2006/09/17(日) 04:18:51ToString("yyyy/MM/dd HH:mm:ss")
前ゼロは2桁
前ゼロなしなら1桁
3桁4桁にすると・・・ヘルプ嫁
0328デフォルトの名無しさん
2006/09/17(日) 05:02:46どういう実装になってるんだろ。
0329デフォルトの名無しさん
2006/09/17(日) 05:03:200330デフォルトの名無しさん
2006/09/17(日) 05:50:54ildasm.exe
mscorlib.dll の String.GetHashCode
0332デフォルトの名無しさん
2006/09/17(日) 06:17:47>>311の勘違いだと思う。
0333デフォルトの名無しさん
2006/09/17(日) 06:58:020334デフォルトの名無しさん
2006/09/17(日) 10:55:030335デフォルトの名無しさん
2006/09/17(日) 11:17:590336ご質問です。
2006/09/17(日) 11:50:39解決致しました。どうもありがとうございます(^-^:)b
0337デフォルトの名無しさん
2006/09/17(日) 13:16:42Console.ReadやConsole.ReadLine等のように実行処理が止まってしまうのは処理上マズイので、
キーボードの状態を取得するだけで良いのですが。
0338デフォルトの名無しさん
2006/09/17(日) 13:25:270339デフォルトの名無しさん
2006/09/17(日) 13:28:330341デフォルトの名無しさん
2006/09/17(日) 19:03:00Typeオブジェクトやリフレクションを使って、あるクラスから派生されているクラスを
すべて取得することってできませんか?
Type.BaseTypeを使えば、継承元を取得できますが、反対に派生クラスを取得する方法が
わかりません。
0342デフォルトの名無しさん
2006/09/17(日) 19:12:390343デフォルトの名無しさん
2006/09/17(日) 19:15:43オブジェクトブラウザでも派生型を見ると重いから簡単には取得できないはず。
0344341
2006/09/17(日) 19:26:43>>343
やっぱりその方法しかありませんか。
Typeのメンバになかったのでそういうのは無いんだろうなとは思ったんですが。。。
地道に探します。
0345デフォルトの名無しさん
2006/09/17(日) 19:43:56継承の考え方からすると、継承元から継承先を知ることができるのは、あってはならないんじゃないかね
ソリューション全体を客観的に管理する別の要素があれば別だけど、一般的には不要だしね
というか、なんで知りたいの?
ソリューション全体を客観的に管理するものを作りたいって事?
0346341
2006/09/17(日) 19:57:23やりたいのは、ある抽象クラスから作られた派生クラスをすべて画面上のコンボに動的に登録して、
それをユーザーから1つだけ選択できるようにしたいんです。
ほいで、選択されたクラスを使って処理を実行させるだけです。
そんなことは、コンボにあらかじめすべて登録しておけば済むって言われればそれまでですが、
画面のアプリと派生クラスを含む抽象クラスとは別のアセンブリで考えていて、
画面をいじらなくてもクラスライブラリ(DLL)のバージョンアップだけで対処するのがベストかなと。
そこで、リフレクションを使えばスマートにできないかなと思ったわけです。
0347デフォルトの名無しさん
2006/09/17(日) 20:16:240348デフォルトの名無しさん
2006/09/17(日) 21:57:41古い値読まれたりとか?
たとえば、
RegistryKey rk = Registry.CurrentUser.CreateSubKey( "hoge\foo" );
rk.DeleteSubkey( "hage", false );
rk.Close();
ってやる代わりに
Registry.CurrentUser.CreateSubKey( "hoge\foo" ).DeleteSubkey( "hage", false );
ってのはまずいですかね?
0349デフォルトの名無しさん
2006/09/17(日) 22:03:380350デフォルトの名無しさん
2006/09/17(日) 23:59:120351デフォルトの名無しさん
2006/09/18(月) 00:06:200352デフォルトの名無しさん
2006/09/18(月) 00:13:37と
using(IDisposable hoge = ...)
って意味が全然違うのに同じキーワードを使うのが気持ち悪い
0353デフォルトの名無しさん
2006/09/18(月) 00:32:520354デフォルトの名無しさん
2006/09/18(月) 00:39:170355デフォルトの名無しさん
2006/09/18(月) 00:43:320356デフォルトの名無しさん
2006/09/18(月) 00:47:540357デフォルトの名無しさん
2006/09/18(月) 01:09:300358デフォルトの名無しさん
2006/09/18(月) 01:13:12string[] ならあるが、まあそれくらい自作すれ。
0359デフォルトの名無しさん
2006/09/18(月) 01:23:24// まあ C# じゃなくて .NET Framework が正しいんだろうけど。
C# には無いのか。じゃあ何処で見かけたんだっけか……。
とりあえず thx でし。
0360デフォルトの名無しさん
2006/09/18(月) 01:38:24<br>など入れてもインテリセンスで参照するときに反映されないんですけど。
0361デフォルトの名無しさん
2006/09/18(月) 01:41:44つか改行が必要なんて既にサマリじゃなくね?
0362デフォルトの名無しさん
2006/09/18(月) 01:44:370363デフォルトの名無しさん
2006/09/18(月) 03:27:54昔まさにほぼそのままの機能を実装したことがある。
俺の場合はインターフェイスにしたと思うけど、
実装したクラスをアセンブリに入れたら自動でコンボの選択肢に入んのw
ああ全部地道に探したさ
0364デフォルトの名無しさん
2006/09/18(月) 04:02:320365デフォルトの名無しさん
2006/09/18(月) 05:51:430366デフォルトの名無しさん
2006/09/18(月) 05:54:300367デフォルトの名無しさん
2006/09/18(月) 05:58:340368デフォルトの名無しさん
2006/09/18(月) 05:59:430369デフォルトの名無しさん
2006/09/18(月) 06:05:59いや>>346と>>363に対応してコメントしたつもりだったんだけど。
なんかずれてる?
0370360
2006/09/18(月) 11:34:35すでにサマリじゃないのはそのとおりなのですが。
インテリセンスでもうちょっと補足情報をきれいに出せたらいいのにと
0371デフォルトの名無しさん
2006/09/19(火) 11:56:20あれってたしかXmlだから<br> じゃなくて、<br/>でどう?
試してないけど。
0372デフォルトの名無しさん
2006/09/19(火) 16:37:460373デフォルトの名無しさん
2006/09/19(火) 16:45:01今度あれば参加しますのでよろしくお願いします。
0374デフォルトの名無しさん
2006/09/19(火) 20:41:18どのように記述すればよいのでしょうか?
次のようなに書いたのですが駄目でした
private struct _kouzou
{
private int[] a;
private int b;
private int c;
}
int[] kouzou.a = new int[100];
0375デフォルトの名無しさん
2006/09/19(火) 20:43:35structのメンバーをPrivateにしてどうするの?
0376デフォルトの名無しさん
2006/09/19(火) 20:54:24struct _kouzou のコンストラクタ書いて、
public _kouzou(int size)
{
this.a = new int[size];
}
>>375
それは別にいいだろ。
public なプロパティ書けばいいんだし。
0377デフォルトの名無しさん
2006/09/19(火) 20:57:320378デフォルトの名無しさん
2006/09/19(火) 23:29:12a がアクセス可能として
_kouzou kouzou = new _kouzou();
kouzou.a = new int[100];
0379デフォルトの名無しさん
2006/09/20(水) 00:14:03Deserializeするとエラーになるのですが、XmlSerializer側でXml1.0の制約を無視するような設定にはできないのでしょうか?
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer _xs = new XmlSerializer(typeof(string));
_xs.Serialize(stream, "\u0007");
stream.Seek(0, SeekOrigin.Begin);
string obj = (string)_xs.Deserialize(stream);//ここで例外
}
0380デフォルトの名無しさん
2006/09/20(水) 00:21:02シリアライズ対象に直接文字列を入れるんじゃなくて url-encode するとか Base64 化するとかしたら
0381デフォルトの名無しさん
2006/09/20(水) 00:47:190382デフォルトの名無しさん
2006/09/20(水) 00:58:280383デフォルトの名無しさん
2006/09/20(水) 01:02:39そのアプリケーションを起動させているパソコンです。
つまり自分のパソコンです。
言葉足らずですいません。
0384デフォルトの名無しさん
2006/09/20(水) 01:32:56どれだというのは、そのパソコンにLANアダプターが複数あったり、
無線LANやモデムでもネットにつながっていた場合はIPアドレスは1つじゃないだろうということだろう。
.NET 2.0 ならSystem.Net.NetworkInformation名前空間に便利なのがいろいろあるからあたってみて。
0385デフォルトの名無しさん
2006/09/20(水) 01:59:51そしたら
TcpListenerで待機してて、接続要求を出してきた送信元の
IPアドレスを知るにはどうしたらよいか教えていただけるとうれしいです。
0386デフォルトの名無しさん
2006/09/20(水) 02:04:420387デフォルトの名無しさん
2006/09/20(水) 07:31:24Deserializeで失敗するというのが意外でした。
XmlSerializerのインスタンスを作成に成功し、
Serializeできた時点で元のオブジェクトとDeserializeしたオブジェクトは常に値が等しいことを期待しているので。
(well-formedかどうかなどに関心はない
Streamを渡したときの既定動作を変更できればよかったのですが
どうやら、XmlReader使うとなんとかなるみたいです。
0388デフォルトの名無しさん
2006/09/20(水) 10:42:18Accept してから Socket.RemoteEndPoint を取得
0389デフォルトの名無しさん
2006/09/20(水) 10:44:01ついでにIPアドレスが複数ある場合は列挙してユーザに選ばせるのがよくある手
じゃないだろうか
0390デフォルトの名無しさん
2006/09/20(水) 11:51:09ありがとうございます。
0391デフォルトの名無しさん
2006/09/20(水) 18:07:22このスレッドをSTAにしたいのですが、どうしたらよいのでしょうか。
Thread th = new Thread(...)
...
なら
th.SetApartmentState( ApartmentState.STA );
でいけるのですが……
0392デフォルトの名無しさん
2006/09/20(水) 19:17:25Thread.CurrentThread.SetApartmentState( .. )
じゃダメ?
0393デフォルトの名無しさん
2006/09/20(水) 19:18:33サーバー側のスレにも書いたんですが
ttp://pc8.2ch.net/test/read.cgi/mysv/1126008399/87
サーバーに対して
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postDataBytes.Length;
System.IO.Stream reqStream = req.GetRequestStream();
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
System.Net.WebResponse res = req.GetResponse();
↑ここでTryに引っかかります。
プログラム的な問題なのか非常に迷ってるんですが、どうなのでしょうか?
ちなみに、Apacheで運用しているサーバーでは問題ないのですが、もしC♯側から対策できるのであればご教示をお願いします。
0394デフォルトの名無しさん
2006/09/20(水) 20:04:250396デフォルトの名無しさん
2006/09/20(水) 20:06:150397デフォルトの名無しさん
2006/09/20(水) 20:16:330398デフォルトの名無しさん
2006/09/20(水) 20:20:47英文みたけど、POSTのLengthが正しく送信されてもダメって感じだな。
URL見たけど、ようするにレスポンスとれずに切断食らうって事でしょ。
どうみても、Lighttpdの問題。BBSの話では解決策は無い。オブジェクトの保持時間を短くするとかわけわからん事書いてるが
おそらく関係ないと思う。試してみたらいいけどさ
0399デフォルトの名無しさん
2006/09/20(水) 20:24:16webサーバがショボくて Expect100Continueに対応してないんでそ。
プログラムの頭で System.Net.ServicePointManager.Expect100Continue = false とかしてみては?
0400デフォルトの名無しさん
2006/09/20(水) 20:24:59タイムアウト弄るとか
>>398
Tryにひっかかるってなんだ・・・
って思ったら、>>393のスレと英文BBSに書いてたんだな、スマソ
0401デフォルトの名無しさん
2006/09/20(水) 20:27:09スレ参照しろとは態度でかいんじゃない?
0402デフォルトの名無しさん
2006/09/20(水) 20:35:10今回のコンパクトに絞れてるなら解決できる話だしな
普通に>>399のことがそのまま書かれてたじゃん
C♯スレだからしゃーない、英語読めない小学生なんだろ(藁
0403デフォルトの名無しさん
2006/09/20(水) 20:42:05英文BBSは別人だと思うよ。
結局Tryはタイムアウトだったんだろ。
0404デフォルトの名無しさん
2006/09/20(水) 20:50:430405デフォルトの名無しさん
2006/09/20(水) 20:53:40MangaDirectXを使いたいんですが
nVIDIAのCgとかも使えますか?
0406デフォルトの名無しさん
2006/09/20(水) 21:36:22STA にしたいなら Thread 使わないと駄目。
0408デフォルトの名無しさん
2006/09/20(水) 22:12:17Mangaにワロタ。Managedのことね。
HLSLを使おう。
Cgを使う理由はない。
0409デフォルトの名無しさん
2006/09/21(木) 00:51:110410デフォルトの名無しさん
2006/09/21(木) 03:07:44Excelそのものがインストールされてない環境(WindowsXP Home)で、動作するのかな?
もし動作しないのであれば、Excel以外で、MSが配布してるドライバか何かを別途インストール
すれば大丈夫、ってのがあれば教えてくらはい。
具体的には、
http://support.microsoft.com/default.aspx?scid=kb;ja;306572
ここでやってるようなことを、クライアントアプリでやりたいのだけれど。
上記URLのページ末の、
> この資料は以下の製品について記述したものです。
> Microsoft Excel 2002 Standard Edition
> Microsoft Excel 2000 Standard Edition
ってのが、Excelファイル作成に対して言っているのか、それの読込までに対して言っているのか、
わかんなくて。
0411デフォルトの名無しさん
2006/09/21(木) 03:23:190412デフォルトの名無しさん
2006/09/21(木) 04:48:14ガベージコレクタは便利なんですが、どうしてもその場でメモリ開放しなければならない状態がありまして・・・・
0413デフォルトの名無しさん
2006/09/21(木) 04:56:240414デフォルトの名無しさん
2006/09/21(木) 04:57:08つ 言語的にはgc、でも設計上はオブジェクトプールとかネイティブにたよったりとか
0415デフォルトの名無しさん
2006/09/21(木) 04:58:420416デフォルトの名無しさん
2006/09/21(木) 05:40:56解放しなきゃいけないのってメモリっていうより確保したリソースでしょ?
IDisposable実装しなっせ。
0417デフォルトの名無しさん
2006/09/21(木) 05:50:49>>412のケースではメモリが重要らしい
Dispose じゃどうにもならん
0418デフォルトの名無しさん
2006/09/21(木) 06:14:35unsing(classA a=new classA()){
//存続範囲
}
//ここで開放
0419デフォルトの名無しさん
2006/09/21(木) 06:15:580420デフォルトの名無しさん
2006/09/21(木) 07:56:530421デフォルトの名無しさん
2006/09/21(木) 08:27:26あるオブジェクトに色々役割を持たせたいときに、それぞれの役割に応じたインターフェースをもてば実行時には問題ないけれど、実装時にめんどくさい。
たとえば、ツリーのノードであるとともに画面の部品の一つであるようなものを作りたいときには実装がちょっとめんどくさくなる。
インプリメントを外部に全部委譲するのもめんどくさくてイヤンな感じです。
おまいら的にないすな方法あればよろ。
0422デフォルトの名無しさん
2006/09/21(木) 08:48:330423デフォルトの名無しさん
2006/09/21(木) 09:30:42質問を限定すればナイスな実装の方法を知りたいと言うことです。
0424デフォルトの名無しさん
2006/09/21(木) 11:10:28?
とりあえず初心者用の本嫁
0425デフォルトの名無しさん
2006/09/21(木) 14:05:080426デフォルトの名無しさん
2006/09/21(木) 16:43:46みたいな感じのコントローラ(クイックウォッチウィンドウとか)
って標準では装備されてないですよね。
複数階層表示できるプロパティとして使いたいんですが、
自作しないと厳しいでしょうか?
0427デフォルトの名無しさん
2006/09/21(木) 16:57:250428デフォルトの名無しさん
2006/09/21(木) 20:26:040429!426
2006/09/21(木) 20:32:270430デフォルトの名無しさん
2006/09/21(木) 21:47:580431デフォルトの名無しさん
2006/09/21(木) 22:06:04<configuration>
<system.web>
<identity>
0432デフォルトの名無しさん
2006/09/21(木) 22:43:16を作っているのですが、
処理のログを出力するために、複数件同時に更新等を行おうとしても、
処理するときは一件ずつ行うようにしたいので、
最初に用意してあるDataTableと同じ型の変数を用意し、
ImportRowを用いて取得したデータをコピー、処理をしていました。
しかし削除を行おうとすると、今のままではImportをしようにも
取得したデータが削除されているためできません。
そこで、呼び出した後、削除をする前のオリジナルのデータをImportしたいのですが、
その方法が分からないのです。
何か良い方法は無いでしょうか?
0433メモリリーク
2006/09/21(木) 23:08:35すが、【C#.NET】にて【Debug】モードで実行するとメモリは30M位で
安定しているのですが、一度【Release】EXEファイルを作成し、バッチファイル
よりキックをするとメモリをどんどん消費しています。
どの様にすれば改善されるでしょうか?
【Console.cs】
main()
{
//約2マン回分のループ処理
for(int i = 0 ; i <= 20000 ; i++)
{
// DLL内部のメソッドを呼び出し。
GC.Collect();
}
}
※下記を記述した後に、GC.Collect()を行っています。
DataTalbeA.Dispose();
DataTalbeA = null;
InstanceA inA = new InstanceA;
inA = null;
0434メモリリーク
2006/09/21(木) 23:11:25.NetにてDebug実行すると極端なメモリ消費が無いのに
バッチプログラムとして起動させるとメモリリークを起こしており
解決する事が出来ず大変困っています。
ご助言をお願い致します。
0435デフォルトの名無しさん
2006/09/21(木) 23:23:47が分からんことには。
GC.Collect();しなかったらどうなる?
0436デフォルトの名無しさん
2006/09/21(木) 23:29:02もしかしてcommitしたメモリも換算に入れてる?
どうやってメモリの使用量をチェックしたのか気になるス
0437デフォルトの名無しさん
2006/09/22(金) 01:24:23>>435
>// DLL内部のメソッドを呼び出し
>が分からんことには。
>GC.Collect();しなかったらどうなる?
DLLの中身としては、DB(A)から(金額)を取得し
計算した結果をDB(B)に登録するという処理をDLL内部でも
4重位のループ処理をしています(汗)こーいう仕様なんです。。。
GC.Collect()をしないとタスクマネージャでメモリの状態を確認すると
より一層右肩上がりでメモリを食潰します。
0438メモリリーク
2006/09/22(金) 01:28:05>もしかしてcommitしたメモリも換算に入れてる?
>どうやってメモリの使用量をチェックしたのか気になるス
すみませんが【commitしたメモリ】の部分がいまいち分かりません。
どういう意味でしょうか?
あと、メモリの使用量の確認はタスクマネージャで確認をしています。
※とある計算システムで内部的にシグマ計算(&べき乗・ルート計算)
とか相当ガチャガチャしています。
あと基本的な質問で申しわけ無いのですがクラスのインスタンス
の破棄を行う際には、
Instance_test i_test = new Instance_test();
i_test.hogehogeMethod();
i_test =null; // ←この記述で宜しいですよね?
0439デフォルトの名無しさん
2006/09/22(金) 01:30:560440デフォルトの名無しさん
2006/09/22(金) 01:32:37static 変数など永続的な変数でなければ、null の代入は必要ないし無意味ですよ。
どっちにせよGC されるまでは破棄されませんし。
0441メモリリーク
2006/09/22(金) 01:40:56>破棄可能なクラスのインスタンスについて、
>using () { ... } とか、Dispose とか使ってますか?
使って無いです。GC.Collect();メソッドさへ使ってしまえば問題無しかと
生温い考えをしておりました。
因みにusing () { ... } を使う場合にはGC.Collect();を使わなくても
良いのでしょうか?
>>440
>static 変数など永続的な変数でなければ、null の代入は必要ないし無意味ですよ。
>どっちにせよGC されるまでは破棄されませんし。
どうも勉強になりました。ありがとうございます。
本日、早速試してみます。ありがとうございました。
0442デフォルトの名無しさん
2006/09/22(金) 01:53:09具体的にはプロバイダのIP電話のクライアントを作りたいのです。
よろしくお願いします。
0443デフォルトの名無しさん
2006/09/22(金) 01:58:06そういう使えない新人みたいな質問の仕方されるといらいらするんだけど
0444(^-^) ◆MONSOON/qo
2006/09/22(金) 01:59:11パケットの形式がわかればいいのだよね
http://www.atmarkit.co.jp/fnetwork/rensai/voip02/01.html
0445442
2006/09/22(金) 02:26:40大雑把に書いてすいません。
パケットで1から書いていくのは難しいので
ライブラリを探してます。
商用のでそれっぽいのはあるのですが、
無料のは探せませんでした。。
0446(^-^) ◆MONSOON/qo
2006/09/22(金) 02:43:52http://opentechpress.jp/desktop/05/10/19/037219.shtml
0447デフォルトの名無しさん
2006/09/22(金) 06:12:58ListViewの現在選択されているアイテムの次のアイテムが選択されるようにしたいのですが
ListBoxのsetselectedのようなメソッドやプロパティーはないでしょうか?
0448デフォルトの名無しさん
2006/09/22(金) 07:46:040449デフォルトの名無しさん
2006/09/22(金) 08:00:20どうもありがとうございました。
おかげで解決しました。
this.listView1.Focus();
this.listView1.Items[0].Selected = true;
0450デフォルトの名無しさん
2006/09/22(金) 08:58:530451デフォルトの名無しさん
2006/09/22(金) 09:03:560452442
2006/09/22(金) 11:12:37コーデックのURLありがとうございます。
SIPの部分を書いてこれを使えばできそうですね。
ただSIPの部分を書くのも大変でして、
SIPのライブラリもないものでしょうか?
Javaにはjainというものがあるそうですが。(ただこれも具体的に使ってるドキュメントを書いてる人は少ないですね)
また、実際プロバイダとの通信になると方言等があると聞きますし、
いろいろ大変そうな気がします。
まだVOIPは敷居が高いという認識ですかね。。
0453デフォルトの名無しさん
2006/09/22(金) 11:15:15やろうとしてる事って、フォームにメディアプレイヤーのコンポネ貼り付けて『メディアプレイヤー作りました』
って言ってるのと大差ないぞ。
0454test
2006/09/22(金) 11:22:260455デフォルトの名無しさん
2006/09/22(金) 12:32:320456デフォルトの名無しさん
2006/09/22(金) 23:14:31LabelEditを有効にすると、左端の編集は出来るようになりますが
その他の項目が編集できません。
むしろ、左端を編集せずにその他の編集したいのですが、どうすればいいのでしょうか?
0457デフォルトの名無しさん
2006/09/22(金) 23:19:27ListViewにはラベル(左端)以外を編集する機能はありません。
0458デフォルトの名無しさん
2006/09/22(金) 23:22:290459神プログラマ
2006/09/22(金) 23:50:37お前ら自分で調べろ!
0460界王神プログラマ
2006/09/23(土) 00:04:410461チワワプログラマ
2006/09/23(土) 00:16:180462デフォルトの名無しさん
2006/09/23(土) 20:35:17UnicodeTextをサポートするアプリにもRtf形式をサポートするアプリにも入れたいのですが
ドラッグターゲットのTextで受け取る形式を知る方法はどのようにすればよいのでしょうか?
0463デフォルトの名無しさん
2006/09/23(土) 20:41:120464デフォルトの名無しさん
2006/09/24(日) 00:16:12(アプリケーションプロジェクトの設定ファイルが生成される位置は期待した場所に行くけど、
ライブラリプロジェクト内の設定ファイルが生成される位置は思った場所に行ってくれない)
プロジェクト LibProject内でSettings.settingを作成してアプリケーションの設定を保存できるようにし、
プロジェクト(LibProjectを参照したExeプロジェクト) AppProject内でLibProjectの設定を使うようにしてセーブすると
user\Local Settings\Application Data\配下に
AppProject.exe_Url_ub0xlxfhut0me....というフォルダ内にuser.configができてしまうのですが
これを(AssemblyCompany\AssemblyProduct\)の下に置かれるようにするにはどのようにしたらよいでしょうか?
0465デフォルトの名無しさん
2006/09/24(日) 12:22:50ウィザード使えば簡単だけど皆さんどうしています。
ゴリゴリコーディングする?
IDEでポトペタ?
0466デフォルトの名無しさん
2006/09/24(日) 13:55:52少し相談させてください。
あるクラスをクラスライブラリに定義してクライアントと
Webサービスの双方に参照させます。
Webサービスのメソッドに戻り値として参照したクラスを返させた場合に、
クライアント側では名前空間の違うクラスで返ってきてしまいます。
これをクラスライブラリのクラスとして直接返す方法あるのでしょうか?
わかり辛い説明とは思いますがよろしくお願いします。
当方の環境は
Windows XP Pro SP2
Visual Studio 2005 Standard Edition
です。
0467デフォルトの名無しさん
2006/09/24(日) 14:07:09アイテムの選択状態を保つ方法ってある?
試して失敗だった方法としては、ProcessCmdKey内で、フォーカスを移動するキーを検出したら、
LParamに論理和で0xffffffffc0000000を加えるというやり方がある。
msg.LParam = (IntPtr)((ulong)msg.LParam | 0xffffffffc0000000);
0xffffffffc0000000はコントロールキー押下を示すフラグ(のはず)
0468デフォルトの名無しさん
2006/09/24(日) 16:20:190469デフォルトの名無しさん
2006/09/24(日) 16:24:53シーッ!!!
きっと次期windo(ry
0470デフォルトの名無しさん
2006/09/24(日) 16:28:09Microsoft MVP for Visual Developer - Visual C#
なんて書いてる奴って
アフォですか?
0471464
2006/09/24(日) 17:34:23Windows Forms .NET: The Official Microsoft Windows Forms Community Site
http://www.windowsforms.net/FAQs/default.aspx?PageID=3&CategoryID=12&SubcategoryID=85&tabindex=3
0472464
2006/09/24(日) 17:43:35(hoge_Url_feazx4drhfz04whlzbalc0e3u4ovhai)の後ろの奴
調べてもなかなかでてきません。
どなたか教えていただけないでしょうか?
0473デフォルトの名無しさん
2006/09/24(日) 18:54:56ぐぐれ。
0474デフォルトの名無しさん
2006/09/24(日) 20:13:44遅い、上にメモリ食いのアプリなんてとてもじゃないが業務に不向き。
.NETでよくなったことはちょっとしたアプリなら簡単に作れるようになったことだけ。
業務使う場合は殆どは派生させてしまうので、VC6のときとならんら変わらない。
0475デフォルトの名無しさん
2006/09/24(日) 20:20:330476デフォルトの名無しさん
2006/09/24(日) 20:22:160477デフォルトの名無しさん
2006/09/25(月) 00:25:300478デフォルトの名無しさん
2006/09/25(月) 00:36:330479デフォルトの名無しさん
2006/09/25(月) 00:39:27だな。ってゆーか、JAVAだけで十分
JAVAのマイナーチェンジが多すぎるんだよねぇ
D言語とか( ´艸`)ウププ
0480デフォルトの名無しさん
2006/09/25(月) 00:45:54(*´・ω・)(・ω・`*)ネー
0481デフォルトの名無しさん
2006/09/25(月) 01:08:340482デフォルトの名無しさん
2006/09/25(月) 01:35:030483デフォルトの名無しさん
2006/09/25(月) 01:37:350484デフォルトの名無しさん
2006/09/25(月) 01:37:42JavaとC#(NETFX)は使えば使うほど違うぞ。
C#初期はその理論で十分通用したんだがな。
まぁなんでもいいから巣に帰れ。な。
0485デフォルトの名無しさん
2006/09/25(月) 02:59:11Java より C# のほうがかなり開発楽。
・・・1.4だからかもしれんけど。
0486デフォルトの名無しさん
2006/09/25(月) 03:11:11Windowsという土俵でjavaに負けたら存在意義ないからね。
0487デフォルトの名無しさん
2006/09/25(月) 03:18:05なんで、こんなに食うの?
っていうか、まだコード何も書いてなくて、適当にコンポネ貼り付けただけでかなり食う。
0488デフォルトの名無しさん
2006/09/25(月) 03:39:10おれも使用C#のメモリについて知りたい。。
0489デフォルトの名無しさん
2006/09/25(月) 03:48:501. タスクマネージャのメモリ使用量の表示は感覚的に変
SetProcessWorkingSetSizeについて調べてみよう!ディープに
知りたいんならInside Windowsを読もう!Vistaだと直ってるwらしい
2. CLRのチューニング、特性
恐らくある程度の耐フラグメンテーションやパフォーマンスのために
余裕がある環境では余裕があるように、チューニングされている。
つまり優先順位の問題。また、「JITエンジン自体」ももちろんメモリを消費する。
そういえば、個人的には起動時間に関して、Vistaでは予測不能。
SuperFetchのせいでかなり特性が変わる。
0490デフォルトの名無しさん
2006/09/25(月) 05:18:17.NET のもありそうだしな
0491デフォルトの名無しさん
2006/09/25(月) 08:00:02とりあえず、Windowを最小化してみよう。すぐに数メガに落ちるはず
タスクマネージャのメモリをそのまま信じちゃいけない。
0492デフォルトの名無しさん
2006/09/25(月) 09:16:58タスクマネージャのは色々なリソースから集めたざっくり値で、細かくは見れないし
0493デフォルトの名無しさん
2006/09/25(月) 09:41:410494デフォルトの名無しさん
2006/09/25(月) 12:15:15つーか、機能追加と仕様変更ではまた全然意味合いが違うし。
追加はあっても、変更はほとんどないだろ。
>>479
http://www.javainthebox.net/laboratory/J2SE1.5/contents.html
このあたり読んでから出直せ。
最近の JAVA は C# のマイナーチェンジ。
0495デフォルトの名無しさん
2006/09/25(月) 12:37:430496デフォルトの名無しさん
2006/09/25(月) 17:15:33わかる人いますか?
0497デフォルトの名無しさん
2006/09/25(月) 18:19:34おじいさんは、山へ芝刈りしたあと、川へ洗濯に。
おばあさんは、家で昼寝をしていました。
めでたしめでたし。
0498デフォルトの名無しさん
2006/09/25(月) 18:25:12います
0499デフォルトの名無しさん
2006/09/25(月) 21:35:59教えてくだちい><。。。
0500デフォルトの名無しさん
2006/09/25(月) 21:56:130501デフォルトの名無しさん
2006/09/25(月) 23:31:37>>496
手っ取り早いのは、WindowsMediaPlayerのクラスやらコンポネを使う。
あれで、曲名やらアーティスト名やら時間やら動画サイズやらを取得出来る。
ただし、COMなので、全部.NETでやりたいって人は使えないですけど
0502デフォルトの名無しさん
2006/09/26(火) 17:19:00回答ありがとうございます
コンソールアプリで実装したいのですが
WindowsMediaPlayerのクラスは取り込めたんだけど
うまく動いてくれません
ほかに方法はないでしょうか?
おねがいします
0503デフォルトの名無しさん
2006/09/26(火) 20:07:17とりあえずベターな方法としてファイルフォーマットにしたがって読み込む方法をお勧めしよう
0504デフォルトの名無しさん
2006/09/26(火) 22:01:020505デフォルトの名無しさん
2006/09/27(水) 01:57:05起動中、使用メモリが20〜30MBと大きくとても目立ちます。
小さく作るコツってありますか?
最悪、MFCで書き直しても言われかねない状況です。
0506デフォルトの名無しさん
2006/09/27(水) 02:01:25.NETアプリの正しいメモリ使用量はタスクマネージャーでは見れない。
ウインドウを最小化すると、ある程度正しいメモリ使用量が見れるらしいので、不安なら一度それで確認したら?
0507デフォルトの名無しさん
2006/09/27(水) 03:44:00フォームを最小化した時と同じでタスクマネージャのメモリ使用量の表示が減らせる。
それでプログラムの起動が早くなったりOSの動作が軽くなったりするわけではないし、
他のプロ不ラムが使えるメモリーが広くなるわけでもない。
ケースによっては無駄なページジングのために逆に動作が遅くなる可能性があるのも同じ。
客にWindowsのメモリ管理の説明をいちいちするのが面倒なときにはお勧め。
0508デフォルトの名無しさん
2006/09/27(水) 03:49:54っていうか、20〜30MBで
>最悪、MFCで書き直しても言われかねない状況です。
て。
何考えてんだか。
0509デフォルトの名無しさん
2006/09/27(水) 04:11:390510デフォルトの名無しさん
2006/09/27(水) 04:36:40SetProcessWorkingSetSize( GetCurrentProcess(), 0xffffffff, 0xffffffff);
こんな感じで限定しちまうってこと?
う〜ん、スワップの嵐の予感
0511デフォルトの名無しさん
2006/09/27(水) 05:16:29private void MouseDown(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
//位置を記憶する
mousePoint = new Point(-e.X, -e.Y);
}
}
private void MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
this.Location = new Point(this.Left + mousePoint.X + e.X, this.Top + mousePoint.Y + e.Y);
}
}
こんな感じでフォームをドラッグすると、ウインドウを動かせるコードを書いたのですが
MSのサイト含め色んな所でこのコードが紹介されていますが、これをやると通常のウインドウバーをドラッグした時に比べると
非常に動きが重いのです。
重いどころか、少しでもすばやくドラッグするとウインドウが付いて来れずに、マウスがウインドウの外に出てしまいます。
どうにか、通常のウインドウバー並の動きが欲しいのですが・・・・
0512デフォルトの名無しさん
2006/09/27(水) 08:11:21{
if (e.Button == MouseButtons.Left)
{
((Control)sender).Capture = false;
const int WM_NCLBUTTONDOWN = 0xA1;
IntPtr HTCAPTION = (IntPtr)2;
Message msg = Message.Create(this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, IntPtr.Zero);
this.DefWndProc(ref msg);
}
}
0513デフォルトの名無しさん
2006/09/27(水) 08:34:25SetProcessWorkingSetSize(p, -1, -1) でワーキングセットを限りなく縮小する。
大部分のページがワーキングセットから切り離され、ページング予定のページとしてメモリ上にキャッシュされる。
実際に使われている部分のページはすぐにワーキングセット戻される。
それ以外のページは時間とともに徐々にページングされたり、破棄されたりする。
OSや別のプロセスがメモリーを必要とする場合は優先してページングまたは破棄されたりする。
起動後すぐにSetProcessWorkingSetSizeを呼べば初期化のためだけのページを片付けることが出来るので
1回呼ぶくらいはいいんじゃない。
0514デフォルトの名無しさん
2006/09/27(水) 13:29:13むしろ
フォームをドラッグで検索かけると>>512か
[DllImport( "user32.dll" )]
private static extern int SendMessage( IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam );
[DllImport( "user32.dll" )]
private static extern bool ReleaseCapture();
private void Form1_MouseDown( object sender, MouseEventArgs e )
{
if( e.Button == MouseButtons.Left )
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MOVE = 0xf010;
ReleaseCapture();
SendMessage( this.Handle, WM_SYSCOMMAND, (IntPtr)(SC_MOVE | 2), IntPtr.Zero );
}
}
の方が一般的だと思うが
0515デフォルトの名無しさん
2006/09/27(水) 13:52:05> private static extern int SendMessage( IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam );
int?
0516デフォルトの名無しさん
2006/09/27(水) 13:52:400517デフォルトの名無しさん
2006/09/27(水) 18:29:04http://www.exconn.net/Blogs/team01/archive/2006/09/27/16329.aspx
0518デフォルトの名無しさん
2006/09/27(水) 19:49:16リファラーを設定してWeb上の画像を表示する方法を教えてください。
0519デフォルトの名無しさん
2006/09/27(水) 19:51:05巣に帰れ
0520デフォルトの名無しさん
2006/09/28(木) 01:04:37ListView.PointToClientがスクロールを無視した左上隅からの距離しか返さないから
ListViewItem.Positionと画面座標の変換ができねえええ
0521デフォルトの名無しさん
2006/09/29(金) 00:07:23win.form.textboxを継承したカスタムテキストボックスAを作成しました。
そしてそいつを、いくつかつめあわせてユーザコントロールBを作成しました。
Aではonkeypressイベントに処理を記述してあります
そして新たにユーザコントロールBにて、Aのkeypressイベントを記述しました。
このユーザコントロールBをフォームにはりつけて使用したところ、
ユーザコントロールに記述したカスタムコントロールAのkeypressイベントが発生しませんでした。
ちなみにカスタムテキストボックスAではなく、ただのwin.form.textboxをユーザコントロールBにはりつけて
keypressイベントを記述すると、そのイベントは発生しました。
なんかデリゲートだとかその辺の話なんだろうなあと思いつつ
どうすればイベントを発生させることができるのか質問したいと思いました。
どうかよろしくおねがいします。
0522デフォルトの名無しさん
2006/09/29(金) 00:18:520523デフォルトの名無しさん
2006/09/29(金) 00:19:04何かbaseの方呼ばなきゃいけないんだっけ?わかんね
0524デフォルトの名無しさん
2006/09/29(金) 00:35:35base.OnKeypress
っていうのをどこに書くのでしょうか・・・。
フォームのほう?
カスタムコントロール内に書こうにも、とりあえずkeypressイベント自体が発生しないので・・・
0525デフォルトの名無しさん
2006/09/29(金) 00:39:39自作テキストボックスのOnKeypress メソッドの任意の場所に。
base.OnKeypress によって継承元のOnKeyPress(遡ってControl.OnKeyPress)
で、KeyPress がファイアされる。
0526デフォルトの名無しさん
2006/09/29(金) 01:30:46自作のカスタムテキストボックスAのOnkeypressイベントには
base.OnKeypress
の記述はしてあります。
なぜ動かないか悩んでいます。
0527デフォルトの名無しさん
2006/09/29(金) 01:31:49じゃあ次はイベントハンドラにちゃんと設定してるか確かめないと名
0528デフォルトの名無しさん
2006/09/29(金) 11:43:200529デフォルトの名無しさん
2006/09/29(金) 11:55:41protected override void OnKeyPress(KeyPressEventArgs e)
{
//独自の処理
base.OnKeyPress(e);
}
の形式になってる?
0530デフォルトの名無しさん
2006/09/29(金) 12:13:17自分の書いた文章をよく読もう。
途中でイベントがすりかわってるぞ…
Aのイベントが発生しない
>ちなみにカスタムテキストボックスAではなく、ただのwin.form.textboxをユーザコントロールBにはりつけて
keypressイベントを記述すると、そのイベントは発生しました。
↑は無関係だろ?
基本がなってないよ。
オーバーライドも分かってるかどうか。
OnKeypressイベントって書いてあるのが怪しい。
OnKeypressメソッドをオーバーライドならbase.OnKeyPressは必要。
0531デフォルトの名無しさん
2006/09/29(金) 12:16:42イベントベースなら問題なしだった。
KeyPressイベント内でbase.OnKeyPress読むと無限ループだよ。
0532デフォルトの名無しさん
2006/09/29(金) 12:28:34UserControl内のカスタムテキストにイベントつなげて
いないだけのような気がします。
0533デフォルトの名無しさん
2006/09/29(金) 15:40:27再帰って知ってるか
0534デフォルトの名無しさん
2006/09/29(金) 15:50:55(゚д゚)ハァ?
0535デフォルトの名無しさん
2006/09/29(金) 18:39:480536デフォルトの名無しさん
2006/09/29(金) 19:20:25不帰
0537デフォルトの名無しさん
2006/09/29(金) 19:26:31you{ while(1); }
再帰か?
0538デフォルトの名無しさん
2006/09/29(金) 19:52:050539デフォルトの名無しさん
2006/09/29(金) 20:00:530540デフォルトの名無しさん
2006/09/29(金) 22:56:35作ってみたが、糞だな
特にDataGridViewはしょぼい機能しかないのにやたらメモリ食う。
あの程度なら自前で用意したほうがいいぞ
0541デフォルトの名無しさん
2006/09/29(金) 23:07:400542デフォルトの名無しさん
2006/09/30(土) 01:17:02なっています。
>>530
>OnKeypressメソッドをオーバーライドならbase.OnKeyPressは必要。
その処理はしています。
でも動かないのはなぜなのかなぁ、、と。。。
ちなみにテキストボックスAを継承したテキストボックスCに、同じくOnkeypressメソッドを記述します。
そしてフォームにはりつけると、きちんと呼び出されます。
この違いっていったいなんなのかなぁと・・
0543デフォルトの名無しさん
2006/09/30(土) 01:42:49悩むより手を動かしたほうがいい
問題の切り分けをするために、再現可能なコードでも練ると吉
0544デフォルトの名無しさん
2006/09/30(土) 04:37:10>悩むより手を動かしたほうがいい
オ○ニーしろって言ってんのかと思ったw
0545デフォルトの名無しさん
2006/09/30(土) 09:42:03問題の切り分けをするために、再現可能なコードでも練
(ったところで、どうせ解るわけないんだからティムポでもしごきながら寝)
ると吉
0546デフォルトの名無しさん
2006/09/30(土) 23:25:29aspx?ではjspやPHPのような感じのコードを入力していきますが、Javaに慣れすぎて何か変な感じがするのですが…
0547デフォルトの名無しさん
2006/10/01(日) 01:47:54変な感じと言われても慣れろとしか言えんな
0548デフォルトの名無しさん
2006/10/01(日) 02:35:24バイナリ動的生成ならashx使うほうがいいんだな、あと。
0549デフォルトの名無しさん
2006/10/01(日) 04:12:25まあお手軽にそれをやれるようにはじめから用意されているのがashxだ。
0550デフォルトの名無しさん
2006/10/01(日) 05:44:550551デフォルトの名無しさん
2006/10/01(日) 10:55:13埋め込みコンパイルに対応してるって位だけどな。
0552546
2006/10/01(日) 11:00:060553デフォルトの名無しさん
2006/10/01(日) 17:22:07その中でOnMouseLeave、OnMouseDown、OnMouseMoveをオーバーライドしています。
しかし、パネル上に別のコントロールを配置してしまうと
上記のイベントが発生しないようなのです。
なにか回避方法とかはありませんでしょうか?
可能な限りはパネル上のコントロールに依存しない方法で
回避したいなと思っているのですがやり方が思いつきませんでした・・・。
0554デフォルトの名無しさん
2006/10/01(日) 18:22:330555デフォルトの名無しさん
2006/10/01(日) 18:33:060556デフォルトの名無しさん
2006/10/01(日) 18:36:17base.OnSomeEvent(e) → this.OnSomeEvent(e)
↑
これが実行される
もちろんbaseは何が起こったかすらわからない
あれ、イベントをハンドルするのって明示的に書くっけ・・・・・・・・?
0557デフォルトの名無しさん
2006/10/01(日) 19:42:320558デフォルトの名無しさん
2006/10/01(日) 19:47:260559デフォルトの名無しさん
2006/10/01(日) 21:11:51>>556
イベントハンドルする方法はオーバーライド
OnSomeEvent(e)
イベントハンドラを追加するには、
SomeEvent += イベントハンドラ
0560デフォルトの名無しさん
2006/10/01(日) 21:19:210561デフォルトの名無しさん
2006/10/01(日) 22:09:45ユーザーコントロールの+=が正しいイベントハンドラに繋がっているか?
0562デフォルトの名無しさん
2006/10/01(日) 23:22:18SendMessage( this.Handle, WM_SYSCOMMAND, (IntPtr)(SC_MOVE | 2), IntPtr.Zero );
これの
SC_MOVE | 2
って ただのSC_MOVEだけなだめなの?
| 2 はいらんとおもうけど?
0563デフォルトの名無しさん
2006/10/02(月) 06:18:39一度リクエストを出すと、ブロッキングしてしまうんで、スレッドを分けて処理してたんですが
別スレッドから、現在の転送量を調べる方法は無いのでしょうか?
現在のデータの転送の歩調を調べたいので・・・
0564デフォルトの名無しさん
2006/10/02(月) 08:13:42HttpWebRequest 使え
0565デフォルトの名無しさん
2006/10/02(月) 08:15:58それなら後は Stream からの読み出し量を記録しとけば良いだけ
0566デフォルトの名無しさん
2006/10/02(月) 13:40:49イベントかオーバーライドかの区別は別として、553で書いている現象の原因は
マウスカーソルが配置したコントロールの上にあった場合、そっちのほうにイベントが
行ってしまうためでしょう。
タイマーでマウス位置を監視するのが良いと思う。
0567デフォルトの名無しさん
2006/10/02(月) 14:35:13ダメ、絶対!
0568デフォルトの名無しさん
2006/10/02(月) 15:27:46メッセージをフックなんかするより簡単でいいと思うけど・・
0569デフォルトの名無しさん
2006/10/02(月) 15:32:310570デフォルトの名無しさん
2006/10/02(月) 15:34:170571デフォルトの名無しさん
2006/10/02(月) 15:44:23{
control.MouseDown += control_MouseDown;
}
ではダメ?
0572デフォルトの名無しさん
2006/10/02(月) 16:03:02( ^ิิ౪^ิ)
0573デフォルトの名無しさん
2006/10/02(月) 16:08:00protected override void OnControlAdded( ControlEventArgs e )
{
e.Control.MouseEnter += new EventHandler( Control_MouseEnter );
e.Control.MouseLeave += new EventHandler( Control_MouseLeave );
base.OnControlAdded( e );
}
protected override void OnControlRemoved( ControlEventArgs e )
{
e.Control.MouseEnter -= Control_MouseEnter;
e.Control.MouseLeave -= Control_MouseLeave;
base.OnControlRemoved( e );
}
void Control_MouseEnter( object sender, EventArgs e )
{
this.OnMouseEnter( e );
}
void Control_MouseLeave( object sender, EventArgs e )
{
this.OnMouseLeave( e );
}
0574デフォルトの名無しさん
2006/10/02(月) 16:36:48それ Enter と Leave が個々のコントロール毎に発生するから、
パネル自体への Enter や Leave とは全然違ってメチャクチャやん。
0575デフォルトの名無しさん
2006/10/02(月) 16:41:58その都度座標チェックすればいいやん
0576デフォルトの名無しさん
2006/10/02(月) 17:40:330577デフォルトの名無しさん
2006/10/02(月) 17:46:480578デフォルトの名無しさん
2006/10/02(月) 19:49:20Visual Studio 2005 Service Pack 1 日本語版ベータを
ダウンロードセンターから提供開始しました (2006-10-02 23:56)
http://www.exconn.net/Blogs/team01/archive/2006/10/02/16346.aspx
0579デフォルトの名無しさん
2006/10/02(月) 20:48:230580デフォルトの名無しさん
2006/10/03(火) 04:26:25SomeWebService service = new SomeWebService( );
CredentialCache cache = new CredentialCache( );
cache.Add(new Uri(service.Url), "Negotiate", new NetworkCredential(userName, password, domain));
service.Credentials = cache;
として呼び出していますが、設定した資格情報は無視されこのプロセスの資格で認証されてしまいます。
設定した資格情報で認証させるにはどうすればいいのでしょう?
0581デフォルトの名無しさん
2006/10/03(火) 06:01:05Windows認証ってそういうものだから。
0582デフォルトの名無しさん
2006/10/03(火) 06:02:37ASP.NET開発サーバーでやってたから"localhost"のループバックで接続だから認証が有効にならないくさい。
IISにしたら直った。
0583581
2006/10/03(火) 06:14:520584デフォルトの名無しさん
2006/10/03(火) 06:43:49ハッシュ生成についてなんですが
privae string CreateHash(string Src)
{
System.Security.Cryptography.SHA1CryptoServiceProvider HashSHA1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
//バイト配列に変換し、ハッシュ生成
//byte[] has = HashSHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes(Src));
//ハッシュを16進数に変換し、string型として保存
string hash = "";
for (int i = 0; i < HashSHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes(Src)).Length; i++)
hash += HashSHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes(Src))[i].ToString("X");
Src = null;
}
続く
0585584
2006/10/03(火) 06:45:07∧∧ ∧∧ ダスゾ!ダスゾォオオオ!
(( (*゚Д゚) )) (; )
(( // 、) 、)∩))∧と ヽ
((〜((≡γ'⌒(((*´(| 〜))
し'`Jし'`ーイ_ノ"(ノ^ヽ)
ウウッ、ウグゥゥウゥゥゥッ…
0586デフォルトの名無しさん
2006/10/03(火) 06:49:070587デフォルトの名無しさん
2006/10/03(火) 06:50:33恥ずかしがらずに出て来い
0588デフォルトの名無しさん
2006/10/03(火) 06:58:12_field1.GetHashCode()+_filed2.GetHashCode()+_field3.GetHashCode()じゃあかん?
0589デフォルトの名無しさん
2006/10/03(火) 07:13:13現在、Webブラウザに張られたセッションID付きリンクを使って、リンクで指定されたセッションで通信する
ノータッチデプロイメントのプログラムを作ろうとしていますが、ノータッチデプロイメント側の
プログラムで、やらなければいけないことがわかりません。
どのようにすればよいのか教えていただけませんでしょうか。
現在の方法では、例外が発生してうまくいきません。
何か指定が足りないのでしょうか。
現在のコード
str_SessionID = セッションID
CookieCollection cookies = new CookieCollection();
cookies.Add(new Cookie("JSESSIONID",str_SessionID);
session.SetCookie(cookies);
よろしくお願いいたします。
0590デフォルトの名無しさん
2006/10/03(火) 07:17:53int なら GetHashCode もしないで単に足す。xor でもいいけど。
0591デフォルトの名無しさん
2006/10/03(火) 07:19:30ちょっと格好付けるならそれぞれに10−30辺りの素数(定数)を掛ける
0592デフォルトの名無しさん
2006/10/03(火) 07:25:050593デフォルトの名無しさん
2006/10/03(火) 07:40:23相関があるのならその相関の具合によって最適な方法は異なる
0594デフォルトの名無しさん
2006/10/03(火) 08:16:34Negotiateって書いとけば適当に選んでくれるらしいのだが
0595デフォルトの名無しさん
2006/10/03(火) 08:19:19>string hash = "";
>for (int i = 0; i < HashSHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes(Src)).Length; i++)
>hash += HashSHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes(Src))[i].ToString("X");
これあんまスマートじゃないよな。
1発でstring型に変換出来るのがあったような・・・
0596デフォルトの名無しさん
2006/10/03(火) 11:59:00return lhs<rhs;
}
みたいに書きたいけど不可?
Primitiv対応のみでも委員ですが・・・
0597初心者
2006/10/03(火) 12:24:01同じクラスのオブジェクトを二個生成したとき、そのオブジェクト内のオブジェクトは共有されてしまうのですか?
0598デフォルトの名無しさん
2006/10/03(火) 12:27:35C#でファイルのヘッダー部分(4byte)を書き換え中です。
現在、ファイルを全部読み込んで、4byteを書き換え、全部を書き込んでいます。
効率が悪いので、ヘッダー部分のみの書き込みを行いたいのですが、どうやれば良いのでしょうか?
0599デフォルトの名無しさん
2006/10/03(火) 12:33:46どうすればいいのか教えてください!
0600デフォルトの名無しさん
2006/10/03(火) 12:35:22ふらっとC♯, C#(初心者用) Part9
http://pc8.2ch.net/test/read.cgi/tech/1157855247/
>>598
FileStream で普通に FileMode.Open で開いて、Seek なり Position 変えるなりして
書き変えたいとこへ移動して、4バイト Write すればよいと思う。
0601デフォルトの名無しさん
2006/10/03(火) 12:37:35staticなフィールドはね。
非staticなフィールドはオブジェクト固有
0602デフォルトの名無しさん
2006/10/03(火) 14:22:13static bool Compare<T>(T lhs, T rhs) where T : IComparable
{
return lhs.CompareTo(rhs) < 0;
}
0603デフォルトの名無しさん
2006/10/03(火) 14:39:24この場合IComparableはどこから来るんでせう?
0604デフォルトの名無しさん
2006/10/03(火) 14:49:14「どこから来る」っていうのが意味わからんが、
エスパー回答するとSystem名前空間にあるよ。
ちなみに組み込み型はIComparableを実装してるんで
組み込み型しか使わないなら何も考えなくてOK。
0605デフォルトの名無しさん
2006/10/03(火) 15:59:13とりあえずprivate生成用のスタブコードははいてるようなんですが、結局エラーを吐かれます。
internal static global::MyLib.Node.TreeNode<Sweep.TopologyNode,Sweep.RouteTreeNode> CreatePrivate() {
Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject priv_obj = new Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject("My", "Sweep.RouteTreeNode", new object[0]);
return ((global::MyLib.Node.TreeNode<Sweep.TopologyNode,Sweep.RouteTreeNode>)(priv_obj.Target));
}
このコードでSweep.TopologyNodeとSweep.RouteTreeNodeがプライベートになっているんですが、両方に対してアクセスできない保護レベル、TreeNodeのアクセシビリティがCreatePrivateメソッドのそれよりも低いといわれます。
スタブ君が何やってるのかいまいちわかっていませんが・・・
0606デフォルトの名無しさん
2006/10/03(火) 18:09:46C#だけで実装するのは不可能?
どうあがいてもコンパイラエラーになるんだけど
0607デフォルトの名無しさん
2006/10/03(火) 18:33:39IntPtr ptr = IntPtr.Zero;
byte* p = (byte*)ptr;
for (int i = 0; i < array.Length; ++i)
*(p+i) = array[i];
こういうこと? テストはしてないがコンパイルは通る。
0608606
2006/10/03(火) 19:25:51{
byte* p = (byte*)source.ToPointer();
for (int i = startIndex; i < startIndex + length; i++)
destination[i] = *(p + i);
}
これでうまくいきました。ありがとう。
なんで今までわからなかったんだろ
0609デフォルトの名無しさん
2006/10/03(火) 19:42:05全角入力時、テキストボックスのKeyDownイベントでe.keycodeの値を拾うと、
値が何を押してもProcessKeyになってしまいます。
IMEの全角入力字に打たれたキーを取得し、ローマ字を作りたいのですが、
どうすればいいでしょうか?
0610デフォルトの名無しさん
2006/10/03(火) 22:33:260611デフォルトの名無しさん
2006/10/03(火) 23:04:44マウスを上に持っていくと青い半透明の矩形が描画されるタイプのボタンですが
これを普通のフォームでボタンとして使いたいのですが
方法はありますでしょうか?
Win32APIを使っても構いません。
かなりださいですが、自前でDraw系のメソッドを使ってそれらしいのを
作ることはできましたがそれようのAPIがあると思うのです。
よろしくお願いします。
0612デフォルトの名無しさん
2006/10/03(火) 23:21:31>visual studio 2005 等のツールバーのボタン
ってToolStripのボタンみたいなやつのこと?
APIなんてあるわけない。
PanelにToolStrip乗っけてそこにToolStripButtonでどうか。
ToolStripのRendererで背景を描かないようにすればなんとか。
まあ自前描画したほうがよさそうだが
0613デフォルトの名無しさん
2006/10/03(火) 23:45:44やっぱないですか・・・
たとえばですが、SleipnirとかJaneStyleとかのツールバーは
どうやって描画してるんですかね?
やっぱみんな自前描画なのかな・・・。
作者じゃなきゃわかんないよね。
きいたらおしえてくれるんかな
0614デフォルトの名無しさん
2006/10/03(火) 23:56:09VS2005のツールバーと、SleipnirとかJaneStyleとかのツールバーは
全然違うやんけ
あっちはただのToolbarWindow32(+VisualStyle)でしょうが
0615デフォルトの名無しさん
2006/10/04(水) 00:42:480616デフォルトの名無しさん
2006/10/04(水) 03:47:07{
Console.WriteLine( "KawaisOS Ver.-1 (´・ω・)" );
Console.WriteLine( "(C) Copyright 1985-2001 Kawaisosusoft Corp.\n" );
while( true )
{
Console.Write( "C:>" );
if( Console.ReadLine() == "ver" )
Console.WriteLine( "KawaisOS Ver.-1 (´・ω・)\n" );
else
{
Console.WriteLine( "コマンドまたはファイル名が違います。\n" );
}
}
}
0617デフォルトの名無しさん
2006/10/04(水) 15:06:48/* と打って改行すると
* とかつくのやめさせるにはどうするの?
教えれ。
0618デフォルトの名無しさん
2006/10/04(水) 16:05:000619デフォルトの名無しさん
2006/10/04(水) 16:06:22あれうっとおしいと思ってたのは俺だけじゃなかったか。
0620デフォルトの名無しさん
2006/10/04(水) 17:42:590621デフォルトの名無しさん
2006/10/04(水) 17:48:350622デフォルトの名無しさん
2006/10/04(水) 17:55:34あれをコマンドラインからやるにはなんというコマンドつかいますか?
0623デフォルトの名無しさん
2006/10/04(水) 18:31:220624デフォルトの名無しさん
2006/10/04(水) 18:52:13できた。ありがとう。
0625デフォルトの名無しさん
2006/10/04(水) 20:23:55"$(VSInstallDir)"\SDK\v2.0\bin\gacutil /if "$(TargetPath)"
としましたがVSInstallDir変数がVC++でしか定義されていないので実行できません。
vc#はどこで定義するのでしょう?
0626デフォルトの名無しさん
2006/10/04(水) 21:08:44質問なのですが、現在アクティブになっているWebブラウザから、テキストを
抽出するプログラムを書きたいのですが、その実現方法にはどの様な方法が
あるのでしょうか?
(板違いだったらすいません。)
0627デフォルトの名無しさん
2006/10/04(水) 21:17:41どのブラウザなのかも書いてないし。
ブラウザ拡張にしたいのか単独アプリなのかも書いてないし
そこまで面倒みきれません。
0628デフォルトの名無しさん
2006/10/04(水) 21:24:32すいません。説明が足りませんでした。
ブラウザはIE6.X.X系です。
実現方法については、ブラウザ拡張(Plugin)にするのか単独アプリにするのかの2つを
考えているのですが、調べてみたところ単独アプリの方が実現しやすい用なので、
単独での実現方法を教えていただけるとありがたいです。
0629デフォルトの名無しさん
2006/10/04(水) 21:35:570630デフォルトの名無しさん
2006/10/04(水) 21:38:59Pluginと単独アプリを比較して実現しやすそうだなと思っただけなので、
具体的な実現方法については分かっていません。
何か具体的な良い実現方法がありましたら教えていただけますか?
0631デフォルトの名無しさん
2006/10/04(水) 21:48:00バッチを書くほうが楽だからバッチで作ろうと思った
ってのと同じ理屈じゃないか
0632デフォルトの名無しさん
2006/10/04(水) 21:55:17COMでできます。
Shell.Application のインスタンスを作って Window を列挙して、
IE のウィンドウを見つけたらInternetExplorer.Application インタフェイスを取得して、
Document プロパティで IHTMLDocument とかが取れるのであとは簡単だと思う。
C# でも簡単にできると思うけど、今忙しいので具体的なコードは示せない。
0633デフォルトの名無しさん
2006/10/04(水) 22:14:09有難う御座います。早速調べてみます。
0634デフォルトの名無しさん
2006/10/04(水) 22:41:590635デフォルトの名無しさん
2006/10/04(水) 23:07:46Graphics.DrawImageを使ってPictureBoxに巨大なBitmap(5000x5000くらい)を
表示しようとすると表示がかなり遅くなってしまいます。
一方、小さなBitmap(1024x768)を同じように表示すると
巨大なBitmapの時ほど遅くなりません。
どちらもディスプレイサイズ(1024x768)は同じなので、
結果的に描画される(見える)範囲のサイズは同じなのですが、
DrawImageを使うとBitmap全体を(見えないところまで)描画しようとしまっているようです。
そこでSetClipメソッドやClipプロパティでクリッピング領域を指定してみたのですが、
描画速度に変化はありませんでした。
巨大なBitmapの見える範囲だけを描画するシンプルな方法はないでしょうか?
0636デフォルトの名無しさん
2006/10/04(水) 23:19:01ソース側矩形も指定して、見える範囲だけを描画すればいいと思う。
0637デフォルトの名無しさん
2006/10/04(水) 23:52:03dstRectにはディスプレイのサイズが、
srcRectにはdstRectと同じサイズが指定してあります。
g.DrawImage(bgImage, dstRect, srcRect, GraphicsUnit.Pixel);
ですが、これだけだと描画は遅いままになってしまいます。
0638デフォルトの名無しさん
2006/10/05(木) 00:12:430639デフォルトの名無しさん
2006/10/05(木) 00:50:20> bgImageを切り取れ、ってことじゃ?
残念ながらそれしかないですかね。
巨大なBitmap(5000x5000)をスクロールして表示したいと考えていたので、
スクロール時に毎イベントごとに切り取りをすると
余計に処理が重くなってしまいました。
(ひょっとしたら.NETはこれが高速なのか?とか期待したんですが、やっぱりダメでした。)
なので、次善策として巨大なBitmapを適当なサイズ(256x256とか)に切り分けて、
これをタイルパターンのように表示する方法で試してみます。
0640デフォルトの名無しさん
2006/10/05(木) 00:53:500641デフォルトの名無しさん
2006/10/05(木) 00:54:540642デフォルトの名無しさん
2006/10/05(木) 01:05:350643デフォルトの名無しさん
2006/10/05(木) 09:32:040644デフォルトの名無しさん
2006/10/05(木) 10:05:55[return: MarshalAs(UnmanagedType.Bool)]ってつける必要あるでしょうか?
pinvoke.netで調べてみると、IsIconicには付いているんですが、ほかに
いくつか見たやつには付いていませんでした。
0645デフォルトの名無しさん
2006/10/05(木) 13:31:48Unscaleでやっても駄目だったらもう駄目かな。
どっちにしろタイルにしないとブロック領域での転送は
出来ないので仕方ないだろう
0646デフォルトの名無しさん
2006/10/05(木) 14:11:59UnmanagedType.Bool (32bitのBOOL)が既定のマーシャリングだから、
なにも付けなければUnmanagedType.Boolになる。
つけなくてもいいが、コード分析とかだと警告が出る。
http://msdn2.microsoft.com/en-us/library/ms182206.aspx
0647デフォルトの名無しさん
2006/10/05(木) 17:00:30DataGridViewについてですが
DataSetをDataSourceにセットしデータを表示させています
で、ColumnHeaderをクリックし自動でソートさせても
CurrentRowが同じ位置になってしまいます
例)
ソート前
1<選択
2
3
ソート後
3<選択
2
1<ココを選択していて欲しい
コレを回避するためにRowEnterイベントでRowのKeyを記憶しておき
ソート後にそのキーに元にCurrentRowを設定しようと思ったのですが
ソート直後にRowEnterが発生してしまい
上記例では3のKeyを覚えてしまいます
現在はRowValidatedイベントでKeyを取っていますが
何か他に方法などありますでしょうか?
0648デフォルトの名無しさん
2006/10/05(木) 22:33:46;:;:; ,、-ー-、 ど
;:;: ,r'"´ ̄`ヾ、 明 う
;:;:. リ ,,, ニ ,,,_ ヾト、 る だ
:;:;:;. ,ハ ^7 ,^ !.:.\ く
;:;:;: /.:.:.V,r''''''ゞyイ.:.:.:.:..ヽ な
;:;:. ノ.:!:.:.:.:`ゞ-<7.:〉.:.:.:i.:.:} ろ つ
从 __ _,,,/.:.:/:.:.:.:.:.:| }-{/i.:/.:.:.:.:|.:/ う た
从从C# }と_」.:/!.:.:.:.:.:.:.!  ̄ リ.:.:.:.:.:り ?
 ̄ ̄  ̄ |.:.:.:.:.:./_ :__ヽ.:.:.:.:\
\/.:.::..:.:.:.:.:.:..:\:.::./
/.:.:.:.:.:.:.「^Y.:.:.:.:.:.:|´
{.:.:.:.:.:.:.:.| ,!.:.:.:.:.:.:|
__ \.:.:.:.:.:.V.:.:.:.:.:.:.:|
/.:.:./ンく";;〕 \.:.:.::|.:.:.:.:.:.:.:!
ヽ;::/::::::....;;;ヽ、 > 'ゝ─‐イ、
ヾ;;;;;;;;:::...;;;;〈 `ー' ``''ー‐'
‘ー.く`ヽイュ、
ソ´・ ̄ス_ お 暗 :::::::::::::::::::::
./ ・ ・、√: : : ヽ ら 靴 く :::::::::::::::::::::::
>.= イ: : : : : ;_;| な が て ::::::::::::::::::::::
/l_"/( ヽ}: : : : .] い わ :::::::::::::::::::::::::
`ー――` \ : : : イ わ か :::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
0649デフォルトの名無しさん
2006/10/06(金) 00:03:300650デフォルトの名無しさん
2006/10/06(金) 00:16:52って話じゃないかなっ
0651647
2006/10/06(金) 09:33:13レスありがとうです
色々試しているのですが
イベントの順番としては
1)RowEnter
2)(ソート操作)
3)RowEnter←ここでCurrentRowが変わってしまう
4)Sorted or ColumnHeaderClick
という感じなのです
0652デフォルトの名無しさん
2006/10/06(金) 12:29:400653デフォルトの名無しさん
2006/10/06(金) 12:42:34たとえばp0とp1を作っといて、
1)RowEnter →p1=p0、現在のアイテムをp0に記録
2)(ソート操作)
3)RowEnter←ここでCurrentRowが変わってしまう
→p1=p0、現在のアイテムをp0に記録
4)Sorted or ColumnHeaderClick
位置をp1に。
0654デフォルトの名無しさん
2006/10/06(金) 12:54:570655デフォルトの名無しさん
2006/10/06(金) 13:15:170656デフォルトの名無しさん
2006/10/06(金) 17:39:24�@ VC#2005、Winアプリにて自exeのverを取得する方法。
�A 同じくGUIDを取得する方法。
�B クラスライブラリを作って(dllが出来ますよね)ライブラリ内のクラスにて
呼出し元のアプリのGUIDを取得する方法。
0657デフォルトの名無しさん
2006/10/06(金) 17:50:250658647
2006/10/06(金) 20:18:48皆さんの意見も参考に
半日悩んだ結果以下のような解決方法を取りました
設定として
DataGridViewの各Colummでsortmodeをprogrammaticに設定
そうする事でColumnHeaderClickイベントが最初に起こることを発見
1)(Row選択)←RowEnterが発生。ここでKey保持
2)(ソート操作)←ColumnHeaderClick発生。ここでソートフラグを設定
2-1)DataGridView.Sort実行
2-2)RowEnter発生←ソートフラグによりKey保持無視
2-3)1で保持したKeyを元にCurrentRow設定
2-4)ソートフラグ解除
※2-1〜2-4まではColumnHeaderClickイベント内
という感じで落ち着きました。皆さんどうもありがとうございました。
補足
DataGridView.Sort実行すると
CellのBackColorやチェックボックのValueがクリアされるので
ソート前に必要な情報は保持し
ソート後に設定しなおさないといけない
>>655
そうですね
sortmodeをAutomaticのままで
DataSet使わずにRowAddでやると
選択行を保持してくれるんですが
データ量が多いとRowAddだとレスポンスがよくないので断念しました
0659デフォルトの名無しさん
2006/10/07(土) 22:09:560660デフォルトの名無しさん
2006/10/07(土) 22:44:090661デフォルトの名無しさん
2006/10/07(土) 23:10:400662デフォルトの名無しさん
2006/10/08(日) 11:52:050663デフォルトの名無しさん
2006/10/08(日) 20:29:38Visual Studio 2005の場合、APIレファレンスってどうやて作るんですか?
いくら調べてもやり方がでてこないんですよね。
どなたかご存知ではないですか?
ご存知の方、お聞かせ下さい。
よろしくお願いします。
0664デフォルトの名無しさん
2006/10/08(日) 20:41:23つwankuma
0665デフォルトの名無しさん
2006/10/08(日) 20:45:11つndoc
0667デフォルトの名無しさん
2006/10/08(日) 23:33:400668659
2006/10/09(月) 01:10:42参加人数30人ぐらいのコミュって入り辛い。
しかもMVPばっかじゃないか。
0669デフォルトの名無しさん
2006/10/09(月) 01:24:01wankumaでブログ書くからMVPになれるんだろw
0671デフォルトの名無しさん
2006/10/09(月) 01:33:32>Q. メンバに Microsoft MVP の方が多くて、参加に躊躇しちゃうんですけど・・・
>A. 躊躇しないでください。
とかってあるけど、よっぽど自信のあるヤツじゃなきゃ躊躇するだろw
0672デフォルトの名無しさん
2006/10/09(月) 01:57:16チャンスじゃん。
0673デフォルトの名無しさん
2006/10/09(月) 02:07:520674デフォルトの名無しさん
2006/10/09(月) 11:59:45君はオープンなblogを書くのに向いていない
やめとけ
0675デフォルトの名無しさん
2006/10/09(月) 13:31:27シリアル化されたファイル(SOAP)から、
IDeserializationCallback.OnDeserialization で、逆シリアル化しようとしても、
string や、int などの値データは読み出せるのですが、
独自のクラスのフィールドが上手く読み出せません。
OnDeserializationが呼び出されている以上、
オブジェクトグラフすべての逆シリアル化は完了しているはずで、
おまけに OnDeserialization 内で SerializationInfo の GetValue を使っても、
例外はスローされず、読み出し自体は成功しているように見えます。
なのに、変数のフィールドはすべてnullや0が埋まっています。
(変数自体はnullではない)
不思議なのは、GetValue を使った後の変数のフィールドとして保持してある
SerializationInfoの変数内には、本来欲しいはずのフィールドデータがすべてそろっている点です。
要は、このデータをフィールド内に取り込みたいのですが、
何か方法が間違ってるのでしょうか?
0676675
2006/10/09(月) 14:06:03お騒がせしました。(;´Д`)
0677デフォルトの名無しさん
2006/10/09(月) 14:16:53どういう問題だったのか書いてくれるといいな。
0678675
2006/10/09(月) 14:44:53簡単に言えば、AとBという二つの独自のクラスがあって、
B は A のフィールドデータなので、A をシリアル化する際には、
両方のシリアル化が必要でした。
B はオブジェクトですが、Bのフィールドには値型のデータしか含まれてません。
A を逆シリアル化する際、さっきも書いた通り B はオブジェクトなので、
A にはオブジェクトグラフの逆シリアル化が完了したときに入ってくる
OnDeserialization を実装しましたが、その際に、A のコンストラクタには、SerializationInfo を private メンバとしてフィールド化しました。
B のシリアル化関連のコーディングをする時、A のソースをそのままコピって
張り付けたときに、B のコンストラクタ内で SerializationInfo のメンバもコピー
するコードを張り付けてしまっただけで、コンストラクタ内で 本来行うべき
SerializationInfo からの読み出しをしてなかったのです。
でも、B のフィールドとしてSerializationInfoを保持しているため、
A を逆シリアル化した再に、Bのデータはすべてnull、
B のフィールドであるSerializationInfoには、正当なデータが格納されているという
おバカなことが起こったわけです。
0679デフォルトの名無しさん
2006/10/11(水) 18:32:430680デフォルトの名無しさん
2006/10/12(木) 10:26:23過去ログに有ったら申し訳ありません。
VS2005環境でMDIアプリを作っているのですが、
EXCELの様にMDIの子ウィンドウをタスクバーに表示する事は可能ですか?
よろしくお願いいたします。
0681デフォルトの名無しさん
2006/10/12(木) 17:42:060682デフォルトの名無しさん
2006/10/12(木) 17:44:06http://www.runan.net/program/tips/sdk_10_ITaskbarList.shtml
0683680
2006/10/12(木) 19:43:49ご回答ありがとうございます。
>682
実際にまだ試してないですけど、
予想はしてましたがやっぱりこういう方法になるのですね。
とりあえず…
今新案件の設計段階で、
お客さんからMDI案で質問の様な事ができる必要があるって話だったのに、
今日(ついさっき)打ち合わせでMDI案を取り下げられてしまい、意味が無くなってしまいました…
心の奥にしまっておきます。
0684デフォルトの名無しさん
2006/10/13(金) 16:01:03T Mul<T>(T lhs,T rhs){
return lhs/rhs;
}
とかかきたいんですが。
0685デフォルトの名無しさん
2006/10/13(金) 16:20:550686デフォルトの名無しさん
2006/10/13(金) 16:43:38System.Reflection.Emit名前空間を使って動的コード生成
0687デフォルトの名無しさん
2006/10/13(金) 17:55:110688デフォルトの名無しさん
2006/10/13(金) 22:15:100689デフォルトの名無しさん
2006/10/13(金) 22:33:17ここに似たようなサンプルがあるよ
こういう怪しい方法しかない
0690デフォルトの名無しさん
2006/10/13(金) 22:34:14そのレベルのソフトウェアの開発を行うならC++を使え
0691デフォルトの名無しさん
2006/10/13(金) 23:30:10意味不明。
0692デフォルトの名無しさん
2006/10/13(金) 23:53:370693デフォルトの名無しさん
2006/10/13(金) 23:59:090694762
2006/10/13(金) 23:59:52delegate TReturn TwoParameter<TReturn, TArg>(TArg arg1, TArg arg2);
static TReturn DynamicMull<TReturn, TArg>(TArg lhs, TArg rhs)
where TReturn : struct where TArg : struct
{
Type[] methodArgs = { typeof(TArg), typeof(TArg) };
DynamicMethod multiplyMethod = new DynamicMethod(
"", typeof(TReturn), methodArgs, typeof(Example));
ILGenerator il = multiplyMethod.GetILGenerator();
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Mul);
il.Emit(OpCodes.Ret);
TwoParameter<TReturn, TArg> invoke = (TwoParameter<TReturn, TArg>)
multiplyMethod.CreateDelegate(typeof(TwoParameter<TReturn, TArg>));
return invoke(lhs, rhs);
}
0695デフォルトの名無しさん
2006/10/14(土) 09:16:05実行直前にJITでnativeにコンパイルされるし。
なんなら、インストール時にコンパイルしてもいいんじゃない?
0696デフォルトの名無しさん
2006/10/14(土) 11:01:21ランタイムやそれをサポートするライブラリだったりするわけで、
ネイティブにできてもあんまかわらんと思う。
0697デフォルトの名無しさん
2006/10/14(土) 21:59:39ngen通せばいいじゃん。
それにライブラリはほとんど全部DLLになってるからそれは仕方ないし。
0698デフォルトの名無しさん
2006/10/16(月) 16:40:52SetLayeredWindowAttributesで半透明とかにすると
ToolStripTextBoxの描画にごみが出るんだけど、これってバグだよね
0699デフォルトの名無しさん
2006/10/16(月) 16:42:360700デフォルトの名無しさん
2006/10/16(月) 17:01:11これいれて、やっとvs2005が完全体になったと感じた。
eclipseのJDT並のリファクタリングができる。
ま、30日間のevaluationだがな。
0701デフォルトの名無しさん
2006/10/17(火) 15:45:54CopyかAllしか受け付けてくれないんですが。
これはなぜ?
0702デフォルトの名無しさん
2006/10/17(火) 17:13:10複数引きたい(固定長テキストが見やすいように)のですが、そういう
フリーのエディタを探してみたら見つからなかったので、自分で
作ろうと思ったのですが、どうやったらできるんでしょうか?
TextBoxを継承してSetStyle(UserPaint, true)してOnPaintでためしに
(0,0)-(100,100)に斜め線を引いてみたのですが、キャレットがある行は線が消えてしまうし、
リサイズなどで全体が再描画されると文字が全部消えてしまうし、
文字の上に線が来ないから役に立たないしで失敗しました。
あるいは、縦線機能があるフリーのエディタがあったら教えてください。
0703デフォルトの名無しさん
2006/10/17(火) 19:46:210704デフォルトの名無しさん
2006/10/17(火) 23:58:27beseを先にするだけじゃあ?
0705デフォルトの名無しさん
2006/10/18(水) 00:10:250706デフォルトの名無しさん
2006/10/18(水) 00:34:17一人前のエディタになるには遠過ぎる。
どの程度のエディタを作りたいのか知らないけど。
0707デフォルトの名無しさん
2006/10/18(水) 00:37:000708デフォルトの名無しさん
2006/10/18(水) 00:57:46http://becom.hp.infoseek.co.jp/cgi-bin/ikari/ikari.cgi
0709デフォルトの名無しさん
2006/10/18(水) 22:52:37http://money4.2ch.net/test/read.cgi/build/1160576047/306-310
352 :(仮称)名無し邸新築工事 :2006/10/18(水) 19:59:48 ID:pRhQsipC
他社で2万の工事を朝鮮人の名刺出して22万って
これって思いっきり脅しじゃん
355 :(仮称)名無し邸新築工事 :2006/10/18(水) 20:09:51 ID:sGavnuL0
記念カキコ。
この朝鮮人を擁護するニュースを流したNHKも許せん。
366 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:00:38 ID:???
朝鮮人のせいで積水崩壊の危機だな
ここでも法則発動か・・・
369 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:11:05 ID:???
【お知らせ】
阪神淡路大震災でも倒壊しなかった積水ハウスが、
一人の韓国人のせいで崩壊の危機に面しています。
379 :(仮称)名無し邸新築工事 :2006/10/18(水) 21:41:02 ID:???
>>370
まともな企業なら、顧客・消費者の信頼を大切にするよね。
積水ハウスは自ら、「在日コリアン人権協会」との関係を断ち、
いわゆる「人権団体」の実態を明らかにするべきだ。
恐喝や脅しを受けているのなら、それも公表するべきだ。
0710デフォルトの名無しさん
2006/10/19(木) 08:37:47コンストラクタ定義して0とかnull代入しとこうと思ったら今度は
「構造体には引数なしのコンストラクタは定義できない」エラー。
どうすればこの警告消せる?
0711デフォルトの名無しさん
2006/10/19(木) 08:50:440712702
2006/10/19(木) 10:02:09怒IKARIとか、CSV/固定長エディタはいくつか見てみたんですが、こういう
セル編集タイプのエディタだと今回はだめなんです。
というのも、こともあろうにレコード長がそろっていない固定長テキストを
送ってくる人(プログラム)がいて、そんなデータの確認とか修正も
しなきゃいけないので、どこがずれてるとかいうのは機械で判別できないし、
とりあえず縦線だけ表示してあとは人手でいじりたいのです。
(そいつを問い詰めろとかバグ直せとか、それもありますが)
>>703
自前で引いたほうが早いというのは、どうやるんでしょう?
0713デフォルトの名無しさん
2006/10/19(木) 10:03:06public Sample Empty = new Sample(0, 0, 0);
public int A, B, C;
public Sample(int a, int b, int c) {
A = a; B = b; C = c;
}
}
0714デフォルトの名無しさん
2006/10/19(木) 10:03:460715デフォルトの名無しさん
2006/10/19(木) 10:15:52さらに手抜きして
struct Sample {
public int A, B, C;
private Sample(int dummy) {
A = B = C = 0;
}
}
とか。さらに手を抜くと
#pragma warning disable 649
struct Sample {
public int A, B, C;
}
#pragma warning restore 649
というのもあり。
0716デフォルトの名無しさん
2006/10/19(木) 10:33:29引数なしのコンストラクタを使う限り#pragma使わないと警告は消えないのか。。
引数なしコンストラクタが定義できない意味がわからないな。
0717デフォルトの名無しさん
2006/10/19(木) 10:55:080718デフォルトの名無しさん
2006/10/19(木) 10:57:20さらにEmptyとかのメンバならメンバ定義だけで勝手に初期化してくれるし
0719デフォルトの名無しさん
2006/10/19(木) 10:59:36構造体のデフォルトの初期化は
全部ゼロ埋めがお約束だから
余計なことすんなってこと
0720デフォルトの名無しさん
2006/10/19(木) 11:18:56余計なことって何だ?
struct Sample {
public int A, B, C;
}
static void Main()
{
Sample s = new Sample();
Console.WriteLine(s.A);
}
これだけで「Sample.Aは割り当てられません。常に規定値0を使用します。」
って警告がメンバの数だけ出るんだが。
0721デフォルトの名無しさん
2006/10/19(木) 11:50:06線を引くトコだけやるのではなく、
キャラクタやキャレット、編集選択その他を全て自前でやるということ。
0722デフォルトの名無しさん
2006/10/19(木) 12:01:37正直すまんかった
0723デフォルトの名無しさん
2006/10/19(木) 12:39:50使えるけどワーニングいっぱい出てうっとおしいんだYO!
クラスのときは
class a{
int i=0;
int j
a(){ j = 0; }
}
とかできんのに構造体はどないなっとんねん
0724デフォルトの名無しさん
2006/10/19(木) 12:51:30でも、なんで警告出すんだろ?
0725デフォルトの名無しさん
2006/10/19(木) 16:25:520726デフォルトの名無しさん
2006/10/19(木) 17:03:10変更を加える前にイベントが発生してしまうようです。Listviewのアイテムに反映された後にイベントを
取るにはどうしたら良いのでしょうか?。
0727デフォルトの名無しさん
2006/10/19(木) 19:49:34メッセージごにょごにょで独自イベント実装
でいけそうな希ガス
0728デフォルトの名無しさん
2006/10/19(木) 20:15:30class ListViewEx : ListView
{
protected override void WndProc( ref Message m )
{
base.WndProc( ref m );
if( m.Msg == 0x204e )
{
NMHDR nmhdrPtr1 = (NMHDR)Marshal.PtrToStructure( m.LParam, typeof( NMHDR ) );
if( nmhdrPtr1.code == -176 )
{
MessageBox.Show( this.SelectedItems[0].Text );
}
}
}
}
struct NMHDR
{
public IntPtr hwndFrom;
public IntPtr idFrom;
public int code;
}
0729デフォルトの名無しさん
2006/10/19(木) 20:19:05× if( nmhdrPtr1.code == -176 )
○ if( nmhdrPtr1.code == -176 || nmhdrPtr1.code == -106 )
0730デフォルトの名無しさん
2006/10/19(木) 20:32:29値型は名前通り値なんで、引数無しというのは不自然だと感じないか?
int i = new int();
とか凄く不自然に感じないか?
0731デフォルトの名無しさん
2006/10/19(木) 21:41:08なるほど・・・
MyInt x = MyInt.Zero; とかするのも良いか。
0732デフォルトの名無しさん
2006/10/20(金) 13:32:07XmlDocumentを使ってPreserveWhitespaceプロパティをLoad前やSave前でtrueにしても
XMLファイル中のXML属性間の空白文字が維持されないようなんです。
XML属性間の空白を維持したまま更新するにはどうすればいいですか?
そもそもXmlDocumentを使うなということになるんでしょうか?
0733デフォルトの名無しさん
2006/10/20(金) 13:56:21ツール12個まで
0734デフォルトの名無しさん
2006/10/20(金) 15:43:07残念ながら、そういうこと
0735726
2006/10/20(金) 19:52:15ありがとうございます。
色々と試してみるのですが上手く拾えず・・・。
メモっておいて他の事をしながら閃いたら再チャレンジしてみます。
0736デフォルトの名無しさん
2006/10/20(金) 21:19:34それは全然おもわない
0737デフォルトの名無しさん
2006/10/21(土) 11:50:58何処が間違えているのかご指導ください。
namespace test.cs
{
public partial class Form1 : Form
{
private const int WM_DRAWCLIPBOARD = 0x0308;
private const int WM_CHANGECBCHAIN = 0x030D;
[DllImport("user32")]
public static extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer);
[DllImport("user32", CharSet = CharSet.Auto)]
public extern static int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CHANGECBCHAIN)
{
MessageBox.Show("WM_CHANGECBCHAIN");
}
else if (m.Msg == WM_DRAWCLIPBOARD)
{
MessageBox.Show("WM_DRAWCLIPBOARD");
}
else
{
base.WndProc(ref m);
}
}
}
}
0738デフォルトの名無しさん
2006/10/21(土) 11:55:43途中にモーダルなUI挟むと危ないんじゃね?
ついでにメッセージの処理サッパリしてないよ?
0739デフォルトの名無しさん
2006/10/21(土) 23:20:19即、ググルようにw
0740デフォルトの名無しさん
2006/10/21(土) 23:31:15あれはどうやれば対応出来るんだろ?
0741デフォルトの名無しさん
2006/10/21(土) 23:41:36http://tricklib.com/cxx/ex/calligrapher/
こんなヤツのこと?
0742デフォルトの名無しさん
2006/10/21(土) 23:56:12てか、C#で組むのまんどくさそう。
0744デフォルトの名無しさん
2006/10/22(日) 07:16:11監視してるフォルダが使用中になってます。
ドラッグドロップでフォルダの移動等をすると、ファイルが入ってるから移動できないとか
ファイルが使用中とかのメッセージボックスが出てきます。
どうにかなりませんかね。
0745デフォルトの名無しさん
2006/10/22(日) 07:38:080746デフォルトの名無しさん
2006/10/22(日) 08:34:19それ以上になるとエラーで止まるんですよね。
監視をやめると普通に動くという。
監視はルートだけにしたほうがええんかなぁ。
0747デフォルトの名無しさん
2006/10/22(日) 08:40:12ゴメン、
> FileSystemWatcherでエクスプローラーのようなツリービュー作ってるんですが。
> 監視してるフォルダが使用中になってます。
もっとkwsk書かないと、問題を切り分けられないyo
0748デフォルトの名無しさん
2006/10/22(日) 12:02:09フォームにIEコンポーネント(axWebBrowser)貼り付けてるんですが、
JavaScriptを無効にする方法知りませんか。
IEの設定で「Internet Explorer Webbrowser コントロールのスクリプトの許可」を無効にすればいいかと思ったのですが
inputタグのonclickで呼ばれる関数が実行されてしまいます。
0749デフォルトの名無しさん
2006/10/22(日) 12:07:430750デフォルトの名無しさん
2006/10/22(日) 12:11:14俺はあきらめましたが何か
0751748
2006/10/22(日) 12:42:440752デフォルトの名無しさん
2006/10/22(日) 15:56:15Cドラ配下をルートに指定して、サブフォルダの監視もOnにして
20階層のフォルダを移動しても再現しないぞ。
0753デフォルトの名無しさん
2006/10/22(日) 17:20:50class Node:TreeNode
{
public Node(string path)
{
foreach(string dir in Directory.getDirectory(path))
this.Nodes.Add( new Node(dir) );
this.FolderWatch();//ここで監視
}
}
こんな感じで。
説明足らずでモウシワケナス。
これはイベントが続出すると同期が取れないってありましたが、
そのせいなのかな。
でもエクスプローラーの操作もロックかかってるんですよね。
0754デフォルトの名無しさん
2006/10/22(日) 19:46:09コードがどんどん汚くなってきた。
0755デフォルトの名無しさん
2006/10/22(日) 22:46:360756デフォルトの名無しさん
2006/10/23(月) 15:22:23自分はC++でダイヤモンド継承以外の多重継承はよく使っていました。そうすることでいろいろな場面に対応しうるクラスを実装の手間を省きながら実装できるからです。
C#ではもちろんできません。皆さんはどうしてるんでしょう?
1.画面クラスでかつ構造がTreeNodeであるようなものを実装するとき多重継承的にしたい。
2.インターフェースでやって実装をImplementクラスに移して委譲しようとすると継承するすべてのクラスで対応しないといけないためめんどくさい。
意見くだされ。
0757デフォルトの名無しさん
2006/10/23(月) 15:56:31C++ の時と同じ感覚で C# での設計を行わない
0758デフォルトの名無しさん
2006/10/23(月) 16:00:21漏れなら1みたいなものはそもそも多重継承せずに、TreeNodeはプロパティで公開する。
2は確かに面倒だけど、漏れの場合大量のインタフェイスの実装が必要な場面ってCOM
オブジクェクト作る時くらいだから、そこだけ ATL/C++ でやってます。
0759デフォルトの名無しさん
2006/10/23(月) 16:11:59>>758 今想定してるのは画面のパネルでかつ入れ子の画面アイテムを持つようなものなんですが、そのばあいTreeNodeのプロパティは何を指すんでしょう?
Widget widget;
widget=widget.TreeNode.NextSibilingItem();
見たいな感じということ?インプリメントクラスのイメージ?
0760デフォルトの名無しさん
2006/10/23(月) 16:36:29例えば System.Windows.Forms.Panel だと、入れ子になった Control は Controls プロパティに入っている。
そういう話じゃなくて?
あと、コードのコピペを嫌うのなら、
1: アスペクト指向などを使って、コードを織り込む
2: Java の AdapterClass みたいなのを用意し、それを継承した内部クラスを作る
とか。
ついでに言うと、何に困っているのか分からんのです (;´・ω・`)
0761デフォルトの名無しさん
2006/10/23(月) 16:57:12Widgetが入れ子で別のWidgetを持ってる可能性があります。でのそのデータ構造はTreeとして扱おうとしています。
インスタンスのwidgetは描画などの際にはWidget型として、トラバースする際にはTreeNode<Widget>として扱われます。
これは一例なんですが、いずれにしてもいわゆる多重継承とかMixinを使いたくなるときがありますよね?
ある役割のクラスであるが同時にほかの役割も果たすようなものです。そういうのをインタフェースで定義するのはいいけれど実装がめんどくさいよねってことです。
C++なら実装継承できていたものをC#ではできない。ならば設計を変えるか実装方法の改良をするか。おのおのでいい方法がないかと意見を聞いてみたかったんです。
0762デフォルトの名無しさん
2006/10/23(月) 17:08:24mix-in が出来ると便利なのは漏れも C++ 使いなので大変よくわかるけど、
その例では全く mix-in の必要性を感じない。
class WidgetA : Widget
{
public WidgetList Children { ... }
...
}
としか設計しようがないような気すらする(漏れは頭が固いから)。
昔漏れの知り合いが、Rectangle を派生させて Window を作っていたのを思い出した。
C# では機能の追加は、mixinではなく委譲とdelegateでのコールバック(orイベント)で
実現するのが良いと思う。
0763デフォルトの名無しさん
2006/10/23(月) 17:12:40>実現するのが良いと思う。
蛇足気味に説明を追加。
上の例では、コールバック等を使ってWidgetA が自分の子の WidgetList のobserverになるという意味。
内容への変更などを監視するために(もしそうしたいなら、だけれども)。
0764761
2006/10/23(月) 17:14:45すまんです。例が悪いのでこの例の場合というのははずしておいてください。
自分のイメージではクラスの継承にしろインタフェースの継承にしろIsAのために行っているので機能追加のためという意識は低いです。
そうする必要があるときに実装のめんどくささをどうしようかというのを聞いてみたかったんです。
0765デフォルトの名無しさん
2006/10/23(月) 17:48:580767デフォルトの名無しさん
2006/10/23(月) 18:13:450768デフォルトの名無しさん
2006/10/23(月) 18:15:51……正直、is-a 継承を多用することってあまり無い希ガス
0769デフォルトの名無しさん
2006/10/23(月) 18:23:21無いというか無くそうとされたというかそんな感じのほうが。
というか印象がもうC++脳なのでばっさり忘れちゃってください。
かつての自分への自戒も込めていうけども。
.NETってオブジェクトがどうとかJavaっぽいとかいわれてるけど
本質はコンポーネントに特化したある意味Crazyな実装なので。
ちなみに、Mix-inは2.0だとジェネレータとpartialでやろうと
している人はいます。
0770デフォルトの名無しさん
2006/10/23(月) 19:06:51>>769 たすかに。けんどそげなこといわれてもWidgetでかつSerializableなものはどうすればいいですだ。
VisitorとAdapter組み合わせればいけないこともないけれどイヤンです。
0771デフォルトの名無しさん
2006/10/23(月) 19:34:14??
IWdget と ISerializable を両方とも継承すればいいのでは?
0772デフォルトの名無しさん
2006/10/23(月) 19:42:38インプリメントクラス作って、委譲コードを継承クラス全部に書かないといけない。
>>769正直ジェネレータっぽいのを作らないとだめ層です。
0773デフォルトの名無しさん
2006/10/23(月) 19:43:26ヒント:C++ で書けばよくね?
0774デフォルトの名無しさん
2006/10/23(月) 19:56:390775デフォルトの名無しさん
2006/10/23(月) 20:02:410776デフォルトの名無しさん
2006/10/23(月) 20:11:58そっちはそっちでまた別のところではまりそうな気がする。
0777デフォルトの名無しさん
2006/10/23(月) 20:30:08ポトペタで作れちゃうよね
0778デフォルトの名無しさん
2006/10/23(月) 20:32:090779デフォルトの名無しさん
2006/10/23(月) 20:35:46てっきりリネームしてるだけかと思ってた
0780デフォルトの名無しさん
2006/10/23(月) 21:48:57選択ってポイントされてるという意味か?
ループで回して子をのSelectedを調べる
0781デフォルトの名無しさん
2006/10/23(月) 21:55:57これからC#(Visual C#2005 Express Edition )を始めるのですが、1から始めるC#のおすすめ本かHPってありますか?
プロジェクトの作り方から解説してある方が助かります。
0782デフォルトの名無しさん
2006/10/23(月) 22:00:030783デフォルトの名無しさん
2006/10/23(月) 22:04:20ふらっとスレのテンプレにいろいろ
C#は触るより言語から先に覚えた方が速いと思う
0784デフォルトの名無しさん
2006/10/23(月) 22:07:46http://msdn2.microsoft.com/ja-jp/library/xyh50b90.aspx
0785デフォルトの名無しさん
2006/10/23(月) 22:08:42カーソルを合わせた時ではなくてクリックされたアイテムのテキストを収得したいのです。
アイテムはリロードの数字で1,3,5,10とかなので1つ1つにイベントを設けるのではなく
まとめて処理したいと考えました。
0786デフォルトの名無しさん
2006/10/23(月) 22:12:530787デフォルトの名無しさん
2006/10/23(月) 22:15:58senderから探るのは無理。
汚いコードで解決するしかないな。
0788デフォルトの名無しさん
2006/10/23(月) 22:17:05ToolStripに変換して悩んでいました
ありがとうございます
0789デフォルトの名無しさん
2006/10/23(月) 22:19:18MessageBox.Show(a.Text);
でいけました
senderは色々なものに変換できるのだと知りました
0790デフォルトの名無しさん
2006/10/23(月) 22:21:380791デフォルトの名無しさん
2006/10/23(月) 22:27:09私は実際に読んでないけど、立ち読みして2005に対応してたら
買ってみたら?
http://www.amazon.co.jp/gp/product/4756141781/
http://www.amazon.co.jp/gp/product/475614179X/
0792デフォルトの名無しさん
2006/10/23(月) 22:50:04わざわざ委譲するコード書きまくるなら
入れ物にそのままインタフェースでプロパティとして、公開させれば楽じゃないの?
class AdapterForIsA{
public ISerializable Data;
public IWidget Widget;
}
private 継承はあったらいいなとは思うけど・・
0793デフォルトの名無しさん
2006/10/23(月) 23:27:520794デフォルトの名無しさん
2006/10/23(月) 23:44:24このFormからContextMenuStripを表示すると表示位置をコントロールできません。
具体的には、Formの外に表示されます。次のコードを使っています。
private void MainForm_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) {
menuMain.Show(this, e.Location);
}
}
どなたか経験がある方はアドバイスを頂きたいです。よろしくお願いします。
0795デフォルトの名無しさん
2006/10/24(火) 00:07:22SHAppBarMessage を外しても再現するかどうか確認してください
その後、 e.Location の値を MessageBox.Show でも使って確認してください
0796デフォルトの名無しさん
2006/10/24(火) 00:19:06SHAppBarMessage()を適用しなければ、ContextMenuStripは
マウスクリック位置に表示されます。
0797デフォルトの名無しさん
2006/10/24(火) 00:27:13ContextMenuStripじゃなくてContextMenuを使うとか
0798デフォルトの名無しさん
2006/10/24(火) 01:44:42確かにマウスクリックの位置に表示されました。
ildasmしてみると、ContextMenuStripはメニューの動作を再現したコントロールで
ある一方、ContextMenuはレガシーなメニューなんですね。ContextMenuStripは
オーナードローメニューであるとばかり思っていました。道理で勝手に動かされる
はずでした。しかしそうするとContextMenuStripの恩恵は全く受けられないことに
なってしまうわけですね…悩みます。
何はともあれ、レスを下さった皆さんありがとうございました。
0799デフォルトの名無しさん
2006/10/24(火) 11:19:00Widgetのツリーをそのままシリアライズさせたいときとかさらにほかの処理も絡んでたりすると、Adapterからめるとそれはそれでどこかで破綻しそうな希ガス。
0800デフォルトの名無しさん
2006/10/24(火) 11:39:05public class TreeNode<Key, Node> where Node : TreeNode<Key, Node>, new() {
・・・・
}
0801デフォルトの名無しさん
2006/10/24(火) 12:11:40Edyセンターとの通信のことで教えてください。
ECCLPro.dllをC#で動かしたいんですが
仮想WindowにメッセージをPostしてそのレスポンスが取れません。
どのようにしたらうまく取れるか教えてください。
0802デフォルトの名無しさん
2006/10/24(火) 12:46:370803デフォルトの名無しさん
2006/10/24(火) 13:17:14どうせpublicだからでは?
0804デフォルトの名無しさん
2006/10/24(火) 13:19:180805デフォルトの名無しさん
2006/10/24(火) 15:32:35これって
MessageBox.Show(comboBox1.SelectedItem);
としたら、なぜだめなんですか?
0806デフォルトの名無しさん
2006/10/24(火) 16:01:49ComboBox.SelectedItemはObjectを返して、
MessegeBox.Show()にはObjectを引数に取るオーバーロードがないから。
0807802
2006/10/24(火) 17:13:24キャストしないと無理?
0808デフォルトの名無しさん
2006/10/24(火) 17:25:430809デフォルトの名無しさん
2006/10/24(火) 17:33:060810デフォルトの名無しさん
2006/10/24(火) 17:33:09実装MethodにIntarfaseName.が付くんですぅ><
0811808
2006/10/24(火) 17:33:57ttp://www.kumei.ne.jp/c_lang/cs/cs_60.htm
0812808
2006/10/24(火) 17:36:58明示する理由が分かった。
これpublicにするとまずいだろ
0813デフォルトの名無しさん
2006/10/24(火) 17:42:400814デフォルトの名無しさん
2006/10/24(火) 17:44:09つい、やってしまいますたwごめんね(はぁと
0815デフォルトの名無しさん
2006/10/24(火) 18:32:43積極的な理由がない場合は、インターフェイス メンバの明示的な実装を避けます。
明示的な実装について理解するには、高度な専門知識が必要です。
たとえば、明示的に実装したメンバはそのシグネチャがプライベートであっても
パブリックに呼び出すことができることを知らない開発者が大勢います。
シグネチャがプライベートであるため、明示的に実装されたメンバは、
パブリックに参照できるメンバのリストには表示されません。また、メンバを明示的に
実装すると、不必要に値型がボックス化される原因となることもあります。
0816デフォルトの名無しさん
2006/10/24(火) 19:35:58void IInterfaceA.Method(){}
void IInterfaceB.Method(){}
こういうのはいいんだっけ
0817デフォルトの名無しさん
2006/10/24(火) 22:55:47boxing/unboxing が行われるコードが生成されるの?
0818デフォルトの名無しさん
2006/10/24(火) 23:03:20行われる時は行われるし行われない時は行われないだろ。
0819デフォルトの名無しさん
2006/10/24(火) 23:13:27http://msdn2.microsoft.com/ja-jp/library/ms172194.aspx
>ジェネリック コレクション型の利点は、タイプ セーフだけではありません。
>ジェネリック コレクションでは、値型をボックス化する必要がないため、
>一般に、値型の格納と操作のパフォーマンスが向上します。
Javaとは違うよ
0820デフォルトの名無しさん
2006/10/25(水) 00:04:35画面をつくったら、
アセンブリロケーションが変な場所になっていて
UIデザイン画面読み込み時にApp.Configがありませんとエラーが出ました。
実際ビルドすると普通にとおってローカルで動いています。
デザイン時のこのエラーをなくすにはどうしたらいいのでしょうか?
ウェブサービスを参照している画面を継承元にするとやはりまずい?
0821デフォルトの名無しさん
2006/10/25(水) 01:21:510822デフォルトの名無しさん
2006/10/25(水) 10:09:09すいません、参照しているところ、、、って?
Designerにそんなことかいてあるのでしょうか?
探してみます!
0823デフォルトの名無しさん
2006/10/25(水) 22:52:01NUnit2を使ってテストしたいのですが
同期メソッドのテストは出来たのですが
非同期メソッドのテストの仕方がわかりません
デリゲートにコールバックが返ってきて値をチェックして成功を判断したいのです
誰かやり方を教えてください
0824デフォルトの名無しさん
2006/10/25(水) 23:10:24適当にSleep入れてコールバック側でいつもどおりチェックする
とりあえず、AutoResetEventを使用しとけば?
0825デフォルトの名無しさん
2006/10/25(水) 23:20:14.NETの学習は時間の無駄です
0826デフォルトの名無しさん
2006/10/25(水) 23:27:23.NETの学習は時間の無駄です
0827デフォルトの名無しさん
2006/10/25(水) 23:38:36.NETの学習は時間の無駄です
0828デフォルトの名無しさん
2006/10/25(水) 23:46:03.NETの学習は時間の無駄です
0829デフォルトの名無しさん
2006/10/25(水) 23:53:46A.text + B.text(数値加算) の結果をC.txetに表示したいのですが、エラーになります。
対象方を伝授して下さい
int A = A.text;
int B = B.text;
int C = A + B;
C.text = C.ToString();
0830デフォルトの名無しさん
2006/10/25(水) 23:55:470831デフォルトの名無しさん
2006/10/25(水) 23:55:58thx.
ということは、代入時の動作が値型と参照型で違うけれども、
Generic なクラスを書くときは、そのへんを考慮しないといけないってこと?
0832デフォルトの名無しさん
2006/10/25(水) 23:57:01みたいな質問って.NETの弊害じゃないかな?
アセンブラやCからプログラムを始めたような人なら絶対しない質問だよね
ポトペタ環境で糞低レベルなやつの質問が正直うぜー
VC6のような初心者にいきなり高い壁を見せ付けて脱落させる環境が好きだったのに・・・
0833デフォルトの名無しさん
2006/10/25(水) 23:58:360834デフォルトの名無しさん
2006/10/25(水) 23:58:52('A`) プ
0835デフォルトの名無しさん
2006/10/25(水) 23:59:43C から始めた人なら char * を足し合わせるんじゃないか
0836デフォルトの名無しさん
2006/10/26(木) 00:00:300837デフォルトの名無しさん
2006/10/26(木) 00:00:56.NETの学習は時間の無駄です
0838デフォルトの名無しさん
2006/10/26(木) 00:01:28コピーが追加されるか、そのものへの参照が追加されるのかは実質的に
区別が必要だと思うけど・・・
でもまぁそれは Generics なクラスを書くときに限らず、
値型を用いる場合一般について言えることのような気がする。
0839デフォルトの名無しさん
2006/10/26(木) 00:18:29.NETの学習は時間の無駄です
0840デフォルトの名無しさん
2006/10/26(木) 00:21:42お前のほうが(ry
0841デフォルトの名無しさん
2006/10/26(木) 00:22:420842デフォルトの名無しさん
2006/10/26(木) 01:17:40.NETの学習は時間の無駄です
0843デフォルトの名無しさん
2006/10/26(木) 01:21:47手伝ってやろうw
.NETの学習は時間の無駄です
そうは思わんがw
0844829
2006/10/26(木) 01:24:560845デフォルトの名無しさん
2006/10/26(木) 01:34:41C#は自動でstring → intなどの型変換しないのだ。
c++やjavaとかもです。
自動で型変換すると不都合が起こったり、バグが分かりづらくなりますので。。
0846デフォルトの名無しさん
2006/10/26(木) 01:39:560847デフォルトの名無しさん
2006/10/26(木) 01:46:05(;´Д`)
0848デフォルトの名無しさん
2006/10/26(木) 02:20:270849デフォルトの名無しさん
2006/10/26(木) 09:27:170850デフォルトの名無しさん
2006/10/26(木) 09:51:190851デフォルトの名無しさん
2006/10/26(木) 11:05:01ポインタ演算が整数で足し算しなきゃ駄目だからCよりえげつない事になるな
p++って書けばいいとこ
new IntPtr(base.ToInt32()+Marshal.Sizeof(..))
0852デフォルトの名無しさん
2006/10/26(木) 11:26:19VSUG,MSDNフォーラムぐらいしかわからんです。
メーリングリストや海外の掲示板でもOKです。
0853デフォルトの名無しさん
2006/10/26(木) 17:30:00unsafe使えばいいじゃない
0854デフォルトの名無しさん
2006/10/27(金) 01:19:21本来ならVB(6.0)でもそんなことやっちゃダメなんだがな。
とにかくデータ型とその演算方法をそろえることだ。
どう見ても 文字型+文字型=整数型 っておかしいだろ?
がんばれ。
0855デフォルトの名無しさん
2006/10/27(金) 01:23:010856デフォルトの名無しさん
2006/10/27(金) 01:24:070857デフォルトの名無しさん
2006/10/27(金) 01:41:31『自動で型変換が行われることはない』 が誤り
0858デフォルトの名無しさん
2006/10/27(金) 03:28:00さすがに変数名とコントロール名がかぶってるから通らない。
でも
Dim x As Integer = A.Text
Dim y As Integer = B.Text
C.Text = x + y
なんてのは通っちゃう。もちろん実行時に数値変換できない文字列だったら例外発生。
オプションでコンパイル時に型チェックするようには出来るが規定値はOff。
0859デフォルトの名無しさん
2006/10/27(金) 03:44:190860デフォルトの名無しさん
2006/10/27(金) 03:50:290861デフォルトの名無しさん
2006/10/27(金) 04:22:140862デフォルトの名無しさん
2006/10/27(金) 04:26:45int i = Convert.ToInt32("123"); と補完する感じ。
実際使われるのはVB独自の変換クラスのメソッドだけど。
0863デフォルトの名無しさん
2006/10/27(金) 07:35:18どの文字かまで追ってないけどXMLの禁則文字が入ってるだけじゃね?
><&は< > &に置き換え
あぁ、タグ名かも知れんな・・・
"XML 禁則"でぐぐってくだちぃ
0864863
2006/10/27(金) 07:36:210865デフォルトの名無しさん
2006/10/27(金) 08:16:39これのどこがまちがってんのか教えてくれ。
0866デフォルトの名無しさん
2006/10/27(金) 08:20:55自動変換してくれるとは知らなかったぞ
0867デフォルトの名無しさん
2006/10/27(金) 08:23:33サンプルキボン
0868デフォルトの名無しさん
2006/10/27(金) 09:31:41>>865
蒸し返すな
0869デフォルトの名無しさん
2006/10/27(金) 11:01:50一つのファイルに対して複数の Serializer.Serialize() すると、一つのファイルに複数の
オブジェクトが入りますが、Deserialize できません。
どうなんでしょう?
0870デフォルトの名無しさん
2006/10/27(金) 12:12:08追記
違う型のオブジェクトを一つの XML ファイルにシリアライズできますか?
0871デフォルトの名無しさん
2006/10/27(金) 12:41:570872デフォルトの名無しさん
2006/10/27(金) 12:43:02それより保存クラス作ったほうがいいんじゃないか?
0873デフォルトの名無しさん
2006/10/27(金) 12:56:51>C#は自動で(string → intなどの)型変換しないのだ。
俺は↑と読んだ。
0874デフォルトの名無しさん
2006/10/27(金) 12:57:57どもです。眺めてみたけど、どれでしょう?
xmlns などを変更してみたがだめでした。orz
0875デフォルトの名無しさん
2006/10/27(金) 13:44:290876デフォルトの名無しさん
2006/10/27(金) 13:58:56C# は自動で string (自動で何でもstringにする、の意?)
→ int などの型変換はしないのだ (int にはしてくれない、の意?)。
いや意味は不明だが。
0877デフォルトの名無しさん
2006/10/27(金) 14:13:18>>873 みたいに、括弧の中が抜け落ちて 「C# は自動で型変換しないのだ」 に読めてしまう罠( ´ー`)y-~~
0878デフォルトの名無しさん
2006/10/27(金) 14:17:250879デフォルトの名無しさん
2006/10/27(金) 16:11:110880デフォルトの名無しさん
2006/10/27(金) 17:19:09int→stringはやってくれる場合もあるけど
0881デフォルトの名無しさん
2006/10/27(金) 17:22:23言語仕様ではやらないよ。
あれは演算子のオーバーロードですよ。
0882デフォルトの名無しさん
2006/10/27(金) 17:23:13○object
0883デフォルトの名無しさん
2006/10/27(金) 17:23:16ToString()が呼ばれるだけ
0884デフォルトの名無しさん
2006/10/27(金) 17:38:03俺も変わらないけどw
初心者は
abc.Text="abc"+1;
がおkで、
abc.Text= 1+"abc";
がなぜNGなのかわからない。
ヒント:演算子オーバーロード
0885デフォルトの名無しさん
2006/10/27(金) 17:40:06両方OK
0886デフォルトの名無しさん
2006/10/27(金) 17:46:34>>884
>>884
>>884
0887デフォルトの名無しさん
2006/10/27(金) 17:48:21ついでに言うと、演算子オーバーロードではない。
言語仕様上でどうなってるかは忘れたが、文字列結合演算子 + の実体は String#Concat
0888デフォルトの名無しさん
2006/10/27(金) 18:06:10数値型の場合、+ は 2 つのオペランドの合計を計算します。
オペランドの片方または両方が文字列型の場合は、オペランドの文字列表現が
連結されます。
0889デフォルトの名無しさん
2006/10/27(金) 18:06:19「int → long とかは暗黙の型変換あるよ」って意味でもないの?
C# では、暗黙の型変換は、「整数 → より表現範囲の広い整数」か、
float → double のみ。
明示的な型変換も、組み込み型だと、object からのダウンキャストと、
整数・浮動小数点数同士の間のみ。
string との相互変換は int.Parse とかと ToString 使う。
0890デフォルトの名無しさん
2006/10/27(金) 18:11:30わざわざObjectに定義するほど重要?
0891デフォルトの名無しさん
2006/10/27(金) 18:15:280892デフォルトの名無しさん
2006/10/27(金) 18:18:59Console.Write(string format, params object[] args) とかのためでしょ。
0893デフォルトの名無しさん
2006/10/27(金) 18:32:367.7.4加算演算子
x + y 形式の演算では、二項演算子のオーバーロードの解決 (7.2.4 を参照) を適用して、
演算子の実装が選択されます。オペランドが、選択した演算子のパラメータの型に
変換され、その結果の型が演算子の戻り値の型になります。
文字列の連結 :
string operator +(string x, string y);
string operator +(string x, object y);
string operator +(object x, string y);
二項演算子 + は、一方または両方のオペランドが string 型のときは、文字列の連結を
行います。文字列連結のオペランドが null の場合は、空の文字列に置き換えられます。
文字列ではない引数は、object 型から継承された仮想の ToString メソッドを呼び出すことで、
文字列形式に変換されます。
ToString が null を返す場合は、空の文字列に置き換えられます。
0894デフォルトの名無しさん
2006/10/27(金) 18:36:29string ⇔ 数値型間の暗黙の型変換が出来るもんだと勘違いしちゃう初心者が出てくるんかな?
0895デフォルトの名無しさん
2006/10/27(金) 18:54:49プログラムの内容に関係ないところは気にしなくて済むようにするのが言語としてはまっとうだと思うけど
ToStringはまだ気にしておくべきところなんだろうね
+でもConsole.Writeでも、全部Tostring()明記を強制したほうがいい気がするなあ
D言語の配列連結演算子はなかなか良い設計だと思う俺
0896デフォルトの名無しさん
2006/10/27(金) 18:56:48文字列結合の + は明記にして欲しいけど。
0897デフォルトの名無しさん
2006/10/27(金) 18:58:0615.17.1 文字列連結演算子 +
一つのオペランドの式だけが型Stringならば,実行時に文字列を生成するために,
他方のオペランドに対して文字列変換を実行する。結果は二つのオペランドの文字列を
連結して新たに作成したオブジェクト String への参照とする。
新たに作成した文字列内では,左辺オぺランドの文字が右辺オぺランドの文字に先行する。
0898デフォルトの名無しさん
2006/10/27(金) 19:55:11どの言語重点的にやったらいいでつかね?
ちなみにいまC#中
0899デフォルトの名無しさん
2006/10/27(金) 20:00:19C#ができればJavaもVB.NETも簡単にできるようになる
0900デフォルトの名無しさん
2006/10/27(金) 20:00:230901デフォルトの名無しさん
2006/10/27(金) 20:16:54本よんでせかせかやります
0902デフォルトの名無しさん
2006/10/28(土) 11:54:56画像編集はプログラミングつーよりイラストレーターとかじゃないか?
0903デフォルトの名無しさん
2006/10/28(土) 18:18:29ドラッグ&ドロップでフルパスを取得することまではできましたが、
そのフルパスからファイルを実行させる方法はどうするのでしょうか?
0904デフォルトの名無しさん
2006/10/28(土) 18:25:470905デフォルトの名無しさん
2006/10/28(土) 18:54:33ありがとうございます
0906デフォルトの名無しさん
2006/10/29(日) 05:48:15bool型の変数に対して、複数スレッドから読み書きする必要があるのですが、
lock等の排他制御を書く必要ありますでしょうか?
それとも、bool型に排他制御は必要ないでしょうか?
0907デフォルトの名無しさん
2006/10/29(日) 05:53:39static volatile bool aaa;
0908206
2006/10/29(日) 06:01:460909デフォルトの名無しさん
2006/10/29(日) 10:26:37読んで書く処理とかならlockいるぞ。
0910デフォルトの名無しさん
2006/10/29(日) 10:41:04現状では導出されることを期待していないので仮想化していません。
ですが、導出された場合のことを考慮して仮想化しておいたほういいのでしょうか?
とりあえず、すべてのメソッド/プロパティにvirtualをつけるディメリットってありますか?
0911デフォルトの名無しさん
2006/10/29(日) 10:43:42今現在の貴方の悩みそのものがデメリットです。
導出されることになってから、vertual をつけることを考えましょう。
0912デフォルトの名無しさん
2006/10/29(日) 10:51:170913デフォルトの名無しさん
2006/10/29(日) 10:55:330914デフォルトの名無しさん
2006/10/29(日) 11:21:28よってすべてのメソッドを仮想化して何の問題もありませんよ。
0915デフォルトの名無しさん
2006/10/29(日) 11:22:080916デフォルトの名無しさん
2006/10/29(日) 11:23:160917デフォルトの名無しさん
2006/10/29(日) 11:32:550918デフォルトの名無しさん
2006/10/29(日) 11:52:060919デフォルトの名無しさん
2006/10/29(日) 12:00:110920デフォルトの名無しさん
2006/10/29(日) 12:21:370921デフォルトの名無しさん
2006/10/29(日) 13:24:550922デフォルトの名無しさん
2006/10/29(日) 13:34:38ディスプレイ?
その”ディスプレイ”とやらの”オンオフ”に関して、プログラミングインタフェイスが付いていれば可能
それくらい自分で調べろ
0923デフォルトの名無しさん
2006/10/29(日) 13:39:27電源管理のことだろ
知らんのに煽るなボケ
0924デフォルトの名無しさん
2006/10/29(日) 16:52:34つっこまれると思いましたが、なんて書いていいかわからなかったので、
こう書いてみました。
>>923
電源管理で調べてみます。サンクス
0925デフォルトの名無しさん
2006/10/29(日) 17:11:58だからvirtualをつけるのが正しい
0926デフォルトの名無しさん
2006/10/29(日) 17:15:16なんでjavaにあわせる必要がある?
0927デフォルトの名無しさん
2006/10/29(日) 17:32:58Borlandは95〜97年頃にはWindows用統合開発環境を確立しているというのに
MSは未だ追いついていない
しかも徐々に、非常に遅い牛歩でBorlandの統合環境に近付いてきている
真似するんなら真似するで、そんなゆっくり10年以上もかけて真似しないで
さっさとぱくって使いやすくしてほしいよ
0928側近中の側近 ◆0351148456
2006/10/29(日) 17:49:53(っ´▽`)っ
C#でnewとvirtualを採用したのは保守性の向上にある。
オーバーライドの濫用を防ぐため。
Javaの場合
[スーパークラス担当者](っ`Д´)っ 誰だ!俺の作ったメソッドを勝手にオーバーライドした奴は!!
[サブクラス担当者](っ`Д´)っ 文句があるならfinal付けろや!ゴルァ!
このように片方の担当者によって、オーバーライドが勝手になされてしまう。
→バグ発生
C#の場合
[サブクラス担当者](っ´▽`)っ オーバーライドしたいんだけど、override付けてくれない?
[スーパークラス担当者](っ´▽`)っ ダ・メ♥
このようにオーバーライドをするためには両者の合意が必要
→バグ抑止
0929デフォルトの名無しさん
2006/10/29(日) 17:56:12使いにくいでし
あい
0930デフォルトの名無しさん
2006/10/29(日) 18:00:490931デフォルトの名無しさん
2006/10/29(日) 18:01:02それは慣れの問題だね。使い慣れてるほうがわかりやすいといった程度の話だ。
もっともC++/CLIは中途半端に混ざってるからあれは混乱するかもしれない。
0932デフォルトの名無しさん
2006/10/29(日) 18:04:41じゃあC++スレに篭っててくだちぃ
0933デフォルトの名無しさん
2006/10/29(日) 18:09:52ソースレベルでどういう関数が使えるかチェックするとき
Cだとヘッダファイルのぞき込んでexternされてるプロトタイプをざっと眺められるから
便利なんだけどなあ
C#になるとソースをみてpublicだのclassにインラインされたコードが
ごちゃごちゃと醜いったらありゃしない
なんとかしてほしいなあ
0934デフォルトの名無しさん
2006/10/29(日) 18:11:37Cスレに篭っててくだちぃ
0935デフォルトの名無しさん
2006/10/29(日) 18:12:120936側近中の側近 ◆0351148456
2006/10/29(日) 18:14:30(っ´▽`)っ
VS2005ならクラス図を自動作成してくれるよ。
0937デフォルトの名無しさん
2006/10/29(日) 18:20:26クラスビューなり、ドロップダウンするなんかだったり、
オブジェクトブラウザだったり見ればいいのに。
0938デフォルトの名無しさん
2006/10/29(日) 18:25:560939デフォルトの名無しさん
2006/10/29(日) 18:26:34そうなのか(恥
まあ最近VC++とPascalに別れを告げて趣味で使い始めたんだが
そういう便利な機能があるとは
よく調べてなかったよp
主にグラフィクスのアプリをよく作るのでしばらくはメインで
C#を使うことはないかもしれんけど(標準で用意されているライブラリ(?)は
遅いから結局はWin32API呼び出したりポインタ制御させるので
C#の恩恵はあまりないんだよね。)
簡単なアプリ作るには便利なんだけど
ども
0940側近中の側近 ◆0351148456
2006/10/29(日) 18:48:34(っ´▽`)っ
さらに、APIリファレンスも作ってくれるらしいよ。
0941側近中の側近 ◆0351148456
2006/10/29(日) 18:53:06(っ´▽`)っ
C#だけではなくVS全体で見てみると、いろんなことができる。
テストツールも含まれている模様。
VS2005は最適なソリューションを提供します。
0942デフォルトの名無しさん
2006/10/29(日) 18:56:02NUitのっけたん?
0943デフォルトの名無しさん
2006/10/29(日) 19:11:350944デフォルトの名無しさん
2006/10/29(日) 19:12:480945デフォルトの名無しさん
2006/10/29(日) 19:25:15VC#のIDEでWindowsフォームを作ると、〜.Designer.csの中で自動的に
System.ComponentModel.IContainer componentsなるメンバが追加されます。当初、
InitializeComponent()の中でこのcomponentsをinstantiateする文が追加されています。
しかし、デザイナで編集を続けていると、いつの間にかこのinstantiationの文が消える
という現象を何度か経験しました。
このとき例えば、こちら側でComponent cなるメンバをこのFormに追加したい場合、
componentsがnullだったりそうでなかったりすると、うかつにcomponents.Add(c)とする
わけにもいかず、cが解放されるべきタイミング、すなわちForm.Dispose()で解放させる
ことができません。
良い解決策がないものか、皆様の御意見を仰ぎたく思います。長文失礼しました。
0946デフォルトの名無しさん
2006/10/29(日) 19:32:51コンストラクタ内、InitializeComponent() の後に
if (components == null) components = new System.ComponentModel.Container();
を追加。
……で良いんちゃう?
0947デフォルトの名無しさん
2006/10/29(日) 19:45:20メンバ宣言の所でnewすればいいだけじゃね?
0948945
2006/10/29(日) 20:01:12私はどうやらDispose()に関して何かとてつもない誤解をしているようです。もう一度
勉強してみます。答えてくださったお二方>>946-947、ありがとうございました。
0949デフォルトの名無しさん
2006/10/29(日) 20:10:58試してみたけど確かにnewが消えるね。
0950945
2006/10/29(日) 20:15:24前から不思議だったんですが…考え始めたら気になってしまって。
実験したら実際にControlに追加していないメンバもDispose()が呼ばれるようなので、
いいことにしておこうかと思います。しかしそれなら、そもそもデザイナが追加する意味は
ないような…やっぱり気になりますね(^^;
0951デフォルトの名無しさん
2006/10/29(日) 20:27:16コンストラクタでcontainerを引数にとるやつを削除したとき、
ほかで要求してない場合消えるみたいだな
0952デフォルトの名無しさん
2006/10/30(月) 02:54:11そのユーザコントロール上にはりつけたコンボボックスの幅を
ユーザコントロールのプロパティとして設定したいと思っています。
なので簡単にhogeWidthみたいなプロパティをつくってやって、
ユーザコントロール上にはりつけたコンボボックスの幅の値をかえられる
プロパティを作ってやりました。
やってることは単純に幅に値をセット、リターンしているだけ。
なんですが・・・・・・
デザイナでそのプロパティを設定したら
画面再読み込み時になぜか幅とかが毎回一定数プラスされた幅に変更されているのです。
たとえば100にすると116、みたいな。
プログラム内をのぞいてみても思い当たる節がなく、わけがわかりません。
つたない文章ですが、どなたが原因がわかる方、教えてください。
0954952
2006/10/30(月) 03:47:09イニシャライズ時にはプロパティで設定した値ではなく
初期値で表示されるので、直接値を設定するのではなく
メンバ変数に一度幅を格納してあげて、
コントロールロード時に、設定してあげるとうまくいきました。
newされた時はそりゃプロパティの設定値なんてわかんないですよね。・。
よく考えたら当たり前のことでした。
0955デフォルトの名無しさん
2006/10/30(月) 04:45:48ネイティブコード(Windowsバイナリ)を吐けるんですか?
0956デフォルトの名無しさん
2006/10/30(月) 04:51:16ngen.exe
0957デフォルトの名無しさん
2006/10/30(月) 05:19:52どうも。これって、.Netコードをネイティブに変換みたいですね。
少し読んでみても書いてなかったんですが、変換してネイティブコード生成しても、
やっぱり.Netランタイム(CLR)は必要なんですか?
0958デフォルトの名無しさん
2006/10/30(月) 05:23:29当然。しかしランタイムもngenに掛ける事が出来る。
0959デフォルトの名無しさん
2006/10/30(月) 05:34:130960デフォルトの名無しさん
2006/10/30(月) 11:50:35フォームの中で重い処理をするのはフォームの監視ループとかの関係であまりよろしくない
のでしょうか?
フォームで重い処理をする部分のパラメータを受け取ってその処理をスレッドとして動かし
ているのですがやたらと重いです。プログラムが応答しなくなるほどに。
以前、フォーム無しでやったときはこんな状態にはならなかったのですが、どなたか原因や
解決方法を教えていただけないでしょうか?
0961デフォルトの名無しさん
2006/10/30(月) 12:30:05フォームだろうがなかろうが重いのは重いだろうが。
どうせ処理の度に描画させてるんだろ?
0962デフォルトの名無しさん
2006/10/30(月) 12:33:27スレッド呼び出してそれは、フォームのコントロールを使ってるとかだったりして。
0963デフォルトの名無しさん
2006/10/30(月) 12:38:15スレッドの使い方を・・・
0964デフォルトの名無しさん
2006/10/30(月) 12:38:190965960
2006/10/30(月) 12:45:57スレッドの使い方は
Thread mainThread = new Thread(new ThreadStart(program.Run));
mainThread.Start();
this.Enabled = false;
mainThread.Join();
という感じです。
このprogram.Runが重い処理なのですが、GUI無しならフリーズするまでは
行かないのですが何故なんでしょう。
0966デフォルトの名無しさん
2006/10/30(月) 12:47:170967デフォルトの名無しさん
2006/10/30(月) 12:49:25というわけでスレッドの使い方を(ry
0968960
2006/10/30(月) 12:54:04確かに。他にもフォームを呼ぶ予定だったのでスレッド化したものなので
とりあえずスレッドをやめてみても何も変化無しでした。
フォ−ムを利用することによって何か別の負荷がかかることは無いんでしょうか。
0969デフォルトの名無しさん
2006/10/30(月) 13:01:58965のように計算処理に専念してしまってメッセージを処理しないUIスレッド(フォームを持つもの)があると、
他のプロセスやら何やら(主にExplorer)がウィンドウをあれこれしようとしたときにメッセージを送ったときに
待たされたりしていろいろと面倒なことが起きる。
あれこれdisableしてcancelボタンだけenableする、あるいは全部disableするなどしたのち、
Start で開始して、先方のスレッドの最後で form のメソッドを invoke して完了を通知、
そこで計算終了時のUIの設定にする、というのがいいと思う。
計算途中で時々 Progress() (←自作関数ね) とかを invoke して進行状況を UI 表示してもいいし、
適当な変数に進行状況を記録しておいてタイマーでUIに反映させるのもいいかもしれない。
0970960
2006/10/30(月) 13:17:51ありがとうございます。
>あれこれdisableしてcancelボタンだけenableする、あるいは全部disableする
this.Enabled = false;
だけでは不十分でしょうか?
0971デフォルトの名無しさん
2006/10/30(月) 13:32:37十分です。
でも長い計算はキャンセルできるようにしておくのが武士の情けというか・・・
0972960
2006/10/30(月) 13:38:20わかりました。
ありがとうございました。
0973デフォルトの名無しさん
2006/10/30(月) 13:40:27>先方のスレッドの最後で form のメソッドを invoke して完了を通知、
このメソッドの中で計算スレッドを Join しようとするとデッドロックなので注意。
先方のスレッドはInvoke経由でメソッドからの戻りを待っているから、完了しない。
0974デフォルトの名無しさん
2006/10/30(月) 18:03:290975デフォルトの名無しさん
2006/10/30(月) 19:07:07VisualStudio2005 C#でunsafeなコードやDLLを使わずにプログラムを作っているんですが、
WindowsXP自体がフリーズしてしまいます。
発生タイミングが一致せずいきなりフリーズしてしまうので
どこでおかしなことしているのか見当がつかないのです。
フリーズに至るまでには、まず自分で作ったプログラムのフォームが
フリーズします(普通は必ず文字が流れるとかして動いている)。
この時点でマウスは動くけど他のウインドウをクリックして
アクティブにしようよしてもなかなか変わらなくなって、
何回かクリックしてるとマザボのスピーカからビープ音が鳴ってOSごとフリーズ。
マウスも動かないしキーボードのNumLockも切り替わらなくなる。
でもそのPCで再生していたMP3は普通に再生されている
という状態になるのですが、何が考えられるでしょうか・・・
0976デフォルトの名無しさん
2006/10/30(月) 19:10:56ボタン押したら無限ループに突入するような WindowsApplication を作って、比較実験。
0977デフォルトの名無しさん
2006/10/30(月) 19:14:21・スレッドをどんどん作る
・メモリをどんどん確保して開放しない
このどちらかで簡単にそういう症状を起こせますよ
0978デフォルトの名無しさん
2006/10/30(月) 20:19:56・ウィルスチェック、ディスクチェック、メモリチェックをして、回線を外してアンチウィルス等の常在ソフトを終了してから、
1.問題が発生する最小限のソースを調べる
2.VisualStudio上の場合、そうでない場合で比較
3.DebugかReleaseかで比較
0979975
2006/10/30(月) 20:29:51>>976,977
フォームだけがフリーズするよね!多分!
なのでスレッドを作ってます。けどスレッドの中のループでスレッドを作る
とか無限にスレッドが生成されるようなことはしてないです
>>978
これが他のどのPCでも発生するからウイルス云々ではないと思います。
他の点についてはまた毎日やってみて確認してみます。
たまーにしかでないから余計に追跡しにくいんです><
0980デフォルトの名無しさん
2006/10/30(月) 20:34:260981デフォルトの名無しさん
2006/10/30(月) 20:56:010982デフォルトの名無しさん
2006/10/30(月) 21:08:04976は、GUIスレッドでビジーループを回すと、CPU資源が食い尽くされて、システム全体の
GUIの反応が悪くなる/停まるってことをいってるんだが。
多分、じゃなくて試してみるよろし。
同じ症状なら、お前のプログラムでもビジーループが発生している。
ビジーループ=while(true) {}な。一応。
0983デフォルトの名無しさん
2006/10/31(火) 18:22:13どうしたらいいでしょうか?
private int printingPosition;
private void printDocument_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
printingPosition = 0;
}
private int GetLengthForPrint(string text, int start, Font font, System.Drawing.Printing.PrintPageEventArgs e, StringFormat format)
{
int min = 0, max = text.Length - start;
float targetHeight = (float)e.MarginBounds.Height;
if (!(e.Graphics.MeasureString(text.Substring(start, max), font, e.MarginBounds.Width, format).Height > targetHeight))
return max;
while (min + 1 < max)
if (e.Graphics.MeasureString(text.Substring(start, (min + max) / 2), font, e.MarginBounds.Width, format).Height > targetHeight)
max = (min + max) / 2;
else
min = (min + max) / 2;
return min;
}
private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
StringFormat format = StringFormat.GenericTypographic;
int length = GetLengthForPrint(textMain.Text, printingPosition, textMain.Font, e, format);
e.Graphics.DrawString(textMain.Text.Substring(printingPosition, length), textMain.Font, Brushes.Black, e.MarginBounds, format);
printingPosition += length;
if (printingPosition >= textMain.Text.Length)
e.HasMorePages = false;
else
e.HasMorePages = true;
}
0984デフォルトの名無しさん
2006/11/01(水) 00:04:13うまくいかないって言われてもなぁ・・・
0985デフォルトの名無しさん
2006/11/01(水) 00:23:40ようはない
0986デフォルトの名無しさん
2006/11/01(水) 00:32:160987デフォルトの名無しさん
2006/11/01(水) 01:38:020988デフォルトの名無しさん
2006/11/01(水) 01:47:020989デフォルトの名無しさん
2006/11/01(水) 01:48:22いるのですが、【半角カナ】がASCII文字として含まれている場合に
プログラム内部で文字化けしてしまいます。
ぐぐって、一度そのファイルをUnicodeとして保存すれば(一時的に)解決
出来る事は分かったのですが、その様に手動でやるのでは無くプログラム内部
からファイル全体(文字単位では無く)をASCII → Unicode に変更
するにはどうすれば良いですか?
0991デフォルトの名無しさん
2006/11/01(水) 02:14:06> 【半角カナ】がASCII文字として含まれている
意味が分からん。
取りあえず StreamReader のコンストラクタ調べれ。
0992デフォルトの名無しさん
2006/11/01(水) 02:20:490993990
2006/11/01(水) 02:38:34>>>990
>> 【半角カナ】がASCII文字として含まれている
>意味が分からん。
>取りあえず StreamReader のコンストラクタ調べれ。
例えば、【ABC.txt】より1行ずつデータを取得する際に
StreamReaderにて半角カナが含まれる行を読み込もうとしたところ
そのファイル(ABC.txt)がASCIIコードとして保存されているが
為に半角カナ部分が文字化けしてしまっている状態です。
(例:ア → a)
※そのファイルを開き、Unicodeとして保存すると文字化けは無くなるので
すが、プログラムで自動化させたいのです。
0994デフォルトの名無しさん
2006/11/01(水) 03:09:04StreamReaderのコンストラクタでエンコード指定できるでしょ。
0995デフォルトの名無しさん
2006/11/01(水) 03:11:58文字コードの変換は、StreamReaderで読み込んで、StreamWriterで書き出すだけ。
0996デフォルトの名無しさん
2006/11/01(水) 08:00:340998デフォルトの名無しさん
2006/11/01(水) 15:49:270999デフォルトの名無しさん
2006/11/01(水) 15:52:411000デフォルトの名無しさん
2006/11/01(水) 15:57:0510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。