C♯相談室 Part16
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯
NGNG(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレは>>2-5あたり。
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯
NGNGPart15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/ (現在HTML化待ち)
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 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0003デフォルトの名無しさん
NGNGいまはnagadon氏のメルマガバックナンバで勉強中です。
0004デフォルトの名無しさん
NGNG「WebResponse res = req.GetResponse() as HttpWebResponse;」の箇所で何故か
”メモリが不足しています”というcatchできない例外が発生してしまいます。
メモリや不要リソースは意識してDispose()やnullしてるので、例外発生時でも余裕で700MBほど空いています。
一度に接続しているのは1本のみで、1本読み終わって次に移るようにしています。
色んなサイトのサンプル(@IT、Space仮面、緑単車等)で試して今は"as"でやってますが、
「HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;」を
「HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);」でやっていたときでも同じでした。
解決策のヒントだけでもおながいします。
// 最低限で書きましたが、実際にはそれぞれの処理でtry&catchしてます。
private void gethtml(string url, ArrayList htmlbuff) {
ArrayList txt = new ArrayList();
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
webreq.KeepAlive = true;
webreq.Timeout = 30 * 1000;
WebResponse res = req.GetResponse() as HttpWebResponse;
System.IO.StreamReader rd = new StreamReader(res.GetResponseStream(),
System.Text.Encoding.GetEncoding("euc-jp"));
while(true) {
string str = rd.ReadLine();
if(str == null) break;
htmlbuff.Add(str);
}
rd.Close();
res.Close();
}
00054
NGNG実際にはrefついてます。
0006デフォルトの名無しさん
NGNG私の環境は2003なのに、100件以上のフィールドを持つテーブルを使用したところ
コマンド文の自動生成のところでエラーが出ました。
クエリビルダで数を減らしたところ、正常に各コマンドが生成されてました。
これは一体なぜですか?
0007デフォルトの名無しさん
NGNG再現しないなぁ……。
00084
NGNG1)ArrayListに10個ほどのURLを入れる
2)読み込み用スレッドを起動
3)スレッド内で>>4のような方法で読み込み
4)全部読んだらスレッドを終了
5スレッドの終了を確認 (全て読み込み成功)
6)またArrayListに10個ほどのURLを入れる
7)読み込み用スレッドを起動
8)スレッド内で>>4のような方法で読み込み
9)ここでreq.GetResponse()で「メモリ不足」例外が発生
10)でも、例外を無視して”継続”を押すと何事も無かったかのように以後は正常に動作 (全て読み込み成功)
11)更にまた1〜を行っても、もう例外はでない
・・・というような感じで「メモリ不足」が発生するのは2回目のスレッド起動の1回目の
req.GetResponse()だけなんです。1回目や3回目以降のスレッド起動では発生しません。
しかもreq.GetResponse()で発生してるにもかかわらず、何故かエラーの内容が
「メモリ不足/System.Drwaing.dll」なので原因の特定もできずにまいってます。
00094
NGNGDebugだと確実に再現するんですが、Releaseだと何の問題もありませんでした。
0010デフォルトの名無しさん
NGNGVC++ での話だけれども
バッファあふれのあるプログラムで Debug だと実行時エラーになるけれども
Release では実行時にエラーが出ないことがあったよ
0011デフォルトの名無しさん
NGNGその辺もチェックしてみます。
ありがとうございます。
0012デフォルトの名無しさん
NGNGデスクトップにショートカットを作成したのですが、
作成したショートカットにファイルをドラッグしても
禁止マークが出てしまいます。
ダブルクリックしてアプリケーションの起動は普通に
出来るのですが、原因が良くわかりません。
インストールしたアプリケーションより直接
ショートカットを作成した場合は普通にドラッグして
ファイルを渡すことが出来ます。
作成手順は
ファイルシステムの「ユーザのデスクトップ」に
ショートカットを作成し、以下のように設定しました。
Name:アプリ名
Arguments:(空欄)
Description:(空欄)
Folder:ユーザーのデスクトップ
Icon:(アイコン)
ShowCmd:vsdscNormal
Target:プライマリ出力
Transitive:False
WorkingFolder:アプリケーション フォルダ
です。
どこが問題なのか指摘していただければ幸いです。
よろしくお願いいたします。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGづけられている動詞の取得を試しているのですが
どうもデフォルトで起動する動詞が出ない気がします。
あと、動詞をコンテキストメニューのように日本語化
したいのですがそれもいまいち解りません。
もしご存知の方がおられましたらお教えください。
宜しくお願いいたします。
ttp://dobon.net/vb/dotnet/process/getverbs.html
0015デフォルトの名無しさん
NGNG自力でレジストリを参照するしか無いっぽいよ。
因みにProcessStartInfo.Verbsはアルファベット順に並ぶだけ。
ProcessStartInfo.Verbは自分で設定する用(デフォルトは空文字列)。
0016デフォルトの名無しさん
NGNGhttp://channel9.msdn.com/ShowPost.aspx?PostID=10276
"On of the things that we are trying to think about deeply in C# 3.0 is this big gap
that I still see between general purpose languages and databases...
Anyone who's building an enterprise app is using both worlds...
There's certainly a lot of progress we can make by truly marrying these worlds...
It's nothing but mismatch. We gotta do away with that."
Xen(,Cω)取り込んで、Xen自身は陽の目を見ない、あるいはF#的な扱いってことかな?
0017デフォルトの名無しさん
NGNGしーふぐり?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGC#で、SQL文でウェブサービスを使ってDataSetを取ってきてるのですが、
その最中に、
スレッド '<名前がありません>' コード 0 (0x0) で終了しました。
という文が、出力欄に出てきます。
データ量の多いものだと、4回くらい出てきます。
これが時間のかかる原因だと思っているのですが、
このメッセージの意味は何なのでしょうか?
よろしくお願いします。
0020デフォルトの名無しさん
NGNGオセロや将棋や囲碁を自分のPCで一からプログラムしたいのですがお勧めの
書籍&ソフトを教えてください
0021デフォルトの名無しさん
NGNG必要なソフト:Windows
本:「馬鹿でも分る日本語入門」
以上
0022●
NGNGないですか。
0023デフォルトの名無しさん
NGNGそれは単に内部で起動されたスレッドの終了時
メッセージでは?
Webサービスは基本的に遅いね。
なので多少の遅さには目を瞑ってSOAPの相互運用性を
生かしたいときに粒度の大きいメソッドで作るのがコツ。
現場でもJavaとの相互運用案件ばっかりだしな。
DataSetなんて、ほとんど.NET前提なんだから
ASP.NET経由のリモーティングでもいいような気が
するよ。
0024デフォルトの名無しさん
NGNG前スレ685
0025デフォルトの名無しさん
NGNG二人用の将棋ゲームなら簡単だな
画面描画が中心だ
コンピュータと対戦できるようにするなら
大変そうだな
0026デフォルトの名無しさん
NGNGスレ違いな気はするけど、一応。
http://www.amazon.co.jp/exec/obidos/ASIN/4875934289/ref=pd_sim_dp_4/249-7917612-4955516
http://www.amazon.co.jp/exec/obidos/ASIN/4320026810/qid=1087559066/sr=1-5/ref=sr_1_10_5/249-7917612-4955516
http://www.amazon.co.jp/exec/obidos/ASIN/4320028929/qid=1087559066/sr=1-2/ref=sr_1_10_2/249-7917612-4955516
http://www.amazon.co.jp/exec/obidos/ASIN/4320029569/qid=1087559066/sr=1-3/ref=sr_1_10_3/249-7917612-4955516
http://www.amazon.co.jp/exec/obidos/ASIN/4320120744/qid=1087559066/sr=1-4/ref=sr_1_10_4/249-7917612-4955516
http://www.amazon.co.jp/exec/obidos/ASIN/4781907237/qid=1087559066/sr=1-8/ref=sr_1_10_8/249-7917612-4955516
0027デフォルトの名無しさん
NGNGデータが欠落することがあるんですが下のコードって間違ってますか?
WebResponse response = request.GetResponse();
Stream recieveStream = response.GetResponseStream();
Encoding encode = Encoding.GetEncoding("EUC-JP");
StreamReader sr = new StreamReader(recieveStream, encode);
StringBuilder data = new StringBuilder();
int bufSize = 1024;
char[] buf = new char[bufSize];
int count = sr.Read(buf,0,bufSize);
while(count>0)
{
data.Append(buf);
count = sr.Read(buf,0,bufSize);
}
sr.Close();
recieveStream.Close();
response.Close();
0028デフォルトの名無しさん
NGNGPictureBox上にマウス動作で描画するアプリなのですが、
そのままではPictureBoxがフォーカスを受け取らないので
カーソルキーでの操作等を実装しようとしたとき、ほかのコン
トロールに制御を奪われ困っています。
マウスでクリックしたとき強制的にフォーカスを移動したりした
のですが、スマートクライアントにするとエラーが出ます。
できればタブキーでフォーカスを受け取るコントロールにしたい
のですがどのようにすればよいのでしょうか。
アドバイスよろしくお願いいたします。
0030デフォルトの名無しさん
NGNGReatしてもいいですか?
0031最凶VB厨房
NGNG0032デフォルトの名無しさん
NGNGFormのKeypreviewプロパティを使えばどうですか?
0033デフォルトの名無しさん
NGNG27でつ。.net FWのヘルプにはstreamreader.readtoendはあんまり信頼性
がないからなるべく使わないでね、的なことが書いてあったのでreadでいったん
ですが、、、、
参考までに>>27のコードはどこがタコなんでしょう。
とりあえずきちんとゲットできているように思えるときもあるんですが
0034デフォルトの名無しさん
NGNGお願いします。
0035デフォルトの名無しさん
NGNGStreamから直接Readするってのは?
バイト配列を一旦MemoryStreamに納めて、後で文字列にエンコード。
//過去ログにサンプルコードがあったはずだがみつかんない……
0036デフォルトの名無しさん
NGNG今はこんな風にしてますがこれだと何の問題もありません。
MemoryStream ms = new MemoryStream();
int count;
while((count = recieveStream.Read(buf,0,bufSize)) > 0)
{
ms.Write(buf,0,count);
}
buf = ms.ToArray();
string data = encode.GetString(buf);
27のコードはなんかおかしいんだすかね、、、、
0037デフォルトの名無しさん
NGNG半端な長さまでダウンロード・バッファリングしたところでエンコードが発生するからじゃないかな。
0038デフォルトの名無しさん
NGNGもちろんtry/catchも入れてるが。
ArrayList buff = new ArrayList();
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
WebResponse res = (WebResponse)req.GetResponse();
System.IO.Stream s = res.GetResponseStream();
System.IO.StreamReader r = new System.IO.StreamReader(s, System.Text.Encoding.GetEncoding("euc-jp"));
while(true) {
string str = r.ReadLine();
if(str == null) break;
buff.Add(str);
}
r.Close();
s.Close();
res.Close();
0039デフォルトの名無しさん
NGNGMMControl
0040デフォルトの名無しさん
NGNG「Unicode逝ってよし!」
と
0041デフォルトの名無しさん
NGNGさせたいのですが、何もしなくてもWheelで動いてしまうため、
動きがバッティングしてしまいます。
Wheelを完全に横取りするにはどうすればよいでしょうか。
宜しくお願いいたします。
0042デフォルトの名無しさん
NGNGhook
0043デフォルトの名無しさん
NGNGキーワードより以下のページを見つけました。
http://support.microsoft.com/default.aspx?scid=kb;ja;318804
色々試して見ます。
004441
NGNG0045デフォルトの名無しさん
NGNGそのメソッド呼び出しを含むコードをコンパイルすると
warningが出るようにする方法ってないでしょうか?
0046デフォルトの名無しさん
NGNGObsolete Attribute使えばいいんじゃないかな。
0047デフォルトの名無しさん
NGNGJava派の俺から見たら混乱を生むだけのゴミに過ぎん。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGC#派の俺から見たら混乱を生むだけのゴミに過ぎん。
0050デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGageてる方が厨房。
0053デフォルトの名無しさん
NGNGこの変換後の文字列を再びFontクラスのインスタンスに戻すことはできますか?
つまりこういうことです
Font → string → Font
なぜこんなことをやっているかというと、XMLにシリアライズするときに
Fontをダイレクトにシリアライズできないのでいったん文字列を
経由するというわけです。
ヘルプを読んでもこの逆方向のメソッドが見あたりません・・・
よい手だてがありましたら教えて頂けると幸いです。
よろしくお願いいたします。
0054デフォルトの名無しさん
NGNGカスタムシリアライゼーションやるんでしょ?じぶんでFontつくればいいじゃない
0055デフォルトの名無しさん
NGNGそうです。
仕方ないので、フォント名、色、サイズについて抽出して
保存することにしました。
書式に関しては使うつもりはないので。
Colorについても同様の現象で困ってるのですが、
Color.Nameで抽出した文字列からColor型のインスタンスにすることは
できないのでしょうか?
Fontと違って構造体だからコンストラクタもついてないんですよね・・・
0056デフォルトの名無しさん
NGNGでいけました。
Fontなんてよく使うクラスがシリアライズできないなんて
不便ですね・・・
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG存在しないんでしょうか。
ttp://dobon.net/vb/dotnet/control/firescrollevent.html
これを試してみましたが、フォーム上のパネルの
スクロールバーをクリックしても何の通知も来ませんでした。
(フォームのスクロールバーのみ可?)
0060デフォルトの名無しさん
NGNG> スクロールバーをクリックしても何の通知も来ませんでした。
Formの子クラスでWndProcをオーバーライドしてない?
メッセージを受け取るコントロールでオーバーライドしないと駄目だよ。
その場合なら
public class ScrollPanel : Panel {
protected override void WndProc(ref Message m) {...}
}
ScrollPanel panel1 = new ScrollPanel();
//以下略
0062デフォルトの名無しさん
NGNGMicrosoft.JScript を試してみましたがなんか違うような・・・。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGそういうのは特殊だからな。
嫌ならスクロールバー単体を自前で貼り付けろ。
0065デフォルトの名無しさん
NGNGMouseDownで座標チェックすればいいんじゃ?
0066デフォルトの名無しさん
NGNGOcxのあるメソッドを使うとSystem.NullReferenceExceptionが発生します。
最初はエラーすら出なかったんですが、try/catch をつけたら例外出してる所を
見つけました。が、なんでSystem.NullReferenceExceptionなのかがわかりません。
そのメソッドに渡してる変数の中身は、デバッグウィンドウで確認しましたが
空ではありませんでした。
Ocxの使用はC#で何か特に注意事項ってあるんでしょうか?
0067デフォルトの名無しさん
NGNGスレッド: VB6.0で作成したユーザーコントロールについて
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=10836
0068デフォルトの名無しさん
NGNGスクロールバーのクリックを取得するのって特殊かなあ。
それよりスクロールバーコントロールを貼りつける方がよほど特殊かと。
バーの描画やスクロール位置も全部自前で行わないといけなくなるし、
パネルの右下が
V V
>□ ではなく > とか >V
になるんじゃない?
実用上は問題ないかもしれないけどスマートじゃないなあ。
>MouseDownで座標チェックすれば
MouseDownはクライアント領域上でないと発生しないから、
スクロールバーのクリックは検知できないよ。
0069デフォルトの名無しさん
NGNG将来的に互換性が不安。
0070デフォルトの名無しさん
NGNGLonghornでWinFXになっても、Win32APIのDLLはManagedのラッパとして残るだろうから。
二度手間でパフォーマンス低下は当然だが。
0072デフォルトの名無しさん
NGNGWSHとかを使うのなら、アセンブリをCOMに登録するのが基本。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconExposingNETFrameworkComponentsToCOM.asp
簡単な物なら自前でインタプリタそのものを作ってみても良いかもしれんけどね。
0073デフォルトの名無しさん
NGNGC#でネトゲを作ることはできるか?
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGMouseDownをoverride
0076デフォルトの名無しさん
NGNGDirectX使えるんだからできるでしょ。
0077デフォルトの名無しさん
NGNG単刀直入に言おう。
お前にはできん。
俺が10年は保証する。
0078デフォルトの名無しさん
NGNG生のCOMインタフェースポインタを触る必要がある場合
どうするのがいいんでしょう
0079デフォルトの名無しさん
NGNGリフレクションかレイトバインド。
VB.NETの方が扱いが楽。
0080デフォルトの名無しさん
NGNG回答ありがとうございます
ええとそれはDispatchインタフェースの場合の話でしょうか?
私が想定しているのは、(Extended)MAPIでして
Dispatchじゃなくてtypesafeなインタフェースポインタが取れるんですが
typelibはないんです。
同じ話になりますか?
0081デフォルトの名無しさん
NGNGほれ。
http://g8.cx/mapi/
0082デフォルトの名無しさん
NGNGあ、実はそこは調べて発見したのですが
オープンソースでないのでちょっと不安というのと
私の環境ではエラーになっちゃうみたいで……
mscorlibのバージョン違いなのかなと思われるんですが
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGクラスと構造体、どちらで作ったほうがいいでしょうか?
0086デフォルトの名無しさん
NGNG派生させる必要がない限り構造体の方が良いんじゃないかな。
0087デフォルトの名無しさん
NGNGBrushを解放しないままアプリが落ちちゃった場合、リソースは解放されますか?
また、staticでBrushを保持して、Disposeなしでアプリ終了したときはどうですか?
0088デフォルトの名無しさん
NGNGランタイム終了時にきちんと開放されるから心配するな。
> メモリはガベコレが解放するけど、GDIリソースは自前で解放するルール
これはあくまでアプリを長期起動したり、リソースの確保が頻繁な場合の話。
0089デフォルトの名無しさん
NGNGAPIなどでOSのリソースを直接使用した場合はOSの仕様で決まる。
NT系OSなら大丈夫だ。9x系は怪しそう。
0090デフォルトの名無しさん
NGNGでもストリームは自分で閉じなきゃダメでしょ?
StreamReaderとか。
0091デフォルトの名無しさん
NGNG皆さん物覚えがいいですね
0092デフォルトの名無しさん
NGNG年ですね。引退を考えた方がいいかも。
0093和田
NGNG0094デフォルトの名無しさん
NGNG体に痛みを与えると記憶力が上がる。
ストレッチをしながら本やドキュメントを読むと
もしかしたらスっと頭に入る、かも。
ストレッチといっても激痛を感じる程にやるんだぞ。
試してみることを勧める。
0096デフォルトの名無しさん
NGNGあるArrayListの内容を1データずつ取り出してListViewItemを作成して、
ListViewに入れたとします。
ListViewからSelectedItemsで取り出したものとArrayListのデータを
結び付けるにはどうすればよいのでしょうか?
選択されたものをArrayListから消したいんです。
0097デフォルトの名無しさん
NGNGArrayListの中に入ってるデータのクラスに依るけど。
一番手っ取り早いのは、各ListViewItemのTagプロパティにそれぞれのArrayListから取り出したデータを入れとくことだ。
こうしとけば、
foreach (ListViewItem item in listView.SelectedItems)
arrayList.Remove(item.Tag);
だけで済む。
0098デフォルトの名無しさん
NGNG何が違うんでしょか?
デバッグ中、■ボタンならエラーがでらんのですが、フォームのXで終了するとエラーが出ます。
なして?
0099デフォルトの名無しさん
NGNG強制終了させてる
0100デフォルトの名無しさん
NGNG>>89が言ってる意味では別に駄目じゃない、別の意味で普通は駄目だけど。
「ストリームは自分で閉じなきゃダメ」の意味を取り違えてないかい?
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG最終的には普通OSがちゃんと開放するし、
Disposeがある奴は標準のクラスならFinalizeで開放されるから、
普通は大丈夫。普通はね。
0103デフォルトの名無しさん
NGNG何が違うってか、全然違う。
0104デフォルトの名無しさん
NGNGんなことはないので結局ダメだよ
0105デフォルトの名無しさん
NGNG今の話はアプリが終了した場合の話だから、
こちらの意味では別に大丈夫なんでないの?
0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNGWindowsForm関連は遅い。
ってのが何となくの印象。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG初回起動時の重たさもJAVAの重さに比べれば許せないほどじゃない。
0110デフォルトの名無しさん
NGNGDirectPlayならHostMigrateイベントを処理して終了なんだがなぁ。
0111デフォルトの名無しさん
NGNG実行中の速度に不満を感じたことはない。
++コンパイラのノウハウが継承されてるんだろうからそれなりに最適化はされてるんだと思う。
メモリは新しいものを無尽蔵に使っていくみたいだから、メモリ周りに関してはその場その場で
やり繰りしている++よりは速いかもしれない。
ただしメモリに余裕のある環境だけね。メモリ少ないと頻繁にGC発生して遅くなるかも。
0112デフォルトの名無しさん
NGNGGCがいつ開放するかはわからない。ただ必ず開放されることは確か。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGそういう時のための IDisposable(と言語組み込みの using (...) { ... } pattern)
# IDisposable を実装する場合は ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconfinalizedispose.asp この辺りを参考に…
# ただ IDisposable を実装しても、そいつを複数箇所から参照してる場合は『誰が責任持ってツブすのか』という問題は結局 programmer の責任なんだけど
>111
領域取得に関しては Generation 0 heap が尽きていなければ、通常の malloc よか速い…とかなんとか MSDN のどっかに書いてあったよーな記憶があります(単に使えるとこを頭から切り出してるだけですから)
GCに関しては頑張って実装してるような印象です。あまり酷い目にあったことが無いからなのかもしれませんが。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGデバッグ中のアプリのどのオブジェクトがどれだけメモリを使って
いるかを一覧でみるような事はできないでしょうか?
OutOfMemory Exception が出るのですが,一体どのオブジェクトが
メモリを食っているのかがわからなくて困っています.
よろしくお願いします.
0117デフォルトの名無しさん
NGNGOutOfMemoryException出たような気がするけど、
それとは違うの?
0118デフォルトの名無しさん
NGNGCLR Profiler
0119デフォルトの名無しさん
NGNGフォームの継承って多用しても問題ないの?
なんか隣の香具師がフォーム継承したらフリーズするってぶつぶつ言ってんだけど。
明日までに似たようなフォームを持つシステム10本くらい作れって言われたんだけど
いっこいっこフォームつくるのめんどいから継承しちゃいたいのさー。
あんま考えずにやって問題ない?
間抜けな質問ならごめんよ。
0120デフォルトの名無しさん
NGNGフォームに限らず継承するつもりのクラスはある程度考える必要があるべ。
単にコントロールの配置が同じフォームの派生クラスを作る、
というならあんまりエラーは起きないと思う、
0121デフォルトの名無しさん
NGNGstringやEncode.GetBytesを多用するループを書いたら、あっという間にメモリリークしたよ。
使い終わった変数にnullを代入しても同じ。
さんざん悩んだ挙句、null後にGC.Collectしてみたら嘘のようにエラーは無くなった。
0122デフォルトの名無しさん
NGNGメモリ枯渇じゃなくて?
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGメモリリークじゃなくて単に新しい領域を食いまくってるだけでしょ?
.NETだとnullしたって枯渇してない限りはどんどん新しいとこ使いまくるわけだから。
メモリリークっていうのはメモリが確保されたまま、そのアプリを終了しても
永遠に開放されない場合のことをいうのであって、いつかは開放されるのなら
それはメモリリークではない。
そいつをアプリAとして、もう一つGC.Collect()するだけのアプリBを作ってみ。
「メモリ確認→アプリA実行→メモリ確認→アプリA終了→メモリ確認→アプリB実行→メモリ確認」
これで開放されてるならそれはメモリリークとは呼ばない。
0125デフォルトの名無しさん
NGNG>永遠に開放されない場合のことをいうのであって、いつかは開放されるのなら
>それはメモリリークではない。
無意味な定義だなこれ
0126デフォルトの名無しさん
NGNGレスさんくす。
となりのやつのフリーズするソースを見てみた。
基本フォームにコンボボックスが3つある。
3つのコンボに対応してるオブジェクトがインスタンス時にDBから値をとってきてるらしい。
3つのオブジェクトは基本クラスのコンストラクタでインスタンスしてる。
それをフォームロードで連結してるだけなんだけど、実際にフリーズしてる・・。
なんだろ、そいつのマシンのスペックの問題かな?
0127デフォルトの名無しさん
NGNGそれは本当に"フォームの継承"が問題なの?
複数のフォームから同時に処理にいってデッドロックしてるとか、
継承元にある(protected staticな)共有オブジェクトを継承先でも使って状態を破壊してるとか。
0128デフォルトの名無しさん
NGNG継承先では何もしてないっぽい。
見てみると、継承ピッカー?なるもので、VSから派生フォームを自動的に作ってるみたいなんだけど。
その時点でフリーズしちゃってるみたい。
ローカルのプロジェクトフォルダにCSファイルは出来てるらしい。
基本クラスのイベントとかが怪しいなーと思ってるんだけど。
基本クラスのフォームロードイベントとか、ちゃんと正常に動くのかな?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGスレッド考慮してないからでねーの?
0131129
NGNGPropertyGridをUIに使ったアプリを作っています。
PropertyGridで操作するオブジェクトのプロパティがStructまたは
オブジェクトの配列の場合、値の変更がキャンセルされてしまいます。
ただ普通にstruct Pointなどへの設定は有効ですのでstructの定義もしくは
使用するTypeConvertorに一工夫必要なのだと思うのですが。
どなたが情報をお持ちではないでしょうか?
0132129
NGNGサンプルです。
public class Test
{
public Test()
{
}
//反映される
public Test1 t1
{
get { return _t1; }
set { _t1 = value; }
}
Test1 _t1= new Test1();
//反映されない
public Test2 t2
{
get { return _t2; }
set { _t2 = value; }
}
Test2 _t2;
}
0133129
NGNG[TypeConverter(typeof(ExpandableObjectConverter))]
public class Test1
{
public string t1
{
get {return _t1;}
set { _t1 = value; }
}
string _t1;
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public struct Test2
{
public string t2
{
get {return _t2;}
set { _t2 = value; }
}
string _t2;
}
0134デフォルトの名無しさん
NGNGすまぬ・・・漏れがスレッドをイマイチ理解してない。
そいつのソース貰って、基本クラスの
コンストラクタ内の処理・各イベントを全部コメントアウトしたらフリーズしなくなった。
フォームロードとかのイベントは、派生フォームでやればいいってことなのかな。
でもそれじゃ意味ないよね・・。
0135デフォルトの名無しさん
NGNGメインのフォーム(A)から、Bフォームをモーダルで表示させ、
dlgA DlgB = new dlgB();
DlgB.ShowDialog();
Bフォームで何らかの処理が行われたときに、Cフォームを処理選択用にモーダル表示します。
dlgA DlgC = new dlgC();
DlgC.ShowDialog();
で、Cフォームに「終了」「キャンセル」のようなボタンを配置し、「終了」が押された時、Cフォームで
Close();を行うとBフォームも終了してAフォームまで戻ってしまいます。
処理としては、Cフォームのみ消して、Bフォームに処理を戻したいのですが、なんか処理の仕方を
間違えておりますでしょうか?
よろしくお願いいたします。
0136130
NGNGけど・・・。
派生フォームをVSから表示(デザイン画面)するとフリーズする。
実行は出来るのに、なんでだろ。
これじゃ編集できねーいw
0137デフォルトの名無しさん
NGNGコンストラクタでDBを見に行っているせいで継承元と派生側と二重にDBアクセスして
コンストラクタで例外飛んじゃってるとか?
>135
普通は勝手に他のフォームを閉じたりはしませんが。
書かれているコードもよくわからないし
(型はdlgAではなくdlgBとかdlgCでないの?)
そもそもデバッガで追っかければわかる内容では?
0138デフォルトの名無しさん
NGNGデザイン時にもインスタンス化の処理は走るから、Component.DesigneModeを参照して
デザイン時はDB処理をしないようにすればよいのでは?
0139デフォルトの名無しさん
NGNGTypeConvertorを継承してTest2StructConvertorとでも作って
ExpandableObjectConverterの代わりに与えれば可能だとは思うが、
もっと簡単なやり方があったらごめん。
0140130
NGNGレスありがとねー。感謝。
ちょっと流れをまとめてみる。
考え違いあったらつっこんでください。
1.基本クラスで、コントロールの配置をしている。(コンボ3つ)
2.基本クラスで、各コンボのイベントプロシジャを定義。(イベントハンドラに追加)
3.派生クラスで、コンボ3つに対応する3のオブジェクトをインスタンス。DB接続しデータ取得。
4.派生クラス、Form_Loadイベントで、オブジェクトとコンボを関連づける。
これでやってみて、コンパイルし実行も成功。
しかし、デザイン画面で派生フォームを編集しようとするとフリーズ。開かない。
2.でイベントハンドラに追加せずに、派生クラスでイベントハンドラに追加。
これだとデザイン画面でも開ける。
んー。イベントプロシジャの定義は基本クラスでやって良いけど、ハンドラに追加は派生クラスじゃないと
だめってことかな。
長文ごめん。
0141135
NGNGそんなトリッキーな事やった覚えはないんですが・・もう一度ソース見直して、
報告いたします。
0142デフォルトの名無しさん
NGNGサンクス。
何の型に対して、どのメソッドをオーバーライドしてやればよい?
よくサンプルとかに出てくるstringに対する変換は非展開時の表示・編集用だよね…
0143デフォルトの名無しさん
NGNGExpandableObjectConverter内のConvertFromメソッドが、
受け取ったパラメータのプロパティを直接弄ってるのが原因と見た。
ExpandableObjectConverterを継承したTest2Converterクラスを作って、
bool CanConvertFrom(ITypeDescriptorContext, Type)
objectConvertFrom(ITypeDescriptorContext, CultureInfo, object)
object ConvertTo(ITypeDescriptorContext, CultureInfo, object, Type)
辺りをオーバーライドしてやればいける。
ヘルプの「型コンバータの実装」参照。
……残った問題は、各プロパティをグリッド上で編集しても即座には反映されないって事だ。
(ex.)
+Test2 hoge
t2 hoge //ここをfooに書き換えてもTest2のhogeが書き換えられない。Test2にフォーカスを当てた時に書き換えられる。
//実際のTest2オブジェクトのプロパティは書き換えられているんだが。
0144143
NGNG//私こそヘルプを良く読め。
オーバーライドするのは
object ConvertTo(ITypeDescriptorContext, CultureInfo, object, Type)
bool GetCreateInstanceSupported(ITypeDescriptorContext)
object CreateInstance(ITypeDescriptorContext, IDictionary)
だ。
0145デフォルトの名無しさん
NGNGポイントはCreateInstance()とConvertToでのInstanceDescriptorに対する処理みたいですね。
英語だと割とマンマの内容の記事を見つけました。
ttp://www.morganskinner.com/Articles/AStructTypeConverter/
今googleのキャッシュでしか読めませんが。
0146デフォルトの名無しさん
NGNGushortを型変換してbyte配列に入れるとか
出来る関数ってのはBASEライブラリにはないでしょうか?
0147デフォルトの名無しさん
NGNGBitConverter
0148デフォルトの名無しさん
NGNGSystem.BitConverter
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNGさんくす
0151デフォルトの名無しさん
NGNG・自前で関数書くのも大した手間じゃない
からなー。
//BitConverter.IsLittleEndianは(自前で関数書くときも)重要だが
0152デフォルトの名無しさん
NGNGクラス名(文字列)からインスタンスって生成できますか?
Hoge createInstance(string className)
というメソッドが有って
こいつに"Hoge"とか"ExtendHoge"とか文字列を渡すと
対応したクラスのインスタンスを返すことってできますか?
0153デフォルトの名無しさん
NGNG構成ファイルに接続文字列出してたりしてんじゃないの?
基底のフォームが例外で落ちてるってのがいかにもありがち。
ってかそういう突っ込みあるのに確認してないのか?
ちなみに、デザイナで表示してるフォーム自身は完全に動作してなくても
デザイナで表示は出来たりするが、その継承元はちゃんと動作して無いと
駄目な用に思う(なんか、そんな感じに動いてるっぽい)。
だから、デザイナで表示してるフォーム自身が例外はいてるときは
デザイナ自体はちゃんと動いたりする。
※結局、デザイン時に例外はくようなフォームは作るなってこった。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG書き込みに使ってるキーワードだけで、山のように見つかったぞ。
2ちゃんに書き込む時間があったらぐぐった方が早いのくらい知っとけカスが。
カスでも分かる一例
ttp://dobon.net/vb/dotnet/programing/createinstancefromstring.html
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040624CSHARPAH/manifest.xml
0158デフォルトの名無しさん
NGNGプロキシを取得したいのですが何かいい方法はないでしょうか?
System.Net.WebProxy.GetDefaultProxy()を使っても自動構成スクリプト
を使用している場合、プロキシを取得できないみたいなのですが……。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGああ、そうだった
0165デフォルトの名無しさん
NGNGC#をインスコしたら、上のようなダイアログがでてきて起動できない・・・orz
環境は
Windows2000
pentiumIII600
メモリ:514MB
で、インスコしたのは、Visual C#.net Standard version2003 アカデミック
です。
なにか、対策はありませんか??
0166デフォルトの名無しさん
NGNGそれまで割れ物のVS.NET使ってたろ。
0167165
NGNG原因がわからんヽ(`Д´)ノ
0168デフォルトの名無しさん
NGNG0169165
NGNG.netとframeworkをアニンスコして再インスコしてみます。
成功しても失敗して報告しますんで・・・よろしく・・・orz
0170デフォルトの名無しさん
NGNGIME立ち上げるのが面倒。
0171デフォルトの名無しさん
NGNGスペースでなにか問題起こさなかったっけ?
0172165
NGNG0173デフォルトの名無しさん
NGNGこれだけでもプログラム開発できるみたいね。
SDKを入れると何がインストールされるん?
0174デフォルトの名無しさん
NGNGライブラリとか
0175デフォルトの名無しさん
NGNGてことは、フレームワークだけだと利用できるクラスに制限があるってことか。
ありがと。
0176デフォルトの名無しさん
NGNGenumの定義とは無関係にlistでちまちま書かないと駄目なんですかね。
0177デフォルトの名無しさん
NGNG制限ないし。
0178デフォルトの名無しさん
NGNGVSのインテリセンスに有効な書き方は以下の通り。
///<summary>何らかの状態</summary>
public enum Hoge {
///<summary>状態A</summary>
StateA,
///<summary>状態B</summary>
StateB
}
0179デフォルトの名無しさん
NGNGありがとうございます。その情報ってどこに載ってますか?
このあたりを一通り読んでみたんですけど・・・
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vcwlkxmldocumentationtutorial.asp
0180デフォルトの名無しさん
NGNG手探り(きっぱり
//ちょっと必要があったので以前全部調べたんだ。
//メソッド以外はほぼsummaryだけっぽい。
0181デフォルトの名無しさん
NGNG///とタイプしてみればとりあえずわかるし
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG"/// " の自動補完ってちょっと異常だよな
始めて知ったときは笑いがとまんなかった
0184デフォルトの名無しさん
NGNG「何?」の部分を何にしたら良いのか分からんが、
この形式でインテリセンス働かせる方法無い?
///<summary>なんとかかんとか</summary>
double hoge;
だと上手くいくのは知っているけど、変数宣言で二行取るのは醜いしさ
0185デフォルトの名無しさん
NGNGうちはC++のころは
/*
コメント。
↓の説明とか
*/
int m_nValue;
とか書いてたから醜いとは思わないけれど、でもそれぐらいの柔軟さはあってもいい気がする。
属性の記述の仕方にあわせてるんだろうか。
0186デフォルトの名無しさん
NGNGそれともNDocに丸投げしちゃうのかね。
0187デフォルトの名無しさん
NGNGMVPを名乗ってるのが(♯さんじゃなくてリンク先の方が)こんないい加減なこと書いてていいのか?
0188デフォルトの名無しさん
NGNGttp://blogs.users.gr.jp/hidori/archive/2004/06/26/3331.aspx
0189デフォルトの名無しさん
NGNGShared Sourceなライセンスだと汚染が起こる気がするんだが。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG例えばフォームのサイズプロパティはwidthとheightとあるけど
sizeのところで両方指定もできるし、展開して個々に指定もできる。
0193デフォルトの名無しさん
NGNGSizeはグループ化してるわけではなく、フォームのWidthとHeightはフォームが持ってる
Sizeへのエイリアスみたいなもので、WidthとHeight自体にはBrowsable(false)がついてるのではと言って見る。
public class Form
{
Size _size;
public Size Size
{
get { return _size; }
set { _size = value; }
}
[Browsable(false)]
public int Height
{
get { return _size.Height; }
set { _size.Height = value; }
}
[Browsable(false)]
public int Width
{
get { return _size.Width; }
set { _size.Width = value; }
}
}
こんな感じ?
自作classを展開指定ならExpandObjectConverter属性をつける。
structを展開したいのなら>139,143-145あたり参照。
0194デフォルトの名無しさん
NGNG.NET Frameworkではstring型はUnicodeなわけで、
string型のASCIIエンコード文字列だのJISエンコード文字列だのはあり得ない。
バイト配列を変換したいならEncoding.ConvertとかEncoding.GetBytesとか。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNGあるプロパティの値が変更されたとき、
ある他のプロパティの表示/非表示や変更可能/不可能を切り替えることはできますか?
0197デフォルトの名無しさん
NGNG少し頑張れば可能。
The Code Project - Unleash PropertyGrid with Dynamic Properties and Globalization - C# Programming
http://www.codeproject.com/csharp/DzDynamicProperties.asp
0198192
NGNGthx
こちらの思い通りにできました。
0199デフォルトの名無しさん
NGNG文字列ってなにを渡せばよいのでしょうか。
MDBの場合だと、
"Provider=MIcrosoft.Jet.OLEDB.4.0;Data Source=mdbファイル名"
っていうのを書籍でみたのですが、
MySqlの場合はどうしたらよいのでしょうか。
いろいろ検索してみましたがわかりませんでした。
なんか根本から勘違いしてる?
0200デフォルトの名無しさん
NGNGOLE-ODBC(って今も使うのかな?)だったらODBC用の接続文字列、では?
0201199
NGNGレスありがとうございます。
せっかく回答いただきましたが、私の知識が乏しすぎて、
さっぱり理解できませんでした。
どこぞで勉強しなおしてくることにします。
勉強になるサイトまたは書籍などあれば教えていただけると
助かります。
0202デフォルトの名無しさん
NGNGありがとうございます。
少しというかかなりがんばらないといけないようですね・・・。
PropertyGridは手軽に使えるのはいいんですがこういう痒いところには手が届かないんでしょうか。
PropertyGrid使うのやめてちゃんとGUI作ったほうがよさそうですね。
0203デフォルトの名無しさん
NGNG0204199
NGNG検索すると、java+MySqlの情報がたくさんあるのですが、
C#からMySqlを使用するような情報がみつからないんです。
java+MySqlは過去にやったことがあるのですが、DB接続部分は
サンプルからぱくってましたから理解できてません。
この当りを応用すればうまくできるのかなあ。
0205デフォルトの名無しさん
NGNG検索の仕方が悪い。
ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=SJIS&oe=SJIS&num=100&q=NET%20MySQL%20接続文字列
0206デフォルトの名無しさん
NGNGforやwhileの条件式って、ループのたびに計算される?
while(i < GetSomething()){
// 何かの処理
}
public int GetSomething(){
// 結構面倒な処理だけど、返る値は最初の1回目以降は同一
}
上の式を何百、何千回と回すんだったら下のように書き直した方が、
オーバーヘッドは少なくて済むかな?
それともこの辺りはコンパイラが最適化してくれて、
手作業で小細工しなくてもよかったりするんだろうか。
j = GetSomething();
while(i < j){ ... }
0207デフォルトの名無しさん
NGNG自分で試そうね。
for (int i = 0; i < GetSomething(); i++) {...}
int GetSomething() {
System.Console.Write(".");
return 10;
}
0208デフォルトの名無しさん
NGNG毎回実行する必要がないときはJITで最適化される事になっている。
むしろ、小細工してコンパイラを出し抜くな、よけい遅くなる、と言うことになっている。
0209デフォルトの名無しさん
NGNGint GetSomething() {
int a = 0;
for (int i = 0; i < 100; i++)
a++;
return 100;
}
って毎回実行する必要の全くない関数でも毎回実行されてるし。
これが完全に最適化される日が来るのかな……。
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG「計算結構長くなるなー、関数にくくり出しちゃえ」とかってそれなりにあると思うけど。
その上で>>208なんだし。
0212デフォルトの名無しさん
NGNGそれは最適化ではなく設計の範疇だと思うんだけど。
0213デフォルトの名無しさん
NGNG『毎回評価される』という言語仕様は変わらないんだから、素直に中間変数取るのがこの場合は自然な気がする…(C,C# 的思考に毒されてるだけなのかもしれない)
inlining が効果的な場合はキチンと inline して JIT する機能は機能で必要なんだけど、ここでそれに頼るのはワシ的には微妙に違和感があります。
0214デフォルトの名無しさん
NGNGfor (std::vector<foo>::const_iterator it (bar.begin ()), it_end (bar.end ()) ; it != it_end ; ++it) { ... }
なんて書き方してるしなぁ…(勿論 std::vector 程度じゃ bar.end () を条件のトコに生で書いても大差ないと思うけど)
確か std::foreach の中身では同じ様な書き方してた記憶がある…
# C# な話でなくてスマヌ…
0215デフォルトの名無しさん
NGNG大きいメソッドだと呼ばれちゃうのかな?
http://www.microsoft.com/japan/msdn/net/general/dotnetperftechs.asp
0216デフォルトの名無しさん
NGNGJITが呼び出し先を静的に評価できない可能性があると判断したら
呼び出しのまま残る(というか残ってくれないと困る)のでは?
0217デフォルトの名無しさん
NGNG2) flow 解析は限定されてる
の二つの制約から実際に inlining されるのはかなり単純なものに限定されている気はする…( get { return foo_ ; } みたいな奴とかかな?)
勿論 216 で言及されてるいる様に静的に評価出来ないとか(virtual になってるとか)副作用があるとかだと、残っててもらわないと inlining の有無で結果が違うという具合の悪いことに…
# de-virtualizing なんていう optimization も世の中には存在するけどもささささ…まだ一般的じゃないよなぁ(?)
0218デフォルトの名無しさん
NGNGXXXUser(アカウント用)クラスのインスタンスを、ユーザーがデータを入力するたびに新しく作りたいんですが、
ユーザーが使わなくなったアカウントを逐次的に削除したいんです。
0219デフォルトの名無しさん
NGNGそれは GCの神しか知らない情報… instance が消える timing は不定なのが GC ある世界の掟ですが…
0220デフォルトの名無しさん
NGNG0221199
NGNGどうもありがとう。
探してみます。
0222206
NGNG簡易に試したところでは、差がほとんどなかったり、
30%〜40%の違いが出たりとまちまちだった。
>>206 の前者のようなパターンを、コンパイラが
「戻り値は一定だからここの呼び出しは省ける」とかいった
おせっかいは焼かないんだね。
単純なことでも人の手で速度アップを図れるところはあると。
0223206
NGNGfor(int i = 0; i < myArray.length; i++){}
int l = myArray.length;
for(int i = 0; i < l; i++){}
コンパイラはおそらく myArray の長さが一定であることを確認し、
for ループの比較に定数を挿入するでしょう。
おー、ここまで見てくれるんだ。
ここでも「コンパイラを出し抜こうと考えるな」って言ってるね。
確かにint型など単純な値型ならLengthでもGetLength()でも差はなかったけど、
myArrayを自前の構造体(いろんなメンバが突っ込んである)で試したら
それなりの差は出た。
0224デフォルトの名無しさん
NGNG強い最適化を施せば >209 みたいな奴を呼び出してても定数との比較に出来るとは思うけど、Just-In-Time compling だからあんまり頑張ると最初の1発目が遅くなってしまう…
実行時 profiling を使って、段階的に optimize level を強くする様な仕掛けを JIT compiler が実装してこない限りはつらそうだなぁ(そのうちやるとは思うけども)
mono project の JIT の optimize は何処までやってんだろうか?
# efficeon の CMS は4段ギアになってるなんて話もあったな… ttp://pc.watch.impress.co.jp/docs/2003/1104/kaigai041.htm
0225デフォルトの名無しさん
NGNGhttp://pcweb.mycom.co.jp/articles/2004/06/24/win64/
マネージコードなら 32bit環境だろうが、64bit環境だろうが x86だろうが
x86-64だろうが、Itaniumだろうが動くと思ってたんだけど・・・
俺の勘違い??
0226デフォルトの名無しさん
NGNGいや、Managedなら基本的に問題なく使えると書いてある。
ただ、x64だけ、とかいう風に制限を「かけることもできる」という話。
//Win32APIを使ったアプリのための制限とかそんなんかな。
0227225
NGNGへんな文章書いてごめん。
たしかに問題なく使えると書いてあります。
http://pcweb.mycom.co.jp/photo/articles/2004/06/24/win64/images/016l.jpg
>32bit .NETコードはWOW64で実行
>64bit .NETコードはネイティブ環境で実行
僕が疑問に思ったのはマネージコードに32bit、64bitっていう区分けが可能なの?
とか、
おいおい、WOW64上で実行って事は普通の32bitアプリじゃねえか?
と思ったんですけど・・。いかがでしょうか?
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG.NET Framework を立ち上げるスタブの部分は今のところ X86-32 のコードが入ってるから、立ち上げるところは WOW64 で
hosting 環境が出来てしまえば残りの MSIL の部分は host native 実行…って事なのかしらん?
0230デフォルトの名無しさん
NGNG検索してもWEBアプリのサンプルばっかりなので。
Windowsアプリの開発ってあんまりやったことないんですが、画面にイベントハンドラとかプロシジャとか記述するんですよね?
MVCって考えはWindowsアプリにはないのでしょうか。
ちっと悩んでます。
0231デフォルトの名無しさん
NGNGIntPtrとかサイズが変わる。
0232デフォルトの名無しさん
NGNG常識。
0233デフォルトの名無しさん
NGNG下のような使い方をしたいのですが・・
//引数1に対象文字列、2に変換前Encoding(UTF8)、3に変換後Encoding(UTF7)
public string (string text, Encoding encode, Encoding encode)
{
return text2;//戻り値はエンコード変換後の文字列
}
0234デフォルトの名無しさん
NGNG.NETアセンブリは、外見はPEフォーマットになっているんだけど、そのヘッダーに
マジックナンバーとして、どのコードなのかが書かれている。
dumpbin /headers で見てみ。
で、ネイティブなマネージコード、仮にPEヘッダーにPE32とかx86と書かれていても
64bit .NET frameworkでは、64bit用にコンパイルされて動作する。
もちろん、CCW、RCWとか使ってちゃだめよ。
あと、J#だけは、WOW64上の動作に限られる。
0235デフォルトの名無しさん
NGNG> UTF8からUTF7への文字コードの変換はどうやったらいいでしょうか?
過去何度か出てるけど、string型はUnicode(UTF16)。
そんなメソッドに意味はない。
バイト配列が必要なときにSystem.Text.Encoding.GetBytes()とか使うといい。
あるいはもっと具体的な話をしてくれればほかの助言もできるかもしれないけど。
0236デフォルトの名無しさん
NGNGプロパティの一覧って必ず宣言した順番に並んでいるのでしょうか?
順番が保証されてるとかないですか?
0237デフォルトの名無しさん
NGNG何がやりたいの?
アンマネージコードにエクスポートしたいの?なら、LayoutKindがあるけど。
0238デフォルトの名無しさん
NGNGリフレクションで取得した一覧の順番に依存したコードがあるんで、
それを修正するための理由を探しているんです。
0239デフォルトの名無しさん
NGNG順番を保障してないと考えるのが妥当だと思うけどなぁ…
# custom serialization が実装されているとかすると順番とかそんなの全く関係ないし…
0240デフォルトの名無しさん
NGNG0241165
NGNGどうやら、VC#.netに問題があるのではなく、visual studioに問題があるみたいです。
アプリケーションの追加と削除に、Framework1.1とVC#.netを削除する部分があるんだけど、visual studioを削除する部分がないですよね。。。どこにある??
完全に削除して再インスコを試みたいです・・・orz
0242デフォルトの名無しさん
NGNGウィザード系が走るときにオブジェクトの作成に失敗しましたと出て、コンポーネントの追加やら何やらが
できなくなった状態のがうちにも1台ある。
VS.NET自体は何度か再インスコしたが改善せず。
そのうちOSごとと思ってうっちゃってるけど。
0243デフォルトの名無しさん
NGNGその参照される側が更新されると、動作に支障がなくても参照できなくなります。
厳密名とか署名とかいったことが行われている場合だけそうなるようです。
参照する側をいじるにしてもされる側をいじるにしても、
たとえばメジャーバージョンが変更されない限り参照しちゃえみたいな指令はできませんか?
0244デフォルトの名無しさん
NGNG遅延署名?
0245デフォルトの名無しさん
NGNG[assembly: AssemblyVersion ("1.0.*")] とかやってない?
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_04/idnfw11_04_02.html の version redirect なんてのもあるにはあるけど…
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGなぜにそこで遅延署名…
0249デフォルトの名無しさん
NGNGHttpWebRequest req = WebRequest.Create(url) as HttpWebRequest ;
HttpWebResponse res = null ;
try
{
res = req.GetResponse() as HttpWebResponse ;
StreamReader reader = new StreamReader(res.GetResponseStream(),Encoding.GetEncoding("Shift-JIS")) ;
textBox1.Text = reader.ReadToEnd() ;
reader.Close() ;
}
catch
{
textBox1.Text = "Not Found!";
}
こんな感じでWebページのソースファイルを取ってきたいのですが、
2chのスレッドのソースを取得するにはどうすればよいでしょうか?
url に http://pc5.2ch.net/test/read.cgi/tech/1087297504/ といれても Not Found になってしまうのですが。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGAlphaを無視するのではなく、Alphaが有効な状態での、
赤緑青の値を取得したいのです。
0253デフォルトの名無しさん
NGNG(゚д゚)ハァ?
0254デフォルトの名無しさん
NGNG背景の色は?
0255252
NGNGColorFromArgb(255,Color.Red).ToArgb()
とすると、-65536 が返されます。
これを、255,0,0 に変換したいということです。
0256デフォルトの名無しさん
NGNG>赤緑青の値を取得したいのです。
ここが禿しく意味不明なんだが。
Aが有効なRGBっていうと普通は合成先のRGBも必要だろ。
>>255を読む限りAを無視すればそれでいいじゃんって思うんだが?
byte r = System.Drawing.Color.FromArgb(255,Color.Red).R;
byte g = System.Drawing.Color.FromArgb(255,Color.Red).G;
byte b = System.Drawing.Color.FromArgb(255,Color.Red).B;
これで何か不都合でもあるのか?
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG言ってる意味がわからんのだが、
とりあえずRGB(0,0,0)かARGB(0,0,0,0)と合成してみれ。
それで気に入った色が出てこないんならもっぺん整理して出直せ。
0259デフォルトの名無しさん
NGNGメシ食ってくる。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGクリップボードで受け取ろうと思ったのですが
文字化けしてしまいます。
回避策はあるのでしょうか?
string dataHtml =
Clipboard.GetDataObject().GetData(DataFormats.Html,true) as string;
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGhttp://santamartadotnet.hp.infoseek.co.jp/documents/dotnettips/tips015.html
文字コード変換で解決できると思う。
0264261
NGNG参考URLを元に、こんな感じで全部試してみた。
foreach ( Encoding encoding in encodings ){
foreach (Encoding sourceEncoding in sourceEncodings){
byte[] buf = sourceEncoding.GetBytes(dataHtml);
Console.WriteLine( encoding.GetString(buf) );
}}
整理すると
一部の文字化けが解消するパターンはあったけど
完全には戻らなかった。...orz
//一部だけだが文字化けが解消したもの
byte[] bytes =Encoding.Default.GetBytes(dataHtml);
string data = Encoding.UTF8.GetString(bytes);
Console.WriteLine(data);
0265デフォルトの名無しさん
NGNGある static なインスタンスの中で byte array の配列を用意して
(かなり大きな配列になる)使用しています.
次に,この配列の中身を削除して(例えば null を代入するなり)
GC.Collect() を呼んでも,その配列で使用していたであろうメモリ
が解放されない時があります.(される時もあるんです)
で,その状態で,再度同じ byte array に
ドカンと領域を取ると OutOfMemory 例外となってしまいます.
この時,最初に取得した byte array の分が正しく解放されて
いれば,OutOfMemory にはならないはずなのですが,どこからも
参照していない状態(null を代入するなりして)
どうしても解放されない時があります.
GC.Collect() を行なっても解放されていないメモリ領域が
存在して,かつ,そのメモリ領域が原因で OutOfMemory となるので
プログラム的にどのように対応すればよいのか困っています.
何か注意する点などアドバイスなど頂けませんでしょうか?
0266デフォルトの名無しさん
NGNG実際に開放されるタイミングはGCが決めるんじゃなかったっけ?
0267デフォルトの名無しさん
NGNG・OutOfMemoryになるようなハードウェアは使わない
・そもそも設計がおかしい
・どこかで参照が残っている可能性がある
・GC.Collect(int)
0268266
NGNG0269デフォルトの名無しさん
NGNG.NET Framework 1.0 には large object heap の管理に bug が存在していた模様です。
もしかしたらこいつに引っかかってるのでは?
0270265
NGNG>>266 そうでしたか.では GC.Collect 呼んでもガベージコレクションされる
とは限らないんですね.強制的にガベージコレクションを行なう方法
っていうのは用意されていないんでしょうか?
>>267 自前でのメモリ管理ってどのように行なうのでしょうか?
URL などの情報でもいいので教えていただけないでしょうか?
参照が残っている可能性ですが間違いなく null を代入しているの
ですが,それでは確実ではないでしょうか?
ハードウェアは換えられないし,設計がおかしい可能性も否定は
できませんが….
>> 269
情報ありがとうございます.ゆっくり目を通してみます.
よろしくお願いします.
0271デフォルトの名無しさん
NGNGメモリ管理というのは必要量を最初に確保したまま開放せず、
使いまわせばということです。
可変長であればサイズ管理を追加してしまえばいいのでは。
クラスライブラリのメリットをスポイルしてしまいますが、システムが確保できないような
量を要求している以上仕方ない気もしますが…。
設計がおかしいとは、結局メモリ管理を見直すか、メモリ必要量を見直すしかないのでは?
ということで。
0272デフォルトの名無しさん
NGNGっつー点で破綻しているような。
0273デフォルトの名無しさん
NGNGだから第二世代以降の変数は保持されたままになる。
全部開放したいならGC.Collect(2)にしなきゃダメ。
(2)はMaxGenerationだったかで値取得した方がいい。
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNGpublic static void Collect();
まあ、こんなものなので鵜呑みにせずちゃんと確認しろってこった。
0276デフォルトの名無しさん
NGNGここの「より高度なガベージ・コレクションを行う」の実行結果を見る限りでは
ジェネレーション指定なしだと開放されずに残るっぽいが?
0277276
NGNG0278デフォルトの名無しさん
NGNGWin32 APIの、DdeConnectという関数をC#のPlatform Invokeで呼んでいます。
DdeGetLastErrorの戻り値によると、16390, 16394のエラーが出ているのですが
このエラーの意味を調べるにはどうすれば良いんでしょうか?
MSDNサイトを見ると、15999までのErrorしか記載されていませんでした。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp
16000番以上のエラーコードが調べられるページやファイルがありましたら教えてください。
初歩的な質問かもしれませんが、よろしくおながいします。
0279デフォルトの名無しさん
NGNGテキストボックスに数値を入れてボタンを押すと、計算をしてグラフを描画するプログラムを作ったのですが、
プログラムのウィンドウの上に他のウィンドウを重ねたりスクロールバーでスクロールさせてもどすと、
いままで隠れていた部分の「描画した線」が見えなくなってしまいます。
消えないようにするにはどうしたらよいのでしょうか?
0280デフォルトの名無しさん
NGNGPaintイベント・・・・・
0281デフォルトの名無しさん
NGNGttp://www.google.co.jp/search?num=100&hl=ja&inlang=ja&ie=UTF-8&c2coff=1&q=ddegetlasterror+16390%7C4006%7C0x4006&lr=lang_ja
と16進でも検索しよう。
ここの一番上でエラーコードとそれの定数が分かる。あとはDdeGetLastErrorのMSDNの解説。
>>279
PictureBox.ImageなりForm.BackgroundImageなりのImageに対して描画する。
0282デフォルトの名無しさん
NGNG入門スレで出直して来い
0283デフォルトの名無しさん
NGNGPiantイベントを試してみたのですが、
private void button1_Click_1(object sender, System.EventArgs e)
{
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{ //演算、描画のコード
}
}
このような形にしてしまうとエラーがたくさん出てきてしまいます。
かといってpaintイベントをclickイベントの外に出すと、最初から決まっている線については描画できますが
計算によって求まる線については、まだテキストボックスに数値を入力してないということでプログラムが固まってしまいます。
どのようにすればよいのでしょうか・・・
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGイベントの下にイベントを置くという、C#のルールそのものを無視したやり方自体が間違っている。
C#というよりVisualC#の動作をちゃんと理解した方がいいよ。
> まだテキストボックスに数値を入力してないということでプログラムが固まってしまいます
だったら、先に値をチェックして関数を終了すればいい。
0286デフォルトの名無しさん
NGNGボーン てBeep音が出るのですが、
これを鳴らないようにするにはどうすれば良いのでしょうか?
0287デフォルトの名無しさん
NGNGKeyPressイベントでHandledをtrueにすれば出来たような気がする
0288デフォルトの名無しさん
NGNGBackgroundImageを利用するの好きだなー。
上からさらに描画したりして応用きくしね。
0289デフォルトの名無しさん
NGNG>285の
>イベントの下にイベントを置くという、
という表現もなんだかなぁと思う日曜の昼下がり。
0290デフォルトの名無しさん
NGNG「先に値をチェックして関数を終了」というのはどのようにすればよいのでしょうか?
0292デフォルトの名無しさん
NGNGいいから入門書を買ってこい。
0293デフォルトの名無しさん
NGNGすいません、それについては解決しました。実はこのスレには
http://pc5.2ch.net/test/read.cgi/tech/1083995297/
から誘導されてきたのですが(315が私です)、新たな質問は向こうのスレに書きましたので
よろしければご教授願います。ちなみに入門書は何冊か持ってます。
0294デフォルトの名無しさん
NGNGのStreamReaderはnewしないと使えないのに、
NetworkStream stream = new TcpClient("hage.net",100).GetStream();
のNetworkStreamはnewしないで使えるのは何故なんですか?
0295デフォルトの名無しさん
NGNGだからなんでFormへの直接描画にこだわるのさ。
>>294
GetStreamメソッドの中でnewされてるんだろ。
//夏……。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNGhttp://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html
ここのプログラムを実行してみたのですが、ボタンをクリックすると
'System.ArgumentNullException' のハンドルされていない例外が system.drawing.dll で発生しました。
追加情報 : 値を Null にすることはできません。
というメッセージが出てて、ソースコードの中の
Graphics g = Graphics.FromImage(PictureBox1.Image);
の行が緑色にマーキングされます。これってどういうことでしょうか?
0298デフォルトの名無しさん
NGNG何がnullなのか考えてみろ。
0299デフォルトの名無しさん
NGNG買ったなら読め。
0300デフォルトの名無しさん
NGNG0301300
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG別スレで答え出てただろうに。
0304デフォルトの名無しさん
NGNG安くなったりして間口が広がればそこから入ってくるのは当然従来よりも
質の低いものの割合が増えるのは世の習い。
ある意味、金がかかることがユーザの平均的な質を維持してたんじゃないの?
0305デフォルトの名無しさん
NGNG「まだテキストボックスに数値を入力してないということで」が判明しているのでしょ?
なら、そうなっているかを調べればいい。
0306デフォルトの名無しさん
NGNGすいません。それについては解決できました。
そして今は>>293や>>297の問題でつまずいております・・・
0307デフォルトの名無しさん
NGNGすいません。どうしても分かりません。これさえ分かれば全ての問題が連鎖的に解決し、
これ以上皆さんにご迷惑をかけることもないと思うのですが、教えてくださいませんでしょうか・・・?
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG何がnullか分からなかったらデバッガで追っかけてみろ。
それ以前に、文法を一通り学べ。
今のおまえじゃ連鎖的に解決なんか絶対しない。
0311デフォルトの名無しさん
NGNG世の中に絶対なんてありません。このまま一気に突き進みたいと思います。
0312デフォルトの名無しさん
NGNGどぼんの中の人もわざわざ書いてあることを無視されて切ないだろうなー。
0313デフォルトの名無しさん
NGNGForm2には、textBoxとButtonOK、ButtonCancelが用意されていて、
ButtonCancelが押された場合は何もせず、閉じて、
ButtonOKが押された場合には、textBoxに入力された値を
Form1のhogeStrに保存して、閉じたいと思います。
分からないのは、どうやってForm1のhogeStrに代入するかです。教えてください。
0314デフォルトの名無しさん
NGNGくじけそうになったこともありましたが、あきらめずに頑張り続ければいつかきっと報われるということを学びました。
0315デフォルトの名無しさん
NGNG参考例として、コモンダイアログのOpenFileDialogで考えてみよう。
1)OpenFileDialogを初期化する(Filterの設定とかも含む
2)OpenFileDialog.ShowDialog()を実行する
3)ShowDialogの返り値がDialogResult.OKの場合、
ダイアログでユーザが選択したファイル名が
FileNameプロパティに入っている
0316デフォルトの名無しさん
NGNGあらかじめ定めたテーブルにしたがって、
色を変換するという処理を行ないたいです。
例えば、フォームの中に画像を表示していたら、
画像を含めて表示したウィンドウ全体に
「白黒表示をする」とか「RGBを入れ替える」という処理をしたいのです。
0317313
NGNG>>315
Form1で、hogeStr = Form2.textBox.Text; とするということですか?
Form1からForm2のtextBoxが見えないのかと思い、 publicにしてみたけどだめでした。
既に閉じた後なのでForm2オブジェクト(?)が消えたんですか?
case DialogResult.OK:
MessageBox.Show(Form2.textBox.Text);break;
とやってみたところ、ビルドエラータスクに
「型or名前空間Form2が見つからない。ディレクティブorアセンブリ参照を使え」
と出ましたが、この意味すらわからないです。
0319313
NGNG>>315 ヒント、Thanx!
ヘルプ見ながら考えていて、ついに分かりました。
---------Form1
Form2 f = new Form2();
if ( f.ShowDialog() == DialogResult.OK )
MessageBox.Show(f.MAGE);
---------Form2
public string MAGE { get{ return textBox1.Text; } }
Form1で Form f と宣言していたために、ドツボにはまっていました。
0320デフォルトの名無しさん
NGNGようは、こういう流れを再現できるようなForm2を作ればいいの。
Form2 d = new Form2;
if(d.ShowDialog(this) == DialogResult.OK){
MessageBox.Show(d.Atai)
}
で、Form2にある確定ボタンのイベントにて、
this.Atai = textBox.Text; // public string Atai;というメンバかプロパティを作っとく
this.DialogResult = DialogResult.OK;
this.Close();
直接TextBoxを参照するのは後々困るので、例はAtaiって変数に入れるようにしてみた。
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG> で、Form2にある確定ボタンのイベントにて、
>
> this.Atai = textBox.Text; // public string Atai;というメンバかプロパティを作っとく
> this.DialogResult = DialogResult.OK;
> this.Close();
Close()しちゃ駄目ー。
DialogResultへの代入でメソッド終了。
あと>>319のようにプロパティが直接textBox.Textを参照するほうがスマートかな。
>>319
私もダイアログ間の値の受け渡しは初めえらく悩んだ記憶がある。
特にモードレスの。
//オブジェクト指向を全く理解してなかったからなー。
//クラスとインスタンスの違いすら……。
0323デフォルトの名無しさん
NGNG自動的にCloseしてくれるんすか。ありがとっす。
> あと>>319のようにプロパティが直接textBox.Textを参照するほうがスマートかな。
個人的には、ブラックボックス化するのがよりスマートかなと。
クライアントの要望で泣く泣くダイアログのデザインが変えなあかん場合、
場合によっちゃそれまで参照していたコントロールが変わるケースは多々あるわけで、
その場合に親ダイアログをすべて変更せなあかんのは死ねる……。
0324デフォルトの名無しさん
NGNG同じの作りたいんですが、トレイごとにインスタンス作ったほうがいいんですか?
それとも、インスタンスは一つで、トレイ切り替え時にアイテムや表示項目を読み込んだほうがいいですか?
OEではどうなってるか、見当付きませんか?
0325デフォルトの名無しさん
NGNG> >>322
> 自動的にCloseしてくれるんすか。ありがとっす。
違う違う。
ダイアログの場合、OKが押されても不可視にするだけでフォームは閉じないってこと(不可視化はset_DialogResultで行われる)
Closeしちゃったら自動的にオブジェクトが廃棄されちゃう。
> 個人的には、ブラックボックス化するのがよりスマートかなと。
> クライアントの要望で泣く泣くダイアログのデザインが変えなあかん場合、
> 場合によっちゃそれまで参照していたコントロールが変わるケースは多々あるわけで、
> その場合に親ダイアログをすべて変更せなあかんのは死ねる……。
この辺の感覚は流石に分からないな……。
個人的にはClickイベントの中を書き換えるかプロパティの中を書き換えるかで、
カプセル化として差はないと考えるけど。
//public string Text {get {return textBox.Text;}}
//の返すべき値がlistBox.SelectedItem.ToString()になったところで
//このプロパティの中だけ書き換えればダイアログ呼び出し元に変更はないし。
>>324
別々にインスタンスを持つほうが自然ではある。
0326デフォルトの名無しさん
NGNGOutlook Expressは、ひとつのウィンドウで表示項目によって分けている。
実際、ATLで書かれているんだけどね。spy++でじっくりと見てみ。
0327デフォルトの名無しさん
NGNG1.TcpListenerを使って通信をする時、AcceptTcpClient()で繋がった
相手のIPとポートの取得方法がわかりません。
TcpClient からは取得できないようなのですが、どうしたらいいのでしょうか?
2.ルーターがいる場合、ルーター側のグローバルIPってわかりませんか?
お願いします。
0328デフォルトの名無しさん
NGNG推奨されないことをあえてやっているのですが、
エラーじゃなくて警告なのでコンパイルは通ってます。
ただ、その警告の量が多すぎて、必要な警告が見づらくなってきました。
警告を出すクラスは一つなので、そのクラスについてだけ警告やめて欲しいんです。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG現時点では、VC++ にある #pragma warning に相当するものが無いんすよね… orz
C# 2.0 には増えたみたいだけど(ttp://lab.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_csref/html/723493d5-9753-4cec-babb-54e2b8eb36b6.asp)
# Generics と partial type と anonymous method(と iterator support)を早く使わせてくれ(笑)> MS
0331デフォルトの名無しさん
NGNG一旦 byte [] 化されちゃったら、あとは中身を見て推論するしか手が無いのでは?
# nkf とか jcode.pl とかがやってる様に…
0332デフォルトの名無しさん
NGNG同じ警告が大量発生するなら、
ソリューションエクスプローラのプロジェクトの「プロパティ」
↓
構成プロパティ→ビルドで、特定の警告を表示しない、の項目で設定できます。
0333デフォルトの名無しさん
NGNGもちろん自前で判別。
//フレームワークで用意してくれても良いと思うんだけど。
というのもなんなので。
ttp://kasumi.sakura.ne.jp/~gm/gpj/index.shtml
こういうありがたいページがある。
>>328
その部分だけDLLにしとくとか……?
0334329
NGNG>一旦byte[]化されちゃったら
文字列データの場合だと、判別する方法はあるんですか?
OEからJISエンコードで送ったメールを、自作POP3で受信すると、受け取ったメールが文字化けしてるので、直したいんです。
(ほかの文字コードで送られた場合も判別変換できたらいいな、と)
0335デフォルトの名無しさん
NGNG> 文字列データの場合だと、判別する方法はあるんですか?
文字列になったんだったらもうエンコードを気にする必要がなくなってるじゃないか。
0337デフォルトの名無しさん
NGNG重い計算をしていると、フォームのコントロールの描画がメチャクチャになるのを
直したいのですが・・・・
this.Refresh(); をはさんでみましたが、フォームそのものが一度フォーカスを失う
とその後は「応答なし」になってしまいます。
0338デフォルトの名無しさん
NGNG小細工してないで非同期で計算しろ
0339デフォルトの名無しさん
NGNG重い処理は別スレッドで。これ常識。
0340デフォルトの名無しさん
NGNGApplication.DoEvents();
0341デフォルトの名無しさん
NGNGまだよくわかりません。
>>340
ありがとうございました。バッチリです。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG例えばWebからデータを拾ってくるときに相手サーバーの応答が遅かった場合なんかは
DoEvents入れたって応答なしになるぞ。
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG統合環境から実行したら大丈夫だけどスタンドアロンでEXEを実行
するとランタイムエラー出ません?
0346デフォルトの名無しさん
NGNG作りたい物
複数行(行数は可変でかなり横長)で
Excelのような縦横のスクロールバーを持つ物です
単純なコントロールならUserControl、Contorolどちらからでも一応作ることは出来ます
悩んでいる所はExcelのような奴です
ご存知のようにExcelは横スクロールバーをスライドさせると
列のタイトル(A,B,Cって奴)も一緒にスクロールしますが行タイトル(1,2,3って奴)は固定
縦スクロールバーをスライドさせると行のタイトルはスクロールしますが列のタイトルは固定
これをどの様に実装したらいいのか分かりません
普通にスクロールバーを使用すると、横にスライドすると行のタイトルもスクロールしてしまい
表示枠の外に出てしまいます。
何かアドバイスでも頂けないでしょうか
0347デフォルトの名無しさん
NGNG釣られてしまたが、それがわからない人はカスタム作ろうと思わないほうがいいと思う
0348デフォルトの名無しさん
NGNGその辺を自動で簡単にやってくれる魔法は用意されていません。
そういう動作をさせるのに、数千行から数万行のコードを書いた経験があります。
やり方を聞かれても、やることが多すぎて答えるのに何日もかかります。
作るための知識もどこから得たのかわからないくらい広範に勉強しました。
参照URLも出せません。
あなたもがんばってください。
もしくは好みの市販コンポかエクセルを買ってください。
0349デフォルトの名無しさん
NGNGレスありがとうございます
とても大変そうですが、時間だけは有るので
出来る所までやってみようと思います
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNGメインの処理A ――□□□□………………☆☆☆―――
スレッド処理B ――――□□□□□□□□――――――
やりたいのは上の図のようなイメージです。
AからBのスレッドを開始させて、Bの終了後に☆を実行したいです。
どうやったらAを待機させられますか
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG> 違う違う。
> ダイアログの場合、OKが押されても不可視にするだけでフォームは閉じないってこと(不可視化はset_DialogResultで行われる)
> Closeしちゃったら自動的にオブジェクトが廃棄されちゃう。
俺もそう思ってたんだけど、どうやら違うみたいよ。
Form1 から Form2をShowDialog(Form1)で開いて Form2のボタンのイベントなんかで
.Close()かけても ちゃんとForm1からForm2のpublicなものは参照できる。
どうやらForm2.Dispose()かけるまで破棄されないみたい。
ヘルプ読むとCloseメソッドはフォームを破棄するように書いてあるとしか
読めないんだけどね。
0354デフォルトの名無しさん
NGNGGC様に笑われるぞ。
つか俺が真っ先に笑ったが。
0355デフォルトの名無しさん
NGNG俺の大きな勘違いでした。
Form2のButton.DialogResult にOK属性を設定していたので、
ボタンクリックとともにForm2.DialogResultに代入が起こり、それで
Form2からForm1に制御が戻って Form2.Button_Click イベントに
書いてあった Form2.Close()が単に実行されていないだけでした。
0356デフォルトの名無しさん
NGNG素直にExcelを貼り付けなさい。
0357デフォルトの名無しさん
NGNGJoinかManualResetEventあたりを使えば?
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG特にタブブラウザなんかは芯でいいよ
0360デフォルトの名無しさん
NGNGおまえ、恥ずかしくないか…
0361デフォルトの名無しさん
NGNGシリアライズ、デシリアライズが具体的に何をさしてるのか分からんが、
普通に所謂シリアライズだとして、どうやって間にDoEventsをはさむんだ?
まさか、…
0362デフォルトの名無しさん
NGNGお前が間違ってるよ。
>>354
ちょっと意味が分からんが、
>>355
だまされてるよ、あんた。
0363デフォルトの名無しさん
NGNGそこでGCが出てくる時点で、多分おまいはちゃんと理解してない。
理解してるんなら意味不明なこと書くなよ…
0364デフォルトの名無しさん
NGNG多分>>323は
> あと>>319のようにプロパティが直接textBox.Textを参照するほうがスマートかな。
これの意味を取り違えただけだと思う。ってか俺も一瞬取り違えかけた。
※「プロパティが」直接参照するんじゃなくて「親フォームが」と思ったんじゃないかと
0365デフォルトの名無しさん
NGNGこの数字の小数部を取り出したいんです。どうすればいいですか?
整数部を取り出すのはDecimalのメンバを探せばそれらしいのが見つかったんですが。
0366デフォルトの名無しさん
NGNGMathとかにあると思うが、多分次は、
それが本当に小数点以下3桁か?と言う点にはまる。
0367デフォルトの名無しさん
NGNGMathを探したんですけど見つかりませんでした。
普通は小数点をさがして、そこで切るとかするんでしょうか?
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGいや、例えばBinaryFormatterを通して合計800MBほどのファイルになるデータ
のコンバートを行っているんだけど、当然Serialize()とDeserialize()メソッドを
呼び出すよね?
800MBほどになるとさすがに時間がかかるのでプログレス・バーなんかを付けて
みたんだけど、フォームそのものが一旦フォーカスを失うともう一度フォーカスを
当ててやってもプログレス・バーが固まってしまう。
そこで変換ループの中にDoEvents()を入れてやったわけですよ。すると、統合環境
から実行する分には何の問題も起きないのに、デスクトップからショートカットで起動
すると、FileStreamをClose()しようとする時に"System.Runtime.InteropServices.
SEHException"なんて例外が出るんですよ。いやはや困ってます。
0370デフォルトの名無しさん
NGNG浮動少数だと下手に演算すると誤差がでるかもしれんから、漏れは文字列に直してやってる。
float a = (float)367.999;
string b = a.ToString(@"F3");
int c = int.Parse(b.ToString().Substring(b.ToString().IndexOf(@".") + 1));
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGfloat a = (float)367.999;
float b = (float)((int)a);
int c = (int)((float)((float)a - (float)b) * (float)1000.0);
0374デフォルトの名無しさん
NGNG文字コードを変更するには、必ずいったんbyte配列に直さないといけないんですか?
Encoding.Default.GetBytes(s);
の部分のエンコードを、Defaultにしても"shift_jis"にしても"utf-8"にしても正しく表示されるんですが、変換の方法としてはこれでいいんでしょうか?
(戻り値のstringはRichTextBox.Textに入れます。)
public string GetEnc(string s) //sは受信したJISエンコードのメール
{
byte[] bytes = Encoding.Default.GetBytes(s);
return Encoding.GetEncoding("iso-2022-jp").GetString(bytes);
}
0375デフォルトの名無しさん
NGNG↓↓
Application.EnableVisualStyles();
こいつがすべての元凶ですた。XPスタイルをmanifestを作らずに済まそうと
思っていたのに、Application.DoEvents()と猛烈に相性が悪いだけでなくて
描画速度も大幅に遅くなる。ぐぐってみたら「不具合」の言葉が散在しています。
.NET FrameWork 2.0 では直っている事を強く期待しますぜ。
0376デフォルトの名無しさん
NGNGプッ
0377デフォルトの名無しさん
NGNG参考になりました。ありがとうございます。
0378デフォルトの名無しさん
NGNGフロートじゃなくてデシマルの話。
0379デフォルトの名無しさん
NGNGC#で画像処理ボードを使って動画像のキャプチャーを行いたいと思っています。
大抵の商品は、MFC対応とはなっていますが、C#からでも動作可能でしょうか?
お勧めのボードなどありましたら、お教えください。
0380デフォルトの名無しさん
NGNG正確には、買ったボードの寿命までにはできない。
0381373
NGNG「キャストだと誤差が出る」とは書いたが、「デシマルでも誤差が出る」とは書いてないだろ。
0382デフォルトの名無しさん
NGNGYahooは普通に動くのですがGoogleが動きません。
NavigateComplete2イベント後のwww.google.co.jpのouterHTMLを見ると下記の通りで
ブラウザ→ソースで表示される物と違いBodyタグがありません。
何か原因分かる方いらっしゃいますでしょうか?
---------------------------------------------------------------
<HTML><HEAD><TITLE>Google</TITLE>
<META http-equiv=content-type content="text/html; charset=UTF-8">
<STYLE><!--
body,td,a,p,.h{font-family:arial,sans-serif;}
.h{font-size: 20px;}
.q{color:#0000cc;}
//-->
</STYLE>
<SCRIPT>
<!--
function sf(){document.f.q.focus();}
// -->
</SCRIPT>
</HEAD></HTML>
0383デフォルトの名無しさん
NGNG原因は分からないし、もう知ってるかもしれないけどとりあえずできている例
The Code Project - Microsoft Web Browser Automation using C# - C# Programming
http://www.codeproject.com/csharp/mshtml_automation.asp
0384デフォルトの名無しさん
NGNGありがとうございます、大変助かりました。
NavigateComplete2じゃ無くて、DocumentCompleteイベントを使用するんでした。
0385デフォルトの名無しさん
NGNG必死なキャストっぷりを笑っただけですが?
そんな後だしじゃんけんするんならちゃんとどの部分でどのオーダーでの
誤差が生じるかくらいはレポートしてもらわないと。
0386デフォルトの名無しさん
NGNGfloat=浮動小数点なので、誤差が出るのは当たり前ってことでそ?
つまり、実際にベンチさせなくても分かる訳。
この意味が分からなければ、手計算でfloat型に変換してみるとイメージしやすいかも。
0387デフォルトの名無しさん
NGNGそもそも s はどうやって作ったの?メールのデータなら元はバイト列だったはずで、
それをなんらかの Encoding で string にしたんだろうから、そのときの Encoding を
使うのがまぁ妥当だと思うけど(←この場合 ASCII 推奨)。
iso-2022-jp に限定せずに一般論を言えば、コード不明のバイト列は string には
入らないので (string は常に unicode 文字列)、byte [] のまま持ち歩いて、
使われているエンコードにしたがって文字列化するのが正しい方法。
0388デフォルトの名無しさん
NGNGこれはどう回避したらいいでしょう?
0389デフォルトの名無しさん
NGNGあるコードに達したときに、そこからアセンブリへの参照を追加することはできますか?
0390デフォルトの名無しさん
NGNGSystem.Assembly.LoadFromでできるんじゃない?
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGべた書きしか方法はないんでしょうか?
あと、あるテキストボックスに入力された数字が少数第4位まできちんと入力
されているかチェックしたいのです。どういった方法がありますか?
0393デフォルトの名無しさん
NGNGそう、必ずしなくちゃならない。
最初はおそらく、エンコードされていない状態で、stringに入っていて、
それで、どんなエンコードでGetBytesしても正しく表示できるんだと思う。
0394デフォルトの名無しさん
NGNG> 最初はおそらく、エンコードされていない状態で、stringに入っていて、
果てしなく意味不明だな。
受け取ったbyte配列の各要素をそれぞれchar型にキャストしたchar配列でnew stringしてるってか?
0395デフォルトの名無しさん
NGNGありえん…
0396デフォルトの名無しさん
NGNG(長いので例外処理とかは削除してます。)
public string RETR(int number)
{
string temp;
command = "RETR "+number+"\r\n";
cmdbuffer = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray());
networkStream.Write(cmdbuffer,0,cmdbuffer.Length);
temp = streamReader.ReadLine();
if(temp[0] != '-')
{
while(temp != ".")
{
response += temp + "\r\n";
temp = streamReader.ReadLine();
}
}
else
{
return temp;
}
return response;
}
0397デフォルトの名無しさん
NGNGASCIIエンコーディングで入れてるかどっちかかな
ASCIIってバイトそのまま下位バイトにコピーしてるだけかな?
ひょっとして8ビット目は消える?ま、iso-2022-jpなら関係ないか。
>>393のは、デコードしない状態でそのままStringの下位バイトに入ってるんならってことかな。
それにしたところで、どんなエンコーディングでも復元できるわけがない。
たまたまShift_JISとUTF8でやったからだろ。
0398デフォルトの名無しさん
NGNG…やってること分かってんじゃん…
必ずByteに直すんでなくて初めからByteじゃねーか。
ま、それは分かってる事だが(手を出せない部分なのかと思った)。
StreamReader使わずにStreamそのまま使った方が素直な気がするが…
0399デフォルトの名無しさん
NGNGstreamReaderをどうやって作ってるんだ?
ま、ASCIIにしてもUTF8にしてもShift_JISにしても結果は同じだが。
0400デフォルトの名無しさん
NGNGtcpClient = new TcpClient(server, port);
networkStream = tcpClient.GetStream();
streamReader = new StreamReader(tcpClient.GetStream());
こういう感じで作ってます。
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGてのは置いといて、まあ気持ち悪いからせいぜいASCIIで読み取って
ASCIIで戻す方法で今まで通りにやるか、
無駄がいやなら読み込みの処理自体Byteでやるかだな。
StraemReaderとかでやるよりもコード上はやや面倒になるかもしれんが。
0404デフォルトの名無しさん
NGNGメールに日本語入ってるんか?
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGいや、上にも書いてるけど、JISコードって言ってるから(ま、メールだからね)、
結局はASCIIにしてもUTF8にしてもShift_JISにしても「結果は同じ」になるわけで。
0407デフォルトの名無しさん
NGNGテラリウムで遊んでくればとりあえず感じはつかめる。
0408デフォルトの名無しさん
NGNGそれは提供されてる属性の使い方の感じでないの?
# や、実はテラリウム触った事ないから全然知らないんだが。
>>405は、どういう時に自分で定義してうまく活用できるんだということのような。
0409デフォルトの名無しさん
NGNGテラリウムにはゲーム本体を動かしてるアセンブリと、
そのゲーム本体アセンブリが読み込むクラスの基本クラスの入ったアセンブリがあって、
その基本クラスの入ったアセンブリにカスタム属性が定義されてる。
で、この基本クラスの入ったアセンブリを使って
プレイヤーは派生クラスをつくってゲーム本体に読む込ませて遊ぶんだが、
このとき派生クラスとそのアセンブリの補足的な情報を得るために
ゲーム本体は派生クラスやアセンブリなどから設定されたカスタム属性を読み取ってる。
0410405
NGNGエクスプローラとか使っててファイルになんか印つけさせろとかそんな感じね
うーん継承とかとの使い分けが微妙だけど使い道あるかも
でもやはり動的生成がらみかな
0411デフォルトの名無しさん
NGNGなるほど、てか、いかにもって使い方ね。
>>408でこういうのを提供されてる属性の使い方って書いたんだけど、
考えてみれば、そりゃこういう風に活用するって参考にはなるね。
0412デフォルトの名無しさん
NGNG継承とかインターフェイスの実装で代用できるような使い方もあるけど、
それらとは違ってあらゆる要素に適用できるのも特徴かな。
0413デフォルトの名無しさん
NGNG変えられるかどうかはカスタム属性の定義しだいだっけ?
と、最近DllImportAttributeの値を実行時に変更できなくて面倒な思いをしたやつが言ってみる。
0414デフォルトの名無しさん
NGNGなっとく。これはおもしろひ。
あとはGenericsさえ実装されればC#メインにしたいんだが...
0415デフォルトの名無しさん
NGNG↑に載っている「C# 標準リファレンス」がMSのサイトで公開されてると書いてますが、それはここのことでしょうか?
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csspec/html/CSharpSpecStart.asp
0416デフォルトの名無しさん
NGNGもとから参照型なので違いはないように思うのですが。
0417デフォルトの名無しさん
NGNG参照のコピーを渡すか参照の参照を渡すか。
メソッド内でnewしたときとかでかわってくる。
0419デフォルトの名無しさん
NGNGvoid A(ref object x) { x = null; }
void B(object x) { x = null; }
object a = "abc";
object b = "def";
A( ref a);
B( b);
a は null になる。b は null にならない。
0420デフォルトの名無しさん
NGNGTextBox.TextChangedイベントはあるんですけど、Cut限定じゃないんで、Pasteにも反応してしまいます。
0421デフォルトの名無しさん
NGNGマネージコードでやるのなら右クリックされたときのテキストを保存しておいて
次のTextChangedでテキストを比べて違っている部分がクリップボードの中身と一致すれば切り取られたってのは?
めんどくさそうだが。
0422421
NGNGKeyDownイベントでCtrl+Xを監視するのをするとか
0423デフォルトの名無しさん
NGNG静的でないフィールド、メソッド、またはプロパティ 'test.x' で、オブジェクト参照が必要です。
と表示されてエラーが出ます。
public class test
{
int x=100;
public static void Start()
{
System.Console.WriteLine(x);
}
public static void Main(string[] args)
{
Start();
}
}
0424デフォルトの名無しさん
NGNGint x = 100;の前にもstatic
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNGこのタイミングならウェイトが入っても問題ないし、
次のイベント発生時にもっともゴミの少ない状態になれる。
Windowsフォームアプリみたいなイベント駆動では必須かなとか思ってる。
ただし、連続してイベントが発生したとき、
イベント→アイドルなし→イベント、
という動作をしてくれると期待してるんだけど、
イベント→ビジーなのにアイドルイベント→イベント、
という動作をされたら逆効果だよね。
アイドルイベントの発生タイミングってどうやって調べる?
0428デフォルトの名無しさん
NGNG多分 bad idea … profiling して GC が性能上の bottle-neck に本当になってるのを確認した上で、object pooling だとかの技法をつかっても駄目だったときなら OKなのかもしれないけども。
# GC.Collect () しちゃうとすべての object をナメる上に、thread も一時停止させられちゃうからなぁ…
# N88 basic の string の GC とかとはワケが違うから、.NET Framework の GC をもーすこし信用みるべし(笑)
0429デフォルトの名無しさん
NGNGそれでいけるならFrameworkに組み込まれていると思われ…
0430427
NGNGどこで起こるかわからないより、起こっても問題ないところで起こしてしまおうと。
で、WindowsアプリなのにConsoleアプリでビルドして、IdleでWriteLineしてみた。
フォーム上でマウスが動くたびに出力があった。
放置状態やメニューのポップアップ中などは出力がなかった。
この仕様なら俺的にはGOサインだなと思ったよ。
0431デフォルトの名無しさん
NGNGGCがアプリのスループットを悪化させているか
GCがアプリのレスポンスを悪化させているか
>>427の対策がそれらを改善するのか
を実際に検証しないと意味がないと思う。
2ch見てると.NETの中間コード・GCの遅さが必要以上に強調されすぎてるような気がするよ。
今現在のパフォーマンスの悪さは後付されたランタイムのロードと
Win32APIのラッパーであるWindows.Formsの遅さに起因していると思う。
0432デフォルトの名無しさん
NGNG禿同
0433デフォルトの名無しさん
NGNG(重い処理の終了時にどさくさにまぎれて、とか)
キー操作やボタン等へのレスポンスは大切だから、ユーザがアクションを起こそうとした瞬間
(←もちろん予知できない)にGCが先んじて動いてユーザが待たされる、ってのは気に入らない。
0434デフォルトの名無しさん
NGNGだから妄想はいいから428,431を検証したのかと。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGprivate void hoge()
{
System.Net.HttpWebRequest webreq;
System.Net.HttpWebResponse webres;
//Webリクエストインスタンス生成
webreq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(@"http://hoge/hoge.CAB");
//認証の設定
webreq.Credentials = new System.Net.NetworkCredential("hoge, "hoge");
//HttpWebResponseの取得
webres = (System.Net.HttpWebResponse)webreq.GetResponse();
//応答データを受信するためのStreamを取得
br = new BinaryReader(webres.GetResponseStream());
//ファイルに書き込むためのFileStreamを作成
bw = new BinaryWriter(new FileStream("C:\hoge.CAB", FileMode.Create, FileAccess.Write));※1
// ファイルにサーバから取得したデータを書き込む
bw.Write(br.ReadBytes((int)webres.ContentLength), 0, (int)webres.ContentLength);※2
//閉じる
bw.Close();
br.Close();
}
↓;※1か;※2でこういうエラー(例外)が起きることがあって困っています。
きわめて稀に起きるのですが、何がまずくてどうすれば解決するのでしょうか?
教えてください
mscorlib:パス "C:\hoge.CAB" の一部が見つかりませんでした。
2004/07/06,23:30:35.913,0x00f3ff03,0x00000002,0x668,0x32c, at System.IO.__Error.WinIOError(Int32 errorCode, String str)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at RmAAIpAprInfLst0.CApproval.CApproval_Load(Object sender, EventArgs e)
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGGCがボトルネックやら関わるっていう状況は経験がないか、認識したことがない。
GCってたまにCollect()してあげないとスワップしてもどんどんメモリ消費してる。
俺のところでは百メガ超えてまだがんばってるので、
GCが”起こる”ことがボトルネックではなく、
”起こらない”ことがシステム全体をパフォーマンスダウンさせてる。
だから一つアクション起こし終えたらなるべくCollect()させることにした。
もちろん、Collect後に続いて何もしなくていいようなケースで。
何かさせる前にメモリ不足でモタつくくらいなら、させた後に解放でモタついた方が、
ユーザーにストレスを与えない作りに出来ると思う。
0439デフォルトの名無しさん
NGNG0440428 ◆Qgg7HIarPg
NGNG後学のため、どういう状況でそうなるのかチョット知りたい気もする… > heap が大きくなりすぎる
# Gen 2 とか large object heap に何か山盛り残ってるとかそういうことなんだろうか?
0441438
NGNG起動して、ドキュメントを扱って、保存して、別のドキュメントも読み込んで、
その繰り返しというだけのつもりだが、どうせ参照が残ってるとか言われるんだろうな。
GC.Collect()でガクっと減るから残ってはいない。
0442デフォルトの名無しさん
NGNGどうなるの?
世代がシフトするかなと思うけどそれって好都合。
勝手に発動するGCにはかかりにくく、GCしたいときにかかる。
0443デフォルトの名無しさん
NGNGtypo じゃないとするなら、C:\\hoge.CAB って書いてないため、
Cドライブのカレントディレクトリが使えない状況のときエラーになってるんだと思う。
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG0446簡単なベンチとってみた
NGNGテスト内容:GC.Collect()の空実行10000回の実行時間。
テスト結果
フォーム一枚+ボタン数個の場合:1432ms
フォーム一枚+ボタン数個+objectインスタンス10000個+その参照を保持した配列の場合:4066ms
>>438の言うようにメモリぎりぎりの状態でCollectで100MB稼げるなら効果はありそう。
GC.Collectのオーバーヘッドもそれほど大きくは無い。
ただ個人的にGCで100MB減るような現象は見たことが無く、メモリに余裕がある場合にも効果はない。
さらにApplication.IdleでCollectするテクニックが横行した場合、
複数のアプリケーションで頻繁にCollectされるのでそのオーバーヘッドは無視できないものとなる。
なので.NET製アプリケーションの作法としては行儀のいいやり方とはいえないと思う。
結論:IdleでCollectは楽しすぎ。
0447デフォルトの名無しさん
NGNG発生するんだけど、いったいなにが起ってるんだろう。
0448427
NGNG>>447
Idleイベントで何させてるかで、何度もIdleイベントが呼ばれる。(危険)
最初、Idleの度にフォームのテキストを書き換えたらそうなって困った。
Consoleに書き出せばフォームにイベントが起こらないので、
毎回GCしても非アクティブ時にはイベント発生しなくなる。
だから>>446の、
>複数のアプリケーションで頻繁にCollectされる
という状況にはならないんじゃないかな。
0449428 ◆Qgg7HIarPg
NGNGうーむ、20Kbytes 以上のデカい instance が悪さしてるんだろうか?
>446
ワシも見たこと無いですねぇ>GC.Collect () でドカンと減る奴
0450デフォルトの名無しさん
NGNGアプリ終了前にWindows自体シャットダウンをされたとき、
確認ダイアログとともに「応答なし?秒で閉じます」的なダイアログが出てしまいます。
これはどうやって回避するんですか?
0451デフォルトの名無しさん
NGNG一般的には問題なさげなタイミングのようだけど、
ことネットワーク関連アプリの場合は、UI処理が終わって idle が発生するときは
UI操作によって動き始めたワーカスレッドがまさに全力で処理中だったりするので、
なんか最悪のタイミングなような気がする。
0452デフォルトの名無しさん
NGNGドキュメントのSessionEnding イベントの解説を参考にして、WM_QUERYENDSESSION
をトラップしてそこで処理する。
0453デフォルトの名無しさん
NGNGこれってGCが発動したからじゃなくて、GC終えてもまだメモリ不足でスワップしたからだよ。
GCはいつ起こったか気がつかないほどスマートな仕事してるから、
while内みたいなループ部分で呼ばない限り、パフォーマンスダウンを実感できない。
0454デフォルトの名無しさん
NGNGそれとも未使用状態にもどすだけ?
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNGそれもあるけど、速さの主たる理由ではないと思う…
0459デフォルトの名無しさん
NGNGForm2からForm1のコントロールを操作するのに、Form1のコントロールの
可視性をPublicにしても良いのでしょうか?
0460フェルト
NGNGDd121ってなんですか?
0461フェルト
NGNG0462デフォルトの名無しさん
NGNG状況によるけど、BeginInvokeかな。
0463デフォルトの名無しさん
NGNGコントロールのフィールドに限っては、Publicに変更でも別に良いと思う。
オブジェクト指向の完璧主義者なら、コントロールのスコープはPrivateのままで、
コントロールにアクセスするにはプロパティを作成して内部でアクセスするけど、
それだと余りにもプロパティーの数が増えすぎてソースは長くなるし、読みづらく
なるので、オブジェクト指向の完璧主義者でもないなら手っ取り早くPublicで良いのではと思う。
VB.NETなら直接コントロールにアクセ可能だしね。
ttp://msdn.microsoft.com/netframework/downloads/updates/sptechpreview/default.aspx
.NET Framework 1.0SP3 & 1.1SP1 technical preview … 正式 release は何時頃になんだろなぁ…
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNG…うーん、状況によるってもちょっとそれは出てこん…
0467デフォルトの名無しさん
NGNGWindows XP SP2 と同時期かと。
XP SP2 RC版で既に .NET Framework 1.1 SP1 が入っていたので、一緒に試しているけど、
Visual Studio .NET 2003 でいじっている分には、今のところ、問題ないです。
0468デフォルトの名無しさん
NGNGもう3桁こまかくμsec単位でイベントを制御したいときはどうしたらいいですか?
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG0471468
NGNGわかりました。
0472デフォルトの名無しさん
NGNG一応、単なる高精度カウンタだったらQueryPerformanceCounter()なるAPIがあるよと言っておこう。
まぁ、多分あなたがやりたいことにはあんまり役に立たないと思うが…参考までに一応な。
0473デフォルトの名無しさん
NGNG...123マイクロ秒
0474デフォルトの名無しさん
NGNGそこから地球上の時間を割り出すんだよ。
0475デフォルトの名無しさん
NGNG知ったかぶりと言うよりは、子供の戯れ言レベルのアホだな。
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG今は毎回
StartInfo.Arguments
を与えた上で
Start();
させてるのですが、常駐しているexeに渡すいい方法はないでしょうか?
0480デフォルトの名無しさん
NGNGWinに特化した方法としては、EXE 側が COM サーバになって COM オブジェクト経由で渡す。
一般的な方法としては、何かプロトコルを考えてソケットやネームドパイプで渡す。
0481476
NGNGApplication.RunをShowDialogに変えても動作したんだけどどうなのよ?
0482デフォルトの名無しさん
NGNGttp://dobon.net/vb/dotnet/form/notopenform.html
まずこの辺でも読め。
0483479
NGNGなんかCOMサーバーとか難しそうですね…
どうしようかな… がんばるか…
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGFormHogeからFormFugaを呼び出すとすると、
ShowDialog(this)みたいに呼び出しているんだから
FormFugaからFormHogeの変数(private/public)にはアクセスできるはず。
で、どんな風にして値を読めば良いの?
0486デフォルトの名無しさん
NGNGFormHoge.ShowDialog(FormFuga)としたとき、
FormFugaのOwnerプロパティにFormHogeの参照が入ってる。
> FormFugaからFormHogeの変数(private/public)にはアクセスできるはず。
いやprivateは無理だろ。
0487デフォルトの名無しさん
NGNGエラー内容聞いてから一緒に考えようじゃないか。
0488デフォルトの名無しさん
NGNGWin32APIのtimeSetEventは試した?
それがアプリレベルで一番精度が高いんじゃない。
0489デフォルトの名無しさん
NGNG指定した音楽ファイルを再生する方法を教えてください。
BGMみたいなものをつけたいです。
また、再生が終了したことを検地する方法も教えてください
0490485
NGNGじゃあ、HogeからFugaの値を読むためだけに、
特定の変数をpublicにしないといけないってこと?
なんでもオープンな体質はOO的にはよくないって聞いたけど…
0491デフォルトの名無しさん
NGNG他のオブジェクトにprivateメンバまで見せる方がよっぽど「オープン」じゃないか?
というか設計が変だ。
前もやったがOpenFileDialogを例にしよう。
OpenFileDialog dialog = new OpenFileDialog(); //そのオブジェクトに必須のデータはコンストラクタで設定する
dialog.Filter = "すべてのファイル|*.*"; //オブジェクトの処理に使う各種データをプロパティに書き込む
if (dialog.ShowDialog(this) == DialogResult.OK) { //ダイアログを開く
filename = dialog.FileName; //必要なデータをダイアログのプロパティから読み込む
}
0492デフォルトの名無しさん
NGNGBGMのような扱いをするならメディアプレイヤーでなくてManaged DirectXを使うのが一番簡単じゃない?
>>490
internalにするとか。
0493デフォルトの名無しさん
NGNGBGMというか、ボタンを押した時にサウンドを鳴らすようなことがしたいんです。
C#標準では無い機能なんですかねぇ?
検索しても余り出てこないし、これだけのためにDirectXの勉強なんてできません
0494デフォルトの名無しさん
NGNG確か.NET Framework2.0でサウンド処理も追加されるはずだがね。
Managed DirectXでサウンドを再生するのに勉強と言うほどのこともない。
再生・停止するだけならAudioVideoクラスでほとんど手間なく実装できる。
//ボリュームの指定にちょっとはまったけどな。
0495デフォルトの名無しさん
NGNGメディアプレイヤーを表示しないようにする。
DirectXなら
Microsoft.DirectX.AudioVideoPlayback.Audio hoge = new Microsoft.DirectX.AudioVideoPlayback.Audio("hoge.wav");
hoge.Play();
.NET 2.0なら
System.Windows.Forms.SoundPlayer hoge = new System.Windows.Forms.SoundPlayer("hoge.wav");
hoge.Play();
0496デフォルトの名無しさん
NGNGchar ch = '半角文字か全角文字(一文字です)'
byte[] byt = Encoding.Default.GetBytes(ch.ToString());
で、byt.Length が 2 だったら全角
というような判断でいいですかね。
もっと良さそうな方法があれば教えてください
0497デフォルトの名無しさん
NGNG文字コードを見ればいいんじゃない?
もしくは、強引だけどlstrlenを呼び出してきて、1なら半角、2なら全角。
0498デフォルトの名無しさん
NGNG最近あまり話を聞かないんだけど。
検索で見つかるのは2001年の情報ばっかり。
0499デフォルトの名無しさん
NGNG正式名称は.NET My Servicesで、
ttp://itpro.nikkeibp.co.jp/free/NBY/NEWS/20030320/1/
こういうことらしい。
0500デフォルトの名無しさん
NGNGじゃなくて、
ループの中で、
Console.Writeline(hoge[i]);
ってやると
hoge[i]
hoge[i+1]
って表示されますが、これを改行なしで
hogehage
にするにはどうすればいいでしょうか?
0501デフォルトの名無しさん
NGNGWriteLineじゃなくてWrite
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504479
NGNG100010010110101...
といった二進数をそのままバイナリファイルとして保存するにはどうすればいいのでしょうか?
BinaryWriteというのはどうつかえばいいんですか?
0505デフォルトの名無しさん
NGNGまずその二進数とやらを何の型で保持してるかが問題だ。
0506デフォルトの名無しさん
NGNG0507504
NGNG同時にchar[i]で一文字ずつのもあります。
0508デフォルトの名無しさん
NGNG例えばConvert.ToByteとBinaryWriter.Write
問題は一番最後の桁、これが8ビットに足りない場合だな。
どう処理するかによって適当にビットシフトだ。
//ってことが分かるくらいならそもそも聞かないかもなーw
try&errorで経験を積み重ねていこうや。
0509504
NGNGBinaryWriter bw = new BinaryWriter(fs);
なんちゃらかんちゃら
bw.Flush();
bw.Close();
でいけました。 ありがとうございました。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGそりゃC#じゃなく
0512デフォルトの名無しさん
NGNGこっちのスレで聞いてみるとか。
Managed DirectX vol.2
http://pc5.2ch.net/test/read.cgi/tech/1061285378/l50
0514デフォルトの名無しさん
NGNG折角構文にあるんだから
using (BinaryWriter bw = new BinaryWriter (File.Open (@"foo.bin", FileMode.Create)))
{
// ... Do what you want...
}
するのが美しいかと…本質的ではないのだが…
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGついでにtimerって何のことを言ってるんだよ?
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGがんばっても答えようがないほどあいまいは質問だな。
ちなみにWM_TIMERは割り込みでもイベントでもなく、整数。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGまぁ、整数は整数なわけだが、「メッセージ」ぐらいにしておいてやれよ。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG> wm_timerイベント
そんなものはない。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGこれから1〜2ヶ月をがんばって乗り切りましょう。>ALL
0525デフォルトの名無しさん
NGNGなぜここでお前が仕切っているのか知らんが、
がんばって乗り切るというのは、これからうじゃうじゃ湧いてくるであろう厨房の対策か?
それなら俺はごめんだな。
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG失せろ
0528デフォルトの名無しさん
NGNGバイバイ!(w
0529デフォルトの名無しさん
NGNG>525はとばされた
>526はとばされた
>527はこんらんしている
0530デフォルトの名無しさん
NGNG>529はしんでしまった!
0531デフォルトの名無しさん
NGNG0532529
NGNG0533デフォルトの名無しさん
NGNGそういえば、ここはペットセメタリー・・・・
0534デフォルトの名無しさん
NGNGVisualStudio.NETでWindowsフォームのアプリを作っています。
TreeNodeクラスを継承し、1つだけプロパティを追加した
CustomTreeNodeクラスなるものを作りました。
ある処理で、TreeNodeオブジェクトを受け取る場面があるのですが、
その受け取ったTreeNodeオブジェクトの内容を全てコピーした
CustomTreeNodeオブジェクトを作成することは可能でしょうか?
0535デフォルトの名無しさん
NGNG簡単には、できない。
なんと>529の中身はミミックだった!
0536534
NGNG明示的にキャストするとできるのかなぁと思ったのですが、
実行時にエラーになりました・・・
あれ〜親子関係にある場合は、キャストできるんじゃなかったっけ???
わからん・・・・
0537デフォルトの名無しさん
NGNG子は親の情報に加えて自分独自の情報をもっている。
子から親へのキャストは独自の情報を捨てればいいが、
親から子へのキャストで独自の情報はどう処理すればいい?
だから(実は)子だけど親の型の参照で保持されていたものをキャストすれば
当然問題なく子にキャストできる。
しかし親の型で参照された親の型のオブジェクトは子の型にはキャストできない。
0538デフォルトの名無しさん
NGNGキャストできるのはTreeNodeの振りしたCustomTreeNode以上のものだ
0540デフォルトの名無しさん
NGNG{
foobar.foo();
...
}
っていう書き方を見かけるんだけど、どういう使い方をする構文なの?
マイクソ公認のVisualC#本読んだけどほとんど説明なかったんで、さくっと説明きぼん
0541デフォルトの名無しさん
NGNGusing (Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f)) {
//use MyFont and MyFont2
}
は
try {
Font MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f));
//use MyFont and MyFont2
}
catch (Exception ex) {
throw ex;
}
finally {
MyFont.Dispose();
}
と等価。
宣言されるオブジェクトはIDisposableを実装する必要あり。
しかしエラー処理に結局try-catchを使うならついでにfinallyも実装してやればいいからなぁ。
私はファイル処理なんかだとusingよりtry-catch-finally派だな。
0542デフォルトの名無しさん
NGNGFont MyFont = null;
try {
MyFont = new Font("Arial", 10.0f), MyFont2 = new Font("Arial", 10.0f));
//use MyFont and MyFont2
}
catch (Exception ex) {
throw ex;
}
finally {
if (MyFont != null)
MyFont.Dispose();
}
だな。
0543デフォルトの名無しさん
NGNG>>541が等価なコードを示してるとおりで、try-catch使うよりもスッキリとしたコードに
仕上がってるよね。
0544デフォルトの名無しさん
NGNGusing (Font MyFont = new Font ("Arial", 10.f), MyFont2 = new Font ("Arial", 10.0f)) {
// Using MyFont, MyFont2
}
は
{
Font MyFont ;
try {
MyFont = new Font ("Arial", 10.0f) ;
Font MyFont2 ;
try {
MyFont2 = new Font ("Arial", 10.0f) ;
// Using MyFont, MyFont2
}
finally {
IDisposable d = MyFont2 as IDisposable ;
if (d != null)
d.Dispose () ;
}
}
finally {
IDisposable d = MyFont as IDisposable ;
if (d != null)
d.Dispose () ;
}
}
…なげぇ…素直に using (...) {} すべし。
0545デフォルトの名無しさん
NGNGFONTで例やってるがFONTごときほっとけと思うんですが
0546デフォルトの名無しさん
NGNGふぉんとにな。
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGまず参照されるdll。
[DllPart.cs] csc /t:library /out:DllPart.dll DllPart.cs
using System;
using System.Reflection;
[assembly: AssemblyKeyFile("DllPart.snk")] //sn.exeで作ったキーペアファイル。使いたいのに意味がない(詳しくは後述
namespace Test {
public class DllPart {
public string Name {get {return name;} set {name = value;}}
private string name;
public void SetId(int id) {
this.id = id;
}
public int GetId() {
return id;
}
private int id;
}
}
0549デフォルトの名無しさん
NGNG[MainPart.cs] csc /t:exe /res:DllPart.dll
using System;
using System.Reflection;
using System.IO;
namespace Test {
public class MainPart {
public static void Main() {
Assembly assembly = null;
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DllPart.dll")) {
byte[] bytes = new byte[(int)stream.Length];
stream.Read(bytes, 0, bytes.Length);
assembly = Assembly.Load(bytes);
}
Type type = assembly.GetType("Test.DllPart");
object dllpart = Activator.CreateInstance(type);
PropertyInfo nameInfo = type.GetProperty("Name");
nameInfo.SetValue(dllpart, "Test.", null);
string name = nameInfo.GetValue(dllpart, null) as string;
Console.WriteLine(name);
MethodInfo setIdInfo = type.GetMethod("SetId");
setIdInfo.Invoke(dllpart, new object[]{1});
MethodInfo getIdInfo = type.GetMethod("GetId");
int id = (int)getIdInfo.Invoke(dllpart, null);
Console.WriteLine(id);
}
}
}
/r:DllPart.dllしてやればコード内でdllpartをDllPart型にキャストしてやれるじゃん? と思うのだが、
(コンパイルは通るが)なぜか実行時エラーがでてしまう。厳密名まで同じだってのに。
0550デフォルトの名無しさん
NGNGnamespace Test {
public class ProxyObject {
private object obj;
private Type type;
public ProxyObject(Type type) {
this.type = type;
obj = Activator.CreateInstance(type);
}
public object this[string memberName] {
get {
return type.GetProperty(memberName).GetValue(obj, null);
}
set {
type.GetProperty(memberName).SetValue(obj, value, null);
}
}
public object Invoke(string methodName, params object[] arguments) {
MethodInfo method = type.GetMethod(methodName);
return method.Invoke(obj, arguments);
}
}
}
アクセサのパラメータがmemberInfoなのはFieldの可能性も考慮に入れて。
上のコードでは省略。
0551デフォルトの名無しさん
NGNGnamespace Test {
public class MainPart {
public static void Main() {
Assembly assembly = null;
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DllPart.dll")) {
byte[] bytes = new byte[(int)stream.Length];
stream.Read(bytes, 0, bytes.Length);
assembly = Assembly.Load(bytes);
}
Type type = assembly.GetType("Test.DllPart");
ProxyObject proxy = new ProxyObject(type);
proxy["Name"] = ".tseT";
Console.WriteLine(proxy["Name"]);
proxy.Invoke("SetId", 2);
id = (int)proxy.Invoke("GetId");
Console.WriteLine(id);
}
}
}
なんとかコード内で直接DllPart型を使えるようにならないものかなぁ……。
0552デフォルトの名無しさん
NGNG厳密名なしでも駄目なんだよね?(って最初に試してるだろうけど)
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG今は
if(b)
b=false;
else
b=true
ってやってるのですが。もっとスマートな方法無いですか?
b = ~b;
はコンパイラに怒られます
0555デフォルトの名無しさん
NGNG> bool型の変数を一発で反転させる方法ってありますか?
b = !b;
>>552
> 実行時エラーってやっぱりInvalidCastException?
そう。
> 厳密名なしでも駄目なんだよね?(って最初に試してるだろうけど)
駄目だね。
これさえ解決すればちょっと便利になるのになぁ。
0556デフォルトの名無しさん
NGNGもっと詳細な追加情報くれって思わん?
0557デフォルトの名無しさん
NGNG↑これの通りやっているんですが、うまくいきません。
VisibleChangedが2回されるからか、scoreが+2されます。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rs=77&re=78&fi=no
↑レス77目が、メインとなるForm8、78がユーザーコントロールのMoleです。
0558デフォルトの名無しさん
NGNGCustomTreeNodeクラスにTreeNodeクラスからの、
暗黙の型変換演算子を宣言すればいいのではないかと思う。
implicitを調べてみて。
0559デフォルトの名無しさん
NGNGそういうことじゃない。
0560デフォルトの名無しさん
NGNGPlatform Invokeで呼び出したいWin32APIが以下のようになっています。
HDDEDATA DdeClientTransaction(LPBYTE pData,
DWORD cbData, HCONV hConv, HSZ hszItem,UINT wFmt,
UINT wType, DWORD dwTimeout, LPDWORD pdwResult);
下のように1番目の引数(LPBYTE pData)をSystem.Byteで
定義した場合には、呼び出し時にpDataにnullを渡せません。
[DllImport("User32.dll")]
public static extern IntPtr DdeClientTransaction(
ref Byte pData, UInt32 cbData, IntPtr hConv, IntPtr hszItem,
UInt32 wFmt, UInt32 wType, UInt32 dwTimeout, ref UInt32 pdwResult);
1番目の引数に、nullを渡すにはどのようにすればよいのでしょうか?
よろしくお願いします。。
0561デフォルトの名無しさん
NGNGIntPtr.ZeroがNULLポインタだからして、0を渡してやればいいんではないかい。
//XTYP_EXECUTEかXTYP_POKE以外の時は無視されるだけだと思うけど。
0562デフォルトの名無しさん
NGNGそういうことやったことは無いから適当な意見なんだけど、
namespace変えるのはどうよ?寝るけど。
0563デフォルトの名無しさん
NGNGそもそもバイト列のポインタに対してref Byteで宣言するのが正しいの?
System.Byteは1バイトのデータしか持たない気がするんだけど。
0564デフォルトの名無しさん
NGNGえ?TreeNodeからCustomTreeNodeへ変換できれば簡単じゃないかな?
だけど、書いてから調べたけどimplicitじゃ無理ですね。
0565デフォルトの名無しさん
NGNGじゃあその演算子の中身のコードの例を示してくれ。
その過程で気づくだろう。
自分はバカかと。アホかと。
0566デフォルトの名無しさん
NGNGそ、それをやると…何が変わるんだ…?
0567デフォルトの名無しさん
NGNGhttp://www.gotdotnet.com/japan/student/column/firststep/firststep12.aspx
「残り時間を表示するユーザーコントロール」ができません。
Startメソッドをpublicに修正し、
スタートボタンのクリックイベントハンドラで
this.lastTimer1.Start(10);
と記述したんですが、ずっと「残り10秒」なままです。
どう書けば作動してくれるんでしょうか?
0568デフォルトの名無しさん
NGNGガッ
0569デフォルトの名無しさん
NGNG海外製のオブファスケータはいろいろあるけど、どれもとんでもなく高価だ。
体験版を試しても、マトモに動かないものとかあるのに、製品は数十万円とか。
とても購入意欲は湧かないので自前でどうにかしようと思っている。
アルゴリズムはそれほど難しくなさそうだけど、アセンブリのいじり方がわからない。
Reflectionで様々な情報が取得出来るけど、情報を書き換えるにはどうするの?
0570デフォルトの名無しさん
NGNG0571名無しさん@そうだ選挙に行こう
NGNGイラクに匹敵する世界第2位の量の石油が眠っている。
そしてその資産はなんと、640兆円にもなる
(日本の年間国家予算は約80兆円なので8年分に相当)
ミ ∧_∧
⊂ヾ(・∀・ ) ヘェーヘェーヘェーヘェーヘェ
∩ ゝヽ ⊂_ノヽ
だが、その資源が日本政府のせいで全て水の泡になりそうだ
えぇ━━(゚Д゚;)━━━!!!!!
詳しくわ↓
http://mobius1.nobody.jp/
http://blog.livedoor.jp/team_lifeline/
0572名無しさん@そうだ選挙に行こう
NGNGすれ違い宣伝だが、600兆も本当にあれば、借金の半分は減らせるねぇ。うん。
ま、戦争などで輸入ができなくなったときのために「貯蔵」したいのか
単に中国が怖いのかだ
0573名無しさん@そうだ選挙に行こう
NGNGいや、別アセンブリで同namespaceってのが同居できると気持ち悪いな、と思って。
厳密名が被る可能性があるような気が。まあ適当に言ってるだけなんだけど。
0574名無しさん@そうだ選挙に行こう
NGNG0575573
NGNG0576573
NGNGtypeがstringから生成出来るし、名前が被るとどうなるのかなあと思って。
まあ知らないことに適当に口を挟んでも馬鹿にされるだけだね。ここらでやめとく。
0577名無しさん@そうだ選挙に行こう
NGNG可能性があるので、止めた方がいい、というのはそうだと思うんだが…
# ちなみに同じ名前空間が別のアセンブリというのは、標準ライブラリでさえある。
問題は今回の話とつながらないってことだ。
0578573
NGNGだとしたら本当に話がつながらなくて申し訳ないんだけど、
これは本当なの?俺が馬鹿なのかな?参考のために教えて欲しい。
SystemとSystem.Reflectionは名前空間違うって認識で合ってる?それとも俺馬鹿?
0579デフォルトの名無しさん
NGNG>> # ちなみに同じ名前空間が別のアセンブリというのは、標準ライブラリでさえある。
> これは本当なの?
本当。
例えばわかりやすいのはSystem名前空間。
System名前空間直下の型なんかは、いろんなアセンブリに存在してる。
※念のため、もちろん同じ名前のクラスじゃないよ。誤解を招いてたらスマン。
0580573
NGNGSystem.DesignがSystem.Design.dllに入ってるよ、って言ってるならやっぱおかしい。
System.Designは名前空間であって型じゃないよ。
System.ArrayがSystem.dll以外に入ってるってなら合ってるけどマジで?
つーか>>550-551のnamespace別々にして試してみない?とりあえず。
俺会社に行かないと環境無い。
0581デフォルトの名無しさん
NGNGだからSystem名前空間「直下」の型って書いてるだろうに、ちゃんと読めってか確認してみたら?
>つーか>>550-551のnamespace別々にして試してみない?
だから、全然関係ないの。
っていうか、どれとどれの名前空間を変えろって言ってるのかよく分かんらんけどね。
大体元の問題は、同じアセンブリ(って化クラスと)認識されるはずなのに、
別物と認識されてキャストできないって言ってるんだ。
問題は「同じクラスなのに同じと認識されない」事。
名前空間を変えるって方向が理解できないってことが分かるだろ。
0582デフォルトの名無しさん
NGNG>System.ArrayがSystem.dll以外に入ってるってなら合ってるけどマジで?
そこまで言ってるんなら、System.Arrayがどこに入ってるか一回確認してみろよ。
0583デフォルトの名無しさん
NGNGうだうだ言ってないで会社行ったらオブジェクトブラウザでも見てみれば?
0585573
NGNGそもそも俺が疑問を持った経緯を書いてないのが悪かった。
同じnamespaceでclass名が重複したらコンパイルエラーになるよね。
俺はそもそも同じnamespaceでアセンブリが分けられるとは思ってなかったんだけど、
静的に参照しているならアセンブリが分かれててもコンパイルは通せて、
型が保証されるのは納得できるのよ。
で、動的にロードすると同じclass名とかもうどうしようも無いから、
そもそも同じnamespaceが許されてないんじゃない?と思った。
いやもう馬鹿でいいけど、ごめんよ。明日自分で試して納得するよ。
0586デフォルトの名無しさん
NGNGそれは逆。
名前空間、クラス名が別のアセンブリで重複するとき怒られるのは
静的に参照してる場合の話(コンパイル時の話)。
動的にロードした場合は問題ない(扱う側で注意は要るけど)。
※念のため、もちろん別クラスとして認識される。
静的に参照したアセンブリと動的にリソースからロードしたアセンブリが
同じと認識されないのはどういうことだってのが問題。
0587573
NGNGあー、一晩寝たら少し話が見えてきた。
実装をすげ替えるんだったらinterface経由でやればいいんじゃないの?
一応以下は会社で試して、動いたよ。まだ勘違いしてたらすまん。
//InterfacePart.cs
//csc /t:library /out:InterfacePart.dll InterfacePart.cs
namespace Test
{
public interface IDllPart
{
string Name { get; set; }
void SetId(int id);
int GetId();
}
}
0588573
NGNG//csc /t:library /res:InterfacePart.dll /out:DllPart.dll DllPart.cs
namespace Test
{
public class DllPart : IDllPart
{
public string Name {get {return name;} set {name = value;}}
private string name;
public void SetId(int id)
{
this.id = id;
}
public int GetId()
{
return id;
}
private int id;
}
}
0589573
NGNG//MainPart.cs
//csc /t:exe /r:InterfacePart.dll /res:DllPart.dll MainPart.cs
namespace Test
{
public class MainPart
{
public static void Main()
{
Assembly assembly = null;
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DllPart.dll"))
{
byte[] bytes = new byte[(int)stream.Length];
stream.Read(bytes, 0, bytes.Length);
assembly = Assembly.Load(bytes);
}
Type type = assembly.GetType("Test.DllPart");
object o = Activator.CreateInstance(type);
IDllPart dllpart = o as IDllPart;
dllpart.Name = "Test.";
dllpart.SetId(1);
Console.WriteLine(dllpart.Name);
Console.WriteLine(dllpart.GetId());
}
}
}
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGカルシウムは足りてるか?
錠剤じゃ吸収率がよくないそうだぞ。
>>587-589
これはこれで面白い結果だが。
//いまいち言葉にしにくいので考察はパス。
しかしこの場合参照ファイルとしてInterfacePart.dllが必要なわけで、
アセンブリの格納としては意味が薄れてしまう……。
//InterfacePart.dllを作って参照するくらいなら初めからDllPart.dllを参照する。
//「実行時に参照ファイルが必要ない」が目指すところ。
//DllPart.dllをいじらない、ってのも必要か?
//ソースがあるならMainPartコンパイル時にDllPart.csも含めればいいんだし。
0592デフォルトの名無しさん
NGNG何をするキーだと思えばいいですか?
0593デフォルトの名無しさん
NGNGそのまんま、クリアするキーらしい。
テキストボックスやら電卓の計算結果やら。
Windowsでは一般的ではない、と思う。(というか有効な(日本製)アプリってあるのか?)
AppleのキーボードにESCのそばにあるとかなんとか。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNGそんなに条件厳しかったのね。
マネージドじゃちょっと思いつかないなあ。
0596デフォルトの名無しさん
NGNGここを参考にとりあえず、フォームのLocationを
Closingイベント時にXMLで保存しようとしたのですが、
どうも上手くいかず、空のファイルが出来るだけです。
疲れたよ・・・
ヒント教えて
0597デフォルトの名無しさん
NGNG独り言で済まされたくないのならもうちょっと文章を考えるべきだと思う。
XmlSerializerのシリアライズとデシリアライズをきっちり勉強しろ、としか。
0598デフォルトの名無しさん
NGNG具体的にどのようなコードを書いて上手く行かなかったのか全く記述なし、
そもそも質問する態度がなってない、
もうぬるぽ。
0600デフォルトの名無しさん
NGNGどう解決したのか書こうよ。
0601デフォルトの名無しさん
NGNG600を取ったおまえをガメラは許さない。
0602152
NGNG呼び出し元の変数の内容を書き換える場合はどうすれば良いのでしょうか?
呼び出し元のvalueをクラス hoge内部で書き換えたい場合は
ポインタを使用するしかないのでしょうか?
private void button2_Click(object sender, System.EventArgs e)
{
bool value = false;
Hoge foo = new Hoge(value);
foo.getStatus();
if (value) MessageBox.Show(this,"ok");
}
public class Hoge
{
private bool hoge;
public Hoge(bool value)
{
hoge = value;
hoge = true;
}
public void getStatus()
{
if (hoge) MessageBox.Show("");
}
}
0603152
NGNG0604デフォルトの名無しさん
NGNG「参照」ならC++のように呼び出しもとの値を書き換えられる。
0606デフォルトの名無しさん
NGNGpublic class Hoge {
public static void Main(){
int x = 100, y = 200;
System.Console.WriteLine("x = " + x + " y = " + y);
swap(ref x, ref y);
System.Console.WriteLine("x = " + x + " y = " + y);
}
static void swap(ref int a, ref int b){
int tmp = a; a = b; b = tmp;
}
}
0607602
NGNGすんません
ちょっとサンプルが悪かったです
private void button2_Click(object sender, System.EventArgs e)
{
// 初期値でfalse
bool value = false;
Hoge foo = new Hoge(value);
// クラスHoge内部でvalueの値を書き換えたい!
foo.updateStatus();
1
if (value) MessageBox.Show(this,"ok");
public class Hoge
{
private bool hoge;
public Hoge(bool value)
{
hoge = value;
}
public void updateStatus()
{
hoge = true;
}
}
0608デフォルトの名無しさん
NGNGおまいはいったい何がしたい?
クラスとかインスタンスとかいうもののイメージが理解できてるか?
0609デフォルトの名無しさん
NGNG0610602
NGNGデザインパターンでいうObserverのような機能を実現したいのです
もうちょっと自分でやってみます
0611デフォルトの名無しさん
NGNG少なくとも、そのコードではhogeに渡しているのは valueのコピーであって参照ではない。
0612デフォルトの名無しさん
NGNGobject型などの参照型にアップキャストして保持しとくしかない。
使う時にダウンキャストしないといけなくなるので今一だが。
# まあ、ラッパークラス作ってもいいんだけど。
しかしながら、
if (value) MessageBox.Show(this,"ok");
のところを、
if (foo.value) MessageBox.Show(this,"ok");
みたいな形では駄目なのかを考えた方がいい。
# valueはprivateだなんて突っ込みは不要。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG>>607のコードがいまいちピンとこないんだが…
0615602
NGNGEditBoxという名前とします
フォーム上に30個ぐらいEditBoxを配置するとします
このときにEditBoxに呼び出し元のフォームを知らせます
どれか一つでもテキストボックスの値が変更された場合は
呼び出し元のフォームの更新フラグを更新します
# コントロールの数が増えたり減ったりすることがあるので
# 戻り値で受け取るのはミスが増えるのでやりたくないんです
こうすれば
呼び出しもとのフォームは個々のコントロールの更新未更新を考えずに
画面の内容の更新をしることができると思うんです
こういうのを考えているんですが
javaだとできるんですがC#だとうまくいきません
0616デフォルトの名無しさん
NGNGフォームにフラグ更新メソッド作っておいて、
そのEditBoxとやらに呼ばせれば?
0617デフォルトの名無しさん
NGNGいや親フォームの存在すら知るべきではない
0618デフォルトの名無しさん
NGNG0619602
NGNGObserverだとメソッドをたたくじゃやないですか
そうじゃなくて更新フラグとかで通知だけしたいなと思ったんです
boolじゃなくてsetUpdateFlag()
とかのほうがスマートなんだろうか・・・
>>612
参照型として保持しておけば(・∀・)イイ!!んですね
プリミティブ型のラッパークラスは標準では用意されてないんですね
ありがとうございました
>>614
たぶんうまく伝わってませんすみません
>>616
そうですねラッパークラスを作るより
その方が早そうですね
>>618
その方向でやってみます
>>617
Observerにしてしまえば親フォームでコントロールの更新状況などを
考えなくて良いのは便利だと思うのですがどうでしょう?
単一の部品としではなくフレームワークとして考えてですが
とりあえず眠くなってきたので
みなさんのアドバイスを元に起きたらいろいろと試してみてみます
なんかできそうな気がしてきた
0620デフォルトの名無しさん
NGNG大体フラグ更新という考え方(最初の考え方)だと
Observerのようにならないってのは分かるか?
# それでいいなら別にいいんだけど、そりゃObserverとは言わないだろ。
やり方なんていくらでもあって、EditBoxの既存のイベントを利用する、
独自のイベントを追加して利用する、更新通知メソッドをフォームに用意して
呼び出す、同じようなもんだがフラグプロパティをフォームに用意する、
更新通知デリゲートを渡してフォームに通知する(こりゃイベントとあまり変わらんが)、
なんて辺りがざっと考えられるが。
0621デフォルトの名無しさん
NGNG通知側が持つんじゃなくて通知される側の参照経由でセットするのが普通。
て結局は>>620と同じようになるけどな。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG完全な独自実装ではなく.NETの機能を使って、例えばC#でマクロ書かせるとして、
document.new();
で、コンパイルエラー出さないためには、
using MyApp;
public class MyMacro
{
public MyMacro()
{
document.new();
}
}
最低でもこれだけ必要で、
ユーザーにとってはマクロなんて気軽なものじゃなくて完全に.NETプログラミング。
それでもかまわないならコンパイラ起動だけすればいい。
document.new();だけで動作できるVSA関連の機能は、
.NET 2.0 betaではobsoleteになってて将来使えなくなる。
0624デフォルトの名無しさん
NGNG.NETでCOMサーバみたいなのって書けるのかね。
0625デフォルトの名無しさん
NGNG<td>hoge</td>
htmlはstring変数に取得したのでhogeの部分を取得したい。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGMyApp.exeにBaseMacroクラスを作り、そのメンバとしてホスト連携部を用意しとく。
ユーザーのマクロはBaseMacroを継承したクラスでを書かせる。
using MyApp;
public class MyMacro : BaseMacro
{
}
MyApp.exeを参照させてDLLをコンパイルする。
作成したDLLを動的に呼び出す。
これでstaticの値が連携部になる。
0628デフォルトの名無しさん
NGNGもうちょっと具体的に教えてよ。
正規表現でhogeの部分を取得するのは、どういう風に書くの?
0629デフォルトの名無しさん
NGNGここはC#相談室
正規表現
http://pc5.2ch.net/test/read.cgi/tech/1062152374/
0630デフォルトの名無しさん
NGNGここで結構解説してあるよ
http://www.atmarkit.co.jp/fdotnet/basics/regex01/regex01_01.html
0631デフォルトの名無しさん
NGNG質問するのは頭と尻尾だけだ。
0632デフォルトの名無しさん
NGNGいちいち変数宣言してプロパティセットしてメソッド呼んでとか。
ループの内部で呼ぶとパフォーマンス落ちるから
前もって別の場所で初期化しておかないといけなかったり。
スクリプト言語みたいにもっとお手軽に使えないのかね。
0633デフォルトの名無しさん
NGNGあんまり色んな言語いじったことが無いからかも知れんけど。
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG検索してもデータベースサーバからごにょごにょすることばかりなのです。
0637デフォルトの名無しさん
NGNG誤って ngen /delete * してしまいました…_| ̄|○
ネイティブキャッシュを初期状態に戻す方法はないですか?
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG添付ファイルを表示するListViewにファイルをドラッグアンドドロップするとそのまま
添付ファイルとして送信できるようにしたいのです。
ListViewのlist_temp_DragEnterイベントを使ってDoDragDropメソッドを実行し、
とりあえず、DragDropEffects.Copyにしています。
この後、list_temp_DragDropイベントが実行されて、ファイル名を取得・・と考えていたのですが、
なぜかlist_temp_DragDropイベントが連続して起こります。
どうしてでしょうか。質問が下手ですみません。
0641デフォルトの名無しさん
NGNGDragEnterイベント内でDoDragDropやっちゃ駄目。
DoDragDropは自分コントロールからよそにドラッグドロップさせるためのメソッド。
(MouseDownイベントで実行させるのが普通)
DragEnterでは受け取ったDragEventArgsのEffectプロパティを操作するだけでいい。
void listView1_DragEnter(object sender, DragEventArgs e) {
if (//e.Dataが要求する型だった) {
e.Effect = DragDropEffects.Copy;
}
}
0642デフォルトの名無しさん
NGNG変更した後、デザイン画面を見たらそのコントロールが消えてしまいました。
このコントロールを復活させる事はできないのでしょうか?
0643デフォルトの名無しさん
NGNGFWで接続を許可しないといつまで経っても接続できないだろ?
もしくは、ケーブルが抜けていたらいつまで経っても接続できないだろ?
「接続できない」ことを検出して、ダイアログボックスを表示したいんだが、
どうやって検出するんだ?教えてくれ。
0644デフォルトの名無しさん
NGNGプロパティをいじる。それで駄目なら作り直し。
0645643
NGNGThread使っていたからか、「異常終了」にならなかったから気付かなかった。
0646デフォルトの名無しさん
NGNGありがとうございます!
解決できました!
0647646
NGNGメールの添付ファイルに使う場合、ドロップしたDataObject型を何に変換させるのがよいでしょうか。
ファイル名と、フルパスさえ取得できればいいと思っています。
FileInfo型にできればよいのですが・・。
0648デフォルトの名無しさん
NGNGいや普通DataFormats.FileDropのみ受け取るようにするんじゃないだろうか。
0649デフォルトの名無しさん
NGNGsetting sw = new setting();
this.Enabled = false;
sw.Show();
両者でstringをやりとりしたいのですがどうしたらいいですか?
Form1のテキストボックスに、
swのopenfileダイアログで選んだファイル名を入れたいです。
0651デフォルトの名無しさん
NGNGShow()ってことはモードレス? モーダルなら>>315なんだけど。
C#的にはイベントで通知、かな。
あとはForm1に
public void ChangeTextBox1(string text) {
textBox1.Text = text;
}
とかいといてswで実行するか。
0652649
NGNG>>あとはForm1に 〜〜 とかいといてswで実行するか。
ってのはどういうことなんでしょうか?
swから
Form1.ChangeTextBox1(openFileDialog1.FileName);
とすると、
静的でないフィールド、メソッド、またはプロパティ '温度計.Form1.ChangeTextBox1(string)' で、オブジェクト参照が必要です。
となってしまいます。
0653デフォルトの名無しさん
NGNGオブジェクト指向は理解できてるかな、と。
form1でsettingクラスのインスタンスswを作成して、sw.Ownerに自分自身の参照thisを入れる。
//OwnerだとForm型であとでキャストする必要があるからForm1型の別プロパティを作ってもいいけど。
//スマートなのはOwnerプロパティを隠蔽することかな。
sw側からは自身のOwnerプロパティ越しにform1のパブリックメソッドを操作する。
通常OwnerプロパティはForm型なのでForm1型にキャストする必要がある。
//Ownerプロパティのnullチェックもやっておくと多い日も安心。
0654646
NGNGおかげさまでドラッグアンドドロップからのメール添付できました!
大変ありがとうございました。
ListViewにアイコンが表示できますが、メール添付するファイルの拡張子にあわせてアイコン表示なんて事も簡単にできるのでしょうか?
ヒントいただけると幸いです。
0655デフォルトの名無しさん
NGNGOnTextChanged += new TextChangeDelegate( this.hoge );
みたいにイベント使うデソ。
同じノリで、
setting.cs で
public delegate void SetFileNameDelegate(string filename);
public SetFileNameDelegate OnFileSelected;
と delegate を宣言して、Form1 の方には
void SetFileName(string s) { this.textBox.text = s; } を追加、その上で
setting sw = new setting();
sw.OnFileSelected = new setting.SetFileNameDelegate( this.SetFileName );
sw.show();
sw ではファイル名の選択が済んだ段階で this.OnFileSelected(s); として呼び出す。
0656デフォルトの名無しさん
NGNGttp://santamartadotnet.hp.infoseek.co.jp/documents/dotnettips/tips021.html
Win32API使わないと実装できないんじゃないかな。
>>655
デリゲートを使うならこの場合eventを使った方が自然。
0658デフォルトの名無しさん
NGNGIcon.ExtractAssociatedIcon()
でいけますよ。
0659658
NGNG0660649
NGNGフィールドって初めて知りました…orzがんがります
ありがとうございました。
0661デフォルトの名無しさん
NGNG0662649
NGNGの下の方を見たんですが…
フィールドつかわなくてもできた…んですか… orz
やってみよっと。
0663デフォルトの名無しさん
NGNGフィールドをパブリックフィールドととってしまっただけ。
0664デフォルトの名無しさん
NGNGstring sqlStr= "select a from b;" + "select c from d";
と繋げて実行したのですが、
「コマンドの後に文字があるぞ!」って怒られてしまいます。
どなたかアドバイスをお願いします。。。
初心者丸出しですみません。
0665デフォルトの名無しさん
NGNGどとねとふれーむわーくの意味ないじゃん!
0666デフォルトの名無しさん
NGNG遅っ
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGFXまでの予行演習みたいなものか。
0669デフォルトの名無しさん
NGNGどとねと構想とあまし関係ないっつぅか
やっぱどとねとてその存在意義がよくわかんねぇ
DLLひとまとめにしたようなもんか?
0670デフォルトの名無しさん
NGNGあんた、T-SQLを勉強した方がいいぞ。
0671602
NGNG参照型でいったらできました
ありがとうございました
#refと参照型は違うんですね
0672デフォルトの名無しさん
NGNGシステム時間が5分ぐらいずれているとエラーとなってしまいます。
エラー:Message Expired
WSE1.0ではRequestSoapContext.Timestamp.Ttlの値を0にすれば
よかったんですが、WSE2.0にはそのようなプロパティが存在しません。。
上記エラーを回避するには、WSE2.0に対してどのような設定を
すればよろしいでしょうか。
0673デフォルトの名無しさん
NGNG参考になりそうなのはこれかなー。
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=12825
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNGありがとん!
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG作成方法を解説しているサイトをご存知ありませんか?
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGThe Code Project - Extending Explorer with Band Objects using .NET and Windows Forms - C# Programming
http://www.codeproject.com/csharp/dotnetbandobjects.asp
0682677
NGNG0683デフォルトの名無しさん
NGNG作成方法を解説しているサイトをご存知ありませんか?
あ、最低で柴崎コウさん、堀江由衣さんくらいの彼女が作りたいんです。
C#かDelphiで無理ならC++かVHDLでも問題ありません。
0684デフォルトの名無しさん
NGNG1.C#かDelphiのプログラムが動かず悩んでいる、柴崎コウか堀江由衣くらいの女の子を捜す。
2.答えてあげる。
3.ヽ(゚∀゚)ノヤッター!!
0685デフォルトの名無しさん
NGNGttp://www.microsoft.com/japan/
0686デフォルトの名無しさん
NGNG漏れはその手で会社の後輩をゲトしようと思って、かなりいい線まで逝ったと思うのだが
ある日彼女の妊娠が発覚(入社1ヶ月目でオメデタ3ヶ月)、そのまま退社された orz
0687677
NGNGVisual C#は、Visual Studio .NETのなかに付属している。で、合っていますか?
勘違いしているようでしたら教えてください。失礼します。
0688デフォルトの名無しさん
NGNG普通にC#で作ったWindowsFormアプリは動かない。
PocketPC向けに.NETCompactFrameworkで作ったアプリはPocketPCのAPIをP/Invokeで呼び出していなければ
大体のものはWindowsXPとかで動く。
0690デフォルトの名無しさん
NGNGどのようにすればステータスバーにURLを表示できますでしょうか、、、
タイミングなどよくわかりません・・・
0691デフォルトの名無しさん
NGNGStatusTextChangeイベント
0692デフォルトの名無しさん
NGNG正気?
0693デフォルトの名無しさん
NGNGTextBox[] txtaaaaa = new TextBox[10];
コントロールの配列として扱う方法と、普通にtxtaaaaa1.txtと扱う方法を
1つのプログラムで混ぜていいのですか?
0694デフォルトの名無しさん
NGNG別に言語仕様上何の問題もない。
コードが読みやすければそれでいい。
混合させれば場面によっては可読性を損なうだろうし、場面によってはよりわかりやすくなることもある。
複数人でコードを扱う場合は多くの場合好まれないだろう。
まあコントロールの配列はコントロールを動的に作成する以外必要性少ないが。
0695デフォルトの名無しさん
NGNG特に問題はないんですね。
ありがとうございます。
0696デフォルトの名無しさん
NGNGキーストロークを送信したりできないのでしょうか?
0697デフォルトの名無しさん
NGNG今んとこ、APIを呼び出すしかない。
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGpublic class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
public MainForm()
{
InitializeComponent();
}
}
なら普通に動くんですが、下のだと動きません。
public class MainForm : System.Windows.Forms.Form
{
public MainForm()
{
System.Windows.Forms.Button button1;
InitializeComponent();
}
}
一応はButtonのインスタンス(button1)を初期化するInitializeComponent()の前でbutton1を宣言してるんですが、
InitializeComponent()内で、button1の定義が無いとエラーが出ます。
(InitializeComponent()内で、button1 = new Button()やってます)
MainForm()内の、button1宣言文とInitializeComponent()の呼び出し順ってどうなってるんでしょうか?
0700デフォルトの名無しさん
NGNGttp://black.sakura.ne.jp/~third/programming/cs/cs.html
この辺で一から勉強し直した方がよくないか。
簡単に言えば、
クラスのメンバとして宣言された変数はオブジェクトが破棄されるときに破棄される。
あるメソッド内で宣言された変数はそのメソッドから抜けるときに破棄される。
また、別のメソッドを呼んだとき、
呼出先メソッドでは呼出元メソッドのローカル変数は扱えない。
0701699
NGNGpublic class MainForm : System.Windows.Forms.Form
{
public MainForm()
{
InitializeComponent();
}
System.Windows.Forms.Button button1;
}
button1を初期化するInitializeComponent()の後にbutton1を宣言してもOKなのはなんででしょう?
0702デフォルトの名無しさん
NGNG入門書読んでからこい
ヒント
スコープ
メンバ
0703デフォルトの名無しさん
NGNG後じゃないしなあ。
入門書に書いてあるかどうかも不安なレベルだ。
0704699
NGNGpublic MainForm()
{
InitializeComponent(new Button());
}
private void InitializeComponent(Button button1)
{
button1.Location = new System.Drawing.Point(40, 104);
button1.Name = "button1";
button1.TabIndex = 0;
button1.Text = "button1";
}
これなら動きました。
0705デフォルトの名無しさん
NGNG大事なとこだ
0706デフォルトの名無しさん
NGNG海外のコンポーネントだとソースコードがないのが多い・・・_| ̄|○
0707デフォルトの名無しさん
NGNGあんた親切だなあ。
0708699
NGNG上の駄目な例だと、MainForm()のローカル変数として宣言してたってことですよね。
で、InitializeComponent()にとって、MainForm()のローカル変数button1はスコープ外だと。
0709デフォルトの名無しさん
NGNG.NET Framework 2.0でToolStripやらRaftingContainerやらが増えてるが。
ttp://www.google.co.jp/search?q=cache:dobon.net/vb/dotnet/links/coolbar.html
にCommandBarコンポーネントがいくつか紹介されてる。
0710デフォルトの名無しさん
NGNG0711699
NGNGpublic void Test()
{
int a = 0;
}
public void Test2()
{
a=1;
}
0712デフォルトの名無しさん
NGNG書いていること自体は間違いではないが、まだまだ周りは
「分かってんのかな?」という感想だと思う。
button2を押したら、button1.Textを書き換えるとかはどうする?
0713デフォルトの名無しさん
NGNGそういう例だと、引数で渡さずにTest()とTest2()で同じaという変数を扱う、
って話をクリアして欲しい。
0714デフォルトの名無しさん
NGNGこの時点でおまいはクラスのことを何も分かってないことがわかってしまう
分かってから自分がどれだけばかたりな質問をしたか分かるぞ
責めてるんじゃないが。ある意味その新鮮さがうらやましい
0715デフォルトの名無しさん
NGNGあんまり親切すぎるの反対。
0716デフォルトの名無しさん
NGNG0717699
NGNG>>704のだと、InitializeComponent()の中でbutton2を作って初期化しないと駄目ですね。
InitializeComponent(Button button1)
{
button1 = new Button();
Button button2 = new Button();
button2.Text = "button2";
button2.Click += new EventHandler(button2_Click);
}
private void button2_Click(object s,EventArgs e)
{
button1.Text = "書き換え後のテキスト";
}
いまオブジェクトのライフサイクルってのを調べてます。
0718699
NGNGふらっとC#ってスレがあるので、今後はそっちをメインに利用します。
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGでも>>717は無茶苦茶だ。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG>どうする?
困る。
0723デフォルトの名無しさん
NGNGいや,そのまっすぐな目で見つめられたらおまえは
0724デフォルトの名無しさん
NGNG……いや、button1がフィールドにもある可能性もあるか。
目を逸らしつつ入門書を差し出すかな。
0725699
NGNG>>717のInitializeComponentは、
public MainForm()
{
InitilaizeComponent(new Button());
}
って感じで呼び出してます。
とりあえず動作するのは確認してたので・・・というか気になって戻ってきましたw
0726699
NGNG0727699
NGNG( ⌒ ヽbutton1はInitializeComponent()のローカル変数だから
∪ ノ button2_Click()からはbutton1.Textにアクセスできないや。
∪∪ さっき出たネタなのに。
0728デフォルトの名無しさん
NGNG心配するな。
それ以上に突込みどころ満載のソースだから
0729699
NGNG雛形どおり使うのって凄い抵抗あるんですが・・・とにかく変えたい症候群で。
0730デフォルトの名無しさん
NGNGまずはエディタとcsc.exeとコマンドプロンプトから始めるのを勧めるな。
全ての基本はHello worldだ。
自分がそういうレベルの質問してるという自覚はあるよな?
0731デフォルトの名無しさん
NGNG0732699
NGNGtheSpokeの激安VS.NET買っちゃったので使いたいんです(;´Д`)
レベルについては自覚してます。
0733デフォルトの名無しさん
NGNG> とにかく変えたい症候群で。
どうやら学生のようだが、プロになったらそんなポリシーなど三秒で駆逐されるから、
今のうちに変えたい症候群を楽しんでおこうね。
0734デフォルトの名無しさん
NGNG変えたいというか、自分で最初から構築したいんだろう。いいことだよ。
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGって感じで大きめの領域を確保して、使い終わったら早めに片づけておきたいんだけど
C++のdelete[] に相当するものってないの?
0737デフォルトの名無しさん
NGNGぬるぽGC
0738デフォルトの名無しさん
NGNGちなみにVisual C# .NET 2003 使ってます。
もし私の環境で"WCL"が使えないなら、どうにかして使えるようにする方法はありませんか?
MSのサイトにそのためのプラグインか何かが公開されているとか、
SharpDevelopならば使えるとか、
空のプロジェクトにごにょごにょファイルを追加すればそれ相当になるとか。
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGごにょごにょすればできるよ。
試してないけどそれっぽいツールもある。
オレはそれを知らずにごにょごにょしてしまった。
0741デフォルトの名無しさん
NGNGこれ?
> ■ Visual C#.NET Standard で DLLをビルドする方法。
>
> (1)普通にプロジェクトを作る
> (2)プロジェクトを保存したフォルダの「プロジェクト名.csproj」をテキストエディタで開く
> (3)Settings要素の OutputType属性を "Library"に書き換える
>
> これでビルドするときに Main()がなくても怒られない。
0742デフォルトの名無しさん
NGNGCで記述されたDLLから、大量のコールバックを呼び出す必要があるのですが、
DLL内の初期化関数呼び出し時に、利用しそうなコールバック関数を一気に登録しておき、
必要に応じて、該当コールバック関数をコールする。
と言う事は可能なのでしょうか?
あと、コールバック用に作成したデリゲートのライフタイムは
どのへんに依存するのでしょうか?
どこかに、「コールバック登録したデリゲートが勝手に破棄されないようにする」
というような、記述を見た気がするのですが、何処で見たのか・・・
0743デフォルトの名無しさん
NGNGif (ofd.ShowDialog() == DialogResult.OK)
でファイル開くダイアログを出して、.lnkファイルをダブルクリックすると
リンク先のフォルダへ行かず、リンクファイルを開いて終わってしまいました。
FileDialog.DereferenceLinksプロパティをいじっても変わりません。
なんとかなりませんか?
0744デフォルトの名無しさん
NGNG・FileNameがDereferenceLinksに関わらず.lnkを取得
・.NET Frameworks 2.0βだとDereferenceLinks=trueでリンク先フォルダの選択画面になる
バグか未実装のようだな。
//コモンコントロールなのに……。
0745デフォルトの名無しさん
NGNGdelegateもCLR的には単なるObjectなんだから、
そのポインタをpinしておけばいいのですよ。
つかMC++経由だったらそんなにトリッキーなことにはならんと思うが。
0746デフォルトの名無しさん
NGNGSystem.Net.HttpWebRequest/HttpWebResponse クラスを使って
簡易HTTPクライアントを作成しているのですが、IEが吐いたクッキーを食わせる方法がわかりません。
hoge.hoge.tldサーバ -[Cookie]-> IE ([email protected][x].txt に出力されている)
この状態で、自作プログラムから hoge.hoge.tld 上のリソースにアクセスする際に
IEで受け取ったクッキーを食わせたいんです。
ぐぐったところ
クッキー受け取り->そのクッキーを送出
というものは見つかったのですが、試しにその通りにやっても
期待通りの(クッキーが受け入れられた)動作は得られませんでした。
どなたかご教示いただけませんでしょうか?
0747デフォルトの名無しさん
NGNGせめてアドレスくらい書いてくれよー。
0748746
NGNGAmazon.co.jpのトップページでやってみてます。IEでアクセスすると、
こんにちは、hogehogeさん。おすすめ商品を〜
となるんですが、HttpWebResponseで取得すると
こんにちは。おすすめ商品を〜
となり、Cookieが受理されていないようです。
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGPath.GetDirectory(Application.ExcutablePath);
Path.GetDirectory(GetType().Assembly.Location);
でどうでしょうか?
0751746
NGNGrequest.CookieContainer.SetCookies(request.Address,"session-id-time=xxxx,session-id=xxxx…");
というふうに、Cookieファイルの内容を直接記述したら受理されました。
プロクシの設定みたいに、デフォルトの値を取得できないもんでしょうか?
>>749
Application.ExecutablePath でアプリケーションのフルパス(x:\hoge\hogehoge\foo.exe)
Application.StartupPath で実行パス(y:\foo\bar)
0752デフォルトの名無しさん
NGNGファイルから読み込んでSetCookiesしてやればいいんじゃない?
HttpWebRequestでやる以上IEとは関係ないんだし。
デフォルトの値って何よ。
0753デフォルトの名無しさん
NGNGStartupPathだとなぜか一つ上のフォルダが出てきた・・・
Path.GetDirectoryName(GetType().Assembly.Location);でいけますた。
0754746
NGNGデフォルトって言い方は変でしたね。
プロクシについては GetDefaultProxy()で取得できてたので、
同じように取得できないかな、と思ったのですが。
ファイルから読み込むしかないかな…
レジストリ検索したら、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Cookies
にフルパスを格納した値があったので、試しにこれでやってみたいと思います。
0755デフォルトの名無しさん
NGNGもっとエレガントに、
Environment.GetFolderPath(Environment.SpecialFolder.Cookies)
Environment.UserName
0757746
NGNG肝心のファイル名が一意に特定できない
foo.bar.hoge.ne.jpの場合、
...\Cookies\ユーザ名@foo.bar.hoge.ne[n].txt
になる、と思ってたらそうでもなく、
ディレクトリによっても左右されるみたいですね…
Cookiesディレクトリの*.txtを片っ端から走査して、
3行目のドメイン指定(?)が一致するものを探すしかない気がします。
index.datがくさい気がするんですが、ぐぐってもよくわからないし。
連続書き込みで申し訳ない。>ALL
0758デフォルトの名無しさん
NGNGググってみたけど、そこまでベタにやるならおとなしく
InternetGetCookie と InternetSetCookie を使うのがいいんじゃない?
0759746
NGNGhttp://www.rendelmann.info/blog/default.aspx?date=2003-12-12#abd99bcd5-7088-4d46-801e-c0fe622dc2e5
ここのRetrieve〜関数をいじって(そのままだとエラーが出た)
[DllImport("wininet.dll", CharSet=CharSet.Auto , SetLastError=true)]
public static extern bool InternetGetCookie (string url, string name, StringBuilder data, ref int dataSize);
private static string GetIECookiesForUrl(string url)
{
StringBuilder cookieHeader = new StringBuilder(new String(' ', 256), 256);
int datasize = cookieHeader.Length;
if (!InternetGetCookie(url, null, cookieHeader, ref datasize))
{
if (datasize < 0)
return String.Empty;
cookieHeader = new StringBuilder(datasize); // resize with new datasize
InternetGetCookie(url, null, cookieHeader, ref datasize);
}
return System.Text.RegularExpressions.Regex.Replace(cookieHeader.ToString(),";",",");
}
// クッキーを食わせる ( HttpWebRequest request )
request.CookieContainer = new System.Net.CookieContainer();
request.CookieContainer.SetCookies(request.Address,GetIECookiesForUrl(request.Address.ToString()));
のようにしたところ、ちゃんとCookieが受理されました。
アドバイスを下さった皆さん、ありがとうございました。
0760デフォルトの名無しさん
NGNGttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconplatforminvokedatatypes.asp
P/Invoke するときに、LPSTR とか LPCSTR が来るところは System.String でも System.StringBuilder でも大丈夫なんだ…知らなかった orz
# 確かに、StringBuilder でないと微妙に具合悪いよなぁ…
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG書き直す程度ビルドできるものなんだろうか。
嫌々使っていたソースの無いサードパーティ部品をやめて
2.0で増えたネイティブコントロールを使いたいんだけど、
あんまり修正部分が広いとしんどい。
0763デフォルトの名無しさん
NGNGRuby や perl で変換プログラムを書いたら。
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNGまんどくせから全部■
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG英語版のお試し版ならダウンロードしてインストールできるでそ
0769デフォルトの名無しさん
NGNGどっかXP風なアイコン無料で公開してるとこない?
0770KazMAX ◆CaGD7FUGns
NGNGhttp://kde-look.org/
このへんで探してみるとか。
0771デフォルトの名無しさん
NGNGあたりのリソースを無断使用するとか。
0772デフォルトの名無しさん
NGNGGlyphsXP
0773デフォルトの名無しさん
NGNGできればウィンドウ関係のアイコンが欲しいがみつからない・・・
自分で作るしかないのかなー・・・
0774デフォルトの名無しさん
NGNG全くと言っていいほどコード書き直す必要ないはずなんだけど。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGcallback関数の一括登録できました。
遅ればせながら、ありがとうございました。
0778デフォルトの名無しさん
NGNGsystem32\SHELL32.dll のリソースを見てみました。
ツールバーの画像はアルファ付きBMPらしいのですが
リソースのBMPにはアルファ情報は入っていないみたいです。
カラーキーで背景色を抜いただけではかなり変な表示になってしまいます。
アルファ情報はどこにあるんでしょうか???
・・・・・・って完璧にスレ違いだったスマソ
0779デフォルトの名無しさん
NGNGそのあたりを解説したサイトがあれば教えてください。
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG解決策を教えてくれ
0782デフォルトの名無しさん
NGNGC#板のみ入れた?
0783デフォルトの名無しさん
NGNGいや、、VisualStudioのセットで入っていてそのままSDKをインストールしたのだが、、
え、もしかして、単体じゃないと駄目なのか?だとしても何か解決方法があるんでしょ?
0784デフォルトの名無しさん
NGNGC#版だと問題で、全部入りは問題なかったはずだが。
Managed DirectX vol.2
http://pc5.2ch.net/test/read.cgi/tech/1061285378/
の前スレで
0785デフォルトの名無しさん
NGNG試しにビルドした空のアプリ(画面・コマンドラインとも)を
デバッグ実行すると、戻ってこなくなります。
DirectX 9.0 SDKのC#サンプルも同様に戻ってこなくなります。
.NET FrameWorkの問題でしょうか?
環境はAthronXP、Windows2000Professional、
常駐APはNortonの防火壁とアンチウィルスです。
0786デフォルトの名無しさん
NGNG0787785
NGNGC#開発環境はプロセスが反応を返さないのでフリーズします。
DirectXのサンプルブラウザはフリーズはしませんが。
0788デフォルトの名無しさん
NGNGそういうのは、まずオブジェクトブラウザを見直す。
0789デフォルトの名無しさん
NGNG>785に似た現象が出たことある。Norton IS & Antivirusも入れてた。
・F5(開始)でビルドするとVSがフリーズする。
・でもアプリのプロセスは存在する。
・EXE自体は正常にできてる。
VSを強制終了させてexeを直接起動すると
それは問題なく動いたんだよね。
F5(開始)でやるんじゃなくて、
メインメニュー → ビルド → HOGEのビルド
からビルドしてexeを直接起動することで対処してたけど、
いい加減面倒なのでOSごと再インストールしたら直った。
全く同じコードがF5(開始)でビルド&起動できたね。
移行した環境がWin2003Ent + Norton IS + AVGと全然違うし、
他で再現性を試したわけじゃないから
この現象が環境依存なのかどうかはハッキリ言えないけど。
0790785
NGNGオブジェクトブラウザ以前に、
インストール>とりあえず空のプロジェクトを作る>デバッグ実行>フリーズなもので…。
>>789
どうも環境依存ぽいです。
C#のアンインストーラもスクリプトを設定中に止まってしまうので
アンインストールもできない…。
状況としては同じで、EXEファイルはできてるんですよね。
0791デフォルトの名無しさん
NGNGひょっとしてNIS/NAVにてVSが必要とするスクリプトを弾いてしまってませんかね。
NISとNAVを止めておいて実行したらどうなりましょう?
0792785
NGNGご協力ありがとう御座いました。
一先ず解決しました。
.NETインストール時に追加したIISが原因だったようで、アンインストールしたら正常化しました。
とりあえずウェブサービスを利用する予定はないので、これで良しとします。
0793デフォルトの名無しさん
NGNG違法なスクリプトとして排除してました。
ソリューションの新規作成が出けんつーの!
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG関数の引数に値やポインタを渡すと思うのですが、
C#では classのなかでグローバル(?)に宣言して 使うのと、
Mainの関数で宣言して渡すのとどちらが よろしいとされていますか?
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGってかmainから関数に渡す引数を何でグローバルにする必要がある?
# 本当に必要のある変数は別よ、>>795はそういう意味では言ってないと思うので。
0798デフォルトの名無しさん
NGNG使えば良いですけど、自分自身のクラスをこのように
具体的な名前を書かずに指定することはできないん
でしょうかね。
これができると、singletonの実装とかタイプセーフ
enumとかの実装などなどで使いたいんだけど。
インスタンスと違って特定できるんだから名前を
そのまま書けばいいじゃないってのは言う人が
いるだろうけど、ある意味便利だと思われ。
0799798
NGNG返すときなどで、一般的な書き方が出来て可読性が
多少良くなるかなというイメージです。
0800デフォルトの名無しさん
NGNG下手に言語仕様を膨らませないためだとは思うんだけどね…
0801デフォルトの名無しさん
NGNG他のクラスでも同様の記述を行う場合があるようなときかな。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGもちろん場合によっては使えない事もないけど。
0804デフォルトの名無しさん
NGNGどうしてリフレクションじゃダメなんだ?
代用にならない例を教えてくれ。
0805デフォルトの名無しさん
NGNG例を見れば分かるけど、求められているのはコンパイル時に解決しうる静的なもの。
よりスマートなコードを作りたいわけだ。
で、リフレクションはもともと動的にあれこれするものだし。
//そんなに出番のない余計な実装(言語の無闇な複雑化)という感じはする。
0806デフォルトの名無しさん
NGNG:
public foo Clone () { ... }
public object IClonable.Clone () { return this.Clone () ; }
:
}
みたいな奴を書くとき、
public thisclass Clone () {...}
とか書けると、class 名を書き換えたりしたときにちょっとだけラクできる…って事なのかしらん…
# STL とかは typedef で逃げてるかな
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG最初のフォームを閉じた際に、開いた新フォームをメインフォームとして使うにはどうしたらいいんでしょうか?
0809デフォルトの名無しさん
NGNGメインフォームを変える際にApplicationContextのプロパティを変更。
0811デフォルトの名無しさん
NGNGForm1 firstForm = new Form1();
firstForm.ShowDialog();
Form2 mainForm = new Form2();
Application.Run(mainForm)
とやる俺はヘタレですか?
0812デフォルトの名無しさん
NGNG// 読み取り中
intdata;
while (-1 != (data = readStream.ReadByte()))
{
writeStream.WriteByte((byte)data);
}
これ遅いですか?
0813デフォルトの名無しさん
NGNG0814812
NGNGMSIL だとチェックが入ってたような気がするけど、それが遅いのかな?
回避策……「BinaryReader で ReadByte、末尾は例外待ち」しか考え付かない
バイナリじゃなかったら StreamWriter.ReadToEnd とか使えるけど (確かそっちの方が速かった)
流されるデータがバイナリの場合があるので、Stream じゃないと変な変換入りそうで
0815デフォルトの名無しさん
NGNGconst int buffer_size = 1024*1024; // 1Mバイト
byte [] buffer = new byte [buffer_size];
int got;
do {
got = iStream.Read(buffer, 0, buffer_size);
oStream.Write(buffer, 0, got);
} while (got != 0);
0816デフォルトの名無しさん
NGNGごめん、最後まで Stream.Write の 3 番目の引数に気づかなかった
普段 Stream なんて使わないから_| ̄|○
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG大きすぎると逆に遅くなる。
0820デフォルトの名無しさん
NGNGC# だとそうなんだ。
C++ で大きい(数M〜2G程度)ファイルのコピーのときにはハードディスクの
内部バッファ(512K程度が多い?)あたりを指定するのが一番速かったけど。
0821デフォルトの名無しさん
NGNGあらわすショートカットキーを指定するにはどうすればよいのでしょうか?
System.Windows.Forms.Shortcut 列挙体に定義がない。ということは WinForm アプリでは
Ctrl-Alt-A とかいうショートカットキーは定義できない?
Alt 単独の場合も数字(ALT-0 から ALT-9 まで)しかなく ALT-X とかを定義できないようなのですが..
C# というか WinForm の話なので、スレ違いならご指摘ください。
0822デフォルトの名無しさん
NGNGAltを含む、またはF10を含むキーの場合(はShortcutでいいか)、
ProcessCmdKeyをオーバーライドしてWM_SYSKEYDOWNを受け取ったときに動作を実装。
メニュー項目には\tの後にショートカット文字を手書き。
0823デフォルトの名無しさん
NGNGAlt-X は自分で実装ということですね。
Ctrl-Alt は SYSKEYDOWN にならないので、そちらは WM_KEYDOWN を使う。と。
なんでこんな中途半端なんだろう。
で、ctrl-alt はヨーロッパではアクセント付文字の入力にも使うので、RigthAlt と
Ctrl-LeftALt を別処理しなきゃいけないのだが、このへんの情報をもしお持ちなら..
Win32/MFC だとアクセラレータがこの処理をやってくれるんだけど、WinForm のメッセージ
ポンプに TranslateAccelarator を押し込むことってできましたっけ?
0824デフォルトの名無しさん
NGNGそっち方面には全く詳しくないので何とも言えないけど、
.NET Frameworkと簡単なP/Invokeで済ますなら
メッセージ/イベントを捕まえたときにGetKeyState関数でチェックするとか?
0825デフォルトの名無しさん
NGNGアプリケーションで,そのアプリケーションを
タスクマネージャや,その他のランチャソフトから終了しようと
した場合に,それを感知する事はできますか?
自分のアプリケーションの中からの終了の時の処理と
外から終了させられる時の処理を変更させたいのですが….
0826デフォルトの名無しさん
NGNGみたいなことをforeachで書き換えられますか?
0827デフォルトの名無しさん
NGNGできるようにしたいんだけどうまくいかない・・・
上のPanelのDockをFillにしたいんだけど、どうすればいい?
0828デフォルトの名無しさん
NGNGそんなあなたにSplitContainer。
てのはおいといて、何がどううまくいかないのかさっぱり分からないのだけれど?
0829デフォルトの名無しさん
NGNGサイズ変更が出来ない。
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG> DockがFillでサイズ変更・・・?
それは問題ない。
>>829
その説明でどう理解しろと言うのだろう……?
とりあえずまっとうに動くサンプルコード。
Splitterの大抵の問題はControlにAddする順番か。
下のコードもAddRangeの配列の順番を変えると……。
public class Hoge : Form {
public static void Main() {Application.Run(new Hoge());}
public Hoge() {
Panel p = new Panel();
Panel q = new Panel();
Splitter s = new Splitter();
p.BackgroundImage = Image.FromFile("a.bmp");
q.BackgroundImage = Image.FromFile("b.bmp");
p.Dock = DockStyle.Fill;
q.Dock = DockStyle.Top;
s.Dock = DockStyle.Top;
s.BorderStyle = BorderStyle.Fixed3D;
Controls.AddRange(new Control[]{s, q, p});
}
}
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG1. Panelを下に配置。DockをBottom
2. Splitterを配置。 DockをBottom
3. Panelを上に配置。DockをFill
順番が肝心。後でもできるがややこしくなったりしてしまう。
0834デフォルトの名無しさん
NGNGうまく動きますた。サンクス!
イメージさえ持っておけば全てが分かる。
領域が重なったコントロール同士は、
より先頭に近いほうがより手前に見える。
同じDockプロパティを持つコントロール同士は、
より末尾に近いほうがより外側に配置される。
DockStyle.Fillスタイルを持つコントロールより先頭側には、
DockStyle.None以外のスタイルを持つコントロールを置いてはいけない。
0836デフォルトの名無しさん
NGNGICloneableインターフェイスをもつ形で明示的にclone()
を実装すると戻り値の型がObject型になり、使用する側で
キャストをかける必要があったりするわけだけど、なんか
他に良い方法は無いんでしょうかね。
VBなら別名としてICloneableのclone()をもちつつ、これを
別のclone()メソッドから呼ぶ方法があるみたいだけど、
C#でスマートな方法が無いものでしょうかね。
0837デフォルトの名無しさん
NGNGえーと、明示的なインターフェースの実装っていうと
public class A : ICloneable {
object ICloneable.Clone() {...}
public A Clone() {...}
}
みたいのを指すと思うんだけどそういうことじゃないの?
0838デフォルトの名無しさん
NGNGC#の明示実装はクラスのパブリックなインターフェイスからは消えるから、
名前を変えたりする必要なし。
0839デフォルトの名無しさん
NGNGIListやらの返値・パラメータがobjectのを全部stringにしたメソッド・インデクサ。
0840836
NGNG明示実装すれば同名のメソッドが共存できるのを
すっかり見落としていました。
どうもありが�d
0841デフォルトの名無しさん
NGNG>>831のソースと思いっきり矛盾しているように見えるんだが。
0842デフォルトの名無しさん
NGNGどこが?
Controls.AddRange(new Control[]{s, q, p});
DockがFillのpを最後に置いてるから矛盾はしてないと思うが
0843デフォルトの名無しさん
NGNG> DockStyle.None以外のスタイルを持つコントロールを置いてはいけない。
と
> DockがFillのpを最後に置いてるから矛盾はしてないと思うが
は明らかに矛盾しているように見えるんだが。
試してないんだが>>831のコードは本当に期待した通りに動くのか?
0844843
NGNG0845デフォルトの名無しさん
NGNG作ったアプリケーションの中にあるTreeViewやListviewのフォントは
ちゃんとそのフォントで表示されるのですが、
途中で出すダイアログの中にあるラベルやComboBoxの文字だけは
デフォルト?のフォントのままで指定したフォントになりません。
指定したフォントにするには、どうすればよいのでしょうか?
0846デフォルトの名無しさん
NGNGComboBox.Fontプロパティは?
0847デフォルトの名無しさん
NGNGComboBoxを直接フォームに貼り付けたときは、
ちゃんと指定したフォントになるのですが、
ダイアログとか、ツールバーに乗せたComboBoxではだめなのです。
何かの設定をすると、いちいち全てのFontプロパティを設定しなくても、
指定したフォントになるんじゃないかと思うんですが・・・
0848821
NGNGご協力ありがとうございました。
そのあと調べましたが、MS としてはショートカットキーの組み合わせを絞る方針みたい。
ctrl-alt が Right-ALT にぶつかる問題が大きいのと、Ctrl や ALt とかが特定の
キーボード実装を前提にしているから。らしい。Java はどうやっているんだっけ。
こんなところ「だけ」抽象化されてもなぁ。
折角 TranslateAccelarator の内部で処理しているんだから、その機構を公開して
もらわないと。
VS, Office など MS 製品も ctrl-alt の組み合わせは多用しているのだが、MFC から
.NET に移行する際にどのように変更するのだろうか。
0849821
NGNG>メッセージ/イベントを捕まえたときにGetKeyState関数でチェックするとか?
それだけでは判断できないんです。
現在のキーレイアウトが Right-ALT をサポートしているかどうかの情報を
入手しないと判定できない。
公開 API には存在せず、TranslateAccelarator の内部で処理している。
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGエラーとか出ませんか?俺は出てるんですが、これはどうすれば回避できるんでしょうか?
0852851
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGそんなことは全くないが。
そもそもなんてエラーなのさ。
どんなコードなのさ。
0855デフォルトの名無しさん
NGNG「自分のアプリケーションの中からの終了処理」って自分で書いてるんだから、
その場合だけフラグでも立ててやればいいんじゃない?
具体的には、「閉じる」「終了」等のメニューやボタンで自分で終了するとき、
および WndProc で WM_SYSCOMMAND 捕まえて SC_CLOSE で閉じられるとき、
とか。
0856デフォルトの名無しさん
NGNG# Perlで「hogeにa-zA-Z0-9.以外の文字が含まれていたら」の意味
これをC#で書くにはどうしたらいいですか?
正規表現クラスを見ても複雑すぎてよく分からない。
0857デフォルトの名無しさん
NGNG言うほど複雑でもないけどね。
0858デフォルトの名無しさん
NGNG"regexismatch"を含むページは見つかりませんでした。
検索のヒント
- キーワードに誤字・脱字がないか確かめてください。
- 違うキーワードを使ってみてください。
- より一般的な言葉を使ってみてください。
0859デフォルトの名無しさん
NGNGOKボタンを押した時に、textBoxの内容が正しいかどうかを検証する処理を入れました。
でも、OKボタンには DialogResultが設定されているので、
OKボタンのClickされたときの関数を通ると、フォームが閉じられてしまいます。
エラーのあるときは、フォームを閉じないようにするにはどうしたらいいんですか?
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG○ Regex.IsMatch
× RegexIsMatch
目が悪くて文字が読みにくいなら、コピペしたほうがいいよ。
0862デフォルトの名無しさん
NGNG> RegexIsMatchに該当するページが見つかりませんでした。
いつのまにC#は素性の知れない関数を扱えるようになったんだ?
ttp://www.google.co.jp/search?num=100&lr=lang_ja&oe=utf8&ie=shift_jis&q=Regex.IsMatch
>>859
正しくなかったときはDialogResultを設定しなけりゃ良いんじゃ?
0863デフォルトの名無しさん
NGNGDialogResult を None にしておいて、
Click のハンドラでエラーが無いときだけ this.DialogResult = DialogResult.OK; とでもしてみては?
0864デフォルトの名無しさん
NGNG藻前が自分のマシンだけで動かす物を作るならそれでいいんじゃないか?
公開して色んな人に使ってもらうなら、一般的に速いといわれる手法を取り入れるべきだが。
0865デフォルトの名無しさん
NGNG自分で作ってんだろうに、何でそれをやめようとしないんだろう…
それともその動作を変えてはならない理由でもあるんだろうか…
0866デフォルトの名無しさん
NGNGC Magazineと.NET Magazineのどっちのほうがいいよ?
0867デフォルトの名無しさん
NGNGこのスレ的にはどっちもどっち
つか指向性がかなり違わないかその二つ
単純に比較できるもんでもない気が
0868デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNGRichTextBoxの文字属性変更をできるだけ高速にしたかったので、
SendMessageでEM_SETSELしながら変えてました。
開発機(XP Home)だと普通に動いていたんですが、これをXP Proへ持っていくと
選択位置がずれて、文字属性がばらばらになってました。どうやらASCIIだと
いいんだけど、日本語だと駄目みたいで、要するに文字数じゃなくてバイト数扱いで
文字選択がされてたみたいでした。
実際SendMessageWにしてやると、正常動作しました。要するに何故かProの方では
Unicodeで動作していなかったみたいなんです。
そもそもSendMessageはOSによって勝手にA系かW系か判別して動くものと
思ってましたが、何でしかもHomeとProなのにこんな違いが出たんでしょうか??
そんなことってあるの??
0873デフォルトの名無しさん
NGNG誰か詳しく教えていただけないでしょうか?
int main(void)
{
double a;
a = 5 / 2;
printf("5÷2 = %f\n", a);
return(0);
}
実行結果:2.000000
int main(void)
{
double a, b;
a = 5;
b = 2;
printf("a÷b = %f\n", a / b);
return(0);
}
実行結果:2.500000
0874デフォルトの名無しさん
NGNG最初の a = 5/2; は、整数で演算された結果をdouble型のaに入れてる(計算時点では整数)。
次の a/b は、演算する前からdouble型ってことでは?
0875873
NGNGdouble a;
a = 5 / 2;
と宣言されているのに計算は整数になってしまうんですか?
そのへんがよく分からないんです。
0876デフォルトの名無しさん
NGNGa = 5.0/2.0;
a = (double)5/2;
なら上も2.5になる。
数字を書いたときに、小数点を書かなかったら自動的に整数扱い。
手続きとしては、
1.与えられた数値(5と2)を計算する
2.計算結果をaに代入する
だから、aをdoubleで宣言しても、計算時に5と2は整数のまま。
0877デフォルトの名無しさん
NGNGあくまで"整数"なんだよね。
すると当然少数以下は無視される(ここはわかるよね?)から、
5/2 == 2 ということになるんですな。
つまり、
double a = 5/2; というのは、
double a = 2; と等価なわけで、
結果は2.00000...になると。
0878デフォルトの名無しさん
NGNGちゃんと宣言時に
double a = 5;
みたいに、型を明記してやれば、小数点なしでもdoubleになるけど。
0879デフォルトの名無しさん
NGNG0880873
NGNGどうもありがとうございます。
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGバッファリングをダブルで行うことです
いろんな場所で使われていますが真っ先に思いつくのが描画関連
0884デフォルトの名無しさん
NGNG0885882
NGNGg = PictureBox1.CreateGraphics();
g.DrawImage(image2, rect,rect2, GraphicsUnit.Pixel);
とすると、PictureBoxが必要になります。
これを、メモリー上に置くにはどうしたら良いのでしょうか?
0886デフォルトの名無しさん
NGNGC# でやったことないから自信ないけど、Bitmap クラスあたり使えると思う
0887デフォルトの名無しさん
NGNGCPUが64bitの場合、64bitになりますか?
0888デフォルトの名無しさん
NGNGC# (というか .NET Framework) において int は常に Systen.Int32 クラスのオブジェクト
つまり 32bit です
0889デフォルトの名無しさん
NGNGスレ違いだがお前は分かってないだろ。
0890デフォルトの名無しさん
NGNGちがうなあ、「C#において」 int は Systen.Int32構造体とイコール、で、
.NET Framework において Systen.Int32 は常に 32ビット、としないとおかしいなあ。
0892888
NGNGあ、ごめんクラスじゃなくて構造体だった
ついでに言うと「int」と「int 型の数値」を書き間違えてた
普段区別してないから尚更
ま、int は常に 32bit ということでFA?
0893デフォルトの名無しさん
NGNGスレ違いといっているところから、>>888に対してではない事がうかがえよう。
0894デフォルトの名無しさん
NGNG> (というか .NET Framework) において int は常に
に対して、.NET Frameworkにintはないと言いたいのだと思われ。
0896デフォルトの名無しさん
NGNGそのノードに戻ってくるっていうのはできないの?
微妙にわかりにくい文章スマソ。
0897デフォルトの名無しさん
NGNGbase_hogeクラスから、fooクラス、barクラスが派生しているとき、
ユーザの"foo"や"bar"の入力に応じ
base_hoge Base_Hoge = null;
Base_Hoge = new ユーザが渡したクラス名(コンストラクタ引数,…);
のようなことがしたいのですが、可能でしたらご教示願います。
検索しようにもどういったキーワードで検索するべきか迷ったのでここで聞かせて頂きました。
よろしくお願いします。
0898デフォルトの名無しさん
NGNGリフレクション で検索
ちなみにmscorlibに入ってるクラスと実行中のアセンブリに入ってるクラス以外は
事実上不可能と見た方が良いかも。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGAssembly.LoadWithPartialName() からの流れでどうでしょう?
アセンブリ名を決めうちにしない限り、
(アセンブリ名, クラス名)のセットで受け取る必要がある。
0901897
NGNGhttp://dobon.net/vb/dotnet/programing/createinstancefromstring.html
ですが、プロセスが複雑になる(メンバ関数呼び出しが面倒)気がするので、
素直に switch(userString){ ... } で実装した方がスッキリしそうです。
アドバイス頂きありがとうございました。
>899
Type.GetType(hoge) でTypeが取得できないってことでは?
0902デフォルトの名無しさん
NGNGあと勘違いしてるようだが、メソッドまでリフレクションで呼び出す必要はないぞ。
っていうか、呼び出す必要がないように作るのが普通。
Hoge_baseを継承してるんだろ?独自のメンバを呼び出したいんじゃないよね?
0903897
NGNG書いてあることのうわべだけをすくって、いじくり回してみるのを忘れてました。
object tmp = type.InvokeMember(null,System.Reflection.BindingFlags.CreateInstance,null,null,new object[]{引数リスト});
でリフレクションでインスタンス生成して、あとはキャストして使えるんですね。反省。
0904デフォルトの名無しさん
NGNG出来ればフォームデザイナでできるものがいいんですが・・・
Docking Suiteは使ってみましたが、自動的に隠れるようにしたときフェードしなかったのがいまいちでした。
0905デフォルトの名無しさん
NGNGCanShutdown を trueには設定してるんですが・・・
OnShutdownをoverrideするだけじゃ駄目なんでしょうか?
ぐぐってみてもイベント取れない話はあっても、解決方法が
見つからない・・・・
0906デフォルトの名無しさん
NGNGここがよかったあれが出来ないとか感想聞きたいんですが...
0907デフォルトの名無しさん
NGNGWindowsアプリでCやC++を使う場面は皆無になったね。ドライバはC
やC++で書いてるけど、アプリケーションはC#で充分いけると思う。
0908906
NGNGC++:テンプレート、STL,BOOST使える。メモリマンドクサ。。NET実質使いずれ
C#:.NETつかえる。。NETしかつかえない。デリゲート、リフレクションとかも使える.テンプレート使えネ。
そこらへんでテンプレートのないC#に移るの躊躇してるんですけど、その辺は余り気にしませんでしたか?
0909デフォルトの名無しさん
NGNGboostの中の何を使っているかによるのでは?
signal, function, regex なんかはC#言語仕様&ライブラリで
ある程度は代用になるっしょ。
個人的にはコンテナが型なしなのが気になるが、
キャストが一つ入るだけなので我慢している。
C#2.0が出たら解決されるしね。
0910906
NGNG0911906
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGソース何処、マジだったら急いでC++に戻さなきゃならないシステムがあんるんで・・・
0914デフォルトの名無しさん
NGNGみられるみたいだね。
CができるからといってC++ができるとはみられないし
その反対もそうだ。
C#のスキルを高めることはとてもPGとして幅を広げることになるだろう。
0915デフォルトの名無しさん
NGNGそりゃC++がCを完全に含んでいるからだろ、はみ出していればそう結論できんがな。
C++が使える⇒{Cが使える,C#は使えるか不明}
Cが使える⇒{C++は一部使える,C#は使えるか不明}
C#が使える⇒{Cは使えるか不明,C++は使えるか不明}
0916デフォルトの名無しさん
NGNGあんなテンプレート内の使えるか
0917デフォルトの名無しさん
NGNGそれは
「おりゃC++つかいだが、Cでコード核自信ないぞ」=「C++が使えない」
って事です。
勝手に使えるなんて勘違いしちゃいけません。
0918デフォルトの名無しさん
NGNGC++で必要とされるすきるとCのそれとは別物だと思う.
元は一緒でもネ
0919デフォルトの名無しさん
NGNG馬鹿?
0920デフォルトの名無しさん
NGNG必死だな
0921デフォルトの名無しさん
NGNG実戦経験がないので自信なし」
なんていうのはゴロゴロいそうだ。
「それをC++ができるとは言わない」って言いたいんだろうけど
ちょっとマニアックだな。
0922デフォルトの名無しさん
NGNGC出来る C++やC#が出来るかどうかなんて不明
C++出来る Cが出来ない奴がC++出来るはずないだろ C#はCやC++と種類が違う
C#出来る VB出来るみたいなもん
Java出来る COBOL出来るみたいなもん
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGPictureboxに映すってことはできますか?
0929928
NGNG0930デフォルトの名無しさん
NGNG0931928
NGNGどなたか教えてください。
0932デフォルトの名無しさん
NGNGFormだったらPaintイベント時に
GraphisオブジェクトのGetHDCメソッドでDCのハンドルが取得できるよ。
んでDllImportでBitBltを使えるようにすればいいんでない?
まあ試してないんでこれ以上はなんとも言えないのだが・・・。
0933デフォルトの名無しさん
NGNGGraphics.DrawImage で良いんでないかい?
0934デフォルトの名無しさん
NGNG課題1からもうわかりません。
0935デフォルトの名無しさん
NGNGがんばれ。
0936デフォルトの名無しさん
NGNG多分 Person 型には、人の名前と年齢が格納されているんだと思う
これが名前と年齢で初期化されるんだから
public struct Person {
string Name;
ubyte Age;
public Person (string name, ubyte age) { Name = name; Age = age; }
}
これで Person 型の定義は終わり
続いて、年齢の合計だけど、これは簡単で
Person[] member = { new Person("name1", age1), new Person("name2", age2), new Person("name3", age3) };
とかなっている Person 型の大きさ3の配列に対し
int sum = 0;
foreach (Person p in member) { sum += p.Age; }
とかすればいいと思う
0937デフォルトの名無しさん
NGNG市販のコントロールを使用しないといけないのでしょうか。
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGそんなもんトライアル版クラ・・・
だめか_| ̄|○
0940デフォルトの名無しさん
NGNGありがとう。できました。
foreachの使い方が?マークでいっぱいでした。
課題2は今頑張ってます。
行列の計算ってのがいまいちわからないけど。
0941デフォルトの名無しさん
NGNG「ありがとう、できました。」って、>936 をそのまま使ったんだろ。
ちゃんと理解しておけよ。がんがれ。
0942名無しさん♯
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1091284402/l50
0943デフォルトの名無しさん
NGNG0.5 8.4 3.4 0.4 3.3 3.4 2.0
2.1 2.5 3.5 × 1.1 1.8 1.9 1.9
8.4 3.2 4.5 3.4 3.8 2.0 2.5
3.3 2.9 1.0
static void Main(string[] args)
{
double[,] jissuu1 = {
{0.5,8.4,3.4},
{2.1,2.5,3.5},
{8.4,3.2,4.5},
{3.3,2.9,1.0}};
double[,] jissuu2 = {
{0.4,3.3,3.4,2.0},
{1.1,1.8,1.9,1.9},
{3.4,3.8,2.0,2.5}};
double[,] sum = new double[4,4];
for(int i=0;i<=2;i++)
{
for(int j=0;j<=3;j++)
{
sum[i,j] = jissuu1[i,0] * jissuu2[0,j];
sum[i,j] += jissuu1[i,1] * jissuu2[1,j];
sum[i,j] += jissuu1[i,2] * jissuu2[2,j];
Console.WriteLine(sum[i,j]);
}
}
できたっぽいです。もっとうまくやる方法があれば教えていただけないでしょうか。
0944デフォルトの名無しさん
NGNG>>939
やはり外部のコントロール必要っすか。
自分で作る!という選択肢もあるんですが・・・
とりあえずフリーの試してみます。
0945デフォルトの名無しさん
NGNG一応Internet Archiveとかあさってみたけど3.1.0.0までしかなかったorz
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG数値型、文字列型くらいじゃないの?ヘルプ見た方が早そうだが。
0948デフォルトの名無しさん
NGNG内積を計算するサブルーチンとか
転置行列を計算するサブルーチンとか
0949デフォルトの名無しさん
NGNG合計サイズを求めたいのですが,ファイル数を求める,ディレクトリ内の
ファイルサイズの合計を求めるメソッドがあれば教えてください.
0950デフォルトの名無しさん
NGNGSystem.Drawing.Pen mypen =new Pen(Color.Red,this.trackBar1.Value);
これで太さは設定できるようになっているのですが、
色の指定がどうやったらいいのか全くわかりません。
どなたか教えてください。
0951デフォルトの名無しさん
NGNG補足します。
ColorDialog等で指定したいろにペンの色を設定したいのですが、
いくらがんばってもうまくいきません。
0952946
NGNGここを見てたらなんか混乱しちゃったんです。
たとえば、Console.WriteLine("Hello World"); の "Hello World" は文字列リテラル(定数)ですよね。
で、
string s = "Hello World";
って変数 s に代入した場合、「変数 s に、定数 "Hello World" を代入」っていうことでいいんでしょうか?
constが付いた変更禁止なものだけが定数だと思ってたんですが、違うんでしょうか。
0953デフォルトの名無しさん
NGNG>string s = "Hello World";
この式で変更されているのは s だけなので特に不思議は無いかと。
0954デフォルトの名無しさん
NGNGもうちょっと具体的な説明よろ。
0955デフォルトの名無しさん
NGNGColorDialog dialog = new ColorDialog();
dialog.ShowDialog();
System.Drawing.Pen mypen =new Pen(dialog.Color,this.trackBar1.Value);
でどうでしょうか?
0956デフォルトの名無しさん
NGNGSystem.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Pen mypen =
new Pen(Color.Red,this.trackBar1.Value);
for(int i=1; i<maxpoints;i++)
{
e.Graphics.DrawLine(mypen, points[i-1],points[i]);
}
}
これで、トラックバーを使ってペンの太さを設定できる状態になっていて、Color.Redと
ペンの色は赤色と定義されています。
これだとペンの色が赤しか使えないので、ColorDialogを使ってユーザーがペンの色を設定できるようにしたいのです。
private Color getColor()
{
Color myColor = new Color(); // 色情報格納用
// 【色の設定】ダイアログの【OK】ボタンが押されたとき
if(colorDialog1.ShowDialog() == DialogResult.OK)
{
myColor = colorDialog1.Color; // 色情報の引渡し
}
return myColor; // 戻り値
}
0957946
NGNGint a = 30; //変数 a に定数 30 を代入
int b = 40; //変数 b に入っているのは定数 40
Console.WriteLine( 30 + 40 ); //定数 30 と 40 を計算
Console.WriteLine( a + b ); //変数 a と b を計算
Console.WriteLine((a+b.ToString())); //変数 a と bを計算して文字列定数にする
こういう感じで理解してOKなんでしょうか。
0958デフォルトの名無しさん
NGNGありがとうございます。
試してみます。
0959946
NGNGです。括弧の位置間違えました。
0960デフォルトの名無しさん
NGNGんー、30とか40を”定数”と考えるんじゃなくて、
単純に”値”でいいんじゃないの?
あと、5行目は「3040」という文字列になるよ。
0961デフォルトの名無しさん
NGNG了解
0962デフォルトの名無しさん
NGNG改悪サブルーチンにしてみた
static double[,] MulMatrix(double [,]left,double [,]right){
if(left.GetLength(1) != right.GetLength(0) || left.GetLength(0)*right.GetLength(1)*left.GetLength(1) == 0)
throw new System.ArgumentException("ボケか?計算できねぇよ、マジ頭わりぃんじゃねぇの") ;
double[,] result = new double[left.GetLength(0),right.GetLength(1)] ;
for(int i=0;i<left.GetLength(0);i++)
for(int j=0;j<right.GetLength(1);j++)
for(int k=0;k<left.GetLength(1);k++)
result[i,j] += left[i,k]*right[k,j] ;
return result ;
}
0963デフォルトの名無しさん
NGNGSystem.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Pen mypen =
new Pen(○○○○,this.trackBar1.Value);
for(int i=1; i<maxpoints;i++)
{
e.Graphics.DrawLine(mypen, points[i-1],points[i]);
}
}
private void menuItem11_Click(object sender, System.EventArgs e)
{
ColorDialog dialog = new ColorDialog();
dialog.ShowDialog();
}
こんな感じでやろうと思ってるんですがうまくいきません。。
これだけで三時間以上なやんでる・・・。
どうしたらいいんでしょうか。
0964デフォルトの名無しさん
NGNGフォームにPenオブジェクトを持っておいて
ColorDialog dialog = new ColorDialog();
dialog.ShowDialog();
mypen.Color = dialog.Color;
でいいんじゃない?
0965デフォルトの名無しさん
NGNG表示するにはどうしたらいいでしょうか。
ファイルをDLしてそれを表示→インスタンスが複数あるときに微妙
Webブラウザを組み込んで表示→画像のためだけにCOM埋め込むのが微妙。
単純にファイル名を指定してpictureBoxにセットするかのように
URLを指定できる方法ってないでしょうか?
0966デフォルトの名無しさん
NGNG根本的にだめなのかな。。。
0967デフォルトの名無しさん
NGNGつまりね、Form1_PaintでPenオブジェクトを毎回作るんじゃなくて、
クラスのメンバとして保持しとけばいいかと。
んで、コードは↓のような感じ。
private void Form1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
for(int i=1; i<maxpoints;i++)
{
e.Graphics.DrawLine(mypen, points[i-1],points[i]);
}
}
private void menuItem11_Click(object sender, System.EventArgs e)
{
ColorDialog dialog = new ColorDialog();
dialog.ShowDialog();
mypen.Color = dialog.Color;
}
0968965
NGNG解決方法を1行で書くとこんな感じ。
pictureBox1.Image = new Bitmap(new WebClient().OpenRead("http://hoge/image.png"));
0969デフォルトの名無しさん
NGNG名前 'mypen' は クラスまたは名前空間 'System.Drawing.Drawing2D.WindowsAplication4.Form1' に存在しません。
型または名前空間名 'mypen' が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。
こんなのがでました…。
本当に素人ですいません…。
明日の朝にはできないとまずいのでがんばってるんだけど、C#はやっぱりわからない…。
0970デフォルトの名無しさん
NGNGどっかにソースをうpすれば、メモ付きで修正してやるが。
0971デフォルトの名無しさん
NGNGttp://smash.s68.xrea.com/uploader/filez/820.txt
うpしました。
よければお願いします。
0972デフォルトの名無しさん
NGNGとりあえずmypenは初期化できた。
で、testメニューから色を選択して、キャンパスに線を引くと、
既に書かれていた線も、新しく選択した色で書き直されるんだけど、これはOKなの?
0973デフォルトの名無しさん
NGNG>>971
21行目と85行目でmypen初期化。
0974デフォルトの名無しさん
NGNG俺はこんな名前空間に住むのはごめんだな。
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGありがとうございます。おかげで明日はなんとかなりそうです。
既に書かれた線も新しい色になっちゃいますが、なんとか大丈夫…
だと思います。ありがとうございます。そこまでになると全くわかりそうにないんで…。
>>974-975
課題で出すだけなんでもう適当です。
すいません。
0977デフォルトの名無しさん
NGNGMSDNが手元にありますよね。検索かければ出てきます。
適切な語句の使用と、検索結果から的確に情報を拾い上げる
センスを磨いておくのは大切なことです。
0978デフォルトの名無しさん
NGNG検索かけましたが見付けられませんでした.
私にはセンスが無いようです.
ちなみに,どのようなキーワードで検索したか
教えて頂けませんか?
0980デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/net/general/win32map.asp#win32map_alphalist
0981デフォルトの名無しさん
NGNG>>979が答えを示してしまいましたが、
MSDNでの検索では「ファイル ディレクトリ サイズ 取得」
という単語を用いたところ、
File, Directory, FileInfo, DirectoryInfo
が見つかります。
必要な情報をたぐりよせていくセンスは、
みがけば誰でも修得できるものです。(宝石が初めから
光ってはいないのと同じように)
我々プログラマーは、これらのリテラシーを軽んじるべきではありません。
0982デフォルトの名無しさん
NGNG特に異論はないんだけど、センスを磨くと言うより
検索方法がMSのHELPに特化していくだけの気もする。
0983デフォルトの名無しさん
NGNG同感
0984デフォルトの名無しさん
NGNG/// コード エディタで変更しないでください。
0985デフォルトの名無しさん
NGNGコードエディタでどうやって変更するのかと小一時間問い詰めたい
0986デフォルトの名無しさん
NGNG板の管理人に頼んでdatファイルを(ry
0987デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1065535118/
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG>>998 考えるのも面倒くさい。
>>999 ハァ?
>>1000 負け犬
>>1001 乙彼
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG自分がゲトしたいから牽制している罠
0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。