C♯相談室 Part8
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん♯
NGNG∧_∧____
/(#゚ー゚) ./\
/| ̄∪∪ ̄|\/ C#,.NET関連の話題はこちらでどうぞ。
|____|/
,,,,∪∪,,, ,,
ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
過去スレは>>2-5あたり
0002名無しさん♯
NGNGPart7 http://pc3.2ch.net/test/read.cgi/tech/1027531796/
Part6 http://pc3.2ch.net/test/read.cgi/tech/1022257078/
Part5 http://pc3.2ch.net/test/read.cgi/tech/1019533942/
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デフォルトの名無しさん
NGNGVisualStudio.NET (MSDN Dexlue) part6
http://pc3.2ch.net/test/read.cgi/tech/1024746501/l50
くだスレC#
http://pc3.2ch.net/test/read.cgi/tech/1023766485/l50
【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
managed C++ やろうぜ!!
http://pc3.2ch.net/test/read.cgi/tech/1014486422/l50
【Terrarium】4世代目 最終局面 決戦は金曜日♪
http://pc3.2ch.net/test/read.cgi/tech/1024319607/l50
フリーの.NET統合開発環境「SharpDevelop」
http://pc3.2ch.net/test/read.cgi/tech/1023727377/l50
消しゴムじゃない方のMONOを使ってみるスレ
http://pc3.2ch.net/test/read.cgi/tech/1020215602/l50
♯♯♯Shared Source CLI ♯♯♯
http://pc3.2ch.net/test/read.cgi/tech/1024222901/l50
0004デフォルトの名無しさん
NGNGMSDN Online Japan
http://www.microsoft.com/japan/msdn/default.asp
Insider.NET
http://www.atmarkit.co.jp/fdotnet/
0005デフォルトの名無しさん
NGNGどうしたらよいでしょうか?
0006デフォルトの名無しさん
NGNGSystem.BitConverterクラスを見てちょ。
0007デフォルトの名無しさん
NGNG#タン おつかれ。サンスコ(・∀・)
0008デフォルトの名無しさん
NGNGもしかしてC#ってすっげえマイナー言語?
けっこう勉強してるんだけど、
なんかVB.NETのほうがぜんぜん情報多い気が・・・
0009デフォルトの名無しさん
NGNGすっげぇかどうかは知らないけど、今までVB使ってた企業はVB.NETを選択する傾向がある
0010デフォルトの名無しさん
NGNGんー,今のところあんまり興味の対象になってないね。
次期Windowsが一般に知れ渡ってからじゃないと何とも言えんねぇ。
0011デフォルトの名無しさん
NGNG24時間経っても音沙汰なし・・・。(´・ω・`)
0012デフォルトの名無しさん
NGNGC#によるWindowsPrograming
0013デフォルトの名無しさん
NGNGC#.NETに出来て、VB.NETに出来ない事ってあるの?
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG>>15
大したアドバンテージじゃないんだね。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGVB.NETの情報でも、固有の言語というより.NET共通の情報って感じだから、
読み替えればC#で情報不足になるということはないかも。。。
0019デフォルトの名無しさん
NGNG( ´∀`)/
___∧__________
先生!
この3冊の中で一番の良書はどれですか?
http://www.amazon.co.jp/exec/obidos/ASIN/0735613702/qid=1032718065/sr=1-1/ref=sr_1_2_1/249-5069299-9164317
http://www.amazon.co.jp/exec/obidos/ASIN/0735615845/qid=1032718065/sr=1-3/ref=sr_1_2_3/249-5069299-9164317
http://www.amazon.co.jp/exec/obidos/ASIN/0130461334/qid=1032718065/sr=1-4/ref=sr_1_2_4/249-5069299-9164317
002019
NGNG0021デフォルトの名無しさん
NGNG一番上のは持ってるが、極めて良書であると思う
002221
NGNG3番目のも良さそうだね。オレも注文しようかな
0023デフォルトの名無しさん
NGNGあるから書き方の特異なVB.NETは避けてC#にしてます。
0024デフォルトの名無しさん
NGNGみんな、スゲー
厨な漏れはこれ
http://www.amazon.co.jp/exec/obidos/ASIN/4891002921/qid=1032838252/sr=1-3/ref=sr_1_2_3/249-2191874-2379561
0025デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4891003030/ref=pd_bxgy_text_2/249-5241675-3211568
がやっぱお勧め。
0026デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4774115533/
0027デフォルトの名無しさん
NGNGにある「起動順序をより厳密に制御する場合、・・・・」
みたいなことがたっぷり書いてある本が欲しいなぁ。
0028デフォルトの名無しさん
NGNGStreamWriterのClose時(Flush時)時にディスクの容量が
いっぱいだった場合に例外が発生ししますが、Catchしたあとに
OpenしっぱなしのStreamWriterはどのように処理すればよいのでしょうか?
コードは以下のような感じです。
FileStream fs = null;
StreamWriter sw = null;
try
{
fs = new FileStream("a:/nanashi.txt", FileMode.Create);
sw = new StreamWriter(fs);
for (int i = 0; i < 100; i++)
sw.Write("nanashi");
}
catch (Exception er)
{
//とりあえずなにもしない
}
finally
{
if (sw != null)
sw.Close(); //ここで例外発生
if (fs != null)
fs.Close();
}
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGDataSetの自動生成とSqlCommandBuilderを使えばEntityBeanみたいな感じで扱えるね。
0031デフォルトの名無しさん
NGNG漏れもそれで困って色々と調べたんだが、、
フラッシュしないでオブジェクトを破棄したいができないよね。
ワーカースレッドでの処理でそんな状態が起こった時、
気づかずにアプリケーション終了してプロセスが残ったりする危険なことになっちゃう。
結局、HDD開けくれって警告出すしかないのかなぁ。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG漏れはZip Codeも書いてくれっていうメールが来た。(´・ω・`)ショボーン
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG> {
> if (sw != null)
> sw.Close(); //ここで例外発生
>
> if (fs != null)
> fs.Close();
> }
これってさあ、fs.Close()する意味あるの?
sw.Close() って元になるストリームを閉じるためのものじゃないの?
「現在の StreamWriter と基になるストリームをクローズします。」
と書いてあるんだけど。俺はだまされてるのか?
0036デフォルトの名無しさん
NGNGあなたが正しい。
003728
NGNG>>35
31さんのおっしゃっているように、
「フラッシュしないでオブジェクトを破棄したい」ってことが結局やりたい
んですよね。(Closeする時にFlushしてしまう。)
Closeしないでそのまま放っておくと、プロセスが開いたままなので何かと
やばいとおもうんで。
破棄するなんか良い方法ないですかね?
0038デフォルトの名無しさん
NGNGAxInterop.SHDocVw.dll
Interop.SHDocVw.dll
当然のようにこいつらがないとEXEファイル単体では動きません。
正直EXEファイルと同じディレクトリにDLLが散らばってるのは
気に入らないので何とかしたいんですが。
理想としてはEXEファイル1ヶでアプリを完結させたいです。
環境はVisual C#.NETです。
0039デフォルトの名無しさん
NGNGaximp.exe には /source オプションがあるからソースだけ取り出せるけど、
tlbimp.exe にはないからどうしても Interop.SHDocVw.dll だけは別にするしかないみたいね。
0040デフォルトの名無しさん
NGNGnamespace MyApp
{
[ComImport]
[Guid("64AB4BB7-111E-11D1-8F79-00C04FC2FBE1")]
public class ShellUIHelper{}
[ComImport]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("729FE2F8-1EA8-11D1-8F85-00C04FC2FBE1")]
public interface IShellUIHelper
{
void AddFavorite( [In, MarshalAs(UnmanagedType.BStr)] string URL, object Title);
}
}
とか?
004138
NGNGうわ、さっぱり分からん。
決定的に勉強不足のようです。
週末にでもペゾルト本買いに逝ってきます。
0042デフォルトの名無しさん
NGNGん〜 どうしても見つかんないね。なんでないんだろうね。
Finalize はprotectedだし、、、
結局HDDが一杯でCloseできないとき、それをエラーとしてフラグたてといて
エラーがある時にアプリ終了する場合
System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess();
process.Kill();
とかしてアプリ強制終了とかするしかないかもね。
それか、HDD空けてくれるまでアプリの終了を拒否するとか、、、・゚・(ノД`)・゚・
0043デフォルトの名無しさん
NGNG本が来たんだけど、カバーがオレンジ色になってた。
色が変わったのかな。
カバーの色なんてどうでもいいんだけど、荷物を開けた瞬間違
う本が間違って送られてきたのかと思ったよ。
0044デフォルトの名無しさん
NGNGArrayList(ほかのも?)の foreach って結構オーバーヘッドが大きいんだね。
頻繁に呼ばれるところだと for でぐるぐる回したほうがよさそうなんだけど、どうなの?
0045デフォルトの名無しさん
NGNGILコード見て比較してみれ。forの方が単純で速い。
0046デフォルトの名無しさん
NGNGでも明日にするか・・・。(´・ω・`)
0047デフォルトの名無しさん
NGNG俺んとこにもメール来た
キター!!と思って見たらKlezだったよ・・・・(´д`;)
0048デフォルトの名無しさん
NGNG落差にワラタ。すまん。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0051デフォルトの名無しさん
NGNGどうすりゃええんじゃろか。
関係ありそうなイベントに引っ掛けてサイズを再設定すりゃいいかと思ったが
どうにもうまくいかんのじゃよ。
0052デフォルトの名無しさん
NGNGMinSize、MaxSize、Sizeを同じ値にすればいいんじゃないの?
0053デフォルトの名無しさん
NGNGところがどっこいColumnHeaderクラスにはそれらのプロパティがないのじゃよ。
サイズ関連であるのはWidthだけでな。
0054デフォルトの名無しさん
NGNGガイシュツならスマソ。
その手のリソースの明示的な開放が必要クラスは、
大概System.IDisposableインターフェースをサポートしているよ。
だから、こんな感じでいいんじゃない?(動作確認してない。スマソ)
try
{
using (FileStream fs = new FileStream("a:/nanashi.txt", FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw = new StreamWriter(fs);
for (int i = 0; i < 100; i++)
sw.Write("nanashi");
}
}
}
catch (Exception er)
{
//必要に応じて例外処理
}
usingブロックからスコープから外れたら(例外発生を含む)、
オブジェクトのDisposeメソッドが自動で呼ばれて、
マネージドリソース、アンマネージドリソース両方開放されるはずだよ。
usingステートメントは地味だけど、とても便利なステートメントだ。
http://www.microsoft.com/japan/msdn/library/ja/csref/html/vclrfusingstatement.asp?frame=true
005554
NGNGソースの字下げが消えてる。
なんでた?
もいっっちょ。(今度は全角スペースで字下)
try
{
using (FileStream fs = new FileStream("a:/nanashi.txt", FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw = new StreamWriter(fs);
for (int i = 0; i < 100; i++)
sw.Write("nanashi");
}
}
}
catch (Exception er)
{
//必要に応じて例外処理
}
0056デフォルトの名無しさん
NGNGですが、SDKでの使い方が全く分かりせん(涙)
ttp://www.softwarefx.com/GetChartFXLite/
でトライアル版をダウンロードしてセットアップ?したのですが
説明では(Windows Formで使う場合)
Deploying Chart FX with your Windows Forms applications
Chart FX consists of several compiled assemblies that must be redistributed along with your application. This assembly (DLL) does not require registry entries and can be copied to the application's directory.
登録とか必要ないと読み取れるのですが、
ドットNet専用のコンポーネントの使い方の基本が理解出来ていません
どなたかこのグラフコンポーネントはSDKから使用している方いません
でしょうか?
0057デフォルトの名無しさん
NGNGコンパイルオプションに r:DLL名 とかでないの?
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG既出かな。。
0060デフォルトの名無しさん
NGNG28じゃないけど同じことで困ってた者です。
using忘れてました。鬱。
確かにDisposeが呼ばれるのでワーカースレッドでその状態が起こった時に
アプリを終了してプロセスが残るといったことは無くなりました。
ありがとう(・∀・)
でもやっぱりその場でファイル閉じてないのでアプリ終了するまで
ファイルをロックしっぱなし、、鬱。
0061デフォルトの名無しさん
NGNG57,58,59さんどうもありがとうございます。
/r:****.dll指定で取りあえず使えそうです。
ドットNet専用コンポとCOMなどの違いがまだ
よく分かってないから頭ん中ごちゃごちゃです。(汗)
006259
NGNG紛らわしくてすみませぬ。
SDKではなくてVS.NETを使っているけれど、ライブラリ アセンブリ
をexeに含める方法がわからないです。最初からDLLになっているし
無理なのですかね…。
006359
NGNGC#の場合はコマンドラインでしか出来ないんですね。
っておそらく既出なんだろうなぁ…。
0064デフォルトの名無しさん
NGNGずっと方法がわからず…。
0065デフォルトの名無しさん
NGNG残念ながら、ソースがない限り1つの.exeにまとめることはできません。
0066デフォルトの名無しさん
NGNGあ,やっぱりそうなの?
俺もそうかなーって思ってたけど自信無かったから言わなかった。
0067デフォルトの名無しさん
NGNGそうなんだ、どうもありがとう。
dllにした自作コントロールでツールボックスからD&Dして、
このdllを参照設定からはずして、dllのソースを追加で
exeのみになるようだからこれでガマンします。
0068デフォルトの名無しさん
NGNGそういうツールって需要あるのかな?
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGはかばかしい回答が得られなかったので、
こちらに書かせていただきます。
C#とCOM(C++)の相互運用の問題です。
void SomeClass::AAA(VARIANT FAR* var);
という関数をVS.netにインポートしたところ
SomeClass {
void AAA(ref Object obj){}
}
となりました。
これを以下の通り使用すると「種類が一致しません」
という例外が発生してプログラムが中断してしまいます。
Byte b; // 上記のVARIANT型はcharとしてつかわれているので、
Object obj = b;
AAA(ref obj); // ここで例外が発生します。
この関数はVARIANT型のポインタを渡して
値を取得するものです。同じような関数が複数あり
大変困っています。どうかよろしくお願いします。
0071デフォルトの名無しさん
NGNGお、こうすれば出来ますね。ありがとう。
でもそのソースが使っている参照の追加は当然必要…。
参照を右ドラッグでコピー出来たらいいなぁ。
自作コントロールのDLLは参照設定から消さなくても、
ローカルコピーのプロパティをFalseにするだけでよさそう。
知ってたらスマソ。
0072デフォルトの名無しさん
NGNG小さな出版社がある。そして文学ファンはこういった出版社を
潰さないため、今後も翻訳を続けてもらうために
1人で同じ本を2・3冊買うことが良くある。
我々もこういう時だからこそDelphi7を買って
ボーランドを支えるべきなんじゃないだろうか。
Delphi7の売り上げはDelphi8以降の開発資金となるし、
ボーランドジャパンの今後に大きな影響をもたらすだろう。
Delphi7の出来のみを云々するのは
あまりにも近視眼的ではないだろうか?
0073デフォルトの名無しさん
NGNGこのスレにまで貼り付けんな。(ワラ
0074デフォルトの名無しさん
NGNGその謎は以下のスレに...
http://pc3.2ch.net/test/read.cgi/tech/1031668744/536-538
ここにかかれている内容を信じるかどうかはあなた次第。
Delphi7 を注文してしまった人は、すぐに答えが出るでしょう。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG72の書き込みによりDelphiの人気がさらに下がりました。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGhttp://www.gotdotnet.com/team/upgrade/v1.1/v1.0tov1.1changes.zip
0079デフォルトの名無しさん
NGNGVB6.0ではコントロールをコピぺすると配列にしますか?
って聞いてきた気がするのですが。
0080デフォルトの名無しさん
NGNGCを大体マスターしたのですが、あまりにも生産性が低いため次の言語へ
いきたいと思います。
C#なんかよさそうだと思ったのですが、C++を1秒もやらずにC#を習得することは
現実的でしょうか。
C#はC++を改良したものだそうなので、どうしてもC++をやるのが無駄に見えてしまうのですが、
C++をやっておいたほうがよいのでしょうか。それとも、まったくの無駄足になるのでしょうか。
0081デフォルトの名無しさん
NGNGC#にそのまま行っていいと思うけど、多分君はCをマスターはしていない。
0082デフォルトの名無しさん
NGNG手作業でControl[]型の変数に代入
0083デフォルトの名無しさん
NGNGhttp://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0397-2
0084デフォルトの名無しさん
NGNGどこがw
0085デフォルトの名無しさん
NGNGおお。(w
日本的ですなあ。
0086デフォルトの名無しさん
NGNGdelegate bool GetBooleanValue();
GetBooleanValue m = new GetBooleanValue( obj.get_BooleanProperty );
なんて直接 get アクセサを呼んでもコンパイルとおりませんし。
メソッドを一枚かませればすみますが、使用するオブジェクトとプロパティの数だけ必要になるし、
リフレクションでは実行時まで問題が見つけにくくなってしまいます。
0087デフォルトの名無しさん
NGNGC#・VB.NETではダメで、VJ#ではできるみたいね。
0088デフォルトの名無しさん
NGNGJScript.NETでもできますた
008986
NGNG何とかなりません?>MSさん
そういえばMC++だと任意の名前のインデックス付きプロパティがサポートされてるっぽいのに C# では this[] だけ
C# って .NET 最強じゃなかったの(;д; )
0090デフォルトの名無しさん
NGNGおぉ〜1.1でフォルダ用ダイアログが用意されたねー。
System.Windows.Forms.FolderBrowserDialog
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG.manifestがなくてもXPスタイルになっていい感じ。
ただし、FlatStyle.Systemは必要。
0093デフォルトの名無しさん
NGNG親ウィンドウと子ウィンドウがあって、両方表示している時、
どんな時でも、子ウィンドウの上に親ウィンドウを表示しておきたいのですが
どうすればいいでしょう?
TopMostは他のアプリケーションの邪魔になるので避けたいのですが、、、
よろしくお願いします。
0094デフォルトの名無しさん
NGNG> どうすればいいでしょう?
親子関係と所有関係を混同してる。とりあえず、君の言う親と子の関係を
反対にしたら
0095デフォルトの名無しさん
NGNGそうですね。混同してました。すいません。逝ってきます、、、
所有関係逆にすると今度はフォーム操作の連動(最小化など、、)が、
逆になってしまい、希望する動作になりません。
メインで使用するフォームを常に上に表示しながら、フォーム操作の連動も
メインで使用しているフォームに、たまにしか使わないフォームを連動させたいんですが、、
無理なんでしょうか。やっぱり。
0096デフォルトの名無しさん
NGNGBringToFront()、SendToBack()は?
どんな時でもってことで工夫、常にこのメソッドを意識する必要があるが。
0097デフォルトの名無しさん
NGNG後ろにあるFormのOnActivate(EventArgs e)で
前に出したいFormをActivate()してやれば?
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGRight. SWC is gonna be great!
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGイントラ限定で、小物配布するのに、exeをIISの仮想フォルダに置いてみたら、
クライアント側のセキュリティ設定触る必要あったりで色々試行錯誤中です。
MS謹製のオートアップデータコンポーネントなんか良さげだけど、
英語読むのタリーから和訳欲しい (゜д゜)
0102デフォルトの名無しさん
NGNGがんばれ、このスレ及び、VB.NETすれのみんなが応援してる。
よい結果報告をすれば君は英雄だ。
0103デフォルトの名無しさん
NGNGする為にDelphiにはApplication.ProcessMessagesがあり
ますがC#ではどのようにするのでしょうか?
0104デフォルトの名無しさん
NGNGArrayList使いの詳しい方で分かる人いたらお願いします。
SDKのみなので間違っているかもしれませんが、
このクラスにはSizeとかResizeというプロパティやメソッド
がないようなのですが、要素数をサッと変えるプロパティ
やメソッドはないのでしょうか?Countはリードオンリーで
すし、Addメソッドでぐるぐるやるしかないでしょうか?
初心者向けなのでくだスレかどちらか迷ったけどこちらに
書きました。
0105デフォルトの名無しさん
NGNGRemoveRange,AddRange ぐらいしか思いつかん。
0106デフォルトの名無しさん
NGNG104です。最初自分もAddRangeとか使うのかなとか
いろいろ試したのですが、AddRangeはちょっと意味
が違うようですね。TrimToSizeはCapacityを合わせる
だけみたいですし・・やっぱりないみたい。
STLは極楽だったんですね。
0107デフォルトの名無しさん
NGNGApplication.DoEvent()では?
0108デフォルトの名無しさん
NGNGResize は欲しいけど、ないみたいだから
減らすなら RemoveRange、
増やすなら AddRange( new type[ newSize-arrayList.Length ] )
で我慢
0109デフォルトの名無しさん
NGNGSTLを知らないのではずしまくってるかもしれないけど、
Capacityプロパティじゃだめ?
#Size、Resizeを調べてみて容量の変更と思ったんですが
0110デフォルトの名無しさん
NGNGいや、capacityはstlにもあるだろ
そうじゃなくて ようは一気に要素を追加してなんかの値で初期化したいって
ことだろ
addでぐるぐるするのが一番じゃねーの? そんな手間でもないと思うけどなぁ。
俺はそんなに頻繁に使うようなシチュエーションがないので、ありゃ便利程度
にしか思えないが、必要ならarryalist継承してsize resizeを実装すりゃいいんじゃ
ないの?
0111デフォルトの名無しさん
NGNGAddRange( new type[newSize-arrayList.Length])
うう、いまいち分からない。
んんん?もしかしてnew double[10]とかにして
配列を入れるって事?
なんかこれで行けるみたい。でもこのやり方
すぐに思いつくなんて凄いなぁ
でもやっぱりResizeなりSizeなりのプロパティは
欲しいっすよね。
しかもArrayListってコンストラクタではCapacityの
設定しか出来ないっすよね?
ArrayListを継承してClearAndResize(int _size)などの
メソッド付け足して拡張型ArrayList作るってのも
ありでしょうかね。
>109
Capacityは要素数ではなくて可能容量の決定だから
ちょっと違いますね。
STLはホントによく出来たライブラリで感動ものです。
まぁ逆に使いすぎでバグたくさんってパターンもあり
えますが。
0112デフォルトの名無しさん
NGNGそうです。よく分かっていらっしゃる(笑)
> addでぐるぐるするのが一番じゃねーの? そんな手間でもないと思うけどなぁ。
そうです。手間じゃないからこそResizeやコンストラクタ(サイズ)とか
付けておいて欲しかったって事です。Resizeは普通あるはずだーとか思い込んで
探したりしてれば時間かかるし(^^;)
> にしか思えないが、必要ならarryalist継承してsize resizeを実装すりゃいいんじゃ
> ないの?
う、アップする前に書かれてしまった。
Delphiやってた時は配列本体まで独自で作ってていろんなメソッド付けて
工夫してやった後にC++へ行ったらSTL見つけて「ガーン。これりゃ独自に作っ
たのでは勝てんわー楽チン楽チン」なんて喜んでました。
どーせalgorithmみたいなものも欲しくなるから
継承しないでArrayListToolクラスとか作ってメソッドで対処するって手もありますね。
0114デフォルトの名無しさん
NGNGバグが無い限り、バッファオーバーフローしないって聞いたの
ですが、本当でしょうか?
0115デフォルトの名無しさん
NGNG別にマネージドで無くても、ポインタ演算が無くて、配列のアクセス時にチェックしてくれる環境なら
バッファオーバーフローは無いと思いますが…とりあえず回答はTrue
0116デフォルトの名無しさん
NGNGListViewクラスは使いづらいのでいやなのです。
0117デフォルトの名無しさん
NGNG下記のようなイメージでプログラムの状態によって2つのdll
を使い分けたいのですができますでしょうか?
if (a == 1) {
dllimports("hoge1.dll");
} else {
dllimports("hoge2.dll");
}
0118デフォルトの名無しさん
NGNG0119117
NGNG0120無知
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
| | | ̄ ̄ ̄ /| ||
| | | / /|TTTTTT TTTTTTTTTT||TTTTT
| /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
| / / |// / /|
| / / |_|/|/|/|/|
| / / |文|/ // /
|/ /. _.| ̄|/|/|/ Λ_Λ
/|\/ / / |/ / (___)
/| / / /ヽ /〔 非OO 〕〕つ
| | ̄| | |ヽ/l `/二二ヽ
| | |/| |__|/ Λ_Λ / /(_)
| |/| |/ ( ´∀`) (_) Λ_Λ
| | |/ // / ^ ̄]゚ (` )
| |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
0123デフォルトの名無しさん
NGNG遅レスごめんなさい。
試してみましたが、所有関係があるとダメみたいでした。
0124デフォルトの名無しさん
NGNG所有関係や親子関係は z-order を決めているので臨時に変更するのは
できるのかね?
0125デフォルトの名無しさん
NGNGDotnetマガジンに変わったんだってね(既出?)
見てみたけどVBマガジンのままで良かったような内容でした。
もしくはVB.netマガジンかな。
ここのスレの人は何か雑誌かってんの?
0126デフォルトの名無しさん
NGNG通信を行う方法についてサンプルソースなどありましたら
教えてください。
ついでに第三者機関を使用しない独自のものについても
お願いします。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGあるんだけど何でかな。つーか今まさにこれまでになく時間がかかってて
タスクマネージャで見ても応答なしで困ってるところ。
バックアップからソリューション丸ごとバックアップしたりするとこの現象に
遭遇するような気がする。
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGどうしてでしょうか?なんか技があるんですか?
object o = t.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, null, new Object[0]);
hoge = (Hoge)o;
コンパイルは通るのですが、指定されたキャストは有効ではありません。
という例外が発生します。
デバッガで見る限りoはHogeクラスのオブジェクトのようです。
0133デフォルトの名無しさん
NGNGunsigned long foo(char* bar);
のようなCの関数を持ったdllで、barにNULLが入りうる場合
(NULLを与えるか、通常の文字列を与えるかで処理内容が変わる関数
を呼び出したい場合)にはどうしたらいいのでしょうか。
public static extern ulong foo(
[MarshalAs("unmanagedType.PTStr")]
string barString);
として、
foo(null);
とかしても、大丈夫なんでしょうか。
stringのnull -> (char*)NULL
にマーシャリングしてくれるもんなんですか?
0134デフォルトの名無しさん
NGNGo.GetClass(だっけ?)は何を返す?
0135132
NGNGからはHogeを返します。
0136132
NGNGSystem.Console.WriteLine(o.GetType().ToString());
からはHogeHogeを返します。
HogeHogeとHogeは継承関係にあり、Hogeが基底クラスになっています。
0137デフォルトの名無しさん
NGNGhttp://www.microsoft.com/downloads/release.asp?ReleaseID=43361
http://www.microsoft.com/downloads/release.asp?ReleaseID=43363
0138デフォルトの名無しさん
NGNG0139Yos
NGNGインストールせずに、
ファイルのコピーで、
実行ファイルを動かすことはできるのですか?
普通はできないと思いますが、何か解決策はあるでしょうか。
0140デフォルトの名無しさん
NGNGありません。って、某MLで回答もらったでしょ?
0141デフォルトの名無しさん
NGNG(Alt+Tabでできる操作を実行したい)のですが
どうやってやればよいのでしょうか?
0142デフォルトの名無しさん
NGNGつまらないことだけど、それはUnboxingじゃなくてDownCastだね。
0143デフォルトの名無しさん
NGNG> あるサードパーティのコンポーネントを使ったプログラムを、
> そのラインタイムをインストールせずに、
> ファイルのコピーで、
> 実行ファイルを動かすことはできるのですか?
>
> 普通はできないと思いますが、何か解決策はあるでしょうか。
と同じです。
0144デフォルトの名無しさん
NGNGhttp://sourceforge.net/project/showfiles.php?group_id=10749&release_id=114369
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG| | | ̄ ̄ ̄ /| ||
| | | / /|TTTTTT TTTTTTTTTT||TTTTT
| /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
| / / |// / /|
| / / |_|/|/|/|/|
| / / |文|/ // /
|/ /. _.| ̄|/|/|/ Λ_Λ
/|\/ / / |/ / (___)
/| / / /ヽ /〔 非OO 〕〕つ
| | ̄| | |ヽ/l `/二二ヽ
| | |/| |__|/ Λ_Λ / /(_)
| |/| |/ ( ´∀`) (_) Λ_Λ
| | |/ // / ^ ̄]゚ (` )
| |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
0147デフォルトの名無しさん
NGNG基底 <- 派生 の代入なんだから Up Castでそ。
>136
>132の代入先の hoge が Hoge型ではないと見た。
0148デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0149デフォルトの名無しさん
NGNGスタックトレースを出力したときに、ソースの行番号を出すにはどうしたらいいんですか?
なんか、出ないので・・・。
VisualStudio使うと出るんだけどさ
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG/debug+ でコンパイルすれば出てくるよ。
0152デフォルトの名無しさん
NGNGありがとうございます!
0153デフォルトの名無しさん
NGNG以下のような例外吐いて失敗してしまいます。どうしたらいんでしょう?
System.Runtime.Serialization.SerializationException: 解析が完了する前に、ストリームの終わりに達しました。
例外吐く個所のコードは以下のような感じです。
(SortedList)formatter.Deserialize(stream);
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGstreamにMemoryStreamを使用してみましたが、シリアライズはできますが、
デシリアライズする時に同じj例外がでてしまいます。
Hashtableではうまくいってたのですが。
0157デフォルトの名無しさん
NGNGこちらの環境では問題ないっす。
何か別のところに原因があるのでは?
0158デフォルトの名無しさん
NGNGありがと〜 そうですか。ちょっとまた調べてみます。
0159132
NGNGDLL内のクラスをEXE内のクラスにキャストしようとしてました。
同じソースから一部をDLL化し、それを含んだEXE作成していました。
同一ソースから作成されたクラスでも別クラスと判断されるようです。
ご迷惑をおかけしました。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGそりゃそうだろ
0162デフォルトの名無しさん
NGNGbyte配列を溜め込むのにどうやりゃいいか悩んでるんですけど。
あんだけ高級なAPIが揃ってるのに、これだけ自前でつくれって?
0163デフォルトの名無しさん
NGNGアセンブリが違うのに名前が同じってだけで同じクラスになったら困るって。
0164デフォルトの名無しさん
NGNGMemoryStream とかいうのなかったっけ
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG誰が作ったかわからないDLLを読み込む場合に
ローカルディスクのファイル操作等を禁止できますか?
0167デフォルトの名無しさん
NGNG0169166
NGNGまたは、どこ調べればいいの?
0171166
NGNGどうやって設定するのですか?
0172デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/en-us/dnofftalk/html/office10032002.asp
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGItemsのCountプロパティ見ればいいでしょ。
0176デフォルトの名無しさん
NGNG何を使えばいいのでしょうか?
Finalize()は呼ばれないことがあるし,普通のメソッドだと明示的に呼ばなきゃならぬのですが。
0177デフォルトの名無しさん
NGNG「C# 実践プログラミング(インプレスの赤本)」には
>クリーンアップ処理用のメソッドをClose()で呼び出し、
>またオブジェクトを二度と利用しないのであればDispose()で
>呼び出すように推奨している
ってあるよー
0178デフォルトの名無しさん
NGNGサンクス。
ってことはアプリケーション側からClose()やDispose()を明示的に呼び出すということですよね?
(Dispose()はusingステートメント使えば勝手に呼ばれるけど)
0179デフォルトの名無しさん
NGNGそーです。
>クリーンアップ処理を特定の個所で必ず実行させる必要があれば、
>プログラマが明示的に呼び出せるメソッドを用意しておくべきだ
で、MSが推奨する方法としてClose()/Dispose()が挙げられてました。
0180デフォルトの名無しさん
NGNG> ListBoxの最後のItemを表示するにはどうするの?
int lastItemIndex = listBox1.Items.Count -1;
listBox1.SelectedIndex = lastItemIndex;
0181デフォルトの名無しさん
NGNG0182181
NGNG0183デフォルトの名無しさん
NGNG$ WinCV /r:アセンブリ
で見ることができません。
$ WinCV /h
を見るとできそうなのですが。
0184183
NGNGildasmで一応目的のもの見られました。
WinCVは何者?
0185デフォルトの名無しさん
NGNGWinCVはWindows Forms関連クラス専用のビューア。
0187デフォルトの名無しさん
NGNGするにはどうすればよいでしょうか。
ここで言う、ファイル名というのは、例えば、
hogepage.exe というexeを実行していたならば、
hogepage.exe という名前をプログラム中で取得
したいということなのですが、、、
どうやればいいでしょうか?
0188デフォルトの名無しさん
NGNGApplication.ExecutablePath
フルパスだけど。
ちなみに Application.StartupPath はそのフォルダ名。
0189デフォルトの名無しさん
NGNGみなさんthisってどういう時につけてます?
1. 常に
2. 曖昧さをなくす必要がある時
3. そのクラスに記述されているものだけ
4. そのクラスに記述されていないものだけ(記述されているものは明示的に書かない)
baseだろって突っ込まれそうだけど
5. その他
ぼくは今不定でふらふらしてます
0190デフォルトの名無しさん
NGNGコード補完が楽なように 1.
0191デフォルトの名無しさん
NGNGhttp://www.preemptive.com/dotfuscator/DotfuscatorFAQ.html
0192デフォルトの名無しさん
NGNGああなるほど。
俺はEmacs使ってるんでそもそもコード補完ができない…(ただの文字列補完ならできるけど)
で,話ずれますがMeadowでC#(.NET)のコード補完やってる人います?
0193192
NGNGhttp://jdee.sunsite.dk/
0194デフォルトの名無しさん
NGNGThanks!!
ところで、ConfigurationSettings.AppSettingsを使って、設定ファイル
を読み込む時に、設定ファイルがあるかどうかを判定する方法ってある
でしょうか?File.Exists()とか使うしかないのでしょうか?
それから、ConfigurationSettings.AppSettingsを使って設定ファイルを
いじるれますが、このファイル名や保存場所を任意に変えることはできる
のでしょうか?なんか無理っぽいですが。。。
0195デフォルトの名無しさん
NGNGだれ?それ?
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGそっかー標準装備か。。じゃ待ちだな。
ところで皆さんは現在、ildasm対策?とかしてますか?
0198デフォルトの名無しさん
NGNGそのURLをクリックすると、LinkClickedイベントが発生しますが、
これをURLではなく、任意の文字列でできるようにする方法は
ないのでしょうか?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGForm.WindowState = FormWindowState.Maximized;
0201デフォルトの名無しさん
NGNGありが�d!
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGほれ
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtfspec/html/rtfspec.asp
ただ、何に使うのかはしらんが、リッチテキストボックスのRTFプロパティを自分で
書いて、書式付き文字を表示されるなんて考えはおこさん方がいいぞ。
0204202
NGNGありがとうございます。
>ただ、何に使うのかはしらんが、リッチテキストボックスのRTFプロパティを自分で
>書いて、書式付き文字を表示されるなんて考えはおこさん方がいいぞ。
なんでですか?
0205デフォルトの名無しさん
NGNG・RTFの仕様自体が糞。とても使う気になれない。
・リッチテキストボックスはRTF1.0相当なので、メソッド、プロパティを通じて
操作できる以上のことは RTFを生で書いてもほとんど無理。
表とかリンクとか画像を入れたいというだけなら、webbrowserコントロールを
使った方が気楽だよ。
0206デフォルトの名無しさん
NGNGそういえば.NETでHTMLダイアログを簡単に扱えたりするの?
System.Windows.FormsやSystem.Web.UIと同じように扱えたら
すごーくハッピーなんだけど、無理?
0207202
NGNG>表とかリンクとか画像を入れたいというだけなら、webbrowserコントロールを
>使った方が気楽だよ。
タグの色分けができるHTMLエディタを作ろうと思ってます。
コントロールを自作しようと思ってSharpDevelopのソースも見たんですが無理っぽいので
RichTextBoxを使ったらどうかな?と思ったんです。
やっぱり厳しいですか。。。
0208デフォルトの名無しさん
NGNGms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconusingudpservices.htm
UDPMulticastListener の方で、まったくメッセージが出てきません。
動いた方がいたら動かし方を教えてください。
0209デフォルトの名無しさん
NGNG無理っぽい?あんな読みやすいソースもそうそうないぞ。
少なくとも漏れはあのソースをかなり参考にしてC#のカラ
ーリングエディタを作った。(あれはGraphics.DrawString
を素で使ってるから日本語表示したり単語が多くなるとも
う速度的にボロボロだから本当に参考にしただけだが)
もっとがんがれ〜!
0210デフォルトの名無しさん
NGNG役に立ちそうなソースは公開キボンと書いてみたり。(w
0211209
NGNGしたサイトを置いとく。バグがあるまま公開されてるから、
改造しながら自分で直すと良いと思う。BitBltの方はもっ
と速くなるが、その辺はWindowsの描画関係をあたってくれい。
http://www.codeguru.com/cs_graphics/flicker_free.html
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNGとりあえず、すれ違い
0214デフォルトの名無しさん
NGNGどうしたらよいのでしょうか?
こんなやり方しか思い浮かばないのですが、、、
byte[] hoge = {1, 2, 3};
byte[] page = {4, 5};
byte[] total = new byte[hoge.Length + page.Length];
hoge.CopyTo(total, 0);
page.CopyTo(total, hoge.Length);
なんか、もっといい方法はないでしょうか?
例えば
byte[] total = {hoge, page};
とかができるとうれしいのですが。。。
0215デフォルトの名無しさん
NGNGその URL の先読む気はないので適当に言うけど、Winsock の場合
multicast group に join するには、事前に適当に bind しておく
必要がある。その辺どうなってますか?
あと送出側が同じ PC で動いてるなら、loopback できるように
setsockopt だかなんだかで設定しとく必要がある。
0216デフォルトの名無しさん
NGNGGNUとM$でゴタゴタが起きていてなんちゃらかんちゃらという記事を読んだことがあります。
その辺のことご存じの方いらっしゃれば教えてください。
自分もグーグル等で検索してみましたが、分かりませんでした。
0217デフォルトの名無しさん
NGNGmonoを使ってみるスレとかで聞いて見れば?
http://pc3.2ch.net/test/read.cgi/tech/1020215602/l50
0218デフォルトの名無しさん
NGNG返さないのですが、このメソッドで指定したbyte[]
は、きちんと全て送信するまで、ブロッキングして
くれるのでしょうか?
socketとかだと、100byte送信ってやっても、50byte
しか送信できないことがあったりして、結局何byte
送信できましたっていう感じで、送信できたbyte数が
戻り値として戻ってきていましたが、どうなのでしょう?
NetworkStream.Writeで100byte送信ってやった場合は、
100byte送れるまで、ブロッキングするの?
0219デフォルトの名無しさん
NGNGする。Readはしない。以上。
0220デフォルトの名無しさん
NGNGMono、Portable.NET以外にBorlandから出るよ。
Kylix .NETからだし、まだ先だけど。
0221デフォルトの名無しさん
NGNG>Readはしない
http://impress.tv/msec/event/te2002/
の
「7-411 .NET Framework におけるスレッディング」
(の「非同期プログラミング モデルの実装」)
だと
Begin〜-End〜系じゃないメソッドは
実行が完了するまで処理がブロックされるって説明が
あるんだけど、実際の挙動はそうなってないってこと?
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224218
NGNGなるほど。よくわかりました。
>>221
どうも、実験してみると、1byteも受信できないうちは、
ブロッキングするようですが、1byte以上、何らかのデータを
受信した時には、何バイト読み取れって指定したデータ全部を
受信しなくても、処理が次に移ってしまうようです。
その代わり、何バイトだけ受信しましたよ。っていう戻り値が
帰ってくるようです。
なんで、こんな実装なんでしょうね?
0225デフォルトの名無しさん
NGNGいわゆるbsdソケットのrecvと同じ挙動に見えるがどうか。
だったらsendも同じにしてもいいのに、とは思うけど・・・
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG.NET Framework SDKについてくるドキュメントブラウザで
たとえば
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp
のようなページをFrameworkSDKドキュメントのように表示することはできないですか?
目次のところに該当ページの目次が出て欲すぃ
0228デフォルトの名無しさん
NGNGこの映像の喋ってる奴の喋り方ムカツク。
なんでだろ。
0229デフォルトの名無しさん
NGNGMicrosoft Document Explorer 7.0なら
ヘルプ(H)-目次の同期(Y)
かと。
違ったらスマソ。
0230デフォルトの名無しさん
NGNGああ,Microsoft Document Explorer 7.0ですた。
で,http//〜 は目次の同期はできないのです。
0231デフォルトの名無しさん
NGNGもしかしてURL欄に「http://以下略」を直接入れて・・・って話?
それなら無理かと。。。
0232デフォルトの名無しさん
NGNGそういうことです。
そんで,ms-help://〜形式にできないものかなーと思いまして。
0233デフォルトの名無しさん
NGNGFSFに通報しますた
0234デフォルトの名無しさん
NGNG一応よくわからないままに下のようにやってるんですが、表示してみるとフォントサイズが
IEの設定(小)と一致しません(たぶん中)。最初のうちはちゃんと表示されていたような
気もするんですが、明示的に設定する方法ってありますか?
> page = new TabPage(title);
> browser = new AxSHDocVw.AxWebBrowser();
> browser.BeginInit();
> browser.Dock = DockStyle.Fill;
> page.Controls.Add(browser);
> this.TabPages.Add(page);
> browser.EndInit();
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGhttp://www.k-nextage.co.jp/ame/soft/wfc/
WebBrowserコントロールを利用してブラウザーを作るための方法
これで出来ると思う。
0237デフォルトの名無しさん
NGNGありがたふ。見てみます。
0238デフォルトの名無しさん
NGNGMemcpyみたいなものでつかってコピーするのでしょうか?
0239デフォルトの名無しさん
NGNGまずは
Object.MemberwiseClone メソッドと
ICloneable インターフェイス
について調べてみてちょうらい
0240デフォルトの名無しさん
NGNGAssembly.Loadメソッド辺りかと思ったのですが、具体的にどうやればいいのかわかりません・゚・(ノД`)・゚・
よろしくお願いします。
0241デフォルトの名無しさん
NGNGみたいにクラスインスタンスを作らなくても値を返せるようなメゾットって
どうやって作ってるんでしょうか?
0242デフォルトの名無しさん
NGNGstaticメソッド
0243デフォルトの名無しさん
NGNG間違いが多い質問はネタ率高し。
0245デフォルトの名無しさん
NGNG解決しますた。
0246デフォルトの名無しさん
NGNG教えて。情報へのリンクだけでも・・・
0247デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/theshow/Episode028/default.asp
0248デフォルトの名無しさん
NGNG場合は、特定の処理をしたいcatch句のところに同じ処理を繰り
返しかかなければならないのでしょうか?なんか、AとBとCの例外
の場合は、この処理を実行してください。ってな感じで一度に指定
することは可能なのでしょうか?
単純にcatch(Exception e)でキャッチしてしまうと、全部ひっかかって
しまうのでダメなのですが。。。
0249デフォルトの名無しさん
NGNGそれとも規定の例外?
0250デフォルトの名無しさん
NGNG規定の例外です。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGその二つの例外が継承関係に無い以上同じコードで扱うのは無理っぽい。
catch( Exception ) で全部捕らえて、if/else で我慢するしかないかな?
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGやっぱりそうなってしまうのでしょうか?
なんか、コードが例外処理だらけになりそうです。
みなさんも、やっぱりそういう風に書いてるの?
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGcatch使おうがif/elseだろうが、コード量はほとんど変わらない気がするんだけど
0260デフォルトの名無しさん
NGNGcatch(Exception e)はなるべく使わない方がいいと
言われたのですが、なぜ?
同じ例外処理をするなら、catch(Exception e)で問題
無いですよね?
0261ネタだけど
NGNGcatch (Exception x) {
switch (x.GetType().Name) {
case "FileNotFoundException":
...
break;
}
}
0262デフォルトの名無しさん
NGNGcaseは羅列できるね。
case "FileNotFoundException":
case "IOException":
break;
0263デフォルトの名無しさん
NGNG真意は言った本人にしかワカランけど
catch( Exception e )はご存知の通り全ての例外を補足するから、
すごく便利なことに即刻プログラムをアボーンしなければならないようなちょー重大な
例外も漏れなくキャッチして何事も無かったかのようにプログラムを継続してくれるうれしい機能だ。
0264デフォルトの名無しさん
NGNG↑ ↑
0265デフォルトの名無しさん
NGNGそういう書き方をしたいときもあるんじゃん。
0266248
NGNGそうそう、そういうのがやりたいんですよ。
でも、try catchじゃできないみたいなので、みんなどうしてるの
かなって思ってた分けです。
わざわざ例外用の関数つくって、同じ例外処理の場合はそれを
読み出したりするようにしてるのでしょうか?
0267デフォルトの名無しさん
NGNGんで、ログには「エラーが起きますた」と一言だけ・・・。
0268デフォルトの名無しさん
NGNGtry〜catchのスコープを小分けにして、そんなにcatchの羅列にならないようにする。
0269デフォルトの名無しさん
NGNGWhileかなんかでループしながらsr.ReadLine()で一行づつ読み込み
たいのですが。
0270デフォルトの名無しさん
NGNGTextReaderでできるじゃん。ReadLineの戻り値がnullだったら終了。
0271デフォルトの名無しさん
NGNGhttp://www.zdnet.co.jp/news/0210/12/nebt_12.html
0272269
NGNGThank you
0273デフォルトの名無しさん
NGNGms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htmms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htm
0274デフォルトの名無しさん
NGNGms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htm
0275デフォルトの名無しさん
NGNGNULLで。
0276デフォルトの名無しさん
NGNGISOに出すのね。まあいいけど、時代は変わったのね。
0277デフォルトの名無しさん
NGNGよい方法ありますか?
0278デフォルトの名無しさん
NGNGMSDN・・・読もうぜ・・・
0279ヘルプを見ずにカキコ
NGNGSystem.Text.Encoding.GetString
0280デフォルトの名無しさん
NGNGありがとうございます。まさにこれです。
ぜんぜん違う方向探してました。
0281デフォルトの名無しさん
NGNGどっちみち標準化すると利便性が高まるからいいだろ。
0282デフォルトの名無しさん
NGNG今win95 C でプログラミングしてます
そこでsleep関数を使うとエラーがでてしまうのですが、使えないのでしょうか?
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGたぶん使えると思う。
使えるんじゃないかな。
ま、ちょと覚悟はしておけ。
0286デフォルトの名無しさん
NGNGたぶん使えないと思う。
使えないんじゃないかな。
ま、ちょと覚悟はしておけ。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGたぶんそうだと思う。
そうなんじゃないかな。
ま、ちょと覚悟はしておけ。
0289デフォルトの名無しさん
NGNG親の仇じゃ、覚悟!
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGブラウザが「[セキュリティ]タブの設定がよくありません。」
といってきます。
わたしのWinXPにはファイルのプロパティに
セキュリティタブが見つからないのですが
どうしたらよいのでしょうか?
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG会社のWin2000にはファイルのプロパティに
セキュリティタブというのがあるのですが
WinXP(Pro)にはないのです。
0296デフォルトの名無しさん
NGNGフォルダ・オプションの
「簡易ファイルの共有を使用する(推奨)」のチェックを外せ
0297デフォルトの名無しさん
NGNG俺もこれにはさんざん悩まされたよ
どこが推奨なんだか激しく問い詰めたかった
0298デフォルトの名無しさん
NGNGスクロールすることは可能なのでしょうか?
例えば、テキストファイルを読み込んで表示した後に、一番
最後に表示したいような場合があるのですが。
どうでしょうか?
0299デフォルトの名無しさん
NGNGそのものズバリの質問がこのスレにあったと思う
0300デフォルトの名無しさん
NGNGこのスレにはないようですが、、
過去ログの方でしょうか?
0301デフォルトの名無しさん
NGNGして、新しいページを読み込む直前に呼ばれると思うのですが、なぜか、
呼ばれないのです。
VS.NET上からイベントを追加したのですが、何か足りないのでしょうか?
追加されたメソッドは次のようなものなのですが、、、
axWebBrowser1_BeforeNavigate2(object sender, AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event e)
}
0302C ◆dq2PerGLN.
NGNG0303デフォルトの名無しさん
NGNGOpenFileDialogクラス
ShowDialogメソッドで呼び出す
0304デフォルトの名無しさん
NGNG>>50 .NET 1.1に。
0305デフォルトの名無しさん
NGNG現時点で暫定的に対処したいなら、
ttp://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
これがよろしいかと。
0306301
NGNGどうりで動かないわけですよ。。。
でも、これじゃぁ、2ちゃんブラウザをC#で作ることはできないじゃ
ないですか、、、せっかくC#で作ろうと思ってたのに。
なんで、 .NET Framework Service Pack 2 までだしているのに、直して
ないのでしょうか??
ホントにC#普及させようと思ってるのか???>MS
>>304
ちなみに .NET 1.1 って、まだ、ベータ版ですよね。そうすると、これで
ソフト作っても配布できないですよね。。。
ちなみに、.NET 1.1 の正式版リリースはいつごろを予定しているのでし
ょうか?なんか、MSのページみても情報無いのですが。。
>>305
この方法ってのはイベント部分だけ古いコントロールのやつを使うという
ことになるのでしょうか?なんかIE3コンパチブルというのがいやな予感が
するのですが、この方法を使った場合の弊害ってなんかあります?
0307デフォルトの名無しさん
NGNG激しく感謝m(・w・)m
0308301
NGNGとりあえず、この方法できちんと動くようですので、
.NET Framework 1.1 の正式版が出るまでは、これで対応
したいと思います。
MSのアホ!!ボケ!!カス!!
ところで、みなさんはこういう情報をどうやって仕入れるのでしょうか?
2ちゃんの過去ログや@ITとか、某UGMLとか、MSDN日本語版とか、一通り
あたってみたのですが、こんな解決策は載ってなかったです。
やっぱり、アメリカとかの情報サイトとかMLを読んだ方がいいのでしょうか?
海外のC#系の情報でお勧めの場所があったら教えてもらいたいのですが、
どこら辺がいいでのしょうか?
0309デフォルトの名無しさん
NGNGサンキューです。さっそくやってみまーす
0310デフォルトの名無しさん
NGNG>2ちゃんの過去ログや@ITとか、某UGMLとか、MSDN日本語版とか、一通り
>あたってみたのですが、こんな解決策は載ってなかったです。
C#相談室 Part xxでは激しくガイシュツだけど・・・
最低でも3度以上はでてる。MSのサポート情報にもでてるし。
海外サイトにもでてる。
0311デフォルトの名無しさん
NGNG漏れはひたすら google で検索。
関係ありそうなサイトがヒットしたら、そこからリンクを辿るとかね。
0312310
NGNGで、MSのサポート情報のURL
http://support.microsoft.com/default.aspx?scid=kb;JA;JP311298
こっちはまぁ回避法は載っていないが、
ttp://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
このページはかなり早い時点からあったしな。
0313310
NGNGbeta2のころはサイトもあんましなかったし。(海外別にして)
0314301
NGNGあらら、結構情報載ってますね。。
スンマソ。
ところで、.NET Framework 1.1の正式版はVisual Studio .Net(Everett)
と同時になるようですね。果たしていつになることやら。。。
0315デフォルトの名無しさん
NGNGC♯でそんなことできたっけ・・
switch は no fall-through じゃなかったっけ?
(つまりすべての case に break を書かなければ文法エラーになる)
0316デフォルトの名無しさん
NGNG羅列ができるだけ。
1行でもコードを書くと compile error になりますよん。
0317C ◆Iei1i2BWho
NGNGよろしかったらだれか教えてください。
0318デフォルトの名無しさん
NGNG基本的には不可能(例外的にどうなのか知らないけれど)。
名前から察するにbutton1_Click(object, System.EventArgs)はボタンコントロールのClickイベントのメソッドだと思うけれど、
Graphicsクラスを取得したいならControl.CreateGraphics()やGraphics.FromHwnd()を使ったほうがいい(使い終わったらDispose()も忘れずに)。
0319デフォルトの名無しさん
NGNGいまいちクラスの概念が理解できないんだが
クラスって、構造体と全く同じと考えていいの?
0320C ◆Iei1i2BWho
NGNG迅速なレスありがとうございまーす、さっそくトライするっす
0321C ◆Iei1i2BWho
NGNG×>317
○>318
鬱だ(゚д゚)
0322デフォルトの名無しさん
NGNGWebBrowserコントロールにHTMLを書き出して表示するところまでは
なんとか漕ぎ着けたんですが、表示したHTML中のリンク(「>>1」など)
をクリックしたときに該当するレスに飛ぶ方法がわかりません。
バグってるというBeforeNavigate2イベントが何か関係するんでしょうか。
0323デフォルトの名無しさん
NGNGその質問は、次のうちのどれが聞きたいの?
・リンクをクリックしたイベントをどうやって取るかわからない。
・BeforeNavigate2を実装したがきちんとうごかない。
・イベントは取れたが、画面のスクロールの仕方がわからない。
0324デフォルトの名無しさん
NGNG> ・イベントは取れたが、画面のスクロールの仕方がわからない。
です。
0325デフォルトの名無しさん
NGNG「>>1」 に単純に飛びたいなら、レス番号にアンカー仕掛けて、ドキュメント内で
飛べば?
htmlのソースに細工して、ジャンプ先を<a name="menu:1></a>、
リンクは <a href="#menu:1> >>1</a> みたいにしておけばわざわざイベント取ら
なくてもブラウザが勝手に飛んでくれるんでは?
どうしてもイベント使いたいなら、document.all.itemで飛び先のIHTMLElement
取って、IHTMLElement.ScrollIntoView()あたりでいけるとおもうが。
webborwserコントロールはnavigate2に限らずいろいろバグがあって、aximpで
自動的にラッパ作ったやつはまともに動かんぞ、と警告してみる。
0326322
NGNGありがとうございます。もう少し調べてみます。
0327デフォルトの名無しさん
NGNGthis.Show();
で表示するんでしょうか?
this.FormWindowState = FormWindowState.Normal;
じゃ表示されないみたいなんす・・・。
0328322
NGNGまだイベントに絡めては動かしてないんですが、クリックイベントを横取りして
やればいけるかなと思ってます。
string label = "Res1"; // リンク先
IHTMLElement element = this.hdoc2.anchors.item(label, 0) as IHTMLElement;
element.parentElement.scrollIntoView(true);
※hdoc2はIHTMLDocument2型でAxWebBrowserから取得してます。
最初に末端のレスにスクロールしてから上の処理をやるとちょうどリンク先が
表示領域の上端にくるので具合がいいです。
ただ、横スクロールバーが出ていると微妙に右にスクロールしてしまうのが
気持ち悪いですね。hdoc2.parentWindowは型がサポートされてない旨の例外が
飛ぶのでscroll()は使えないようです・・・。
0329デフォルトの名無しさん
NGNGそのフォームのプロパティみたらわかるけど
最小化したらフォームのLocationがX=-1、Y=-1ってなってるはず。
だからWindowStateをそのままNormal にしてもフォームの位置が
画面外だから表示されないように見えるの。
Normalにする前にLocationを元に戻してすれば表示されるはず。
0330デフォルトの名無しさん
NGNGほんとじゃん!!
最小化って画面なくすんじゃなくて、見えないところに移動する機能だったんか?
ありがとう。
0331デフォルトの名無しさん
NGNGWin95からそうなったのよ・・・
一応Closeというのはあるんだけどね・・・
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGタイムアウトを設定しておけばいい。
0334デフォルトの名無しさん
NGNG接続中に切断されたなら、そこで例外が発生するからそれをキャッチすればいい。
接続しているか常にチェックしたいならちょっと無理かも。
TcpClient使ってるならTcpClientを継承したクラス作って
SocketもらってConnectedプロパティをチェックするしかない。
0335デフォルトの名無しさん
NGNGコールスタックみたいに。
0336デフォルトの名無しさん
NGNGhttp://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
ここ↑にある方法に従って普通のリンクのクリックは拾えるようになったんですが、
例えば
<a href="about:blank../test/read.cgi/tech/1032488831/1 target="_blank">>>1</a>
をクリックしてもイベントが発生せず問答無用でIEが起動してしまいます。
何か対処方法はあるのでしょうか。
0337デフォルトの名無しさん
NGNGStackTraceクラスからMethodInfoが引けたはず。
0338デフォルトの名無しさん
NGNG> ただ、横スクロールバーが出ていると微妙に右にスクロールしてしまうのが
> 気持ち悪いですね。hdoc2.parentWindowは型がサポートされてない旨の例外が
場当たり的だが、scrollintoviewのあとに
document.parentWindow.scrollBy(-1000,0);
ってやって、左に戻しておけばどうかと
0339デフォルトの名無しさん
NGNG残念ながら型がサポートされていないという例外が飛んでしまうので
document.parentWindowが評価された時点で落ちます。トホホ。
0340デフォルトの名無しさん
NGNGキャッチすれば良いじゃん。
0341デフォルトの名無しさん
NGNG> >338
> 残念ながら型がサポートされていないという例外が飛んでしまうので
> document.parentWindowが評価された時点で落ちます。トホホ。
俺はdocument.parentWindow.scrollBy(-1000,0); で普通に使えて
いるが。WebBrowser_V1 を使っているせいかな?
0342336
NGNG■ IHTMLDocument2のリンククリックイベントを横取りする方法(一部未確認)
1.write()で必要なものは全部書き出す
2.こんな↓感じでリンクエレメントにイベントハンドラを設定する
Close()の前にやったほうがいいような気がするけど細かいところは未確認
foreach (HTMLLinkElement le in this.hdoc2.links)
{
((HTMLAnchorEvents2_Event)le).onclick += new TMLAnchorEvents2_onclickEventHandler(OnClickTest);
}
3.イベントハンドラ
private bool OnClickTest(IHTMLEventObj o)
{
//o.srcElement.innerTextなりを見て好きに処理する
return false;// trueだとイベントが生きたまま
}
もしかしてこの方法だったらBeforeNavigate2は要らないのかな。
なんか問題があるようだったら誰か指摘してください。
0343C ◆Iei1i2BWho
NGNGしかしあるメソッドの中では
Graphics formGraphics = this.CreateGraphics();
としてますので、これを利用して"this"を抜かし、
Graphics formGraphics = CreateGraphics();
と宣言するとエラーが出ます。
どのように宣言をすればよいのでしょうか?
わかる方お願いします
0344デフォルトの名無しさん
NGNG簡単な方法はありますか? 具体的には下のようなイメージです。
"0123456789" -> "0123456789"
今のところひたすらReplace()で変換してます・・・(効率悪〜)
0345336
NGNG自分で問題点発見。
細かいことは分かりませんが、HTMLを部分出しにしている場合、
全文が完全に出力される前にリンクをクリックされるとイベントを
横取りできないみたいです。
当然といえば当然だけど回避策はないのかなー。
0346デフォルトの名無しさん
NGNGフィールドでGraphics formGraphics;としといて、
コンストラクタで formGraphics = this.CreateGraphics(); とするのは
だめなのかい?
0347デフォルトの名無しさん
NGNG「HTMLを部分出し」 っていうのがよく意味わからんけど、
document.close()の前にイベントハンドラの処理をやってるなら
本来はちゃんとイベントが接続されるはず。
anchorElementのonclickを捕まえる方法は俺もやったことがあるが
挙動が不審なんだよ。
interopかmshtmlのPIAのバグのせいなのか、わからんのだが、
ちゃんとイベントハンドラ接続しているのに、ランダムに全く原因不明で
イベントがファイアしないことがあってあきらめたことがある。
document.HTMLDocumentEvents2_Event_onclickを捕まえて、
IHMTLEventObjのfromelementをみてやる方法もあるが、こっちも
なんか挙動がおかしかったように記憶している。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG> document.HTMLDocumentEvents2_Event_onclickを捕まえて、
> IHMTLEventObjのfromelementをみてやる方法もあるが、こっちも
> なんか挙動がおかしかったように記憶している。
この方法ではたしかホイールが利かなくなったような記憶が。。。
あとこれは想像だけどイベントハンドラの不発はmshtmlのHTMLパーシングが
非同期(多分)で遅いことが原因じゃないかな。foreachで回す時までにlinkに
すべてのアンカーが入っていないような気がする。ケツから後方一致でやってる
みたいでハンドラ不発はランダムじゃなくてある個所から手前(ファイルの先頭)
までが全滅している。
writeで書き込んだ後、何らかの方法でmshtmlのパーシングが完了したことを
確認する手段があればいいんだけど。。。
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGVB.netのStrConvを使うとか。
0353デフォルトの名無しさん
NGNGそれとも自分で作らないといけないのでしょうか?
わかる方お願いします
0354デフォルトの名無しさん
NGNGhttp://www.atmarkit.co.jp/fdotnet/csharptips/013vb/013vb_02.html
0355デフォルトの名無しさん
NGNGColor構造体で返って来るので、
普通に各プロパティ(R,G,B)を見ればいいのでは?
0356デフォルトの名無しさん
NGNGサンクスです。コンストラクタでthisが使えるのですね。
0357350
NGNGちゃんとコードを書いて確認してみましたが、mshtmlのlinksを参照したときに
アンカーの漏れが発生するという事実は確認できませんでした。
イベント不発の原因は接続のタイミングを計ればどうにかなるというものでは
なさそうです。。。
0358デフォルトの名無しさん
NGNG> この方法ではたしかホイールが利かなくなったような記憶が。。。
あ、たしかにそうだったかもしれない。
> あとこれは想像だけどイベントハンドラの不発はmshtmlのHTMLパーシングが
> 非同期(多分)で遅いことが原因じゃないかな。foreachで回す時までにlinkに
これはありうるな。俺も同じ経験ある。
ただ、単に非同期処理が追いついていないだけなら、writeで書き込んだ後、thread.sleepで
逃げられそうなもんだが…。
たとえばリンク1〜リンク100まであって、リンク100→OK リンク99→OK…
……と試していって リンク16あたりで挙動がおかしくなると、さっきまでOKだった筈の
リンクまで挙動がおかしくなったりしてたから、それだけが原因なのかどうか
今ひとつはっきりしない。
ちなみにwriteの直後にMessageBox.Show(wb.ReadyState.ToString())を入れて
チェックしてみても俺んとこではreadystate_completeになってた。
ほかにイベント接続先のメソッドでIHTMLEventObjの特定メンバにアクセスすると
なんのエラーも出ずにそこでメソッドがリターンしてしまい、勝手にリンク先に飛んで
いってしまうとか、妙ちきりんなことが多い。
(x だかoffsetXだかclientXだか、マウス関係のメンバだったと思うが…。)
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNGImeModeプロパティが変更された場合に発生します。
0361デフォルトの名無しさん
NGNGツールチップを表示させたいんですが、ToolTipクラスはコントロール
依存みたいでアンカーエレメントに対応付ける方法がわかりません。
仕方がないので今はtitleプロパティを代用にしてますが、これだと
マウスポインタの座標を基点に右下方向に表示されてしまいます。
出来れば右上方向に表示したいのですが方法が分かりません。
ご存知の方がいたらぜひご教示ください。
0362デフォルトの名無しさん
NGNG消極的で悪いけど、一般的に知られている方法以外で情報を提示するとユーザは混乱するよ。
Webサイト見てて急に広告が落下してくるとビビるだろ?あれと一緒。
広告は貼り付けてあるもので降ってくるものではない、と言うブラウザの常識を越えた方法だから。
0363デフォルトの名無しさん
NGNGtitle属性ででティップが表示されるのはブラウザの機能だから、
いじるのは無理じゃないかな? とりあえずDHTMLのなかでは
それらしい物は見つからないけれど
あえてやるなら、
・textboxをwebbrowserの前面においてvisible=false readonly=true
borderStyle=none、backcolor=好きな色 multiline=true scrollbars=noneにする
・各リンクエレメントのmouseoverイベントでtextbox.visibleをtrueに。
表示位置はIHTMLEventObjでマウス座標をとって 好きな位置にする
textboxの大きさは表示する文字列に合わせて調整。
・mouseoutイベントでtextbox.visibleをfalseに
てな具合にすればtoolTipライクなものをマウスの右上に出すこともできると思うが…。
(ダサダサな方法だが…。)
>>362
???急に落下してくるもんってなに?
タグにタイトル属性付ければなんでもティップが表示されると思うが。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGThreadStart デリゲート見るとダメっぽいね。
0367デフォルトの名無しさん
NGNGアドホックinvokeを使えばできるよ。クラスライブラリではなく、C#のデリゲート
自動生成機能なんで探すのはめんどうだが。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGアドホックinvokeって初耳ですがなんですか?
別に引数なくても困りませんが。スレッドクラス作るし。
0370367
NGNGこれだけど、書けば勝手に作られてスレッドプール使われるからアドホック。
でも、本当は、アドホックデリゲートとおいらは書きたかったんだが、書き間違えたスマソ。
0371367
NGNGこんなのもあるが、おいらは、Threadクラスから派生するほうが良いと思う。
・データの局所化(クラスのフィールドにパッケージング)
・テンプレートメソッドパターンが使える
とか、そんな理由から。
1ショットならアドホックデリゲートでも良いかも。
0372デフォルトの名無しさん
NGNG詳しそうだから聞いてみちゃうけど、スレッド間のメッセージのやりとり
はどうやるのがいいですかね?
メッセージキューで調べるとシステムワイドのメッセージキューサービス
なんてのがでてきやがる・・・
0373デフォルトの名無しさん
NGNGなるほど、それアドホックデリゲートって言ってたのね。
知らずに使ってたよ。
>>371
Threadクラスから派生かぁ。考えてもみなかったけど、
あまり必要に迫られていなかったなぁ。
でも考えてみれば、派生したほうが便利な場面あるね。
ありがとう。
0374デフォルトの名無しさん
NGNGと思ったがヘルプみてみると、Threadクラスはsealedだわ。
継承できんがな・・・
漏れが意図を汲み取れなかったのだな・・
0375デフォルトの名無しさん
NGNG非同期デリゲートつかうんじゃなかったっけ?
まあ場面によって色々あるけど、
ヘルプで「スレッド化チュートリアル」で引けば基本はわかるかと。
0376デフォルトの名無しさん
NGNGのはありませんですた。
0377デフォルトの名無しさん
NGNG単にデータのやりとりをするなら非同期デリゲートでIAsyncResultのasyncStateん
中に放り込むとか?
単純なThread.Startに比べると、非同期デリゲートは なんかいちいち面倒で、
気軽に使えん。
0378デフォルトの名無しさん
NGNGReBarとか、ドッキング可能なツールバーってなくなっちゃったの
でしょうか?
0380359
NGNG>ImeModeプロパティが変更された場合に発生します。
いや、発生要因は Help は見ているからわかっているんだけど。
いつ呼ばれるのか、では無くて、どういうときに使うことを想定しているのか。
という質問なの。
IME 自身のモードを切り替えても呼ばれないし。
0381デフォルトの名無しさん
NGNG(※サンプルではstring strとint a)
一種のSingletonなんでstatic areaに生成したスレッドを格納するフィールドを用意したり適切な静的
メソッドを追加すればスレッドの多重生成禁止とかアボートとか自由自在で便利。
public class MyThread
{
// static area ------------------------------------------
public static Thread GetThread(string str, int a)
{
MyThread mythread = new MyThread(str, a);
return mythread.GetThread();
}
// instance area ----------------------------------------
private string str;
private int a;
private MyThread(string str, int a)
{
this.str = str;
this.a = a;
}
private Thread GetThread(string str, int a)
{
return new Thread(new ThreadStart(MyMethod));
}
private void MyMethod()
{
// this.strとthis.aを使って何かする
}
}
0382381
NGNG送信側は MyThread.SendMessage(受信側スレッド名 送りたいデータ) とかするだけで
受信側スレッドの状態管理なり排他制御なりは MyThreadクラスに任せてしまえる。
もしかしてデザインパターンとしてとっくに名前ついてる?
0383381
NGNGインスタンスメソッドの方のGetThreadだけど、引数要らんわな。
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGlock(this) {
....
....
}
って書いた場合、lockの{}で囲まれた処理だけが
排他的にスレッドによって実行されるってことなの?
それとも、(this)って書いてあるから、{}の中の処理
を実行中は、thisで示されたインスタンス自体がロック
されるってこと?
0386デフォルトの名無しさん
NGNGコントロール表示時のIMEモードをどうするか設定しておくプロパティじゃないの?
つまり、ユーザが「半角/全角」キーを押すことは関係なく
0387デフォルトの名無しさん
NGNG>>359-360読むと
そのプロパティが変更された時に発生するイベントが
何の役にたつのだと、言いたいわけだろう。
全部のプロパティにChangeイベントがいるか?
0388デフォルトの名無しさん
NGNGないよりはいいかと思う漏れは逝ってよし?
誰が何に使うかわからんわけだし、放置でいいでしょ。
0389デフォルトの名無しさん
NGNG同意。
0390デフォルトの名無しさん
NGNGthisがロックされるのではなく、(厳密な言い方ではないが)thisがさしている
オブジェクトにロック済みのマークが付けられる。そのため、
lock(this) {
を実行しようとするすべてのスレッドは、マークを付けたスレッド自身を除き、
そこでブロックされます。つまり、lockブロック抜きで
this.setxxx(xx);
する、スレッドを止める手段は無しです。
したがって、「インスタンス自体がロック」のほうに近いかな。lock(this)な
ブロックであれば、どこであっても影響を受けるから。
0391デフォルトの名無しさん
NGNGつまりcooperative lockであってmandatory lockではないということですか
0392385
NGNG0393デフォルトの名無しさん
NGNGこれってC#特有の問題?バージョンがあがれば解決の望みあり?
0394デフォルトの名無しさん
NGNG#は電話のボタンの右下のマーク
♯は音楽記号のシャープ
0395デフォルトの名無しさん
NGNGちなみに、どんなイベントがダメなの?
うわさによると、次期VS.NETに付属する.NET Framework1.1では直って
いるらしいが。
0396デフォルトの名無しさん
NGNGどこで聞いた噂ですか?
0397デフォルトの名無しさん
NGNG過去ログみてみ。β版でちゃんと治ってるって報告あり。
0398デフォルトの名無しさん
NGNG読み方は?
0399デフォルトの名無しさん
NGNGたてたてよこよこ
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403ネットワーク試験遅刻しそう
NGNGこれはあるBitmapにピクセルをセットするとVC++のOnPaint()などの処理を呼び出さないといけないのでしょうか?
わかる方宜しくお願いします
0404デフォルトの名無しさん
NGNGいや、早く行けよ。がんばれよ。
0405デフォルトの名無しさん
NGNGいげた。
そういえば大学でC教えてた教授が「いげた」って言ってた。「いげたインクルード」とか。
今、C#のことを「シーいげた」って言ってんのか確かめたい!
0406デフォルトの名無しさん
NGNGその理屈でいくと、「C++」は「シーくさかんむり」にでもなりそうなものだが。
0407405
NGNG0408デフォルトの名無しさん
NGNGunknownはアンノンと呼ぶ。
C++はシーププラだし、うちの会社変な奴ばっか(´д`;)
0409デフォルトの名無しさん
NGNGちゃんと、サイズを指定してビットマップ作ってる?
0410デフォルトの名無しさん
NGNGこのデリゲートとイベントの違いは何でしょうか?
イベント機能はデリゲートを使って作られているそうですが、
何が、普通のデリゲートと違うのでしょうか?
何かあったら登録されているメソッドを呼び出すというのは
デリゲートとまったく同じだとおもうのですが、
0411デフォルトの名無しさん
NGNGその結果が出たら、フォームにあるテキストボックスに結果を
表示しようと思っているのですが、別スレッドから、フォームの
コントロールに直接アクセスしてはいけないそうです。
じゃぁ、いったいどうやったらいいのでしょうか?
すぐ上のレスでイベントの話が出ていますが、イベントを使っても、
やっぱりだめなんですよね?イベントとか実行しても、フォーム側の
スレッドで実行されないんですよね?
なんか、ここら辺がよく分かってないのですが、C#のイベントというの
はMFCとかのWindowsのメッセージによるイベント駆動のイベントとは違うのでしょうか?
あの昔のイベントなら、メッセージをキューに入れておけば、フォームのスレッド
が暇になったときに勝手に実行してくれたりしたのですが、、、
0412デフォルトの名無しさん
NGNG「
int x;
unsigned char buf[100];
int* p=(int*)&buf[x];
」
をC#で書きたいのですがどうすればいいのですか。
int buf[100];
int* p=buf;
ならばうまくいくのですが。
char*からint*への変換はできないのでしょうか。
なお、「fixed」「/unsafe」を使うことは分かっています。
0413411
NGNGどうやらこの方法を使うようです。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpcondevelopingmultithreadedwindowsformscontrol.htm
0414デフォルトの名無しさん
NGNGというかカコスレに超既出なんだが、、
0415デフォルトの名無しさん
NGNG激しく既出。
フィールドとプロパティの関係と似たようなもの。
class Hoge
{
int n; // フィールド
int N { get { return n;} } // プロパティ
HogeDelegate f; // 普通のデリゲート型のフィールド
event HogeDelegate OnXXX; // イベント
}
0417デフォルトの名無しさん
NGNGControl.Invoke
0418デフォルトの名無しさん
NGNG今まで何となくしか理解してなかったけど、
簡潔かつ分かりやすくて目の前が開けますた。
サンクス!
0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNGMessageBoxの場合、\nでも大丈夫だった。
0422デフォルトの名無しさん
NGNG\rが必要だっていうのには俺もかなり悩んだなあ。
windows名前空間だから\r\nなわけぇ? とおもいきやmessageboxは
言われてみれば\nでもいけるし。なんかここら辺の不統一が気持ち悪いね。
宇宙仮面も怒ってたな
0423デフォルトの名無しさん
NGNG{
textBox1.Text = textBox1.Text.Insert(textBox1.Text.Length, "\r\n");
textBox1.Text = textBox1.Text.Insert(textBox1.Text.Length, "AAA" );
textBox1.Text = textBox1.Text.Insert(textBox1.Text.Length, "\r\n");
textBox1.Text = textBox1.Text.Insert(textBox1.Text.Length, "BBB" );
}
こんな感じ?
with 使うほうがよさそうですね。
>>422 Windowsの仕様依存なんでしょうね。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGtextBox1.Text += "\r\nAAA\r\nBBB";
じゃダメなのか? (;´Д`)
0426デフォルトの名無しさん
NGNGなぜにこんな回りくどいことを……????
425かtextBox1.AppendText("\r\nAAA\r\nBBB"); のどっちかっしょ。
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGhttp://www.shoeisha.com/event/cs/
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet.asp
0433デフォルトの名無しさん
NGNGインストール時にWindows認証も選べるようになったので、MSDE使いも楽に動かせるね。
0434デフォルトの名無しさん
NGNG0435433
NGNGということで、ここを参照。
http://www.sqlpassj.org/bunkakai/begin/series/s01/0113.aspx
0436デフォルトの名無しさん
NGNGhttp://dotnet.impress.co.jp/index_b.htm
0437デフォルトの名無しさん
NGNGそんなしちめんどくさいことを。。。レジストリいじればすぐになおるっしょ。
やり方は今月のDBマガジンの付録に書いてあった。
0438デフォルトの名無しさん
NGNGセッションを投票で決めるらしい。もうネタがないのか?(w
0440デフォルトの名無しさん
NGNGマイナーなネタでもふるか。メッセージキューとか。
0441デフォルトの名無しさん
NGNG選択肢は3つらしい。
http://www.shoeisha.com/event/cs/vote/
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNGhttp://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=b706dc79-415d-45de-8a6c-eb518adb0075
0445デフォルトの名無しさん
NGNGXMLに出来ないのかなぁ・・・
0446デフォルトの名無しさん
NGNGここに置いてあるdllって安全?
0447デフォルトの名無しさん
NGNG日付を見る限り、ベータっぽくない?
0448デフォルトの名無しさん
NGNG60日の体験版で勉強したいんですが
あれって、60日過ぎても
また再インストールして使えないですか?
SharpDevelopは何故かうちの環境じゃ動かないんです。
0449デフォルトの名無しさん
NGNGTypeConverter("System.Windows.Forms.Design.DataSourceConverter")
っていう属性を付けると、一覧から選ぶことが出来るけれど、標準のComboBoxや
ListBoxのDisplayMemberのように、列を一覧から選ぶことが出来るように
するには、どの属性を付ければいいんだろう?
Editor("System.Windows.Forms.Design.DataMemberFieldEditor", typeof(UITypeEditor)
とか
TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter")
つけても駄目だった。むむ〜。まぁ正しい列の文字入力すれば動くけれど。
だれかわかる人いますか?
0450デフォルトの名無しさん
NGNG.NET Frameworkにコンパイラついてくるぞ。
無料で配ってる。
0451デフォルトの名無しさん
NGNGC#<<<JAVAが
C#<JAVA
にすらなっていない現状。
クライアントアプリを作るにも、C#クソだし
サーバーサイドやるにしても.netクソだし、
.netの設計者殺すしかないかも。
0453デフォルトの名無しさん
NGNGちょっとよさげな内容。
0454デフォルトの名無しさん
NGNGこれでつか?
> .NETセキュリティ
> エビデンス,ポリシー,パーミッション,施行サービスを提供するCLRの
> セキュリティインフラストラクチャ
> (September 2002 Vol.17 No.9)●Don Box
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457448
NGNG.NET Frameworkは一応コマンドラインで使ってるんだが
借りてきたC#の本に対応していないので勉強できない・・・
DelphiみたくStandardタダにするとか
機能限定無料版とか無いのがイタイ
60日間試用版って一回消していれなおして使えんのかなぁ・・・・
情報キボンヌ。
0458デフォルトの名無しさん
NGNGフリーの.NET統合開発環境「SharpDevelop」
http://pc3.2ch.net/test/read.cgi/tech/1023727377/
とかいうスレが立ってるから、見てみたら?
0459デフォルトの名無しさん
NGNGリアル小学生でも親にねだって
買ってもらえる程度の額を、出せないなら
生活保護を受けに逝った方がいいよ。
>機能限定無料版とか無いのがイタイ
正直、きみの方がずっとイタイ
0460448
NGNGサンクス
実は、SharpDevelopスレの181が漏れなんですわ
未だにフォーム表示するだけの空アプリも作れんので凹んでます
VB6やVC6ならおもむろにF5押すだけで出来るのに・・・
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGいいですよ。他で議論するところいっぱいあるから他でやってね。
0464デフォルトの名無しさん
NGNGWindowsの終了処理が中断してしまいます。そこで、
Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEndingEventHandler( OnShutdown );
としてハンドラにはthis.Close();としてフォームを閉じる処理を記述して対応しようとしたのですが、
どうもうまくいってないようです。何か対処法はないでしょうか?
0465デフォルトの名無しさん
NGNGアクティベーションが必要になるから無理では?
0466デフォルトの名無しさん
NGNGウィンドウがアクティブじゃないと駄目なんですか・・・
役にたたないですね、それじゃ。
どうすればいいんでしょうね。シャットダウン処理とめるのがデフォルトだと困るなぁ。
0467デフォルトの名無しさん
NGNGアクティベーションが必要になるのは、
アカデミック版だけじゃないの?
試用版も必要なの?
0468デフォルトの名無しさん
NGNG何か、>>465のレスを勘違いしてない?
0469デフォルトの名無しさん
NGNGあ! 思いっきり勘違いしてますた。逝ってきます。鬱すぎる・・・
0470デフォルトの名無しさん
NGNGネットを使ったライセンス認証が必要。なんか本買った時とかに付録で付いてたのが
貯まってしまって三枚くらい体験版あるけど日経の「C#で始めるWINプログラミング」
にはアクチが必要と書いてある。
他2枚は特に注意書きはないけど、同じ体験版だし必要かと。
0472デフォルトの名無しさん
NGNG>借りてきたC#の本に対応していないので勉強できない・・・
君だめぽすぎ。C#の本に対応って・・・本末転倒じゃねぇか。
開発環境がらみのところは読み飛ばしちまいな。
0473472
NGNG0474デフォルトの名無しさん
NGNG間違った。体験版入ってるのは「始めようC#」だった。
0475デフォルトの名無しさん
NGNGSharpDevelopの0.92が出ているよ。試してみたら?
0476デフォルトの名無しさん
NGNG間違いだらけだぞ!
次に来るのは決まってABですが何か?
0477デフォルトの名無しさん
NGNG:::::::::/:::::::::::::::::::::::::::::::::::::::::: |⊂ レ ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
:::::::/\:::::::::::::::::::::::::::::::::::::: !
::::::/ \:::::::::::::::::::::::::::::: /. 十 ┼ キ . 十 ┼ キ
::::/ \:::::::::::( ノ::: / ⊂ レ ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
:::: ̄ ̄ ̄ ̄ ̄::::::::::: ' /l
::::::::::::::::::::::::::::::::: / 十 ┼ キ / .:|
::::::::::::::::::::: - ⊂ レ ヽ/  ̄ \ヽ _ −' .::└‐- .,/
:::::: _ ―  ̄ / ..::::::::::..l / ..::::::::::::::::::::......
. ̄ ̄ 十 ┼ キ | ::::::::::::::ノ/ ::( ノ:::::::::::::::::::::::::::
∧ ⊂ レ ヽ ノ こ (フヽ | ::::::::::/ l ::::::::::|::::::::::::::::::::::::::::
/:. `, | ::::::::::| | :::::::::::::::| ̄ '‐- ._/
/::::. '、 十 ┼ キ .l ::::::::::ヾ :::::::::::::::| /::::::
___/::::::::. `、⊂ レ ヽ ノ こ (フヽ ! ::::::::::::゙、 :::::::::::::::| /::::::::::::
::::::::::::::::::::: \ ヽ. ::::::::::::\ ::::::::::::|/:::::::::::::::::::
:::::::::::::::::( ) ヽ 十 ┼ キヽ :::::::::::::::` -::::::::::::::::::::_ -''
:::::::_/:::::::::::::.. i⊂ レ ヽ ノ こ (フヽ \ :::::::::::::::::::::::::::::::::::::::::::::::::
 ̄ /:::::::::::::::::: l _ ― 、 〉 ::::::::::::::::::::::::::::::::::::::::::::::
/:::::::::::::::::::: | / \ ┼ キ . 十 ┼ キ
/::::::::::::::::::::: l | .::::::::::::. ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
\/::::::::::::::::::::: / / :::::::::::::::::: }
0478デフォルトの名無しさん
NGNG次に来たのはAAでした。
0479デフォルトの名無しさん
NGNGNotifyIconのContextMenuを使うとステータス領域を“右クリック”で
ポップアップメニューを表示させることができますよね。
でも、NotifyIconを使ってステータス領域に表示されたアイコンを“左クリック”で
ポップアップメニューが表示されるようにしたいのですが、
どうしても方法がわかりません。ご教授ください。
0480デフォルトの名無しさん
NGNGContextMenu.Show()
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGhttp://www.develop.com/kbrown/book/default.htm
0483デフォルトの名無しさん
NGNG例が悪いけど、
void AssertValid() const;
とか
void Dump(...) const;
とかどうしたら良いんでしょうか。
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGconstをつけるまでも無くコンパイラが自動判別するから
0486484
NGNG0487デフォルトの名無しさん
NGNGまぁ、インターフェースでそれなりにカバーできるし。
テンプレートは激しく欲しいよ。テンプレート厨が沸くのはうざいが。
0488デフォルトの名無しさん
NGNGそう組んだやつがわるい。
0489デフォルトの名無しさん
NGNGAbortとか使ってもSuspend中のスレッドは終了できないみたいなんですが・・・
0490デフォルトの名無しさん
NGNGconst というのは、プログラムミス防止のためのものであるから
勝手にコンパイラに判断されては困ると思うのだが・・・
0491デフォルトの名無しさん
NGNGへぇ。
0492483
NGNG実際には const は使えないんですよね。
なんでだろ…?
0493デフォルトの名無しさん
NGNG必要ないから。
そもそもconstメソッドなんかに頼っている時点で、カプセル化の意味がなし。
# オブジェクト自体をimmutableにするとか、いろいろ方法がある。
0494デフォルトの名無しさん
NGNGDBC的な用法でconstメンバ関数を使うことも十分あるのでは。
#どの言語でも原理主義者はいややね。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497479
NGNGありがとうございます。
ところが、Showメソッドは引数がControlなので、NotifyIconを引数に指定できません。
なにかうまい方法でもあるんでしょうか?
0498デフォルトの名無しさん
NGNGC#ではObject型はすべて参照という点に注意して考えてみてください。
意味が薄くなってきたから、いっそ取り除いてシンプルにしてしまえと言う事だと思います。
C++ 見たいに class をオブジェクト型だけではなく、代数型や構造体のように使うことをやめ
オブジェクト型に特化しているので、オブジェクトがメンバとして実体配置されることが無くなって
そのオブジェクトが参照している先まで const か?
ということになってしまいます、そこを見ないなら、constの意義がないです。
>そもそもconstメソッドなんかに頼っている時点で、カプセル化の意味がなし。
貴方は論点はずしまくり
0499デフォルトの名無しさん
NGNGconst無くてもへーき。
0500483
NGNGオブジェクトを Dump すると、そのオブジェクトが参照(と言うより所有)しているオブジェクトもダンプする事がありえますよね。
元のオブジェクトが(C++で言うと)参照定数のコンテクストにあるとき、Dump 呼び出しは所有物に対しても通るけど、他の const でない操作はコンパイラがブロックしてくれる…
っていうのが存在価値なんじゃないかなと思ってるんです。
自分で面倒見やがれと言うスタンスで統一したと言う事でしょうかね。
0501デフォルトの名無しさん
NGNGおいおい。
ContextMenuにShowメソッドがあるって。
0502479
NGNG度々すみません。
private void nIcon_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button==MouseButtons.Left)
{
ContextMenu.Show();
}
}
ということでしょうか?コンパイルエラーになるのですが・・・。
0503デフォルトの名無しさん
NGNG>ということでしょうか?コンパイルエラーになるのですが・・・。
で、エラーメッセージ書かないボケはどこのドイツですか?
0504デフォルトの名無しさん
NGNGつうかヘルプでShowメソッドのところみたか?
引数たんねーよ それじゃ。
0505デフォルトの名無しさん
NGNG0506479
NGNGすみません。コンパイルする以前の問題だったので、書きませんでした。
気をつけます。
>>504
ContextMenu.Show((Control)sender,new Point(e.X,e.Y));
とすると、senderがNotifyIconなのでキャストできないですよね。
かといって、NotifyIconコントロールを貼り付けたFormを指定すると、
「System.ArgumentException: 非表示のコントロールでは、ContextMenu を表示できません。」
になるし。
0507デフォルトの名無しさん
NGNG言っても書かない馬鹿一人。
0508デフォルトの名無しさん
NGNG人生、楽そうだ。
0509デフォルトの名無しさん
NGNG0510501
NGNG497での発言は、ContextMenuのShowメソッドを見た上でのコメントやったんね。
やっと意味わかったよ。
このShowメソッドは使えないね。
かといって、左クリックを右クリックとだまくらかす方法はないかと
考えてみたが、ちといいアイディアなしだわ・・・。
いけそうで、いけないな・・・むむむ。
0511デフォルトの名無しさん
NGNG0512479
NGNGそうなんです。いけそうで、いけないんです。
あきらめてAPIでいこうかと思ったんですが、
面倒だからそのまま右クリックに逃げました。(苦笑
>>511
Form1にNotifyIconを貼り付けて、
static void Main()
{
Form1 form = new Form1();
Application.Run();
}
ではだめでしょうか?
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGTabをスクロールするのに右の方に[←][→]みたいな矢印がでますが
この矢印の大きさを変えることってできるのでしょうか?
0516デフォルトの名無しさん
NGNGどっちにしろウインドウ作らないとメッセージが飛んでこないわけで。
一瞬で終了ってアホっす。
0517デフォルトの名無しさん
NGNGこういうソフトはどうやってつくるのでしょうか?
0518デフォルトの名無しさん
NGNG単にフォームがいらないだけならコンソールアプリケーション。
常駐したいならServiceBase継承してサービスアプリケーションかけ。
以上
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGApplication.Run()だけでOK。
Application.Exit()で終了!
0522521
NGNG0523デフォルトの名無しさん
NGNGちらつく頻度はまちまちだけど、駄目だね。
SetStyle(ControlStyles.DoubleBuffer, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
とかlistView.BeginUpdate();とかさ試したり、
control.BeginInvoke();とかさタイマーのイベントの中でやってみたのね。無駄なのわかってたけど。
駄目なんだね。仕様ね・゚つД`)゚・。
0524デフォルトの名無しさん
NGNGそう思うなら変更があったときだけ書き換えろや。アホか。
0525名無しさん
NGNG変更されたアイテムだけをUpdateするようなメソッドを自作すれば?
0526デフォルトの名無しさん
NGNG一秒ごとに経過時間加算して表示すんだし。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGApplication.DoEvents
0530デフォルトの名無しさん
NGNGそういうことを考えた人を殺してください。
0531デフォルトの名無しさん
NGNGそうしたい理由がわからん。
君が気を付ければいいだけの話。
0532デフォルトの名無しさん
NGNG変更したときだけ再描画するようにせーよ
0533デフォルトの名無しさん
NGNGint a;
a=2;
これでaは空間に存在しないってエラーが出て数分間はまった気持ちがあなたにわかりますかあ?
0534デフォルトの名無しさん
NGNGどこに大文字があるんですか?(プ
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGintとaの間に全角スペース?
全角スペースも使えなかったっけ。(使いたくはないが)
全角+も全角数字も使える。
ちゃんと1+1は2になる。
0538デフォルトの名無しさん
NGNGUNICODEで保存しないと全角文字は使えない。
全角スペースが入ってて悩むような馬鹿がUNICODEでソースを保存してたりはしないだろ。
0539デフォルトの名無しさん
NGNG特に初期設定から変えてなくても全角文字使えますけど・・・。
0541538
NGNG全角スペースを □、
半角スペースを _ で書くと、
a,□_b
見たいに、全角スペースと識別子が並んでない場合はOKで、
a,_□b
見たいに、全角スペースと識別子が並んでる場合はコンパイルエラーになった。
0542デフォルトの名無しさん
NGNGStream st = httpRes.GetResponseStream();
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift_JIS"));
上記のようにStreamReaderを使って、webからテキストを読み込む
際に、何バイト読み込んだかを取得する方法はあるでしょうか?
サーバがContent-Lengthを返さない場合なのですが、、、
自分なりに考えてみると、StreamReaderを使わず、直接、バイト
単位で読み込み、容量を計算し、随時、バイト列をテキストに直す
方法ぐらいしか思いつかないのですが、、、
何かいい方法があれば、教えてください。
0543デフォルトの名無しさん
NGNGIISでセッションタイムアウト値を30(分)に設定しても、以下の
sumNumbersメソッドが返す値が20以外になりません。
どうしてでしょうか?
-------------------------------------------------
using System;
using System.Web.Services;
namespace SumService {
[WebService(Namespace="http://tempuri.org")]
public class SumEx : WebService {
[WebMethod(EnableSession=true)]
public int sumNumbers(int x, int y) {
lock(Session) {
return Session.Timeout;
}
}
}
}
-------------------------------------------------
0544543
NGNG初期化するしかないのかな??
うーむ。
0545デフォルトの名無しさん
NGNGプロパティにしてそのまま返すと大変な事になる。
GetXXX系の関数にしてコピーを返すべきだ、とか書いてあったな。
もう、馬鹿かと、アフォかと。
だったらconst使わせろと。
まぁ、PointとかRectangleとかしょうもない物まで全部参照型で何が何でもコピーを返さなきゃいけないJavaよりははるかにマシか。
0546デフォルトの名無しさん
NGNGコンパイル時に
ActiveXのDLLをソースファイルと同じディレクトリにコピーして
csc MyApl.cs /reference:AAA.dll,BBB.dll
としてコンパイルすると正常にMyApl.exeが実行されるのですが、
AAA.dll,BBB.dllを違うディレクトリに置いた時(例えばc:\)
csc MyApl.cs /lib:c:\ /reference:AAA.dll,BBB,dll
とするとコンパイル自体は問題なく終了するのですが、
実行時に「ファイルまたはアセンブリ名AAA.dllまたはその依存関係の
1つがみつかりませんでした」
というエラーが出ます。
MyApl.exe実行時にAAA.dll,BBB.dllのパスを通してもダメ
なにか他に指定する事があるのでしょうか?
分かる方いらしたらよろしくお願いいたします。
0547デフォルトの名無しさん
NGNG>PointとかRectangleとかしょうもない物まで全部参照型で何が何でも
>コピーを返さなきゃいけないJava
ちなみにC#だったらどのように解決してくれるの?
0548デフォルトの名無しさん
NGNG構造体
struct main_data{
z[810000];
z1[810000];
}data;
があるとします。
そこでCで↓のように書かれた場合、
C++ではどのように書くのでしょうか?
for(int i=0; i<900; i++){
for(int j=0; j<900; j++){
(data+j+i*900)->z = nodata;
}}
どなたかよろしくお願いします。
0549デフォルトの名無しさん
NGNG良い書籍、HP等はありませんか?
0550デフォルトの名無しさん
NGNGそこでの読取専用な配列とは、読み取られ側が読み取り側に対してかける制限であり、
読み取り側自身がかける制限であるconstとは違う。
0551デフォルトの名無しさん
NGNGすれ違い。後。書き直す必要ある?
0552デフォルトの名無しさん
NGNGMSDN
取りあえずSocket関係のクラス調べれば言いっしょ。
0553548
NGNGスレ違いでした。すいませんでした。
あちらに質問してみます。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGC#ならそう言うのは値型だから自動的にコピーされるYO
0556デフォルトの名無しさん
NGNG参照で返したくても、自動的にコピーされちゃうの?
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG参照で返したいなら参照で返すように書けばいい。
0559デフォルトの名無しさん
NGNGを知るにはどうしたらよいでしょうか?
0560デフォルトの名無しさん
NGNGどーやってやるの? 教えてください。
0561デフォルトの名無しさん
NGNGTCPのお約束に従うなら、readしてみないと分からないんじゃないかな
0562デフォルトの名無しさん
NGNGSystem.Text.Encoding.GetByteCount(char[]);
System.Text.Encoder.GetByteCount(char[], int, int, bool);
byte[] から文字列に直すなら
System.Text.Decoder.GetChars(char[], int, int, char[], int);
詳しくは System.Text.Encoding クラスを参照。
0563デフォルトの名無しさん
NGNGどーやってやるの? 教えてください。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGえーと、それはつまり、
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift_JIS"));
string str = sr.ReadLine();
とかやった場合に
strのバイト数を
System.Text.Encoding.GetByteCount()
で計算すればいいということでしょうか?
しかし、
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift_JIS"));
とやってしまっているので、
string str = sr.ReadLine();
の段階では、UTF-16 なってしまっていると思うのです。
strを一度、サーバ側と同じShift_JISにコンバートしなおして、
GetByteCountをやればいいのかもしれないのですが、やはり
そういう方法しか無いでしょうか?
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGstructを参照で返すことができるの? って話だと思うよ。
C++だと
mystruct& foo() {
return x;
}
みたいな。
これはC#で可能なの? ref,outが戻り値にも使えるの?
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNGEncoding sjis = Encoding.GetEncoding("Shift_JIS");
StreamReader sr = new StreamReader(st, sjis);
string str = sr.ReadLine();
int size = sjis.GetByteCount(str);
こうするとか。
0570デフォルトの名無しさん
NGNG結局はストリームで直にバイトを読んでいってstream.Readの返り値で
バイトを数えて、最後にstringにするのが一番楽なんじゃないかな?
int bufferSize = 1024;
int byteRead = 0;
byte[] buffer = new byte[bufferSize];
MemoryStream data = new MemoryStream();
do
{
byteRead = st.Read(buffer, 0, bufferSize);
data.Write(buffer,0,byteRead);
//読み込んだバイト数はbyteReadなので、好きなように使う。
}
while(byteRead > 0);
string html = Encoding.Default.GetString(data.ToArray());
data.Close();
st.Close();
0571デフォルトの名無しさん
NGNGなるほど、それだとスッキリ書けますね。
でも、速度的には >>570 の方が早いのでしょうか。
まぁ、でも、こんだけマシンパワーのある時代なので、
分かりやすく書ける方がよさそうですね。
というか、MFCにあるByteArrayみたいなクラスは無い
のかと思っていたら、MemoryStreamを使えばよかった
のですね。いま気づいたYo!
0572デフォルトの名無しさん
NGNGまあ、>>569 だと二度手間(?)になるから、>>570 のほうがいいとおもうね。
一回 byte[] から char[] や string にしたものをまた byte[] に
変換して(るのかどうかしらないけど)サイズ取得だから…
>>570のほうが(・∀・)イイ!!と思うよ。
0573デフォルトの名無しさん
NGNGページを更新した場合呼ばれないのは仕様ですか?
呼ばれないのだとしたら更新を検知するには何を使えばよいでしょう?
更新時にもURLとかヘッダーとかの情報を取得したいです
0574デフォルトの名無しさん
NGNG使いにくくないですか?
this.mainMenu = new System.Windows.Forms.MainMenu ();
MenuItem miFile = new MenuItem("&File");
mainMenu.MenuItems.Add(miFile);
miFile.MenuItems.Add(new MenuItem("&New"));
miFile.MenuItems.Add(new MenuItem("&Open"));
としておいてALT+Fを使うのが普通なんですが、KeyPressイベント
などを使ってF2押すとダイレクトにFileメニューの内容(New,Open)を表示
するようには作れないものなのでしょうか?
(メニューを避けてボタンを配置してダイアログを表示するって手はナシとして)
簡単そうに思えるのですが、どーもうまく行かない。
昔のDOSプログラムって画面の一番上にF1 F2 F3とか表示してあり
ましたよね。案外あの方が慣れると使いやすかった気がしてならない。
0575デフォルトの名無しさん
NGNGWinアプリのお作法ですから…
1つのアプリだけ操作体系が異なるってのも使いにくいし。
0576デフォルトの名無しさん
NGNGショートカットキーを設定できるようにはなっている
んですが、なぜか機能しないですよね。たんなるバグ?
それともやり方がまずいのか
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG買って >>577
0580デフォルトの名無しさん
NGNGバグじゃなくて Windows の仕様じゃ...?
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNGファイルで保存してあるDTSパッケージをC#から使いたいのですが、
コードの書き方がさっぱりわかりません。
参照設定→.LoadFromStorageFileを使うとこまではわかったのですが、
サンプルがVBしかなくどう記述していいのか。
DTS.Package myPackage = New DTS.Package("C:\test.dts");
と書いたのですが。
0583デフォルトの名無しさん
NGNGMainMenuのMenuItemにshortcutが設定できない(しても機能しない)
ならばプロパティでshortcutの項目を表示すべきじゃないでしょう。
ご丁寧にコードにも追加しちゃってるしね。
0584デフォルトの名無しさん
NGNGclass a
{
}
class b:public a
{
}
system.type st = typeof(b);
class a;
//a = new b();//これをtype からとりたい
a = new st(); //イメージとしてこんな感じ
みたいなかんじで。
0585デフォルトの名無しさん
NGNGこんな感じで。
Type st = typeof(B);
A a = (B) Activator.CreateInstance(t);
0586デフォルトの名無しさん
NGNGPackage myPackage = new PackageClass();
myPackage.LoadFromStrageFile(〜);
ってな感じだと思うんだけど、
optのパラメータが多いときはVB.NET使った方が楽だと思うよ。
0587586
NGNG0588584
NGNGありがとうございます。
0590デフォルトの名無しさん
NGNGはじめたばっかでまだパニック中・・。
0591デフォルトの名無しさん
NGNGプログラム素人さんならば、日経ソフトウェアがイイ
0592デフォルトの名無しさん
NGNG・Generics → Rotorで体験済み。便利だけど、コレクション以外で
今ひとつ使い道が浮かばない。
・Iterators → foreachの無駄がなくなってよさげだけど、
yieldとかまた予約語が増えるのね...。
・Anonymous Methods → 構文的にちょっとJavaとは違うみたいね。
機能的には萌え。RADでちゃんとサポートしてくれるといいんだけど...。
・Partial Types → C++っぽくて激しく萎え。
っていうか、これってEverettじゃなくてYukon対応版の方だよね?
0593デフォルトの名無しさん
NGNGコンパイル時に検出できるエラーも増えて(゚д゚)ウマー。
Anonymous Methodsで無駄なイベントハンドラを隠して、
Partial Typesで自動生成部とカスタムロジックを別ファイルにして読みやすさ(゚д゚)ウマー。
0594デフォルトの名無しさん
NGNGhttp://headlines.yahoo.co.jp/hl?a=20021109-00000011-zdn-sci
0595デフォルトの名無しさん
NGNGIterators
Anonymous methods
Partial types
さっぱりわからん??
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG匿名メソッド? どんなのなんだろ。
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGわざわざ名前をつけて定義しなくてもいい使い捨てメソッド。
イベントハンドラで効果大。
button1 = new Button();
button1.Size = new Size(96, 24);
button1.Text = "Click!";
button1.Click += new EventHandler(sender, e) {
MessageBox.Show("button1 clicked!");
}
0600デフォルトの名無しさん
NGNGhttp://www.gotdotnet.com/team/csharp/
0601デフォルトの名無しさん
NGNG激しいほどに最低なデザインセンス。
これでは、Dukeの足元にも及ばぬ。
C#の普及は、まだまだだなぁ。
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGか取得できるらしいのですが、どのボタンを押しても、MouseButtons.None
が返ってきてしまいます。
FormのClickイベントの中でやっているのですが、何が悪いのでしょうか?
0604デフォルトの名無しさん
NGNGネタ?
0605デフォルトの名無しさん
NGNGそのページの左上の手よりはマシかと。
0606デフォルトの名無しさん
NGNGMouseEventHandlerでMouseEventArgs.Buttonを見るんじゃないの?
0607デフォルトの名無しさん
NGNG質問してませんでしたっけ?一応こんなの↓見つけたんだけど、、、
役に立つなら使ってあげてくださいな。
Globalized property grid
http://www.codeproject.com/cs/miscctrl/globalizedpropertygrid.asp
0608デフォルトの名無しさん
NGNGおお サンクス(・∀・)
なるほど。ハンドラ追加する時の面倒が軽減するね。
0609デフォルトの名無しさん
NGNG使ってバッググラウンドで実行するかフォアグラウ
ンドで実行するかが選択できるのですが、これは、
どんな意味があるのでしょうか?
ファオグラウンドだと現在の処理がブロッキングさ
れるのかと思ったら、そんなことは無く、バックグ
ラウンドで動いているようなのですが、何が違うの
でしょうか?
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGこのロゴかっこいくない?
0612603
NGNGネタじゃないのですが、、、
>>606
ClickイベントだとMouseEventArgsは送られてこないのです。
で、Petzold の本読んだら、ClickイベントでもControl.MouseButtons
はスタティックに使えるので、これで、どのボタンが押されたか
は取得できますと書いてあるのですよ。
ところが、なぜか、MouseButtons.Noneしか返ってこないというわけです。
なんででしょうか?
0613デフォルトの名無しさん
NGNG実験してないから確証はないが、
Clickはマウスのボタンを離したとき(つまりイベント発生時には、
すでにボタンは押されていない)に起きるイベントだからでは?
0614デフォルトの名無しさん
NGNG自己レスです。(^^;
MainMenuのItemであるFile項目のF2キーなどでの
一発ポップアップ?はAPIを使って可能でした。
0615デフォルトの名無しさん
NGNG今まではVB使いだったので、違いに苦戦中です。
テキストボックスに入力された数字(1〜32767)をプログラム内で使用したいのですが
VBだと
dim intA as Integer // 整数型
intA = TextBox1.Text
これでintA(整数型)にきちんと代入されるんですが
C#で
int intA;
intA = textBox1.Text;
とやってもstringをintにキャストできないと言われてしまい、
inA = (int)textBox1.Text;
とやってもだめで、
object objA;
objA = (object)textBox1.Text;
int A = (int)objA;
ボックス化とかいうやつらしきものもやってみたのですがだめでした。
どうすればよいのですか?教えてください。
0616デフォルトの名無しさん
NGNG型変換メソッドはSystem.Convertクラスに用意されてる。
int intA;
intA = System.Convert.ToInt32(textBox1.Text);
0617615
NGNG教えて頂いたとおりSystem.Convertクラスのメソッドを使用したところ
無事に出来ました。ありがとうございます!
MSDNとかWebで4時間ぐらい探し続けてわからなかったのに。。
やっぱこの板はイイ(゚∀゚)
616さんありがと〜
0618デフォルトの名無しさん
NGNGこの場合はInt32.Parse( textBox1.Text )とか。
0619デフォルトの名無しさん
NGNGシステムの制限上、「char*」は残したままで考えています;-<
【VC++】
int main(int argc, char **argv)
{
char* sz;
lstrcpy(sz, argv[1]);
}
【C#】
unsafe class abc
{
public static void Main(string[] args)
{
char* sz;
????????????
}
}
0620デフォルトの名無しさん
NGNG以前は同じプログラムが動作していたのですが、何かあるんですか?
string url = "http://www.....";
WebClient wc = new WebClient();
Stream st = wc.OpenRead(url);
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift_JIS"));
Console.WriteLine(sr.ReadToEnd());
sr.Close();
st.Close();
0621デフォルトの名無しさん
NGNGWinsockコントロールを使用したときのDataArrivalイベントのようなものはないのでしょうか?
DataArrivalイベントというのは、データを受信したときに発生するイベントで
その中に受信データを処理する部分をかきます。
もし、DataArrivalイベントに代わるものがなければ
データ受信用のスレッドを別に作成して、毎回バッファをチェックするという
方法しかないうということでしょうか?
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG>以前は同じプログラムが動作していたのですが、何かあるんですか?
以前ってのはいつだよ。以前から今までに何をやったのさ。
そんな質問じゃ誰もわからんって。
0624デフォルトの名無しさん
NGNG自分自身の分しかできませんでした。
どうしたら他のウィンドウも取得できるのでしょうか?
0625デフォルトの名無しさん
NGNGコードでガリガリ書かなきゃなんないのかねぇ。
SQL文を与えて一発結合、みたいなのはできないものかな。
0626デフォルトの名無しさん
NGNGビュー作ったら?
0627デフォルトの名無しさん
NGNG普通はブロッキングするので、毎回チェックする必要は
ないと思われ。
0628621
NGNGブロッキング?
やはり別スレッドで自前でチェックするものを作らなければいけないということですか?
質問ばかりですみません。
0629デフォルトの名無しさん
NGNG一般的には、データの送受信のところは別スレッドでやった方が
いいと思われ。
TcpClient使ってやるなら、読み出しはNetworkStream.Read使うんでしょ?
NetworkStream.Readっていうメソッドはデータが来ないと、その場で処理が
止まる。なので、いちいちチェックする必要とかは無い。データが来るまで待ってて
くれるのだから。
ただ、メインのスレッドで、これを使うと、ブロッキングのため他の処理が一切
できなくなってしまう。だから、普通は別のスレッドで行うのが一般的。
0630デフォルトの名無しさん
NGNG0631621
NGNGお察しのとおり、NetworkStream.Readメソッドを使うんです。
データが来ないとその場で処理待ちするとは知りませんでした。
それなら、別スレッドでやった方がいいという意味も納得がいきます。
助かりました。
ありがとー!
0632デフォルトの名無しさん
NGNG条件分岐のこと?
それなら switch-case 文。
セレクトボックスのことなら ComboBox。
0633デフォルトの名無しさん
NGNGわざとボケてる?
>>630
Berkeley socket interface は System.Net.Sockets.Socket。
public static void Select(
IList checkRead,
IList checkWrite,
IList checkError,
int microSeconds,
);
0634デフォルトの名無しさん
NGNGhttp://www.microsoft.com/downloads/release.asp?ReleaseID=45160
0635デフォルトの名無しさん
NGNG.NET-based Avalon APIs
http://www.winsupersite.com/images/reviews/lh_alpha_031.gif
http://www.winsupersite.com/reviews/longhorn_alpha.asp
0636デフォルトの名無しさん
NGNGフォーカスが移ってしまうのですが、表示元のFormから
フォーカスが移らないようにする方法はあるでしょうか?
0637デフォルトの名無しさん
NGNGやったことないから、わかんないけど
CanFocus プロパティをFalseにすればいいのかも。
それやると不具合あるなら、根本的な解決方法じゃないけど
別FormをShow()した後に元のFormのフォーカスをFocus()で
セットし直すとか。
0638デフォルトの名無しさん
NGNG>セットし直すとか。
それだとウインドウが点滅したようになってしまうので、
だめなのです。
うーんと、つまりどんなことがやりたいかと言うと、ToolTip
のようなウインドウを表示したいのです。
なんかちょっとした情報を表示するときに、任意の位置に、
メインのウインドウのフォーカスをそのままにしてウインドウが
表示したいんですよ。
ToolTipクラスは任意の位置っていう指定ができないので、タイ
トルバー無し、枠無しのToolTipっぽいFormを作ってそれに情報
を表示してみたのですが、Show()をやったとたんにそっちのウイン
ドウにフォーカスが行ってしまうのです。
なんかいい方法ないでしょうか?
0639デフォルトの名無しさん
NGNGhttp://java.sun.com/products/jdk/1.2/ja/docs/ja/api/
の様なAPIドキュメントはないのですか?
Directory dir = new Directory("c:\\");
こう書いたら
引数を '1' 個指定できる、メソッド 'Directory' のオーバーロードはありません。
とか言われて意味がわかりません!
0640デフォルトの名無しさん
NGNGないわけない。
0641デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/ja/cpref/html/cpref_start.asp
0642親切な人
NGNGヤフーオークションで、凄い人気商品、発見!!!
プランテック製の「 RX-2000�V 」を改造済み
にした、アイティーエス製の「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/neo_uuronntya
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h5.dion.ne.jp/~gekitoku/#.2ch.net/
0643デフォルトの名無しさん
NGNGありがとうございます!
でもやっぱりnewの仕方がわからない…
0644643
NGNG0645デフォルトの名無しさん
NGNG>解説
>Directory クラスのすべてのメソッドは静的であるため、ディレクトリのインスタンスを
>作成しなくても呼び出すことができます。
0646644
NGNGここに騙された…
0647騙されたって・・・
NGNGそりゃー仕様も変わるかもだ。
ちなみに初代C♯スレが
>1 名前: 名無しさん♯ 投稿日: 2000/12/18(月) 13:06
か。
0648デフォルトの名無しさん
NGNG漏れも以前、色々試してみたが駄目でしたなぁ。
なんで、マウスポイントしたらステータスバーに説明を表示するってのにした。
0649デフォルトの名無しさん
NGNGだめでしたか、、、
これは.NET Frameworkだからだめなのでしょうか?
API直たたきならできるのでしょうか?
実際、こういうフォーカスを移さないでウインドウを表示
しているアプリケーションって結構あるのですが、どうやって
るのだろう。。。
例えば、MSNメッセンジャーとかは友達リストに登録している人
がログインすると、画面の右下に「○○さんがログインしました」
ってな感じで情報表示用ウインドウが出るけど、その時作業して
いたウインドウからフォーカスははずれないです。
あと、何のメーラだったかは忘れたのですが、新着メールが
あると、画面の下の方に新着メールのタイトルだけをそっと表示
してくれるようなソフトもありました。これもウインドウは表示
するけど、フォーカスは移動しないです。現在作業中のウインドウが
あれば操作は続行できるのです。
0650デフォルトの名無しさん
NGNGwindow開くつうか直に描画してるのだと思われ。
ディスプレイのデバイスコンテキスト取得してね。
0651デフォルトの名無しさん
NGNGよく知らないけどCBTフックを調べてみたら?
0652デフォルトの名無しさん
NGNGShowWindow APIにフォーカスを移さずに表示する選択肢があるから。
0653デフォルトの名無しさん
NGNGどこへ行けばダウンロードできるでしょうか?
0654マジレスしてみる
NGNGSDK
http://download.microsoft.com/download/.netframesdk/Install/1.0/W98NT42KMeXP/JA/setup.exe
SP2
http://download.microsoft.com/download/NETFrameworkRedistributable/Patch/2/W98NT42KMeXP/JA/NDP10_SP_Q321897_Ja.exe
0655デフォルトの名無しさん
NGNGするときに画面がちらついてしまいます。
これをちらつかせなくするのにいい方法はありますか?
いちおう複数のビットマップから一個のビットマップを
作ってそれを描画すれば解決かとも思うけど
もっときれいに楽にできる方法があれば教えてください。
よろしくお願いします。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGうぉ〜ほんとだ!!
APIのShowWindow()っていう関数だと、
> SW_SHOWNA
> ウィンドウを現在のサイズと位置で表示します。
> SW_SHOW と似ていますが、この値を指定した
> 場合は、ウィンドウはアクティブ化されません。
っていうのがありますね。
これならできそうです。C#からAPIの叩き方を調べてみます。
ありがとさんです。
でも、なんでC#では.NETではできないんですかね。
.NETヘボすぎです。。。
0658657
NGNGなんででしょう?
とりあえず、
[DllImport("user32.dll")]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
ていうメソッドを定義しておいて
Form2 form2 = new Form2();
IntPtr p = form2.Handle;
ShowWindow(p, 8);
を呼び出してみたのですが、やっぱり、表示されたウインドウがアクティブ
になって、表示もとのウインドウはフォーカスを失ってしまうようです。
ちなみに、ShowWindow(p, 8);の8という数字の根拠は、下記の定義から見つけて
きました。
/*
* ShowWindow() Commands
*/
〜省略〜
#define SW_SHOWNA 8
〜省略〜
何がダメなんでしょうか?やはり、>>650さんのいうような方法しかない?
でも、MSNメッセンジャーとかが表示しているやつはウインドウっぽいんですよねぇ、
だって、クリックできるし。。。
どうか、分かる方がいたら、おながいします。
0659658
NGNGShowWindowというAPIは
nCmdShow
ウィンドウの表示方法を指定します。アプリケーションがほかの
プログラムから STARTUPINFO 構造体を渡して起動された場合、
初めて ShowWindow 関数を呼び出したときには、このパラメータ
は無視されます。構造体が渡されていない場合、ShowWindow 関
数を初めて呼び出すときには、WinMain 関数の nCmdShow パラ
メータで取得した値を指定してください。以降の呼び出しでは、次
のいずれかの値を指定できます。
だそうです。なんで、初回起動時に1度表示してから、
このAPIをたたいてみたところ、なんと!、フォーカス無しで
ウインドウが呼べました。
でも、初回に無駄に1度表示するというのがちょっとかっこわるいような。。。
まぁ、しょうがないですかねぇ。
とりあえず、解決しますた。みなさんありがとです。
0660デフォルトの名無しさん
NGNGPaintBackground イベントをオーバーライドして何もしないようにしろ。
そしたらちらつき消える。
っていうかさ、画面の再描画時のちらつきに関する質問、多すぎ。
Users のメーリングリストで4回くらい同じ質問見たことある。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
書いてあるけど?
0663デフォルトの名無しさん
NGNGVB厨とみた。~~~~で示したところが戻り値だ。
[Visual Basic] Overloads Public Shared Function FromFile(String) As Image
~~~~~~~~
[C#] public static Image FromFile(string);
~~~~~~
0664663
NGNG0665661
NGNGjavadocには返り値の型書いてあったのに。
0666デフォルトの名無しさん
NGNG具体的に戻り値の書いてないメソッドをあげてみなよ。
どこみたって、きちんと書いてあると思うが?
例えば、String.IndexOf メソッドはこんな感じで書いてある。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfsystemstringclassindexoftopic1.htm
戻り値はintである。
書いて無いというメソッドを上記のように具体的に示してくれ。
0667デフォルトの名無しさん
NGNGもれのおかしいかも…
0668デフォルトの名無しさん
NGNG誰にだって勘違いはあるんだし。な、661
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG-―- |
〃 ヽ .|
i ノノノ))) )) | >>669も放置出来ない人ですか?
. i i ( 'l_] l]〈リノ .<
ヽヽ > /> \_____
Y/ヽ!ェl〉 /ヽ/ヽ
!! l卯 l / // /
i ll8| ! / // /
. l l「| l , ´-‐ ‐- ヽ
/!_」l|_j、 { l ,, } ぅん
. / /゙´l"ヽ > ゝ. ‐ ノ
'ーr‐ r r ´ l !
. l l. | | |
. | ! | l. |
-―-
〃 ヽ
i ノノノ))) )) / ̄ ̄ ̄ ̄ ̄
. i i ( 'l_] l]〈リノ < >>669ほうちー
ヽヽ > n/> \_____
Y/ヽ!ェl〉 /ヽ/ヽ
!! l卯 l / // /
i ll8| ! / // /
. l l「| l , ´-‐ ‐- ヽ
/!_」l|_j、 { l U } ……
. / /゙´l"ヽ > ゝ. っ ノ
'ーr‐ r r ´ ⊂ニl !
. l l. | | |
. | ! | l. |
0672デフォルトの名無しさん
NGNG====================リセット====================
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG冒険の書が消えたところで質問です。
Form1にあるテキストボックスにForm1クラス以外のクラスから
アクセスするにはどうしたらいいんですか?
class Form1
{
public System.Windows.Forms.TextBox TextBox1;
.....
this.TextBox1.Text = "ABC"; //これは普通に値を書き換えられるが
...
Class1 class1;
...
}
public class Class1
{
Form1.TextBox1.Text = "ABC"l //これができません。
}
両方とも同じ名前空間に属しているクラスです。
これを実行するとClass1の中でエラーが発生してしまいます。
Class1の中でForm1のインスタンスを作成すればアクセス
出来るような気がしますが、やり方がよくわからないうえに、
もともと Class1 はForm1クラスの中で作成して使用するものなので
Class1の中でForm1クラスのインスタンスを作成することは
出来ないような気がします。
VBだと何の問題もなくどこからでも Form1.TextBox1 の値を
変更できただけに、とても困惑しています。
教えて頂けないでしょうか?
0675デフォルトの名無しさん
NGNG{
Form1 form1 = new Form1();
Application.Run(form1);
}
form1.TextBox1.Text = "ABC";
0676674
NGNGApplication.Run の直前で自分でForm1のインスタンスを作成して
staticで保持しておけばよかったんですね!
おっしゃるとおりにやったらできました。
助かりました。どうもです〜!
0677デフォルトの名無しさん
NGNG方がいいと思うよ。
Form1の中でClass1を宣言するときに次のようにする。
Class1 class1(this);//これで、Form1自身のインスタンスを渡す
Class1では、引数としてもらったForm1のインスタンスを取って
おいてそれを使う
public class Class1 {
private Form1 form1;
public Class1(Form1 form) {
this.form1 = form;
}
public void hogehoge() {
form1.TextBox1.Text = "ABC";//これでできます
}
}
ただし、この場合TextBox1がpublicで無いとだめです。
でも、Form1のメンバに直接アクセスできるのはきもいので、
プロパティでも使って隠蔽してください。
0678デフォルトの名無しさん
NGNG0679最近はC ◆vmmZ0hhNNc
NGNG多分、メンバ一覧(xxxxMembersTopic.htm)の画面のこと言ってるのだと思うよ。
>>665でJavadocとか言ってるし。
っつぅか、確かにいちいち詳細見なければ、戻り値や引数が分からないのはJavadocに慣れた漏れもつらいです。
>>674
っつぅか、OOPについて少し勉強した方が…
インスタンスメンバとクラスメンバの違いや、スコープのことが分かってないと、これからかなり厳しいと思われます。
0680デフォルトの名無しさん
NGNGオブジェクトを返すメソッド作ったとき、
内部で例外発生した場合のリソース開放処理ってどうしてる?
public DataSet GetDataSet()
{
using (DataSet dataSet = new DataSet())
{
// データセットに値を格納する処理
return dataSet;
}
}
って書ければ、例外発生時のリソース開放漏れは防げるけど・・・
正常動作時にもDisposeされたインスタンス返しちゃうよね?
でも、実際は、これで上手く動いたりするんだな。
なんか勘違いしてますかね私。
0681680
NGNG呼び出し側でエラー出たよ。
System.ObjectDisposedExceptionって
・・・予想どうりか。
というわけで、680みたいな記述は間違いなわけね。
たとえ動いたとしてもね。
0682デフォルトの名無しさん
NGNGtry, catchじゃダメなの?
0683680
NGNG一度usingの蜜の味を覚えたら、
catchやfinally句でリソース開放なんて
いちいちやってられんよ。
catch (Exception ex)
{
&hbsp;&hbsp;if (streamReader != null)
&hbsp;&hbsp;{
&hbsp;&hbsp;&hbsp;&hbsp;streamReader.Close();
&hbsp;&hbsp;}
&hbsp;&hbsp;throw ex;
}
とか書きたくないじゃん。
0684680
NGNG"&hbsp;"をインデントに読み替えてくださいな。↑
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG>>683 な。
0687デフォルトの名無しさん
NGNGまあusingは便利だけどね。
0688デフォルトの名無しさん
NGNGしかしC++で読み込むと、ファイルの途中でまだ先があるにも関わらずそれ以上読み込めなくなります。
デバッグして読み込みが終わるところをチェックすると、おかしくなる寸前まで正常に読み込まれ(自動変数表示に表示されるクラスのデータメンバが正常)ているので、型の大きさの違いは無いはずなのです。
一方、C#でC++と同じ読み込みアルゴリズムを作り、ファイルを読み込むと最後まで正常に読み込まれました。
一体何が悪いのかわかりません。助けてください。
0689デフォルトの名無しさん
NGNG0690688
NGNG_open
_read
を使っています。
0691デフォルトの名無しさん
NGNG> ファイルを読み込むと最後まで正常に読み込まれました。
これでいいじゃん。終了。
0692688
NGNG0693デフォルトの名無しさん
NGNGという意味だと思うのだけど、688はそれとどう違うの?
0694デフォルトの名無しさん
NGNG新人レスラーですか?
0695デフォルトの名無しさん
NGNG芸名:シリアライザー
0696688
NGNGC++とC#で同じ読み込みアルゴリズムにも関わらず、C++だと読み込めなくなります。
前にも一回こんなことがあってうやむやのまま終わりました。
0697デフォルトの名無しさん
NGNG0698688
NGNG0699デフォルトの名無しさん
NGNGなんてオチだったりして。
0700688
NGNG0701デフォルトの名無しさん
NGNG逝ってください。
0702デフォルトの名無しさん
NGNG0703F
NGNGBMPがテキストになったファイルを
もう一度画像ファイルとしてピクチャーボックスに
表示するにはどうしたらいいのでしょうか?
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG次で回答がなければ質問の仕方が悪いと思え。
どうぞ。
↓
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG意味若欄
BASE64にでも変換したのか?
0709デフォルトの名無しさん
NGNGFORM1からFORM2にあるLISTBOXコントロールを操作するにはどうすればいいの?
Form2.listBox1ってやってもコンパイルでエラーが出る。
みんな暇そうにしてんだから教えてくれ
おれは今からデートなんで、夜には帰るからそれまでに回答よろ!
0710デフォルトの名無しさん
NGNG0711bloom
NGNGhttp://homepage.mac.com/bloombloom/
0712デフォルトの名無しさん
NGNG強烈な精神的ブラクラ
0713デフォルトの名無しさん
NGNGForm1にForm2のインスタンスを渡せ
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG俺は過去ログに出てた。
private static formPim _instance = null;
public static formPim GetInstance()
{
if(_instance == null)
{
_instance = new formPim();
}
return _instance;
}
ってな方法でやってますわ。
0716債務不履行の名無しさん
NGNGデートする暇があったら,過去ログ読めば?(w
0717デフォルトの名無しさん
NGNG男とデートに1票 :-)
0718709
NGNGやっぱ手コキが一番気持ちいなw
てか、マジレスついてんじゃん(ワラ
正直、期待してなかったんだけど、あんたらいい人過ぎるYO!!
これじゃあ、初心者が調子乗ってしまうぞ
まあ、なにはさておき>715感謝!!
0719デフォルトの名無しさん
NGNGArrayListにint型ポインタを格納するにはどうしたら
よいのでしょうか?
STLのVectorの場合は
vector<int*>などとやるのですが・・
0720デフォルトの名無しさん
NGNG「くわっぱ!!」と大きな声で叫ぶといいかも
0721デフォルトの名無しさん
NGNGIntPtrを使う。
0722デフォルトの名無しさん
NGNGArrayList list = new ArrayList();
list.AddRange(new int*[3]);
こんな感じでもコンパイルは通り
IntPtrとしてメモリを確保している
ようなのですが
具体的にやりたい事というのが
ArrayList list1
ArrayList list2
の2つのArrayListがあるとして
list1[0] = 10;
とするとlist2[1]も10に変化するという
ものです。もちろんその度に値をコピー
するという方法はあるのですが、list1[0]と
list2[1]のアドレスを同じにするという方法
をC++では使っていました。
IntPtrなどをうまく使えば実現可能なのでしょうか。
IntPtrの使い方がいまいち理解できていません。
0723デフォルトの名無しさん
NGNG同じインスタンスへの参照を入れておくとか。
値型だとダメだと思うのでクラスで。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/vstudio/productinfo/vstudio03/default.asp
0726デフォルトの名無しさん
NGNGあと、C# にテンプレートが追加されるのって Yukon で?
0727デフォルトの名無しさん
NGNG次(マイナー) VS 2003 = Everett
その次 テンプレート追加 = for Yukon
そのまた次 for Longhorn
0728デフォルトの名無しさん
NGNG>次(マイナー) VS 2003 = Everett
>その次 テンプレート追加 = for Yukon
http://www.zdnet.co.jp/news/0211/09/nebt_08.html
は誤報?
0729デフォルトの名無しさん
NGNGそれは文章すっ飛ばしてるから。
原文 http://zdnet.com.com/2100-1104-965046.html
それから
http://www.gotdotnet.com/team/csharp/learn/Future/default.aspx
> Anders Hejlsberg unveiled several potential language features
> for the next major release of Visual C# .NET.
だから次のメジャーリリース(for Yukon)で合ってると思うけど。
0730デフォルトの名無しさん
NGNGおまいら、VS .NETとSQL ServerとOSのコードネームごっちゃにして話すすめるなよ(w
0731デフォルトの名無しさん
NGNGオレは混乱しないように↓にならってforを付けたつもりなんだが。
http://msdn.microsoft.com/vstudio/productinfo/roadmap.asp
0732728
NGNGZDでも「future release of its Visual C# tool.」で
「include four new features」って言ってるね。
0733デフォルトの名無しさん
NGNGそうですねぇラッパークラスでも作って
やるしかなさそうです。
どーもC#ではポインタも一定ではないようなので
このあたりは難しいところです。
Delphiやってた時にはラッパークラスで独自配列
を作ってやっていましたが、ちょっとメモリが
もったいないですよね。
class TInt
{
public int Value;
}
とか作ってからobject型にしてArrayListに格納する
という事ですが、この手段を使ってもC#の場合には
最終的には値をコピーしてしまうのでしょうね(汗
Delphiではobject=ポインタ的な作りだったので楽
だったのですがね。
Delphiはともかく
やはりこういうポインタの使いまわしするアプリ
にはC++が楽ですね。
0734デフォルトの名無しさん
NGNGつうか、無意味にポインタを使いたがるのが間違いだと思う。
0735デフォルトの名無しさん
NGNGboxing/unboxingってそのためにあるんじゃなかったっけ?
0736デフォルトの名無しさん
NGNGC#でローカルユーザの追加をしたいんですけど
どうやればいいんですか?
NET USER "ユーザ名" /ADD
↑これと同じ事をC#でできませんか?
なにとぞ教えて下せぇ。
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNGたぶんWMIでも可。
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGあぁ、なんて私は馬鹿なんだろう…。
心優しい方、誰か教えてください…。
3000円の本まで買ったのに…なんかその本古かったらしい…。
0741デフォルトの名無しさん
NGNG胎児からか……。
0742デフォルトの名無しさん
NGNGどうすればいいのですか?
0743デフォルトの名無しさん
NGNG「できる! Windows98」あたりから。
0744デフォルトの名無しさん
NGNGアビバのCMから。
0745デフォルトの名無しさん
NGNG処理がstatic{}でかけたのですが、C#ではどうやるんでしょうか?
private static int hoge;
static {
hoge = 99;
}
0746デフォルトの名無しさん
NGNGstatic クラス名() {
}
0748デフォルトの名無しさん
NGNGそのstaticなコンストラクタだけを実行させることは出来る?
Javaだと、Class.forName("クラス名"); だけど。
0749デフォルトの名無しさん
NGNGJavaでも実行されないと思う
0750デフォルトの名無しさん
NGNGは?必死だな。(藁
0751デフォルトの名無しさん
NGNG?
0752デフォルトの名無しさん
NGNGスタティックイニシャライザって、VMの実装にもよると思うけど、
そのクラスが必要になったときに自動で動作するもんでしょ?
Class.forNameとかとは関係ないと思うのだが。
>748 の言ってるのはJDBCドライバとかの話かな?
0753デフォルトの名無しさん
NGNGclassのstatic initializerを使ったトリックを自慢しに来たのかな?
0754752
NGNGその辺っぽいねぇ。
あれって自身をシステム側のドライバデータベースに登録するって
処理じゃなかったっけ(DBは専門じゃないのでよく分からんです)?
だがそれにしたって、Class.forName("クラス名")を呼ぶたびに
スタティックイニシャライザが走ると思われても困る。
それじゃ全然スタティックじゃないし。
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGブラウザコンポーネントを使うと、exeファイル以外
に次のようなdllファイルが生成されますが、これは
再配布してしまっていいものなのでしょうか?
AxInterop.SHDocVw.dll
Interop.SHDocVw.dll
また、こういった情報はどこに記載されているのでし
ょうか?MSDNを上記のファイル名で検索しても何も、
出てきませんでしたが。。
0757デフォルトの名無しさん
NGNGpublic const int[] MAX_OBJECT = {1024}; // コンパイルエラー
0758デフォルトの名無しさん
NGNGシャットダウン作業を中断させてしまう問題について質問した者です。
原因がわかりましたが対処法がわかりません。
原因はFormのClosingイベントハンドラでe.Cancel = true;として
フォームを閉じないようにしていた為でした。
OSのシャットダウン時にOSがフォームを勝手に閉じようとして、Closingイベントハンドラ
の上記の行でシャットダウン処理を全てキャンセルしてしまいます。
しかも、SessionEndingイベントが発生しないので対処のしようがない状態です。
よろしくお願いします。
0759デフォルトの名無しさん
NGNG1つ目のTabPage1にはコマンドボタンを一つ、
2つ目のTabPage2にはテキストボックスを一つ配置していて、
フォームの起動時にはコマンドボタンのあるTabPage1が表示されている状態で起動します。
コマンドボタンを押すと
this.textBox1.AppendText("abcde");
というコードが実行されて、TabPage2の方にあるテキストボックスに
"abcde"という文字が押した分だけ追加されていくという内容なのですが、
ボタンを押すと
System.ArgumentOutOfRangeException: インデックスおよび長さは文字列内の場所を参照しなければなりません。
パラメータ名 : length
at System.String.Substring(Int32 startIndex, Int32 length)
at System.Windows.Forms.TextBoxBase.set_SelectedText(String value)
at System.Windows.Forms.TextBoxBase.AppendText(String text)
とエラーが出てしまい、テキストボックスに文字列が追加されません。
ところが、コマンドボタンを押す前に一度でもTabPage2のほうに切り替えてから
もう一度TabPage1に戻ってコマンドボタンを押すと正常にエラーも出ずに
処理が行われます。
プログラムを起動するたびにTabPage2に切り替えるのでは大変なので
何か解決策はありませんか?
ご教授お願いします。
0760デフォルトの名無しさん
NGNGAppendTextの変わりに
this.textBox1.Text += "abcd";
とすればよろし。なんで例外でるのかしらんけどね。
余談だがApeendText変な時あるよ。一行長すぎると途中で切れて表示されなかったり。
まったくわけのわらん動きするときがある・・・
0761ハマリ
NGNGコマンドプロンプトの画面が一瞬見えるのが凄く気に食わないのです。
WindowStyleはHiddenにしてあるにもかかわらず、しっかり表示されるのです。
例えば、ping.exeを呼び出すとします。
私がやりたいことは、『ping.exeを動かして、その出力だけを変数に格納する』
ということです。ところが、実際はpingを打っている間、黒い画面がフォーム
を覆うような感じで表示されてしまうのです・・・。
なにかご存知ないですか?
0762デフォルトの名無しさん
NGNGWin32コンソールプログラムでもダメですか?
0763デフォルトの名無しさん
NGNGWindowStyleがNormalだと表示、Hiddenだと非表示にちゃんとなるよ。
pingは試してないが入出力の問題のような?
0764ハマリ
NGNGProcess proc = new Process();
proc.StartInfo.FileName = program;
proc.StartInfo.Arguments = argument;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.Start();
output = proc.StandardOutput.ReadLine();
proc.Close();
こんな処理をやってます。ヘルプ見ながらやってたらこういう手続きに
なったのですが、、やっぱり変ですか。
0765ハマリ
NGNGコンソールが前面に表示されて(フォーカスはアクティブになってる)
その間、メインのフォームのコントロールが描画されていない。
因みにスタイルを"Minimized"にすると、一瞬前面に表示されてから
タスクバーに引っ込む感じ。実に見栄え悪い状態です。
完全にバックグラウンドで処理させたいのですが。。
0766デフォルトの名無しさん
NGNGそのコードではないが自分のをちょっと改変してping.exeでやってみた。
確かに出るね。
でもCreateNoWindowをtrueと追加したら出なくなった。
試してみて。
0767ハマリ(糸冬)
NGNG>でもCreateNoWindowをtrueと追加したら出なくなった。
さすがです。見事にでなくなりました。
どうもありがとうございます。もっとよくヘルプ見るようにします。
0768デフォルトの名無しさん
NGNGListView があってアイテムがいくつか入っています。
この状態のとき,あるイベントによってアイテムのBackColorを変更したのですが,
ListView.Update() や ListView.Refresh() ではBackColorが変わりません。
(これらのメソッドはListView自体の更新をするだけで,アイテムには関与しないってことですよね?)
今は ListView.Itemsを空にしてもう一度追加しなおしているのですが時間がかかってしまいます。
うまい方法はないでしょうか。
0769デフォルトの名無しさん
NGNG単純に、
img.MakeTransparent(transparentColor)
とするだけでは駄目なのか?
0770デフォルトの名無しさん
NGNG>今は ListView.Itemsを空にしてもう一度追加しなおしているのですが時間がかかってしまいます。
それしかない。
0771デフォルトの名無しさん
NGNGそうですか。
がまんするしかなさそうですね。
ありがとうございました。
0772デフォルトの名無しさん
NGNG右クリックするとコンテキストメニューが出るようにしてあるのですが,
クリック時に処理Aを行わせると,右クリックでコンテキストメニューが開く場合にも処理Aが行われて困っています。
0773デフォルトの名無しさん
NGNGできませんか?
すくなくとも、Update(), Refresh(),
Hide() してから Show() のどれでもいけるような・・・。
おいらの詳細モードではできてるけど。
それとももっと別の話してるのかな・・・。(?_?)
XP Professional SP1
.NET Framework 1.0 SP2だけど・・・。
0774768
NGNG同じ内容の異なるインスタンスに対してBackColorの変更を行っていました。
ListView a.Add(new ListViewItem("same"))
ListView b.Add(new ListViewItem("same"))
〜〜〜〜〜〜〜〜〜〜〜
item = a.find("same");
a.IndexOf(item).BackColor = Red;
b.IndexOf(item).BackColor = Red;
コードめちゃくちゃだけどイメージはこんな感じ。すまそ。
0775スティービーワンダー
NGNGhttp://www.microsoft.com/japan/msdn/net/books/ProgADONET/chapter10.asp
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGBinaryWriter bw;
bw.Write(x);
書きこみのこれを
BinaryReader br;
x=br.ReadInt32()
こうやって読みに、もしくは読みから書きに変換してくれるプログラムない?
いちいちリード/ライトで対応するコード書くの面倒くさくてさ。
0778777
NGNG0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGなぜOnClick
0781779
NGNGえっと,クリックされたときにOnClickが呼ばれるからなんですが・・・
右クリックと左クリックを区別したいときはMouseUp・MouseDown等を駆使するしかないのですか?
0782779
NGNGあ,もしかして「何故OnDoubleClickじゃなくてOnClickでやるのか」という意味ですか?
だとしたらなんとなくです・・・すいません。
0783デフォルトの名無しさん
NGNG780じゃないから予想だが、
OnClickメソッドでなくClickイベントで処理せんのか?
という意味だろう。
で、何かのコントロールを継承してコントロール作成中かい?
0784779
NGNGレスありがとうございます。
>OnClickメソッドでなくClickイベントで処理せんのか?
OnClickメソッドの継承とClickイベントにハンドラ追加するのとでは何か違いがあるんでしょうか?
どちらも EventArgs を受け取るようですが。
ListViewを継承したものなんですが,ダブルクリックではなくてクリックで実行したいと思ってやってみたのですが,
右クリックのときにも反応してしまうのです。
0785783
NGNGいや、継承したクラスならOn〜をオーバーライドするのでいいよ。
>OnClickメソッドの継承とClickイベントにハンドラ追加するのとでは何か違いがあるんでしょうか?
継承したクラスでの記述ならClickイベントとして記述する必要はないよ。
・・・って、よくよく考えたら
780は唐突にOnClickと言ってるんだろう。そんなことそれまでにでてないような・・・
0786779
NGNG今サイズ変更可能なパネルを作ったのですが,OnMouseDownとかを使えば>>772もできそうです。
それは後でやるとして,質問なんですがOnKey*系のイベントがおかしい気がするのですが。
以下のコードを実行してもらえませんか?OnKeyDownが呼ばれないのですが。。。
using System;
using System.Windows.Forms;
public class Test : Panel {
public Test() {
Dock = DockStyle.Fill;
}
protected override void OnKeyDown(KeyEventArgs e) {
Console.WriteLine(e);
base.OnKeyDown(e);
}
protected override void OnMouseDown(MouseEventArgs e) {
Console.WriteLine(e);
base.OnMouseDown(e);
}
public static void Main() {
Form f = new Form();
f.Controls.Add(new Test());
Application.Run(f);
}
}
0787デフォルトの名無しさん
NGNG>OnKeyDownが呼ばれないのですが。。。
動作としてはそれで正しいじゃないだろうか。
例えばLabelなどでも同じ動作で、Panel、Label、PictureBoxは
ドキュメントのPublicなイベントを見るとそこにはKey〜系がない。
TextBoxにはPublicなイベントしてKey〜系あるし。
ただ、これを裏付ける解説のあるドキュメントを見つけられんのだけど。
0788779
NGNGあ,ほんとですね。確かにPublicイベントにKey系がありませんでした。
ControlのKeyイベントにハンドラ追加したらいけるかなと思いましたがダメでした。
結局,Panel(やLabel,PictureBox等)ではKeyイベントを拾えない,ということになるのですか?
0789デフォルトの名無しさん
NGNG0790779
NGNGがびーん!そういうことですか・・・。
AxWebBrowserをPanelに追加していて,Panelが一つの単位になってますので
Panelで色んな処理をしようと思ったのですがダメみたいですね。
どうもお騒がせしました。
0791787
NGNGおれもフォーカス持たないからだろうと思ったんだけど、
CanFocusプロパティはTrue返すんだよ。
PanelはともかくPictureBoxなんかなら、WndProcをオーバーライドすれば
Key系も拾えるんではないかと予想。
でもま、FormのKeyPreview=Trueにしてそっちで処理するのがいいのかな。
0792デフォルトの名無しさん
NGNG今作ってるのはTextBox1とCustomValidatorとButtonだけの
シンプルなページで、TextBoxに入れられた文字列が数字か
どうかを判定をして、数字でなければ OnServerValidate内で
args.IsValid = falseにして元のページに戻しています。
問題なのは、数字の場合も元のページに戻して、引き続き
入力させるようにしてるのですが、前回入力値が残っており、
これを消す方法が分かりません。
ページに戻る前に ViewStateを初期化する方法とか、何らかの
解決策があれば教えてください。おながいします。
0793デフォルトの名無しさん
NGNG空要素はどのように見分ければよいのでしょうか?
XmlTextReader.IsEmptyElementだと、
<hoge />は検知できても
<hoge></hoge>は検知できないようです。
良い方法があれば教えてください。
宜しくお願いします。
0794デフォルトの名無しさん
NGNGファイル作成して内容書き込みまではできているんですが、
印刷の向きや倍率など設定する方法がわかりません。
いい方法あったら教えてください。
0795あああああ
NGNG再現性は低くて、たまにクラッシュするバグで悩んでます。
デバッグすると
『'System.NullReferenceException' のハンドルされて
いない例外が system.windows.forms.dll で発生しました。』
と出て、
[STAThread]
static void Main()
{
Application.Run(new Form1());
} ←★ココにマークが出る
こんなところにジャンプします。どこが悪いのか目星つけられないんですTT
0796デフォルトの名無しさん
NGNGVS.NETのステップ実行でデバッグしてるんだよね?
★印に飛ぶ直前に実行したコードを見るのがよいかと。
0797デフォルトの名無しさん
NGNGステップ実行なら悩まないでしょ。
0798デフォルトの名無しさん
NGNGtry
{
Application.Run(new Form1());
}
catch(NullReferenceException nrex)
{
Console.WriteLine(nrex.StackTrace);
Console.ReadLine(); //StackTraceを読み終えるまで停止させる
}
0799あああああ
NGNG報告いらんか・・いやしておこう、サゲて。
0800自己レス
NGNGValidation OK時にthis.Server.Transfer("元のページ.aspx", false);
とやるだけでOKでした。
0801デフォルトの名無しさん
NGNGC#でゲームプログラミング(DirectX)は速度的に向いてないかな?
やっぱ、C++,Cでやったほうがいいかな。
Java育ちなので、C++,Cはどうも開発効率的に非効率な気がして・・・。
処理的には、早いんだろうけど。
0802デフォルトの名無しさん
NGNGこれからはC#やVB.NETでDirect3Dするのも普通になったりすると思う。
たとえばPostPetなんかはコレで作っても問題ないだろうね。
0803801
NGNGC++やCでガリガリ書いたやつとC#で書いたものとを比べても、
パフォーマンス的にそんな劣らないのかな?
0804デフォルトの名無しさん
NGNGあとはガベコレでつっかえないかどうか。これはある程度コードを
書いてみないと判らないな。
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGプログラマが自分で組み込んだガベコレとかのほうが
時間かかってたりしてね〜
0807LoserC#
NGNGpublic class Form2 : Namespace1.Form1
と記述してデザイナを表示しようとすると
”ドキュメントを読み込み中にエラーが発生しました。”
と出ます。
またDLLを作成してフォームを継承する方法もあるのですが、
DLLの作成の仕方が分かりません。
誰かご指導お願いします。
0808795
NGNG危険なのでしょうか。
スレッド生成しないでやったらへんなバグでなくなりました。
でもスレッドでやらないと、処理中に応答なくなるしなぁ。
因みに、オカシクなるときは、データグリッドの縦方向のスクロールバー
が2本表示される(鬱
0809デフォルトの名無しさん
NGNG定番の質問かな?
ちゃんとControl.Invoke()、Control.BeginInvoke()使ってる?
0810デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/presspass/releases02/120302gdn.asp
0811デフォルトの名無しさん
NGNGあらゆるところでNETはDDEのサポートはすでになしというのを見るのですが、
今からVB6でアプリケーションを書くつもりはさらさらありません。
C#でDDEを使うことは絶対に無理ですか?もしなんか方法があったら教えて。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGDDEをラップするDLLをUnmanaged Codeで書いて、それをC#から呼ぶ。
0814デフォルトの名無しさん
NGNGthanks!
Unmanaged Code ということはC++とかでDLLを書くの?
そのラップ作業というのはDLLのメッセージの種類全部に対応させるとか、かなり大変な作業になるのかな?
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817808
NGNGthis.invokeでできるけど、自分で定義したクラスのコード内から
invokeできませんよね・・
0818デフォルトの名無しさん
NGNGMDIChildrenな子フォームにAxWebBrowserコントロールを追加しています。
ここで子フォームを Hide(), Show() させたいのですが、Show()した時に
AxWebBrowserコントロールがうまく機能せず真っ白になってしまいます。
以下にソースを載せますので、解決方法を教えてください。
0819デフォルトの名無しさん
NGNGusing System.Windows.Forms;
using AxSHDocVw;
public class Hoge : Form {
private AxWebBrowser browser = new AxWebBrowser();
private Form child = new Form();
private bool show = true;
public Hoge() {
base.IsMdiContainer = true;
this.child.MdiParent = this;
this.child.Show();
Button b = new Button();
b.Dock = DockStyle.Right;
b.Text = "表示切替";
b.Click += new EventHandler(this.Toggle);
base.Controls.Add(b);
}
protected override void OnLoad(EventArgs e) {
this.browser.BeginInit();
this.browser.Dock = DockStyle.Fill;
this.child.Controls.Add(this.browser);
this.browser.EndInit();
this.browser.GoHome();
}
0820デフォルトの名無しさん
NGNGif (this.show) {
// this.browser.Hide();
this.child.Hide();
} else {
this.child.Show();
// this.browser.Show();
// this.browser.Refresh();
// this.browser.Update();
}
this.show = !this.show;
}
public static void Main() {Application.Run(new Hoge());}
}
0821デフォルトの名無しさん
NGNGControlを使うときにInvokeしないといけないわけで、
ControlにはInvokeあるんだから問題ないと思うが。
0822デフォルトの名無しさん
NGNGItemが入っていると思われますが、
このコレクションの中から、入力されたキーワードの
前方一致で検索を行う良い方法はないでしょうか?
完全一致ならContainsメソッドで出来るのですが・・・
一行づつ取り出して調べるしかないのでしょうか?
0823817
NGNG.....自分でも低レベルなのはわかってるんです。はい。頑張ります(><
ええとですね、自作のクラスCalc.csでは計算だけをして、クラス内で
Windows.Formのメンバは使わないとします。このとき、Calcクラスで
計算した結果を逐一メインのフォーム(Form1とします)のテキストボックスに表示
するような場合、Calcクラスの中からはForm1のinvokeメソッドを呼べませんよね?
普通、こういうときはどうするんでしょうか。
やはり、new Calc(this)とかやって、派生するクラスにいちいちForm1の参照
を渡すものなんですか?
引数に、クラスの機能と直接関係ないものを渡すのがどうも。。。
0824デフォルトの名無しさん
NGNG> やはり、new Calc(this)とかやって、派生するクラスにいちいちForm1の参照
> を渡すものなんですか?
> 引数に、クラスの機能と直接関係ないものを渡すのがどうも。。。
フォーム側で
Calc c = new Calc()
int a = c.CalcMethod(); // 計算させて結果をもらう
こんな感じで計算した値をもらっちゃいけない理由があるのね?
つか、話がだんだん見えなくなってきた…。
0825デフォルトの名無しさん
NGNG計算の結果が出たらイベント発生させてその中でInvoke呼ぶのが普通。
0826823
NGNG>Calc c = new Calc()
>int a = c.CalcMethod(); // 計算させて結果をもらう
>こんな感じで計算した値をもらっちゃいけない理由があるのね?
本当はそれでもいいんです (汗
ただの変なコダワリの類ですが、ワーカースレッドを生成して、それにある処理
を任せたら、計算・経過報告のコードもワーカー側にまとめたいなと
思っていたのです(フォーム側で結果を受け取って表示ではなく)。
フォームのコード量を増やしたくないというのもあります。
>>825
なるほど。そういう手続きを踏むのが普通ということが判れば十分です。
GUIのプログラム書くのが始めてなもので、なんと煩雑な!と思いました
が、そういうものだと理解するようにします。
0827821
NGNGというか、書いていることが矛盾している。
>ええとですね、自作のクラスCalc.csでは計算だけをして、クラス内で
>Windows.Formのメンバは使わないとします。
System.Windows.Forms名前空間のクラスを使わないのだから、
そのCalc.cs内ではInvokeを使うことはない。
>このとき、Calcクラスで
>計算した結果を逐一メインのフォーム(Form1とします)のテキストボックスに表示
>するような場合、Calcクラスの中からはForm1のinvokeメソッドを呼べませんよね?
・テキストボックスに計算結果を表示したい。
・Calc.csからはコントロールを使わない。
つまり、論理的に考えて、
テキストボックス(またはテキストボックスを使用しているクラス)側
からCalc.csのクラスを利用するわけだから、そのクラスでInvokeを発行すればよい。
もう一度言う。817よ、言っていることが矛盾している。
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG子フォームのLocation.Xを+10000&-10000する方法を思いつきました。
これで解決かと思いきや,+10000等をした時にスクロールバーが反応してしまって困っています。
そこでFormの水平スクロールバーを表示しないようにしたいのですが,
class MainForm : Form {
public MainForm() : base() {
base.HScroll = false;
}
}
としたのですが,何故か水平スクロールバーが消えません。
どないすればよかとですか?
0830デフォルトの名無しさん
NGNGなんでだろう?
(setq *csharp-indent-tabs-mode* t)
と.xyzzyに書いて、*.csという拡張子を持つファイルを開くと、
「名前が衝突するためexportできません。editor::*csharp-indent-tags-mode*」
と表示されて悲しい。分かる人いません?
0831デフォルトの名無しさん
NGNG(1) Windowsフォームに System.Windows.Forms.ListView を追加します。
(2) ListView にアイテムをたくさん(1000個ほど)入れます。
(3) Release コンパイルし、Windows98 パソコンで実行します。
(4) ListViewでスクロールを繰り返します。
(5) GDIリソースを使い果たしてしまいます。
なぜでしょう?わかる人いませんか?
0832デフォルトの名無しさん
NGNGxyzzyスレで聞きなさいよ
0833デフォルトの名無しさん
NGNGまずブラウザコントロールだけを非表示にした後、少し遅らせてMDIチャイルドを非表示にして、戻すときは逆にMDIチャイルドを復元した後、少し遅らせてブラウザを復活させるというのでなんとかならないでしょうか?
0834デフォルトの名無しさん
NGNGあ,タイミングの問題なのですか。
今から学校なんで帰ってきてから試してみます。
ありがとうございます。
0835デフォルトの名無しさん
NGNGんー。3秒スリープさせてやってみましたが,やっぱりダメでした。
>>819-820 のソースで
public void Toggle(object sender, EventArgs e) {
if (this.show) {
this.browser.Hide();
System.Threading.Thread.Sleep(3000);
this.child.Hide();
} else {
this.child.Show();
System.Threading.Thread.Sleep(3000);
this.browser.Show();
}
this.show = !this.show;
}
としてみたところ
した。
0836デフォルトの名無しさん
NGNGat System.Windows.Forms.AxHost.EnsureWindowPresent()
at System.Windows.Forms.AxHost.MakeVisibleWithShow()
at System.Windows.Forms.AxHost.SetVisibleCore(Boolean value)
at System.Windows.Forms.Control.set_Visible(Boolean value)
at System.Windows.Forms.Control.Show()
at Hoge.Toggle(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
でした。
0837デフォルトの名無しさん
NGNGその親コントロール(今回はForm)がShow&Hideされると
AxWebBrowserは対応できないようです。
解決策を知ってる方がいらっしゃれば宜しくお願いします。
ついでと言ってはなんですが, >>829 ができればもうそっちでやるつもりなので
あわせて宜しくお願いします。
0838デフォルトの名無しさん
NGNG↓の現象が起きてるのかな?どうも1.1でも再現するみたいね。
http://www.dotnet247.com/247reference/msgs/9/45348.aspx
0839デフォルトの名無しさん
NGNG子ウィンドウの分バーが1個増えてるね。
0840デフォルトの名無しさん
NGNGその子ウィンドウを最大化すると・・・
0841840
NGNGこっちではひどいことになってる。(藁
とりあえずソース載せとこ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=57&fi=no
0842ご教授くださいませ
NGNG0843デフォルトの名無しさん
NGNG.NET Frameworkではグローバルフックはできない。
http://support.microsoft.com/default.aspx?scid=kb;en-us;318804
0844ご教授くださいませ
NGNG0845デフォルトの名無しさん
NGNG>>838
ほんとですね。
but the browser window is permanently attached to the upper left corner of my desktop
ってどういうことなんでしょう?左上コーナーとは?
>>819-820 のソースでは何もでないのですが。
# このソース実行してみたかったんですが System.Resources.MissingManifestResourceException が出てしまいました
# 勉強不足ですね。
>>839,>>841
これは>>838の現象ですか?
>>819-820 ではタスクバーには増えていないようです。
うーん。やはり>>829しかなさそうな悪寒・・・。
0846デフォルトの名無しさん
NGNGあ,すいません。訂正です。
>but the browser window is permanently attached to the upper left corner of my desktop
>ってどういうことなんでしょう?左上コーナーとは?
>>841さんのコードで分かりました。
0847卑怯者
NGNG{
if(this.MdiChildren.Length > 0)
{
Form activeForm = this.ActiveMdiChild;
visibleManager.Push(activeForm);
this.ActiveMdiChild.Region = new Region(new GraphicsPath());
}
}
private void menuShow_Click(object sender, System.EventArgs e)
{
if(visibleManager.Count > 0)
{
Form activatingForm = (Form)visibleManager.Pop();
if(activatingForm != null)
{
activatingForm.Region = null;
}
}
}
0848デフォルトの名無しさん
NGNGうおおおおおおおおおおおおおおおおお!できてる!
ありがとうございます!
Formを保存しておいて消し去るんですか。
全然思いつきませんでした。
# というかRegionプロパティなるものを初めて見ました。
0849デフォルトの名無しさん
NGNGインポートしない場合に呼び出し規約を指定する方法はありますでしょうか?
cdecl規約のコールバックの作り方がわからなくて悩んでいます。
0850デフォルトの名無しさん
NGNGFFFTPで数日前から画像のみアップできなくて困ってます!
解決策を教えていただけませんか?
0851デフォルトの名無しさん
NGNG謝れば何をやってもいいのか?
反省だけならサルでもできる。
お前はサル以下だな。
0852デフォルトの名無しさん
NGNGアホか。本当に反省してると思うのか? あれはタダの芸だ。サルには反省などできん。
0853デフォルトの名無しさそ
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさそ
NGNGなんだ、本人か。(w
0856デフォルトの名無しさん
NGNGガイドラインに素直に従えば
・攻撃
Attack = 攻撃するメソッド
Attacking = 攻撃しますよイベント
OnAttack = 攻撃しましたメソッド
Attacked = 攻撃しましたイベント
・攻撃される
BeAttacked = (以下同様)
BeingAttacked
OnBeAttacked
WasAttacked
ってーなんか OnBeAttacked とか WasAttacked とかめちゃくちゃいやなんでどうしようか迷ってそうだ、ちょうどいいイベントがあるじゃないかとコントロールがクリックされた時のイベント見てみるまでもなく Click とかなってるし。
どうやったら「クリックされた」が Click の一語に集約されるのか甚だ疑問ってゆーかじゃぁすでに Attack を使ってしまってる俺はどうすればいいのよ。
で .NET Framework の命名ガイドラインがどこかおかしいことはこの際置いといて俺のためのナイスなメソッド名ってないかな・・?
0857デフォルトの名無しさん
NGNGBeginAttack
OnAttack
EndAttack
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGhttp://www.objectwatch.com/issue_42.htm
0860デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1035362308/
#まあでも.NET命名は特殊だからC#スレで聞くほうがいいのかな。
0861デフォルトの名無しさん
NGNGバイナリファイルのダウンロードで行き詰まっています。
BinaryReaderから読み込む際にストリームの最後の判別が出来ず
現在以下の様な例外を使った方法で動かしています。
これをもっと上品に行うことは出来ないでしょうか?
System.Net.Sockets.NetworkStream NS = this.GetNetworkStream();
System.IO.BinaryReader BR = new System.IO.BinaryReader(NS);
System.IO.FileStream FS = new System.IO.FileStream(LocalFile,FileMode.Create);
System.IO.BinaryWriter BW = new System.IO.BinaryWriter(FS);
byte b;
while (true) {
try {
b = BR.ReadByte();
BW.Write(b);
} catch {
break;
}
}
BW.Close();
FS.Close();
BR.Close();
0862デフォルトの名無しさん
NGNGおいおい。
EndOfStreamException ストリームの末尾に到達しました。
って書いてあろうが。
ms-help://MS.NETFrameworkSDK.JA/cpref/html/frlrfSystemIOBinaryReaderClassReadByteTopic.htm
0863デフォルトの名無しさん
NGNGあと1バイトずつだと多分遅いぞ。
0864861
NGNGレスありがとうございます。
プログラムを始めたばかりで詳しくないのですが例外を使って
判別するのは悪い事では無いのでしょうか?
また、何バイトずつ読むのが適当でしょうか?
0865デフォルトの名無しさん
NGNG>・攻撃される
> BeAttacked = (以下同様)
攻撃されるメソッドって・・・
> BeingAttacked
BeUnderAttack
> OnBeAttacked
OnBeUnderAttack
> WasAttacked
・・・
0866デフォルトの名無しさん
NGNG> >>861、863
> レスありがとうございます。
> プログラムを始めたばかりで詳しくないのですが例外を使って
> 判別するのは悪い事では無いのでしょうか?
> また、何バイトずつ読むのが適当でしょうか?
上の例じゃ読み込み終了で終わったのか、ほかの例外で終了したのかわからんべ。
素直にStream.Read(.....)でバッファに読み込んでいったら?
戻り値がゼロになったところで終了判定。
バッファサイズは俺もどのくらいが適当なのか判らないけれど
ネットワークが遅けりゃ1〜2KB、速けりゃ32KBぐらいの感じで考えてるが…
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG0869
NGNG覚えが。本当ですか。
0870デフォルトの名無しさん
NGNGよってIISのアドオンであるところのASP.NETは動かない。
VS.NET自体は問題なく動いてるよ。
0871デフォルトの名無しさん
NGNG(何こいつ・・・)
0872デフォルトの名無しさん
NGNG0873861
NGNGありがとうございました。上手く行きました。
System.Net.Sockets.NetworkStream NS = this.GetNetworkStream();
System.IO.BinaryReader BR = new System.IO.BinaryReader(NS);
System.IO.FileStream FS = new System.IO.FileStream(LocalFile,FileMode.Create);
System.IO.BinaryWriter BW = new System.IO.BinaryWriter(FS);
int int1 = 0;
byte[] B = new byte[4096];
while ((int1 = BR.Read(B,0,4096)) > 0) {
BW.Write(B,0,int1);
}
BW.Close();
FS.Close();
BR.Close();
0874デフォルトの名無しさん
NGNGきっとそうやって「俺わかるよ。ほらこうするんでしょ。」ってコード書いてくれる奴を
釣ろうとしてるんでしょ。
0875デフォルトの名無しさん
NGNGレスありがたおうよ。
ガイドラインによればBeginとEndは使っちゃダメなのよ。
これらは一般に非同期実行のときに使用されるから混乱を避けるためにイベントでは使用するべからずなりよ。
受け身のメソッドってのは変な感じかもしれないけどポリモーフィズムを考えれば必須だよね。
UnderAttack参考にさせてもらうよ。
0876デフォルトの名無しさん
NGNG>受け身のメソッドってのは変な感じかもしれないけどポリモーフィズムを考えれば必須だよね
どう必須なの?
「攻撃される」はイベントであって、その中で発行する「攻撃される」側のメソッドは
「守備をする」とかではないの?
0877デフォルトの名無しさん
NGNGいいや、いもしないのに釣れるわけねーじゃん。
0878デフォルトの名無しさん
NGNGだからそれはDllImportが使える場合ね。
コールバックはデリゲートだから、DllImportは使えないんだよ。
まあ、わかんなくてもしょうがないよ。
俺でも一日悩んだんだから、君たちには難しすぎたね(藁
とりあえず解決したから、もう答えてくれなくても全然かまわないよ。
もし、どうやるのかどうしても知りたい奴がいるなら、
ちゃんと礼儀正しく頼めば、気が向いたら教えてやるよ。
まあ、お前らのレベルじゃ必要ないからいないだろうけどね(藁
0879デフォルトの名無しさん
NGNG結果を先に渡した文字列の部分を指すポインタ(char* -> IntPtr)入りの
構造体で返してもらってるんだけど、この元の文字列(byte[])が
予期しないタイミングでガベコレに巻き込まれて
アドレスを移動されてしまう。
すると、返してもらった構造体内のIntPtrは、アドレス移動に
追随出来ず、無効な領域を指してしまうんだけど、これを防ぐ方法有る?
0880デフォルトの名無しさん
NGNG「釣ろうとしてる」んでしょ。日本語大丈夫?
0882デフォルトの名無しさん
NGNG俺じゃねーってw
0883デフォルトの名無しさん
NGNGそれを見ていた与作は、「何を釣ろうとしてるんですか?」と尋ねた。
するとご隠居は「部屋の中で魚が釣れるわけないだろう。まったくお前は粗忽だねぇ」と答えた。
すると与作は「釣れるかどうか聞いたんじゃなくて何を釣ろうとしてるか聞いたんですよ。日本語大丈夫?」
と尋ねた。
かくして与作はいつも通りみなの笑い者になりましたとさ。
お後がよろしいようで。
0884デフォルトの名無しさん
NGNG必死だなw
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGえーっと。釣り場(2ちゃんねる)で釣りしているのと
釣り場じゃないところ(室内)で釣りしているのとは話が
違うと言いたかったんですか? それとも>>883自体が釣り餌ですか?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG釣れるのは与作ばかりだから、釣れたなんて台詞はとてもとても。
0889デフォルトの名無しさん
NGNG?
良く分からんが888ゲットおめ。
0890デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGpinningでヘルプ引いてみ
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNGお前みたいな粘着厨房は放置ということで終了
0895デフォルトの名無しさん
NGNGはあ?俺一回しか書いてないんだけど。。。まあいっか。
0896デフォルトの名無しさん
NGNG能動か受動かって単に文法上の問題だから。
たとえば怪我をするって日本語だと能動だけど英語にすれば be injured とかだし。
どっちにしてもC#は他のクラスのイベントを呼び出すことが出来ないからそのイベントを起動するためのメソッドが必要なんだよね。
攻撃されたときの WasAttacked イベント内で防御とかいろいろするにしてもまずそのイベントを発行するための BeAttacked メソッドが必要って感じかな。
0897デフォルトの名無しさん
NGNGXP HOMEは
VS.NETでのASP.NET開発→×
WebMatrixでのASP.NET開発→○
0898デフォルトの名無しさん
NGNGなぜNSからFSに直に書き込まぬ?
0899デフォルトの名無しさん
NGNG関数を作る方法なら過去スレにガイシュツ。当時はスゲーのがいたもんだ。
0900デフォルトの名無しさん
NGNGすごくねーよ。
そんなの初歩の初歩だ。DllImportAttributeを使えばいいだけだろうが。
コールバックの場合はデリゲートを使って作らなくちゃいけないから、
DllImportAttributeが使えねーんだよ。
ちなみに、どこが意味わからねーんだ?
cdeclもコールバックもデリゲートも常識的な用語だろ。
0901879
NGNGGCHandleのpinningと組合わせて解決出来たよ。
ありがとヽ(´ー`)ノ
0902デフォルトの名無しさん
NGNGおいおい、過去ログみたのか?みてからいえよクソボケ。
DllImportなんてどこにも書いてねーよ。おめーdumpbin /exportの意味がわかんねーんだろ。
0903デフォルトの名無しさん
NGNG見てから謝りに来い。
0904配列としてのインスタンス作成に関して
NGNGprivate static CSrc[] src;
src=new CSrc[]{new CSrc(),new CSrc(),new CSrc(),new CSrc(),new CSrc()};
と書いたのですが、この方法は見た目、うざいです。
どなたか、もっとすっきりした記述方法はご存知ないでしょうか
0905デフォルトの名無しさん
NGNG0906配列としてのインスタンス作成に関して
NGNG自己レスですが、
src=new CSrc[10];
for(int i=0;i<src.Length;i++)
{
src[i]=new CSrc();
}
で解決してました。
でも、上様の処方がより簡潔です。
お知恵お借りいたします。
どうもでした
0907配列としてのインスタンス作成に関して
NGNGforeach(CSrc i in src)
って、やると、iって読み取り専用?
従って、割り当て不可?
ちょっと渡来しましたが、できませんでした。
いかがでしょうか。
0908デフォルトの名無しさん
NGNG905のようなあんぽんたんが発生しないように読取専用にしてあります。
たとえ読取専用にしなくても代入は無意味でしょ。
ところで
ms-help://MS.MSDNVS.1041/cpgenref/html/cpconstaticfieldnamingguidelines.htm
このへんによると静的フィールドには名詞の省略形を使用し、
なおかつハンガリー記法で書くべきなんだそうだ。
すなはち
↓ハンガリアン
StrAppName
↑省略
おまいら実践してますか?
俺はしてませんが。
0909デフォルトの名無しさん
NGNGハンガリアソなんか糞食らえだ。
0910デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconusingcallbackfunctions.asp?frame=true
検索したらすぐ見つかったけどこういう事じゃないのかな?
878で言ってるのはどういう事だろう?DllImport使わないわけでもないような。
あと、Part4の528,529はコールバックとは全然関係無さそうだけど…。
0911デフォルトの名無しさん
NGNGこれでチェックすべし。
http://gotdotnet.com/team/libraries/
0912デフォルトの名無しさん
NGNGhttp://discuss.develop.com/archives/wa.exe?A2=ind0212a&L=dotnet-web&T=0&F=&S=&P=6733
0913デフォルトの名無しさん
NGNGWeb Services Enhancements 1.0 for Microsoft .NET
http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/002/108/msdncompositedoc.xml
0914913
NGNG0915905
NGNG普段使ってないのに書き込むもんじゃないなぁ
0916904
NGNG0917デフォルトの名無しさん
NGNGおいおい、そこに書いてあるようなことなら、DllImportでできるっつってんだよ。
>>910
おいおい、呼び出し規約変えてねーじゃんかよ。
まったくバカばっか。
0918デフォルトの名無しさん
NGNGうーん、君は何がしたいのかほんとにワカラナイ。Cでいいから例を書いてくれ。
それみて考える。
0920910
NGNGReflectionで読み取ろうとしたとか?
しかし放置されたのをきちんと我慢出来ない人なんだね。
0921ななし
NGNG謝罪と賠償を(ry
0922デフォルトの名無しさん
NGNG謝罪と賠償を(ry
0923デフォルトの名無しさん
NGNGcdecl delegate
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=cdecl+delegate&lr=
.NET 247 Newsgroup - Callback function using C calling convention.
http://www.dotnet247.com/247reference/msgs/17/87210.aspx
DllImportした関数へのコールバック関数の渡し方と制約について
コールバック関数の実装
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingcallbackfunctions.asp
DllImport 属性の使用
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcwlkSysimportAttributeTutorial.asp
managed C++ではどうなるのかちょっとわからん
The Code Project - Implementing Callback functions using IJW (avoiding DllImport) - Managed C++
http://www.codeproject.com/managedcpp/cbwijw.asp
プラットフォーム呼び出しサービス
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmxspec/html/vcmg_PlatformInvocationServices.asp
人を馬鹿にする前にNicolas Faucher氏くらいの問題説明を求む。
0924デフォルトの名無しさん
NGNGレベルが低いのはしょうがないが、とりあえず理解できないなら黙ってろよ。
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGバカ(藁
早くCで例を書いてくれよ。バカ(藁
cdeclとか言ってんのにCで例が書けないわけないよな?バカ(藁
0927デフォルトの名無しさん
NGNG歳末助け合いの季節だ。誰か924の昇天を助けてやってくれ(w
0928デフォルトの名無しさん
NGNG>コールバックはデリゲートだから、DllImportは使えないんだよ。
って書き方するから皆混乱してるんじゃないか?
DllImportAttributeが使えないって話だったよな。
0929デフォルトの名無しさん
NGNGうん。
0930デフォルトの名無しさん
NGNGでもその同じ878で「コールバックはデリゲート」という意味不明なことが書いてあるね。
コールバックはデリゲート。
「デリゲートはコールバックとして利用できる」ではなく、
「コールバックはデリゲート」。
コールバックはデリゲートじゃないよ。お馬鹿さん。プ
0931デフォルトの名無しさん
NGNG俺は理解しました。
コールバックはデリゲート、正しいです。
一人騒いでるやつがやりたいことは、DllImportすることがメインなのではなく、
その DllImport した関数に対して、cdecl のコールバック関数を渡してやりたいのです。
コールバックに渡すのはデリゲートなので DllImport は使えません。
Windows API で使われてるコールバックは stdcall で、
.NET のコールバックは自動的にこれの関数ポインタに変換される。
ところが、今使おうとしてる関数が要求しているコールバックは cdecl だ、さて困った。
と言うことじゃないでしょうか。
俺は C++ でアダプターを一本挟むことを提案します。
0932931
NGNG↓
.NET のデリゲートは自動的にこれの...
意味不明だ(;´Д`)
0933デフォルトの名無しさん
NGNG漏れもそうだと思った。でもそれのやり方なら>>923さんの.NET 247へのリンクで解説されている。
それをコイツは924で「全然違うよバカ」とのたまわった。
過去ログの参照も指摘されていたが、そこにもC#単独では無理だがILをいじれば可能とされている。
それをコイツは917で「DllImportでできるっつってんだよ」とのたまわった。
だから931さん、それは違うんだ、きっと。もっときっとすごいことなんだ。
それから、コールバックはデリゲート使わなくたって実現できるから、
「コールバックはデリゲート」は正しくない。
0934284
NGNG両方とも頻繁にそのファイルにアクセスするのでファイルの読み書きの競合が発生する。
それで、その sr= File.OpenText(....);があるブロックにtry{}で囲み、 finally{}で後処理をしてエラーがでても中断しないようにしたつもりが、まだ同じエラーがでてくる。
もう理解不能なのでだれか説明してくれませんか?
0935934
NGNGエラーを拾って構造的な処理をしたいのではなくて、ただそのエラーが出るのが分かっているので無視して処理を進めたいということです。
0936デフォルトの名無しさん
NGNGListViewクラスはデータをListView内に保持するので、自作クラスにデータを持っていると
データの2重管理になってしまいます。
Model/Viewのような感じにしたいのですが、そういった考えは古いのでしょうか?
0937デフォルトの名無しさん
NGNGListView以外にViewを持つ可能性があるなら、Model/Viewにして
データを二重持ちにしたほうがいいだろうねえ。
その可能性がないならListView派生クラスにボッコボッコ埋め込む。
0938デフォルトの名無しさん
NGNGtry{}catch{}finally{}
catchしる。
0939936
NGNGどうもです。
リストビューで使うデータは他の表示でも使うので、どうしようかと。。
2重にするとデータの入れ替えとか起きたときに整合性を保つのが大変っぽい。
やっぱリストビューを表示とデータ管理クラス両方の役にするのがいいっぽいかな。
0940デフォルトの名無しさん
NGNG他のViewがあるなら、迷わず二重持ちにするけどなあ・・・
その、他のViewが参照のみで、操作をしないのであれば、
ListViewがデータ管理役になっても大丈夫かな?
0941934
NGNG特にしたい処理がなければfinallyだけで良いと思っていたんだけど。
空のcatchでやってみます。thanks
0942デフォルトの名無しさん
NGNGキャッチしないと例外が外に飛び出てっちゃうよ
0943934
NGNGtry-finally だけの構文もありと書いてあったので、一番一般化されたエラー処理はこれなのかなと思っていました。
それはなんのためにあるの?
0944デフォルトの名無しさん
NGNG漏れはそのtry-finallyは使わないけど
メソッド使用してる側でcatchすれば用が足りる時、使えるかもね
でも
try{}catch(Exception error){ throw error;}finally{}
ってしたほうがわかりやすいと漏れは思ってる。あくまで漏れの考えだけどね・・・
0945デフォルトの名無しさん
NGNGそいやbefore/Afterパターンってのにも使えるねtry-finallyは。
http://www.hyuki.com/dp/dpinfo.html#BeforeAfter
0946デフォルトの名無しさん
NGNG迷わずModel/Viewにするのがいいんでは?
データは一元管理にしないといかんでしょ
そうしないと、いわれてるように更新、同期の管理など大変に.
ListViewだとどう実装するのかは知らないんですが、オーナードローになるのかな?
マスひとつひとつをセルとすると必要なセルの表示時にデータを見に行って表示って感じか
0947名無しさん♯
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1039646808/l50
0948デフォルトの名無しさん
NGNGここはC#のスレであって、C++のスレじゃないぞ。
ちなみに俺は解決した。
他にできる奴はいねーの?(藁
0949デフォルトの名無しさん
NGNGパターン名で言ったらなんだい?
0950デフォルトの名無しさん
NGNG俺できるよ。でもそんなひれくれた聞き方するやつになんか教えない(藁
0951デフォルトの名無しさん
NGNG嘘つくな。お前にできるわけねーだろ。
本当だと言い張るんならソース見せてみろ。
0952デフォルトの名無しさん
NGNG嫌。出来ないと思われても良いよ。見せるよりマシ。
0953デフォルトの名無しさん
NGNGはったりプ。
0954デフォルトの名無しさん
NGNGばかじゃねーの。いいかげんにしろ。
0955デフォルトの名無しさん
NGNG次スレ立てろヴォケ
0956デフォルトの名無しさん
NGNGわかりました。
0957&diamonds;
NGNG立ってるよ
0958デフォルトの名無しさん
NGNG0960picty
NGNGどの関数を使ったらよいかわかりません。どなたか教えていただけませんか?
0961デフォルトの名無しさん
NGNGそれに質問も漠然としてるね。信号とはなんだろう。
C#、.Netで一定時間毎に何か処理させたいときはタイマーをフォームに貼り付けて、イベントハンドラを書くというのがやり方だけど。
0962デフォルトの名無しさん
NGNGMyStruct s = new MyStruct( Hogehoge );
SomeNativeMethod( new IntPtr( &s ) );
// MyStruct preventOptimizing = s; // コメントはずすと正しく動くよ
ってな感じで、メソッドに渡すだけの構造体を使うと、
最適化で消滅して正しく動かなくなるんだよねぇ。
アドレス取ってるんだから最適化しても残さないといけないと思うんだけど。
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNGstructはガベコレされません。
0970
NGNGこれきついね。APIに渡すための構造体を wrap するクラスは全部 pin
するってこと。。。?
0971デフォルトの名無しさん
NGNGいや、それはstructの使い方が間違っているってことだろう。
アドレスをメソッドに渡したらアドレス(32ビット数値)が残っているだしょ。
IntPtrにキャストしてるんだから。
素直にヒープに取ればいいじゃん。ちなみにpinは関係ないよね。
0972962
NGNGいえ、実は構造体は Win32 の RECT で、メソッドは DirectX の LockRect なんですけどね。
このメソッドはその場で RECT を参照するだけなのでスタックに取っても大丈夫なはずなんです。
ちなみに preventOptimizing への代入を、メソッドを呼ぶ前に持ってきても正しく動きました。
IL 見てないので正確ではないかもしれませんが、アドレス演算子以外の何らかの形で一度も参照されないと変数自体が削除されるみたいなんです。
0973デフォルトの名無しさん
NGNGうー、そうですか。DirectXは全然わからないので、IL見せてください。
ちなみにこんなコードで実験してみましたが、結果はちゃんと3が返りました。これじゃ実験になってないですか?
-- DLL(cl dll2.cpp /LD)
extern "C" __declspec(dllexport) int WINAPI SomeNativeMethod(CONST RECT* ptr) {
RECT r;
CopyMemory(&r, ptr, sizeof(RECT));
return r.left + r.top;
}
-- Main(csc /unsafe /optimize+ /debug- Class1.cs)
class Class1 {
struct MyStruct {
internal int left;
internal int top;
internal int right;
internal int bottom;
internal MyStruct(int l, int t, int r, int b) {
left = l;
top = t;
right = r;
bottom = b;
}
}
[System.Runtime.InteropServices.DllImport("C:\\dll2.dll", EntryPoint="_SomeNativeMethod@4")]
unsafe static extern int SomeNativeMethod(IntPtr ptr);
0974デフォルトの名無しさん
NGNG[STAThread]
unsafe static void Main(string[] args) {
MyStruct s = new MyStruct(1,2,3,4);
int i =SomeNativeMethod( new IntPtr( &s ) );
Console.WriteLine(i);
// MyStruct preventOptimizing = s; // コメントはずすと正しく動くよ
}
}
0975962
NGNGD3DLOCKED_RECT lockedRect = new D3DLOCKED_RECT();
RECT rect = Win32Methods.RectFromLTWH( 0, 0, size.Width, size.Height );
texture.GetSurfaceLevel( 0 ).LockRect( ref lockedRect, new IntPtr( &rect ), 0 );
//RECT preventOptimizing = rect;
/*
size にはテクスチャのサイズが入っています。
texture.GetSurfaceLevel( 0 ) で、テクスチャの最上位サーフェイスを取得して、
それをロック、ロックされた領域の情報(アドレスとピッチ)を D3DLOCKED_RECT に受け取ります。
*/
0976962
NGNG// lockedRect
IL_020e: ldloca.s V_7 // ← lockedRect は V_7 に割り当てられる
IL_0210: initobj [Interop.DxVBLibA]DxVBLibA.D3DLOCKED_RECT
// rect = Win32Methods.RectFromLTWH(...)
IL_0216: ldc.i4.0
IL_0217: ldc.i4.0
IL_0218: ldloca.s V_0 // ← V_0 には size が入っている
IL_021a: call instance int32 [System.Drawing]System.Drawing.Size::get_Width()
IL_021f: ldloca.s V_0
IL_0221: call instance int32 [System.Drawing]System.Drawing.Size::get_Height()
IL_0226: call valuetype [Interop.DxVBLibA]DxVBLibA.RECT Win32Methods::RectFromLTWH(int32,
int32,
int32,
int32)
IL_022b: stloc.s V_8 // ← rect は V_8 に割り当てられる
0977962
NGNGIL_022d: ldsfld class [Interop.DxVBLibA]DxVBLibA.Direct3DTexture8 Sprites.CartoonMeshRenderer::texture
IL_0232: ldc.i4.0
IL_0233: callvirt instance class [Interop.DxVBLibA]DxVBLibA.Direct3DSurface8 [Interop.DxVBLibA]DxVBLibA.Direct3DTexture8::GetSurfaceLevel(int32)
// LockRect
IL_0238: ldloca.s V_7 // ← V_7 の lockedRect と
IL_023a: ldloca.s V_8 // ← V_8 の rect を渡した IntPtr と
IL_023c: newobj instance void [mscorlib]System.IntPtr::.ctor(void*)
IL_0241: ldc.i4.0 // ← 定数の 0 を使って LockRect を呼び出す
IL_0242: callvirt instance void [Interop.DxVBLibA]DxVBLibA.Direct3DSurface8::LockRect(valuetype [Interop.DxVBLibA]DxVBLibA.D3DLOCKED_RECT&,
native int,
int32)
ちなみに最後の preventOptimizing への代入は見事に消滅していました。
が、rect は無事 LockRect に渡されているので正しく動きます。
0978962
NGNGほとんど同じですが。
// lockedRect
IL_020e: ldloca.s V_7
IL_0210: initobj [Interop.DxVBLibA]DxVBLibA.D3DLOCKED_RECT
// rect = Win32Methods.RectFromLTWH(...)
IL_0216: ldc.i4.0
IL_0217: ldc.i4.0
IL_0218: ldloca.s V_0
IL_021a: call instance int32 [System.Drawing]System.Drawing.Size::get_Width()
IL_021f: ldloca.s V_0
IL_0221: call instance int32 [System.Drawing]System.Drawing.Size::get_Height()
IL_0226: call valuetype [Interop.DxVBLibA]DxVBLibA.RECT Win32Methods::RectFromLTWH(int32,
int32,
int32,
int32)
IL_022b: pop // ←なぜか pop してしまう。 RECT は V_8 に割り当てられず綺麗さっぱり消滅します。
0979962
NGNGIL_022c: ldsfld class [Interop.DxVBLibA]DxVBLibA.Direct3DTexture8 Sprites.CartoonMeshRenderer::texture
IL_0231: ldc.i4.0
IL_0232: callvirt instance class [Interop.DxVBLibA]DxVBLibA.Direct3DSurface8 [Interop.DxVBLibA]DxVBLibA.Direct3DTexture8::GetSurfaceLevel(int32)
// LockRect
IL_0237: ldloca.s V_7
IL_0239: ldloca.s V_0 // ← なぜか size を渡す。
IL_023b: newobj instance void [mscorlib]System.IntPtr::.ctor(void*)
IL_0240: ldc.i4.0
IL_0241: callvirt instance void [Interop.DxVBLibA]DxVBLibA.Direct3DSurface8::LockRect(valuetype [Interop.DxVBLibA]DxVBLibA.D3DLOCKED_RECT&,
native int,
int32)
と言う感じで、rect が無くなって、指定してもいない size が渡されていました。
rect が無くなるのは最適化の影響ということで仕様としてもいいのですが、
その副作用で size が渡されるのは明らかにバグではないかと思うのですが。
# 下手するとセキュリティホールになり兼ねない気が...
ちなみに、この部分以外にも、構造体のアドレスを渡すところではだいたい再現してました。
0980デフォルトの名無しさん
NGNG再現しませんでした。唯一書けなかったのはWin32Methods.RectFromLTWHなんですが、
これ何ですか?ILとしてもこの部分(の次)で妙なPOPが起きているようですが。。。
とりあえず自分でこんなのを作ったのですが、これを使って、無駄な代入をコメントアウトしても、
こちらでは正しいILのほうが生成されています。
class Win32Methods {
internal static RECT RectFromLTWH(int l, int t, int w, int h) {
RECT rect; rect.left = l;
rect.top = t; rect.right =w; rect.bottom = h;
return rect;
}
}
0981962
NGNG問答無用で最初のローカル変数が表示されるようです。
どうやら結構複雑な問題のようで、アドレスを取るだけでは問題は発生せず、
それより前に out パラメータを使ったメソッドを呼び出していると起こるようです。
それが必須条件なのかどうかはわかりませんが。
using System;
using System.Runtime.InteropServices;
public class Class1{
[STAThread] static void Main(string[] args){
int valueToShow = 1024; // なぜかこの値が表示される、数字は何でも良い
int preventOptimizing = valueToShow; // 最適化で消滅するのを防ぐ
// ↑この2行は無くてもかまわない、無い場合は
// ↓ の dummy が表示されるだけ、とにかく最初のローカル変数が表示される。
object dummy; // 型は object である必要はまったく無い、値型でも参照型でも
Dummy( out dummy ); // かまわないが、とにかく out パラメータで渡す。
unsafe{
int valueWantToShow = 1; // 表示されない
// int preventOptimizing2 = valueWantToShow; // しかしこの行を使えば正しく表示される。
ShowValue( new IntPtr( &valueWantToShow ) );
}
}
// 何でも良いがとにかく out で受け取る、代入しないとエラー出るのでとりあえず null をいれておく
// 代入する値は何でもかまわない。
static void Dummy( out object o ){ o = null; return; }
// ポインタの先の値を表示
static void ShowValue( IntPtr p ){
Console.WriteLine( "value = "+Marshal.ReadInt32( p ) );
}
}
0982デフォルトの名無しさん
NGNGうー、コピペして、.NET Framework 1.0 RTM、SP2、1.1 Final Betaで
試しましたが、いずれもValue=1でした。。。。
0984デフォルトの名無しさん
NGNGのところを
fixed(int* p = &valueWantToShow){
ShowValue(p);
}
にしたらどう?
レス数が950を超えています。1000を超えると書き込みができなくなります。