トップページ⇒tech
984コメント339KB

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名無しさん♯NGNG
過去スレ
Part7 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デフォルトの名無しさんNGNG
関連スレ

VisualStudio.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デフォルトの名無しさんNGNG
関連リンク

MSDN Online Japan
http://www.microsoft.com/japan/msdn/default.asp

Insider.NET
http://www.atmarkit.co.jp/fdotnet/
0005デフォルトの名無しさんNGNG
C#でInt32やInt16をbyte型の配列に直すには
どうしたらよいでしょうか?

0006デフォルトの名無しさんNGNG
>>5
System.BitConverterクラスを見てちょ。
0007デフォルトの名無しさんNGNG
>>1
#タン おつかれ。サンスコ(・∀・)
0008デフォルトの名無しさんNGNG
最近思うんだけど、
もしかしてC#ってすっげえマイナー言語?
けっこう勉強してるんだけど、
なんかVB.NETのほうがぜんぜん情報多い気が・・・
0009デフォルトの名無しさんNGNG
>>8
すっげぇかどうかは知らないけど、今までVB使ってた企業はVB.NETを選択する傾向がある
0010デフォルトの名無しさんNGNG
>>8
んー,今のところあんまり興味の対象になってないね。
次期Windowsが一般に知れ渡ってからじゃないと何とも言えんねぇ。
0011デフォルトの名無しさんNGNG
1.1手に入れた人いる?
24時間経っても音沙汰なし・・・。(´・ω・`)
0012デフォルトの名無しさんNGNG
>>8
C#によるWindowsPrograming
0013デフォルトの名無しさんNGNG

C#.NETに出来て、VB.NETに出来ない事ってあるの?
0014デフォルトの名無しさんNGNG
VBではポインタが使えないよ。
0015デフォルトの名無しさんNGNG
もう少し正確に書くとunsafeがありません。
0016デフォルトの名無しさんNGNG
>>14
>>15
大したアドバンテージじゃないんだね。
0017デフォルトの名無しさんNGNG
正直、VB.NETがどうだとかは興味ないな。
0018デフォルトの名無しさんNGNG
VBは.NETになってからやたらとコードが冗長な感じで見づらいなぁ。
VB.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
002019NGNG
一番下のを注文しちゃいました・・・
0021デフォルトの名無しさんNGNG
>>19

一番上のは持ってるが、極めて良書であると思う
002221NGNG

3番目のも良さそうだね。オレも注文しようかな
0023デフォルトの名無しさんNGNG
VB.NETで出来るような仕事ばかりじゃなくてC++やJAVAやらCも
あるから書き方の特異なVB.NETは避けてC#にしてます。
0024デフォルトの名無しさんNGNG
>>19-22
みんな、スゲー
厨な漏れはこれ
http://www.amazon.co.jp/exec/obidos/ASIN/4891002921/qid=1032838252/sr=1-3/ref=sr_1_2_3/249-2191874-2379561
0025デフォルトの名無しさんNGNG
ん〜俺としては
http://www.amazon.co.jp/exec/obidos/ASIN/4891003030/ref=pd_bxgy_text_2/249-5241675-3211568
がやっぱお勧め。
0026デフォルトの名無しさんNGNG
こういうのも出てるんだね。
http://www.amazon.co.jp/exec/obidos/ASIN/4774115533/
0027デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/columns/csharp/csharp04192001.asp
にある「起動順序をより厳密に制御する場合、・・・・」
みたいなことがたっぷり書いてある本が欲しいなぁ。
0028デフォルトの名無しさんNGNG
質問です。
StreamWriterの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デフォルトの名無しさんNGNG
SqlCommandBuilderなるものを今日はじめて知った。これは便利だね・・・。
0030デフォルトの名無しさんNGNG
>>29
DataSetの自動生成とSqlCommandBuilderを使えばEntityBeanみたいな感じで扱えるね。
0031デフォルトの名無しさんNGNG
>>28
漏れもそれで困って色々と調べたんだが、、
フラッシュしないでオブジェクトを破棄したいができないよね。
ワーカースレッドでの処理でそんな状態が起こった時、
気づかずにアプリケーション終了してプロセスが残ったりする危険なことになっちゃう。
結局、HDD開けくれって警告出すしかないのかなぁ。
0032デフォルトの名無しさんNGNG
.NET Framework 1.1βキタ━━(゚∀゚)━━ !!!!



0033デフォルトの名無しさんNGNG
>>32
漏れはZip Codeも書いてくれっていうメールが来た。(´・ω・`)ショボーン
0034デフォルトの名無しさんNGNG
1.1でライブラリはどれくらい変わったの?
0035デフォルトの名無しさんNGNG
> finally
> {
> if (sw != null)
> sw.Close(); //ここで例外発生
>
> if (fs != null)
> fs.Close();
> }

これってさあ、fs.Close()する意味あるの?
sw.Close() って元になるストリームを閉じるためのものじゃないの?

「現在の StreamWriter と基になるストリームをクローズします。」
と書いてあるんだけど。俺はだまされてるのか?
0036デフォルトの名無しさんNGNG
>>35
あなたが正しい。
003728NGNG
>>31
>>35
31さんのおっしゃっているように、
「フラッシュしないでオブジェクトを破棄したい」ってことが結局やりたい
んですよね。(Closeする時にFlushしてしまう。)
Closeしないでそのまま放っておくと、プロセスが開いたままなので何かと
やばいとおもうんで。

破棄するなんか良い方法ないですかね?
0038デフォルトの名無しさんNGNG
IEコンポーネントを使うと下の2つのDLLが生成されます。

AxInterop.SHDocVw.dll
Interop.SHDocVw.dll

当然のようにこいつらがないとEXEファイル単体では動きません。
正直EXEファイルと同じディレクトリにDLLが散らばってるのは
気に入らないので何とかしたいんですが。

理想としてはEXEファイル1ヶでアプリを完結させたいです。
環境はVisual C#.NETです。
0039デフォルトの名無しさんNGNG
>>38
aximp.exe には /source オプションがあるからソースだけ取り出せるけど、
tlbimp.exe にはないからどうしても Interop.SHDocVw.dll だけは別にするしかないみたいね。
0040デフォルトの名無しさんNGNG
>>38
namespace 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);
}
}
とか?
004138NGNG
>40
うわ、さっぱり分からん。
決定的に勉強不足のようです。
週末にでもペゾルト本買いに逝ってきます。
0042デフォルトの名無しさんNGNG
>>37
ん〜 どうしても見つかんないね。なんでないんだろうね。
Finalize はprotectedだし、、、
結局HDDが一杯でCloseできないとき、それをエラーとしてフラグたてといて
エラーがある時にアプリ終了する場合
System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess();
process.Kill();
とかしてアプリ強制終了とかするしかないかもね。
それか、HDD空けてくれるまでアプリの終了を拒否するとか、、、・゚・(ノД`)・゚・
0043デフォルトの名無しさんNGNG
ここで何回か紹介されている黄色本をネットで注文して、今日
本が来たんだけど、カバーがオレンジ色になってた。
色が変わったのかな。
カバーの色なんてどうでもいいんだけど、荷物を開けた瞬間違
う本が間違って送られてきたのかと思ったよ。
0044デフォルトの名無しさんNGNG
プロファイリングしてて気づいたんだけど、
ArrayList(ほかのも?)の foreach って結構オーバーヘッドが大きいんだね。
頻繁に呼ばれるところだと for でぐるぐる回したほうがよさそうなんだけど、どうなの?
0045デフォルトの名無しさんNGNG
>>44
ILコード見て比較してみれ。forの方が単純で速い。
0046デフォルトの名無しさんNGNG
寝ようと思ったら1.1βのメールキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
でも明日にするか・・・。(´・ω・`)
0047デフォルトの名無しさんNGNG
>>46
俺んとこにもメール来た
キター!!と思って見たらKlezだったよ・・・・(´д`;)
0048デフォルトの名無しさんNGNG
>>47
落差にワラタ。すまん。
0049デフォルトの名無しさんNGNG
1.1入れてみたけど、変わり具合は地味ですな・・・。
0050デフォルトの名無しさんNGNG
1.1でWebBrowser(shdocvw.dll)のBeforeNavigate2イベントちゃんと直ってる。
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0051デフォルトの名無しさんNGNG
ListViewコントロールの詳細表示で特定の列だけサイズ変更を禁止するには
どうすりゃええんじゃろか。

関係ありそうなイベントに引っ掛けてサイズを再設定すりゃいいかと思ったが
どうにもうまくいかんのじゃよ。
0052デフォルトの名無しさんNGNG
>>51
MinSize、MaxSize、Sizeを同じ値にすればいいんじゃないの?
0053デフォルトの名無しさんNGNG
>52
ところがどっこいColumnHeaderクラスにはそれらのプロパティがないのじゃよ。
サイズ関連であるのはWidthだけでな。
0054デフォルトの名無しさんNGNG
>>28 
ガイシュツならスマソ。

その手のリソースの明示的な開放が必要クラスは、
大概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
005554NGNG
アレー 
ソースの字下げが消えてる。
なんでた?
もいっっちょ。(今度は全角スペースで字下)
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
ドットNet用のグラフコンポーネントのトライアル版を見つけたの
ですが、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
>>56
コンパイルオプションに r:DLL名 とかでないの?
0058デフォルトの名無しさんNGNG
そのDLLを参照に追加してみるのが最初の一歩だと思った
0059デフォルトの名無しさんNGNG
アセンブリってexeにスタティックリンクに出来ないのかな?
既出かな。。
0060デフォルトの名無しさんNGNG
>>54
28じゃないけど同じことで困ってた者です。
using忘れてました。鬱。
確かにDisposeが呼ばれるのでワーカースレッドでその状態が起こった時に
アプリを終了してプロセスが残るといったことは無くなりました。
ありがとう(・∀・)

でもやっぱりその場でファイル閉じてないのでアプリ終了するまで
ファイルをロックしっぱなし、、鬱。
0061デフォルトの名無しさんNGNG
56です。
57,58,59さんどうもありがとうございます。
/r:****.dll指定で取りあえず使えそうです。
ドットNet専用コンポとCOMなどの違いがまだ
よく分かってないから頭ん中ごちゃごちゃです。(汗)
006259NGNG
59のは56へのレスではなくて新規の質問なのでした。
紛らわしくてすみませぬ。

SDKではなくてVS.NETを使っているけれど、ライブラリ アセンブリ
をexeに含める方法がわからないです。最初からDLLになっているし
無理なのですかね…。
006359NGNG
マルチファイル アセンブリというのがそれなんでしょうか?
C#の場合はコマンドラインでしか出来ないんですね。
っておそらく既出なんだろうなぁ…。
0064デフォルトの名無しさんNGNG
オレも >>59 と同じように1つのexeにしたいと思ってたけど
ずっと方法がわからず…。
0065デフォルトの名無しさんNGNG
>>63-64
残念ながら、ソースがない限り1つの.exeにまとめることはできません。
0066デフォルトの名無しさんNGNG
>>65
あ,やっぱりそうなの?
俺もそうかなーって思ってたけど自信無かったから言わなかった。
0067デフォルトの名無しさんNGNG
>>65
そうなんだ、どうもありがとう。
dllにした自作コントロールでツールボックスからD&Dして、
このdllを参照設定からはずして、dllのソースを追加で
exeのみになるようだからこれでガマンします。
0068デフォルトの名無しさんNGNG
原理的に出来ないわけじゃないけどね(出来ない場合もあるが)
そういうツールって需要あるのかな?
0069デフォルトの名無しさんNGNG
リリースするときにひとつにまとめたい、とかいう需要はあるかも
0070デフォルトの名無しさん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
>>67
お、こうすれば出来ますね。ありがとう。
でもそのソースが使っている参照の追加は当然必要…。
参照を右ドラッグでコピー出来たらいいなぁ。

自作コントロールのDLLは参照設定から消さなくても、
ローカルコピーのプロパティをFalseにするだけでよさそう。
知ってたらスマソ。
0072デフォルトの名無しさんNGNG
外の比較的マイナーな文学作品を翻訳出版する
小さな出版社がある。そして文学ファンはこういった出版社を
潰さないため、今後も翻訳を続けてもらうために
1人で同じ本を2・3冊買うことが良くある。

我々もこういう時だからこそDelphi7を買って
ボーランドを支えるべきなんじゃないだろうか。
Delphi7の売り上げはDelphi8以降の開発資金となるし、
ボーランドジャパンの今後に大きな影響をもたらすだろう。

Delphi7の出来のみを云々するのは
あまりにも近視眼的ではないだろうか?
0073デフォルトの名無しさんNGNG
>>72
このスレにまで貼り付けんな。(ワラ
0074デフォルトの名無しさんNGNG
なぜ72はこんなスレをつけるのか。

その謎は以下のスレに...
http://pc3.2ch.net/test/read.cgi/tech/1031668744/536-538

ここにかかれている内容を信じるかどうかはあなた次第。
Delphi7 を注文してしまった人は、すぐに答えが出るでしょう。

0075デフォルトの名無しさんNGNG
以上、Del厨の自爆テロでした。
0076デフォルトの名無しさんNGNG
>>72
72の書き込みによりDelphiの人気がさらに下がりました。
0077デフォルトの名無しさんNGNG
.NETテクノロジー発売あげ
0078デフォルトの名無しさんNGNG
Version 1.0 to Version 1.1 API Changes Document (ZIP File)
http://www.gotdotnet.com/team/upgrade/v1.1/v1.0tov1.1changes.zip
0079デフォルトの名無しさんNGNG
コントロールを配列化するにはどうすればいいのですか?
VB6.0ではコントロールをコピぺすると配列にしますか?
って聞いてきた気がするのですが。

0080デフォルトの名無しさんNGNG
質問ですが、
Cを大体マスターしたのですが、あまりにも生産性が低いため次の言語へ
いきたいと思います。
C#なんかよさそうだと思ったのですが、C++を1秒もやらずにC#を習得することは
現実的でしょうか。
C#はC++を改良したものだそうなので、どうしてもC++をやるのが無駄に見えてしまうのですが、
C++をやっておいたほうがよいのでしょうか。それとも、まったくの無駄足になるのでしょうか。
0081デフォルトの名無しさんNGNG
○○をやるのは無駄でしょうか?とか言うやつにプログラム上達は無理。
C#にそのまま行っていいと思うけど、多分君はCをマスターはしていない。
0082デフォルトの名無しさんNGNG
>>79
手作業でControl[]型の変数に代入
0083デフォルトの名無しさんNGNG
(・∀・)カコイイ!
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0397-2
0084デフォルトの名無しさんNGNG
>>83
どこがw
0085デフォルトの名無しさんNGNG
>>83
おお。(w
日本的ですなあ。
0086デフォルトの名無しさんNGNG
プロパティの値を設定、または取得するデリゲートって作れないんでしょうか。

delegate bool GetBooleanValue();
GetBooleanValue m = new GetBooleanValue( obj.get_BooleanProperty );

なんて直接 get アクセサを呼んでもコンパイルとおりませんし。

メソッドを一枚かませればすみますが、使用するオブジェクトとプロパティの数だけ必要になるし、
リフレクションでは実行時まで問題が見つけにくくなってしまいます。
0087デフォルトの名無しさんNGNG
>>86
C#・VB.NETではダメで、VJ#ではできるみたいね。
0088デフォルトの名無しさんNGNG
>>87
JScript.NETでもできますた
008986NGNG
無理っぽいですかねぇ。
何とかなりません?>MSさん

そういえばMC++だと任意の名前のインデックス付きプロパティがサポートされてるっぽいのに C# では this[] だけ
C# って .NET 最強じゃなかったの(;д; )
0090デフォルトの名無しさんNGNG
>>78
おぉ〜1.1でフォルダ用ダイアログが用意されたねー。
System.Windows.Forms.FolderBrowserDialog
0091デフォルトの名無しさんNGNG
System.Windows.Forms.ApplicationクラスのEnableVisualStyles()も気になる。
0092デフォルトの名無しさんNGNG
>>91
.manifestがなくてもXPスタイルになっていい感じ。
ただし、FlatStyle.Systemは必要。
0093デフォルトの名無しさんNGNG
1.1で盛り上がっているところ申しわけないのですが質問です。
親ウィンドウと子ウィンドウがあって、両方表示している時、
どんな時でも、子ウィンドウの上に親ウィンドウを表示しておきたいのですが
どうすればいいでしょう?
TopMostは他のアプリケーションの邪魔になるので避けたいのですが、、、
よろしくお願いします。
0094デフォルトの名無しさんNGNG
> どんな時でも、子ウィンドウの上に親ウィンドウを表示しておきたいのですが
> どうすればいいでしょう?

親子関係と所有関係を混同してる。とりあえず、君の言う親と子の関係を
反対にしたら
0095デフォルトの名無しさんNGNG
>>94
そうですね。混同してました。すいません。逝ってきます、、、
所有関係逆にすると今度はフォーム操作の連動(最小化など、、)が、
逆になってしまい、希望する動作になりません。
メインで使用するフォームを常に上に表示しながら、フォーム操作の連動も
メインで使用しているフォームに、たまにしか使わないフォームを連動させたいんですが、、
無理なんでしょうか。やっぱり。
0096デフォルトの名無しさんNGNG
>>93
BringToFront()、SendToBack()は?
どんな時でもってことで工夫、常にこのメソッドを意識する必要があるが。
0097デフォルトの名無しさんNGNG
>>93
後ろにあるFormのOnActivate(EventArgs e)で
前に出したいFormをActivate()してやれば?
0098デフォルトの名無しさんNGNG
.NET1.1でSystem.EnterpriseServicesの変更が多いけど、これってCOM+1.5対応なのかな?
0099デフォルトの名無しさんNGNG
>>98
Right. SWC is gonna be great!
0100デフォルトの名無しさんNGNG
Services Without Components でつか?
0101デフォルトの名無しさんNGNG
WindowsFormアプリの配布に関して詳しく解説しているページって知りませぬか?
イントラ限定で、小物配布するのに、exeをIISの仮想フォルダに置いてみたら、
クライアント側のセキュリティ設定触る必要あったりで色々試行錯誤中です。

MS謹製のオートアップデータコンポーネントなんか良さげだけど、
英語読むのタリーから和訳欲しい (゜д゜)
0102デフォルトの名無しさんNGNG
>>101
がんばれ、このスレ及び、VB.NETすれのみんなが応援してる。
よい結果報告をすれば君は英雄だ。
0103デフォルトの名無しさんNGNG
長いループ中にボタン等が押せなくなったりするのを防止
する為にDelphiにはApplication.ProcessMessagesがあり
ますがC#ではどのようにするのでしょうか?



0104デフォルトの名無しさんNGNG
STLのVectorに似ているのはArrayListだと思うのですが、
ArrayList使いの詳しい方で分かる人いたらお願いします。
SDKのみなので間違っているかもしれませんが、
このクラスにはSizeとかResizeというプロパティやメソッド
がないようなのですが、要素数をサッと変えるプロパティ
やメソッドはないのでしょうか?Countはリードオンリーで
すし、Addメソッドでぐるぐるやるしかないでしょうか?
初心者向けなのでくだスレかどちらか迷ったけどこちらに
書きました。
0105デフォルトの名無しさんNGNG
>>104
RemoveRange,AddRange ぐらいしか思いつかん。

0106デフォルトの名無しさんNGNG
>105
104です。最初自分もAddRangeとか使うのかなとか
いろいろ試したのですが、AddRangeはちょっと意味
が違うようですね。TrimToSizeはCapacityを合わせる
だけみたいですし・・やっぱりないみたい。
STLは極楽だったんですね。
0107デフォルトの名無しさんNGNG
>>103
Application.DoEvent()では?
0108デフォルトの名無しさんNGNG
>>106
Resize は欲しいけど、ないみたいだから
減らすなら RemoveRange、
増やすなら AddRange( new type[ newSize-arrayList.Length ] )
で我慢
0109デフォルトの名無しさんNGNG
>>104
STLを知らないのではずしまくってるかもしれないけど、
Capacityプロパティじゃだめ?
#Size、Resizeを調べてみて容量の変更と思ったんですが
0110デフォルトの名無しさんNGNG
>>109

いや、capacityはstlにもあるだろ
そうじゃなくて ようは一気に要素を追加してなんかの値で初期化したいって
ことだろ

addでぐるぐるするのが一番じゃねーの? そんな手間でもないと思うけどなぁ。
俺はそんなに頻繁に使うようなシチュエーションがないので、ありゃ便利程度
にしか思えないが、必要ならarryalist継承してsize resizeを実装すりゃいいんじゃ
ないの?
0111デフォルトの名無しさんNGNG
>108さんレスありがとう
AddRange( new type[newSize-arrayList.Length])
うう、いまいち分からない。
んんん?もしかしてnew double[10]とかにして
配列を入れるって事?
なんかこれで行けるみたい。でもこのやり方
すぐに思いつくなんて凄いなぁ

でもやっぱりResizeなりSizeなりのプロパティは
欲しいっすよね。
しかもArrayListってコンストラクタではCapacityの
設定しか出来ないっすよね?
ArrayListを継承してClearAndResize(int _size)などの
メソッド付け足して拡張型ArrayList作るってのも
ありでしょうかね。

>109
Capacityは要素数ではなくて可能容量の決定だから
ちょっと違いますね。
STLはホントによく出来たライブラリで感動ものです。
まぁ逆に使いすぎでバグたくさんってパターンもあり
えますが。

0112デフォルトの名無しさんNGNG
>110
そうです。よく分かっていらっしゃる(笑)
> addでぐるぐるするのが一番じゃねーの? そんな手間でもないと思うけどなぁ。
そうです。手間じゃないからこそResizeやコンストラクタ(サイズ)とか
付けておいて欲しかったって事です。Resizeは普通あるはずだーとか思い込んで
探したりしてれば時間かかるし(^^;)

> にしか思えないが、必要ならarryalist継承してsize resizeを実装すりゃいいんじゃ
> ないの?
う、アップする前に書かれてしまった。
Delphiやってた時は配列本体まで独自で作ってていろんなメソッド付けて
工夫してやった後にC++へ行ったらSTL見つけて「ガーン。これりゃ独自に作っ
たのでは勝てんわー楽チン楽チン」なんて喜んでました。
どーせalgorithmみたいなものも欲しくなるから
継承しないでArrayListToolクラスとか作ってメソッドで対処するって手もありますね。
0113[]NGNG
>>107
助かりました。ありがとう。
0114デフォルトの名無しさんNGNG
マネージドコードで書かれたプログラムはフレームワークに
バグが無い限り、バッファオーバーフローしないって聞いたの
ですが、本当でしょうか?

0115デフォルトの名無しさんNGNG
>>114
別にマネージドで無くても、ポインタ演算が無くて、配列のアクセス時にチェックしてくれる環境なら
バッファオーバーフローは無いと思いますが…とりあえず回答はTrue
0116デフォルトの名無しさんNGNG
C#でjavaのJtableクラスみたいなものはないでしょうか?
ListViewクラスは使いづらいのでいやなのです。

0117デフォルトの名無しさんNGNG
DLLを動的にリンクするにはどうすればいいのでしょうか?
下記のようなイメージでプログラムの状態によって2つのdll
を使い分けたいのですができますでしょうか?
if (a == 1) {
dllimports("hoge1.dll");
} else {
dllimports("hoge2.dll");
}
0118デフォルトの名無しさんNGNG
そのdllはOnCLR?普通の?
0119117NGNG
C#で作ったDLLを使い分けたいと考えています。
0120無知NGNG
じゃあReflectionでやってくだちぃ
0121デフォルトの名無しさんNGNG
利用者の言語は何?
0122デフォルトの名無しさんNGNG

●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕
0123デフォルトの名無しさんNGNG
>>96
遅レスごめんなさい。
試してみましたが、所有関係があるとダメみたいでした。
0124デフォルトの名無しさんNGNG
>>123

所有関係や親子関係は z-order を決めているので臨時に変更するのは
できるのかね?
0125デフォルトの名無しさんNGNG
http://www.shoeisha.com/mag/vbm/info2.asp
Dotnetマガジンに変わったんだってね(既出?)

見てみたけどVBマガジンのままで良かったような内容でした。
もしくはVB.netマガジンかな。

ここのスレの人は何か雑誌かってんの?
0126デフォルトの名無しさんNGNG
第三者認証機関によるサーバー認証でHTTPS(SSL)を使用して
通信を行う方法についてサンプルソースなどありましたら
教えてください。
ついでに第三者機関を使用しない独自のものについても
お願いします。
0127デフォルトの名無しさんNGNG
http://www.nait.org/jit/jit.html
0128デフォルトの名無しさんNGNG
マチガイタ
0129デフォルトの名無しさんNGNG
C#.NETでソリューションとかプロジェクト開くのに恐ろしく時間がかかることが
あるんだけど何でかな。つーか今まさにこれまでになく時間がかかってて
タスクマネージャで見ても応答なしで困ってるところ。
バックアップからソリューション丸ごとバックアップしたりするとこの現象に
遭遇するような気がする。
0130デフォルトの名無しさんNGNG
質問なのにsageちまったよ。
0131デフォルトの名無しさんNGNG
.sln に対応する .suo と .ncb を消してみるというのはどうか
0132デフォルトの名無しさんNGNG
Refrectionを使って生成したオブジェクトをUnboxingできないのですが
どうしてでしょうか?なんか技があるんですか?
object o = t.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, null, new Object[0]);
hoge = (Hoge)o;

コンパイルは通るのですが、指定されたキャストは有効ではありません。
という例外が発生します。
デバッガで見る限りoはHogeクラスのオブジェクトのようです。
0133デフォルトの名無しさんNGNG
C#からたとえば
unsigned 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デフォルトの名無しさんNGNG
>>132
o.GetClass(だっけ?)は何を返す?
0135132NGNG
System.Console.WriteLine(o.GetType().ToString());
からはHogeを返します。
0136132NGNG
すいません。間違いました。
System.Console.WriteLine(o.GetType().ToString());
からはHogeHogeを返します。
HogeHogeとHogeは継承関係にあり、Hogeが基底クラスになっています。
0137デフォルトの名無しさんNGNG
http://www.microsoft.com/downloads/release.asp?ReleaseID=43360
http://www.microsoft.com/downloads/release.asp?ReleaseID=43361
http://www.microsoft.com/downloads/release.asp?ReleaseID=43363
0138デフォルトの名無しさんNGNG
アゲ
0139YosNGNG
C#製プログラムを.NetFrameworkの適用なしに、
インストールせずに、
ファイルのコピーで、
実行ファイルを動かすことはできるのですか?

普通はできないと思いますが、何か解決策はあるでしょうか。
0140デフォルトの名無しさんNGNG
>>139

ありません。って、某MLで回答もらったでしょ?
0141デフォルトの名無しさんNGNG
C#でアクティブなアプリケーションの切替え実行したい
(Alt+Tabでできる操作を実行したい)のですが
どうやってやればよいのでしょうか?
0142デフォルトの名無しさんNGNG
>>136
つまらないことだけど、それはUnboxingじゃなくてDownCastだね。
0143デフォルトの名無しさんNGNG
>>139 大久保陽司 さん

> あるサードパーティのコンポーネントを使ったプログラムを、
> そのラインタイムをインストールせずに、
> ファイルのコピーで、
> 実行ファイルを動かすことはできるのですか?
>
> 普通はできないと思いますが、何か解決策はあるでしょうか。

と同じです。
0144デフォルトの名無しさんNGNG
NUnit V2.0
http://sourceforge.net/project/showfiles.php?group_id=10749&release_id=114369
0145デフォルトの名無しさんNGNG
>>1
0146デフォルトの名無しさんNGNG
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕
0147デフォルトの名無しさんNGNG
>142
基底 <- 派生 の代入なんだから Up Castでそ。

>136
>132の代入先の hoge が Hoge型ではないと見た。
0148デフォルトの名無しさんNGNG
>147
(゚Д゚)ハァ?
0149デフォルトの名無しさんNGNG
SDK + コマンドラインで開発してるんですが、
スタックトレースを出力したときに、ソースの行番号を出すにはどうしたらいいんですか?
なんか、出ないので・・・。
VisualStudio使うと出るんだけどさ
0150デフォルトの名無しさんNGNG
コンパイルオプションに行番号を埋め込むというのがない?
0151デフォルトの名無しさんNGNG
>>149
/debug+ でコンパイルすれば出てくるよ。
0152デフォルトの名無しさんNGNG
>>151

ありがとうございます!
0153デフォルトの名無しさんNGNG
BinaryFormatterでシリアライズしたファイルをデシリアライズする時
以下のような例外吐いて失敗してしまいます。どうしたらいんでしょう?

System.Runtime.Serialization.SerializationException: 解析が完了する前に、ストリームの終わりに達しました。
例外吐く個所のコードは以下のような感じです。
(SortedList)formatter.Deserialize(stream);
0154デフォルトの名無しさんNGNG
>>153 あ、すいません。SortedListをシリアライズした時です。
0155デフォルトの名無しさんNGNG
ファイルでなくメモリにシリアライズしてもダメッスか?
0156デフォルトの名無しさんNGNG
>>155
streamにMemoryStreamを使用してみましたが、シリアライズはできますが、
デシリアライズする時に同じj例外がでてしまいます。
Hashtableではうまくいってたのですが。
0157デフォルトの名無しさんNGNG
>>153
こちらの環境では問題ないっす。
何か別のところに原因があるのでは?
0158デフォルトの名無しさんNGNG
>>157
ありがと〜 そうですか。ちょっとまた調べてみます。
0159132NGNG
キャストの件は解決しました。
DLL内のクラスをEXE内のクラスにキャストしようとしてました。
同じソースから一部をDLL化し、それを含んだEXE作成していました。
同一ソースから作成されたクラスでも別クラスと判断されるようです。
ご迷惑をおかけしました。
0160デフォルトの名無しさんNGNG
ひょえー、アセンブリが違うと同名でも別クラスなのか・・・
0161デフォルトの名無しさんNGNG
>>159-160
そりゃそうだろ
0162デフォルトの名無しさんNGNG
.NETFrameworkって、Javaで言うByteArray*Stream見たいなのってないんですか。
byte配列を溜め込むのにどうやりゃいいか悩んでるんですけど。
あんだけ高級なAPIが揃ってるのに、これだけ自前でつくれって?
0163デフォルトの名無しさんNGNG
>>160
アセンブリが違うのに名前が同じってだけで同じクラスになったら困るって。
0164デフォルトの名無しさんNGNG
>>162
MemoryStream とかいうのなかったっけ
0165デフォルトの名無しさんNGNG
>>162 は直前のやりとりすら見てないアフォ
0166デフォルトの名無しさんNGNG
DLLのセキュリティチェックを行うことはできますか?
誰が作ったかわからないDLLを読み込む場合に
ローカルディスクのファイル操作等を禁止できますか?
0167デフォルトの名無しさんNGNG
できます。
0168162NGNG
>>164,165
ありがとう。
0169166NGNG
どうすればいいの?
または、どこ調べればいいの?
0170デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/fdotnet/technology/framework09/framework09_01.html
0171166NGNG
Internetのパーミッションセットを設定したいのですが、
どうやって設定するのですか?
0172デフォルトの名無しさんNGNG
A Primer to the Office XP Primary Interop Assemblies
http://msdn.microsoft.com/library/en-us/dnofftalk/html/office10032002.asp
0173デフォルトの名無しさんNGNG
あげ
0174デフォルトの名無しさんNGNG
ListBoxの最後のItemを表示するにはどうするの?
0175デフォルトの名無しさんNGNG
>>174
ItemsのCountプロパティ見ればいいでしょ。
0176デフォルトの名無しさんNGNG
アプリケーションが終了する時に,あるクラスのメソッドが必ず呼ばれるようにしたいんですけど,
何を使えばいいのでしょうか?
Finalize()は呼ばれないことがあるし,普通のメソッドだと明示的に呼ばなきゃならぬのですが。
0177デフォルトの名無しさんNGNG
いささか古い本からの引用だけど、
「C# 実践プログラミング(インプレスの赤本)」には
>クリーンアップ処理用のメソッドをClose()で呼び出し、
>またオブジェクトを二度と利用しないのであればDispose()で
>呼び出すように推奨している
ってあるよー
0178デフォルトの名無しさんNGNG
>>177
サンクス。
ってことはアプリケーション側からClose()やDispose()を明示的に呼び出すということですよね?
(Dispose()はusingステートメント使えば勝手に呼ばれるけど)
0179デフォルトの名無しさんNGNG
>>178
そーです。
>クリーンアップ処理を特定の個所で必ず実行させる必要があれば、
>プログラマが明示的に呼び出せるメソッドを用意しておくべきだ
で、MSが推奨する方法としてClose()/Dispose()が挙げられてました。
0180デフォルトの名無しさんNGNG
>>174
> ListBoxの最後のItemを表示するにはどうするの?

int lastItemIndex = listBox1.Items.Count -1;
listBox1.SelectedIndex = lastItemIndex;
0181デフォルトの名無しさんNGNG
Javaで言うところのSystem.arraycopyってありますか?
0182181NGNG
System.Array.Copyだった・・・。
0183デフォルトの名無しさんNGNG
WinCVでアセンブリの中身を見ようと思ったのですが,

$ WinCV /r:アセンブリ

で見ることができません。

$ WinCV /h

を見るとできそうなのですが。
0184183NGNG
ひょっとして勘違いしてる?
ildasmで一応目的のもの見られました。
WinCVは何者?
0185デフォルトの名無しさんNGNG
>>184
WinCVはWindows Forms関連クラス専用のビューア。
0186183NGNG
>>185
ああ,そういうことですか。ありがとう。
0187デフォルトの名無しさんNGNG
C#で実行中の自分のファイル名(アプリケーション名)を取得
するにはどうすればよいでしょうか。

ここで言う、ファイル名というのは、例えば、
hogepage.exe というexeを実行していたならば、
hogepage.exe という名前をプログラム中で取得
したいということなのですが、、、

どうやればいいでしょうか?
0188デフォルトの名無しさんNGNG
>>187
Application.ExecutablePath
フルパスだけど。
ちなみに Application.StartupPath はそのフォルダ名。
0189デフォルトの名無しさんNGNG
コーディングスタイルの質問なんですけど,
みなさんthisってどういう時につけてます?
1. 常に
2. 曖昧さをなくす必要がある時
3. そのクラスに記述されているものだけ
4. そのクラスに記述されていないものだけ(記述されているものは明示的に書かない)
  baseだろって突っ込まれそうだけど
5. その他

ぼくは今不定でふらふらしてます
0190デフォルトの名無しさんNGNG
>>189
コード補完が楽なように 1.
0191デフォルトの名無しさんNGNG
VS.NET 2003に標準装備されるとの噂。
http://www.preemptive.com/dotfuscator/DotfuscatorFAQ.html
0192デフォルトの名無しさんNGNG
>>190
ああなるほど。
俺はEmacs使ってるんでそもそもコード補完ができない…(ただの文字列補完ならできるけど)
で,話ずれますがMeadowでC#(.NET)のコード補完やってる人います?
0193192NGNG
コード補完はJDEE(JAVA)ぐらいしか知らないのですが。
http://jdee.sunsite.dk/
0194デフォルトの名無しさんNGNG
>>188
Thanks!!

ところで、ConfigurationSettings.AppSettingsを使って、設定ファイル
を読み込む時に、設定ファイルがあるかどうかを判定する方法ってある
でしょうか?File.Exists()とか使うしかないのでしょうか?

それから、ConfigurationSettings.AppSettingsを使って設定ファイルを
いじるれますが、このファイル名や保存場所を任意に変えることはできる
のでしょうか?なんか無理っぽいですが。。。

0195デフォルトの名無しさんNGNG
>>143
だれ?それ?
0196デフォルトの名無しさんNGNG
http://qb.2ch.net/test/read.cgi/saku2ch/1033032078/4
0197デフォルトの名無しさんNGNG
>191

そっかー標準装備か。。じゃ待ちだな。
ところで皆さんは現在、ildasm対策?とかしてますか?
0198デフォルトの名無しさんNGNG
RichTextBoxのTextプロパティにURLらしき文字列を設定し、
そのURLをクリックすると、LinkClickedイベントが発生しますが、
これをURLではなく、任意の文字列でできるようにする方法は
ないのでしょうか?
0199デフォルトの名無しさんNGNG
Formを最大化するにはどうすればよい?
0200デフォルトの名無しさんNGNG
>>199
Form.WindowState = FormWindowState.Maximized;
0201デフォルトの名無しさんNGNG
>>200
ありが�d!
0202デフォルトの名無しさんNGNG
RTFコードの一覧表ってどこで見れますか?
0203デフォルトの名無しさんNGNG
>>202

ほれ
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtfspec/html/rtfspec.asp

ただ、何に使うのかはしらんが、リッチテキストボックスのRTFプロパティを自分で
書いて、書式付き文字を表示されるなんて考えはおこさん方がいいぞ。
0204202NGNG
>>203
ありがとうございます。

>ただ、何に使うのかはしらんが、リッチテキストボックスのRTFプロパティを自分で
>書いて、書式付き文字を表示されるなんて考えはおこさん方がいいぞ。

なんでですか?
0205デフォルトの名無しさんNGNG
>>204

・RTFの仕様自体が糞。とても使う気になれない。
・リッチテキストボックスはRTF1.0相当なので、メソッド、プロパティを通じて
操作できる以上のことは RTFを生で書いてもほとんど無理。

表とかリンクとか画像を入れたいというだけなら、webbrowserコントロールを
使った方が気楽だよ。
0206デフォルトの名無しさんNGNG
時代はリッチテキストよりHTMLだと思ってみたり?

そういえば.NETでHTMLダイアログを簡単に扱えたりするの?
System.Windows.FormsやSystem.Web.UIと同じように扱えたら
すごーくハッピーなんだけど、無理?
0207202NGNG
>>205
>表とかリンクとか画像を入れたいというだけなら、webbrowserコントロールを
>使った方が気楽だよ。

タグの色分けができるHTMLエディタを作ろうと思ってます。
コントロールを自作しようと思ってSharpDevelopのソースも見たんですが無理っぽいので
RichTextBoxを使ったらどうかな?と思ったんです。
やっぱり厳しいですか。。。
0208デフォルトの名無しさんNGNG
UDPサービスの使用のところにあるサンプルって動きますか?
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconusingudpservices.htm

UDPMulticastListener の方で、まったくメッセージが出てきません。
動いた方がいたら動かし方を教えてください。
0209デフォルトの名無しさんNGNG
> SharpDevelopのソースも見たんですが無理っぽいので

無理っぽい?あんな読みやすいソースもそうそうないぞ。
少なくとも漏れはあのソースをかなり参考にしてC#のカラ
ーリングエディタを作った。(あれはGraphics.DrawString
を素で使ってるから日本語表示したり単語が多くなるとも
う速度的にボロボロだから本当に参考にしただけだが)
もっとがんがれ〜!
0210デフォルトの名無しさんNGNG
>>209
役に立ちそうなソースは公開キボンと書いてみたり。(w
0211209NGNG
スマンがソースは公開できない。代わりにもう一つ参考に
したサイトを置いとく。バグがあるまま公開されてるから、
改造しながら自分で直すと良いと思う。BitBltの方はもっ
と速くなるが、その辺はWindowsの描画関係をあたってくれい。

http://www.codeguru.com/cs_graphics/flicker_free.html
0212デフォルトの名無しさんNGNG
十進BASICで連立一次方程式を説く、プログラムを教えてください!!
0213デフォルトの名無しさんNGNG
>>212
とりあえず、すれ違い
0214デフォルトの名無しさんNGNG
2つのbyte配列を結合した1つのbyte配列を作るには
どうしたらよいのでしょうか?

こんなやり方しか思い浮かばないのですが、、、

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
>>208

その URL の先読む気はないので適当に言うけど、Winsock の場合
multicast group に join するには、事前に適当に bind しておく
必要がある。その辺どうなってますか?

 あと送出側が同じ PC で動いてるなら、loopback できるように
setsockopt だかなんだかで設定しとく必要がある。
0216デフォルトの名無しさんNGNG
Linux用の.NET Freamworksはいつ頃出る予定なんでしょうか?
GNUとM$でゴタゴタが起きていてなんちゃらかんちゃらという記事を読んだことがあります。
その辺のことご存じの方いらっしゃれば教えてください。

自分もグーグル等で検索してみましたが、分かりませんでした。
0217デフォルトの名無しさんNGNG
>>216
monoを使ってみるスレとかで聞いて見れば?
http://pc3.2ch.net/test/read.cgi/tech/1020215602/l50
0218デフォルトの名無しさんNGNG
NetworkStream.Writeというメソッドは戻り値を
返さないのですが、このメソッドで指定したbyte[]
は、きちんと全て送信するまで、ブロッキングして
くれるのでしょうか?

socketとかだと、100byte送信ってやっても、50byte
しか送信できないことがあったりして、結局何byte
送信できましたっていう感じで、送信できたbyte数が
戻り値として戻ってきていましたが、どうなのでしょう?

NetworkStream.Writeで100byte送信ってやった場合は、
100byte送れるまで、ブロッキングするの?

0219デフォルトの名無しさんNGNG
>>218
する。Readはしない。以上。
0220デフォルトの名無しさんNGNG
>>216
Mono、Portable.NET以外にBorlandから出るよ。
Kylix .NETからだし、まだ先だけど。
0221デフォルトの名無しさんNGNG
>>219
>Readはしない

http://impress.tv/msec/event/te2002/
の
「7-411 .NET Framework におけるスレッディング」
(の「非同期プログラミング モデルの実装」)
だと
Begin〜-End〜系じゃないメソッドは
実行が完了するまで処理がブロックされるって説明が
あるんだけど、実際の挙動はそうなってないってこと?
0222デフォルトの名無しさんNGNG
完了の定義によると思われ
0223デフォルトの名無しさんNGNG
なるほど、了解。
0224218NGNG
>>219
なるほど。よくわかりました。

>>221
どうも、実験してみると、1byteも受信できないうちは、
ブロッキングするようですが、1byte以上、何らかのデータを
受信した時には、何バイト読み取れって指定したデータ全部を
受信しなくても、処理が次に移ってしまうようです。

その代わり、何バイトだけ受信しましたよ。っていう戻り値が
帰ってくるようです。

なんで、こんな実装なんでしょうね?

0225デフォルトの名無しさんNGNG
>>224
いわゆるbsdソケットのrecvと同じ挙動に見えるがどうか。
だったらsendも同じにしてもいいのに、とは思うけど・・・
0226デフォルトの名無しさんNGNG
と思ったらSocket.Sendがあるやんけー
0227デフォルトの名無しさんNGNG
どこで聞けばいいのかよく分からないんですが,
.NET Framework SDKについてくるドキュメントブラウザで
たとえば
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp
のようなページをFrameworkSDKドキュメントのように表示することはできないですか?
目次のところに該当ページの目次が出て欲すぃ
0228デフォルトの名無しさんNGNG
>>221

この映像の喋ってる奴の喋り方ムカツク。
なんでだろ。
0229デフォルトの名無しさんNGNG
>>227
Microsoft Document Explorer 7.0なら
ヘルプ(H)-目次の同期(Y)
かと。

違ったらスマソ。
0230デフォルトの名無しさんNGNG
>>229
ああ,Microsoft Document Explorer 7.0ですた。

で,http//〜 は目次の同期はできないのです。
0231デフォルトの名無しさんNGNG
>>230
もしかしてURL欄に「http://以下略」を直接入れて・・・って話?
それなら無理かと。。。
0232デフォルトの名無しさんNGNG
>>231
そういうことです。
そんで,ms-help://〜形式にできないものかなーと思いまして。
0233デフォルトの名無しさんNGNG
>>209
FSFに通報しますた
0234デフォルトの名無しさんNGNG
タブブラウザ作ってるんですが、AxWebBrowserの初期化方法がよく分かりません。
一応よくわからないままに下のようにやってるんですが、表示してみるとフォントサイズが
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デフォルトの名無しさんNGNG
sageちゃった。
0236デフォルトの名無しさんNGNG
>>234
http://www.k-nextage.co.jp/ame/soft/wfc/
WebBrowserコントロールを利用してブラウザーを作るための方法

これで出来ると思う。
0237デフォルトの名無しさんNGNG
>236
ありがたふ。見てみます。
0238デフォルトの名無しさんNGNG
オブジェクトをコピーするにはどうすればいいですか?
Memcpyみたいなものでつかってコピーするのでしょうか?
0239デフォルトの名無しさんNGNG
>>238
まずは
Object.MemberwiseClone メソッドと
ICloneable インターフェイス
について調べてみてちょうらい
0240デフォルトの名無しさんNGNG
厳密名つきアセンブリのレイトバインドってヘルプのどこら辺りみたらいいんでしょうか。
Assembly.Loadメソッド辺りかと思ったのですが、具体的にどうやればいいのかわかりません・゚・(ノД`)・゚・
よろしくお願いします。
0241デフォルトの名無しさんNGNG
System.IO.File.Exit(strPath);
みたいにクラスインスタンスを作らなくても値を返せるようなメゾットって
どうやって作ってるんでしょうか?
0242デフォルトの名無しさんNGNG
>>241
staticメソッド
0243デフォルトの名無しさんNGNG
>>241
間違いが多い質問はネタ率高し。
0244241NGNG
>>242
ありがとうございます。解決しました。
0245デフォルトの名無しさんNGNG
>>240
解決しますた。
0246デフォルトの名無しさんNGNG
>>245
教えて。情報へのリンクだけでも・・・
0247デフォルトの名無しさんNGNG
The .NET Show: The Developer Roadmap
http://msdn.microsoft.com/theshow/Episode028/default.asp
0248デフォルトの名無しさんNGNG
例外処理で、ある特定の例外に関してだけ、同じ処理をしたい
場合は、特定の処理をしたいcatch句のところに同じ処理を繰り
返しかかなければならないのでしょうか?なんか、AとBとCの例外
の場合は、この処理を実行してください。ってな感じで一度に指定
することは可能なのでしょうか?

単純にcatch(Exception e)でキャッチしてしまうと、全部ひっかかって
しまうのでダメなのですが。。。
0249デフォルトの名無しさんNGNG
アプリで作った例外?
それとも規定の例外?
0250デフォルトの名無しさんNGNG
>>249
規定の例外です。
0251デフォルトの名無しさんNGNG
少しは頭使えよ
0252デフォルトの名無しさんNGNG
>>250
その二つの例外が継承関係に無い以上同じコードで扱うのは無理っぽい。

catch( Exception ) で全部捕らえて、if/else で我慢するしかないかな?
0253デフォルトの名無しさんNGNG
バーカ
0254デフォルトの名無しさんNGNG
ヴヮーカ
0255デフォルトの名無しさんNGNG
ブノレヮーカ
0256デフォルトの名無しさんNGNG
キリヴァーン
0257デフォルトの名無しさんNGNG
>>252
やっぱりそうなってしまうのでしょうか?
なんか、コードが例外処理だらけになりそうです。

みなさんも、やっぱりそういう風に書いてるの?
0258デフォルトの名無しさんNGNG
バーカ
0259デフォルトの名無しさんNGNG
>>257
catch使おうがif/elseだろうが、コード量はほとんど変わらない気がするんだけど
0260デフォルトの名無しさんNGNG
あと、例外に関して、もう一つ質問があるのですが、
catch(Exception e)はなるべく使わない方がいいと
言われたのですが、なぜ?

同じ例外処理をするなら、catch(Exception e)で問題
無いですよね?
0261ネタだけどNGNG

  catch (Exception x) {
    switch (x.GetType().Name) {
      case "FileNotFoundException":
        ...
        break;
    }
  }
0262デフォルトの名無しさんNGNG
>>261
caseは羅列できるね。

  case "FileNotFoundException":
  case "IOException":
    break;
0263デフォルトの名無しさんNGNG
>>260
真意は言った本人にしかワカランけど
catch( Exception e )はご存知の通り全ての例外を補足するから、
すごく便利なことに即刻プログラムをアボーンしなければならないようなちょー重大な
例外も漏れなくキャッチして何事も無かったかのようにプログラムを継続してくれるうれしい機能だ。
0264デフォルトの名無しさんNGNG
catch (Exception e) ならともかく、catch (Exception) は確かに問題だ。
           ↑                  ↑
0265デフォルトの名無しさんNGNG
>>264
そういう書き方をしたいときもあるんじゃん。
0266248NGNG
>>262
そうそう、そういうのがやりたいんですよ。
でも、try catchじゃできないみたいなので、みんなどうしてるの
かなって思ってた分けです。

わざわざ例外用の関数つくって、同じ例外処理の場合はそれを
読み出したりするようにしてるのでしょうか?
0267デフォルトの名無しさんNGNG
>>265
んで、ログには「エラーが起きますた」と一言だけ・・・。
0268デフォルトの名無しさんNGNG
>>266
try〜catchのスコープを小分けにして、そんなにcatchの羅列にならないようにする。
0269デフォルトの名無しさんNGNG
ファイルを読み込むさいのEOFはどうやって判断するんですか?
Whileかなんかでループしながらsr.ReadLine()で一行づつ読み込み
たいのですが。
0270デフォルトの名無しさんNGNG
>>269
TextReaderでできるじゃん。ReadLineの戻り値がnullだったら終了。
0271デフォルトの名無しさんNGNG
MSのC#言語、ISO標準獲得へ
http://www.zdnet.co.jp/news/0210/12/nebt_12.html
0272269NGNG
>>270
Thank you
0273デフォルトの名無しさんNGNG
>>246
ms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htmms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htm
0274デフォルトの名無しさんNGNG
>>273 間違えた。
ms-help://MS.NETFrameworkSDK.JA/cpguidenf/html/cpconreferencingstrongly-namedassembly.htm
0275デフォルトの名無しさんNGNG
>>269
NULLで。
0276デフォルトの名無しさんNGNG
標準化すると利便性が高まるからじゃなくて、標準化すると売りやすくなるから、
ISOに出すのね。まあいいけど、時代は変わったのね。
0277デフォルトの名無しさんNGNG
byte[]をstringに変換したいんですが、
よい方法ありますか?
0278デフォルトの名無しさんNGNG
>>277
MSDN・・・読もうぜ・・・
0279ヘルプを見ずにカキコNGNG
>>277
System.Text.Encoding.GetString
0280デフォルトの名無しさんNGNG
>>278-279
ありがとうございます。まさにこれです。
ぜんぜん違う方向探してました。
0281デフォルトの名無しさんNGNG
>>276
どっちみち標準化すると利便性が高まるからいいだろ。
0282デフォルトの名無しさんNGNG
超ド級の低レベルの質問でもうしわけないです。
今win95 C でプログラミングしてます
そこでsleep関数を使うとエラーがでてしまうのですが、使えないのでしょうか?
0283デフォルトの名無しさんNGNG
使えません。
0284デフォルトの名無しさんNGNG
使えます。
0285デフォルトの名無しさんNGNG
使える。
たぶん使えると思う。
使えるんじゃないかな。
ま、ちょと覚悟はしておけ。
0286デフォルトの名無しさんNGNG
使えない。
たぶん使えないと思う。
使えないんじゃないかな。
ま、ちょと覚悟はしておけ。
0287デフォルトの名無しさんNGNG
あれ?、ここC#相談室だよね?
0288デフォルトの名無しさんNGNG
そうだよ。
たぶんそうだと思う。
そうなんじゃないかな。
ま、ちょと覚悟はしておけ。
0289デフォルトの名無しさんNGNG
みつけたぞ288!
親の仇じゃ、覚悟!
0290デフォルトの名無しさんNGNG
なんなんだ・・・
0291デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/vstudio/device/eVC4SP1.asp
0292デフォルトの名無しさんNGNG
過去すれ全部HTML化された。
0293デフォルトの名無しさんNGNG
ファイルを読み込もうと思いfilestreamを使ってみたのですが
ブラウザが「[セキュリティ]タブの設定がよくありません。」
といってきます。

わたしのWinXPにはファイルのプロパティに
セキュリティタブが見つからないのですが
どうしたらよいのでしょうか?
0294デフォルトの名無しさんNGNG
ブラウザって何...
0295デフォルトの名無しさんNGNG
ASP.NETです。
会社のWin2000にはファイルのプロパティに
セキュリティタブというのがあるのですが
WinXP(Pro)にはないのです。
0296デフォルトの名無しさんNGNG
>>295
フォルダ・オプションの
「簡易ファイルの共有を使用する(推奨)」のチェックを外せ
0297デフォルトの名無しさんNGNG
>>296
俺もこれにはさんざん悩まされたよ
どこが推奨なんだか激しく問い詰めたかった
0298デフォルトの名無しさんNGNG
Multilineのテキストボックスで、指定した位置に表示を
スクロールすることは可能なのでしょうか?

例えば、テキストファイルを読み込んで表示した後に、一番
最後に表示したいような場合があるのですが。

どうでしょうか?
0299デフォルトの名無しさんNGNG
>>298
そのものズバリの質問がこのスレにあったと思う
0300デフォルトの名無しさんNGNG
>>299
このスレにはないようですが、、
過去ログの方でしょうか?
0301デフォルトの名無しさんNGNG
webブラウザコントロールのBeforeNavigate2っていうのは、リンクをクリック
して、新しいページを読み込む直前に呼ばれると思うのですが、なぜか、
呼ばれないのです。
VS.NET上からイベントを追加したのですが、何か足りないのでしょうか?

追加されたメソッドは次のようなものなのですが、、、
axWebBrowser1_BeforeNavigate2(object sender, AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event e)
}
0302C ◆dq2PerGLN. NGNG
CFileのMFCにあるファイルを開くダイアログはC#だとどのクラスでどのメソッドにあたるのですか?
0303デフォルトの名無しさんNGNG
>>302
OpenFileDialogクラス
ShowDialogメソッドで呼び出す
0304デフォルトの名無しさんNGNG
>>301
>>50 .NET 1.1に。
0305デフォルトの名無しさんNGNG
>>301
現時点で暫定的に対処したいなら、
ttp://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
これがよろしいかと。
0306301NGNG
げげげっ、バグなのですか!?
どうりで動かないわけですよ。。。

でも、これじゃぁ、2ちゃんブラウザをC#で作ることはできないじゃ
ないですか、、、せっかくC#で作ろうと思ってたのに。
なんで、 .NET Framework Service Pack 2 までだしているのに、直して
ないのでしょうか??
ホントにC#普及させようと思ってるのか???>MS

>>304
ちなみに .NET 1.1 って、まだ、ベータ版ですよね。そうすると、これで
ソフト作っても配布できないですよね。。。
ちなみに、.NET 1.1 の正式版リリースはいつごろを予定しているのでし
ょうか?なんか、MSのページみても情報無いのですが。。

>>305
この方法ってのはイベント部分だけ古いコントロールのやつを使うという
ことになるのでしょうか?なんかIE3コンパチブルというのがいやな予感が
するのですが、この方法を使った場合の弊害ってなんかあります?
0307デフォルトの名無しさんNGNG
>>296-297さん
激しく感謝m(・w・)m
0308301NGNG
>>305
とりあえず、この方法できちんと動くようですので、
.NET Framework 1.1 の正式版が出るまでは、これで対応
したいと思います。

MSのアホ!!ボケ!!カス!!

ところで、みなさんはこういう情報をどうやって仕入れるのでしょうか?
2ちゃんの過去ログや@ITとか、某UGMLとか、MSDN日本語版とか、一通り
あたってみたのですが、こんな解決策は載ってなかったです。

やっぱり、アメリカとかの情報サイトとかMLを読んだ方がいいのでしょうか?
海外のC#系の情報でお勧めの場所があったら教えてもらいたいのですが、
どこら辺がいいでのしょうか?
0309デフォルトの名無しさんNGNG
>303
サンキューです。さっそくやってみまーす
0310デフォルトの名無しさんNGNG
>ところで、みなさんはこういう情報をどうやって仕入れるのでしょうか?
>2ちゃんの過去ログや@ITとか、某UGMLとか、MSDN日本語版とか、一通り
>あたってみたのですが、こんな解決策は載ってなかったです。

C#相談室 Part xxでは激しくガイシュツだけど・・・
最低でも3度以上はでてる。MSのサポート情報にもでてるし。
海外サイトにもでてる。
0311デフォルトの名無しさんNGNG
>>308
漏れはひたすら google で検索。
関係ありそうなサイトがヒットしたら、そこからリンクを辿るとかね。
0312310NGNG
>>308 へのレスね。

で、MSのサポート情報のURL
http://support.microsoft.com/default.aspx?scid=kb;JA;JP311298
こっちはまぁ回避法は載っていないが、
ttp://www.syncfusion.com/FAQ/WinForms/FAQ_c100c.asp#q842q
このページはかなり早い時点からあったしな。
0313310NGNG
ちなみに漏れが最初にこの情報を知ったのはここだよ。
beta2のころはサイトもあんましなかったし。(海外別にして)
0314301NGNG
>>310-313
あらら、結構情報載ってますね。。
スンマソ。

ところで、.NET Framework 1.1の正式版はVisual Studio .Net(Everett)
と同時になるようですね。果たしていつになることやら。。。
0315デフォルトの名無しさんNGNG
>>262
C♯でそんなことできたっけ・・
switch は no fall-through じゃなかったっけ?
(つまりすべての case に break を書かなければ文法エラーになる)
0316デフォルトの名無しさんNGNG
>>315
羅列ができるだけ。
1行でもコードを書くと compile error になりますよん。
0317C ◆Iei1i2BWho NGNG
パラメータとしてPaintEventArgs fをメソッド button1_Click(object, System.EventArgs)に追加するには、デリゲートを作成して追加するらしいのですが、どのようにするのでしょうか?
よろしかったらだれか教えてください。
0318デフォルトの名無しさんNGNG
>>317
基本的には不可能(例外的にどうなのか知らないけれど)。
名前から察するにbutton1_Click(object, System.EventArgs)はボタンコントロールのClickイベントのメソッドだと思うけれど、
Graphicsクラスを取得したいならControl.CreateGraphics()やGraphics.FromHwnd()を使ったほうがいい(使い終わったらDispose()も忘れずに)。
0319デフォルトの名無しさんNGNG
Cは知ってるがC++やJava知らないんで
いまいちクラスの概念が理解できないんだが
クラスって、構造体と全く同じと考えていいの?
0320C ◆Iei1i2BWho NGNG
>317
迅速なレスありがとうございまーす、さっそくトライするっす
0321C ◆Iei1i2BWho NGNG
あっ
×>317
○>318
鬱だ(゚д゚)
0322デフォルトの名無しさんNGNG
2ch専用ブラウザ作成についての質問です(厨質問なのでsage)。

WebBrowserコントロールにHTMLを書き出して表示するところまでは
なんとか漕ぎ着けたんですが、表示したHTML中のリンク(「>>1」など)
をクリックしたときに該当するレスに飛ぶ方法がわかりません。

バグってるというBeforeNavigate2イベントが何か関係するんでしょうか。
0323デフォルトの名無しさんNGNG
>>322
その質問は、次のうちのどれが聞きたいの?

・リンクをクリックしたイベントをどうやって取るかわからない。
・BeforeNavigate2を実装したがきちんとうごかない。
・イベントは取れたが、画面のスクロールの仕方がわからない。

0324デフォルトの名無しさんNGNG
>323
> ・イベントは取れたが、画面のスクロールの仕方がわからない。

です。
0325デフォルトの名無しさんNGNG
>322

「>>1」 に単純に飛びたいなら、レス番号にアンカー仕掛けて、ドキュメント内で
飛べば?

htmlのソースに細工して、ジャンプ先を<a name="menu:1></a>、
リンクは <a href="#menu:1> >>1</a> みたいにしておけばわざわざイベント取ら
なくてもブラウザが勝手に飛んでくれるんでは?

どうしてもイベント使いたいなら、document.all.itemで飛び先のIHTMLElement
取って、IHTMLElement.ScrollIntoView()あたりでいけるとおもうが。

webborwserコントロールはnavigate2に限らずいろいろバグがあって、aximpで
自動的にラッパ作ったやつはまともに動かんぞ、と警告してみる。
0326322NGNG
>325
ありがとうございます。もう少し調べてみます。
0327デフォルトの名無しさんNGNG
最小化されたフォームを再び表示させようとする場合は
this.Show();
で表示するんでしょうか?

this.FormWindowState = FormWindowState.Normal;
じゃ表示されないみたいなんす・・・。
0328322NGNG
結局下のようにしました。
まだイベントに絡めては動かしてないんですが、クリックイベントを横取りして
やればいけるかなと思ってます。

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
>>327
そのフォームのプロパティみたらわかるけど
最小化したらフォームのLocationがX=-1、Y=-1ってなってるはず。
だからWindowStateをそのままNormal にしてもフォームの位置が
画面外だから表示されないように見えるの。
Normalにする前にLocationを元に戻してすれば表示されるはず。
0330デフォルトの名無しさんNGNG
>>329
ほんとじゃん!!
最小化って画面なくすんじゃなくて、見えないところに移動する機能だったんか?
ありがとう。
0331デフォルトの名無しさんNGNG
>>330
Win95からそうなったのよ・・・
一応Closeというのはあるんだけどね・・・
0332デフォルトの名無しさんNGNG
質問ですが、NetworkStreamクラスだけから、接続の切断(向こう側がShutdownしたなど)を検知する方法というものはありますか?
0333デフォルトの名無しさんNGNG
>>332
タイムアウトを設定しておけばいい。
0334デフォルトの名無しさんNGNG
>>332
接続中に切断されたなら、そこで例外が発生するからそれをキャッチすればいい。
接続しているか常にチェックしたいならちょっと無理かも。
TcpClient使ってるならTcpClientを継承したクラス作って
SocketもらってConnectedプロパティをチェックするしかない。
0335デフォルトの名無しさんNGNG
メソッドの呼び出し元を特定できますか。
コールスタックみたいに。
0336デフォルトの名無しさんNGNG
BeforeNavigate2関係の質問です。

http://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デフォルトの名無しさんNGNG
>>335
StackTraceクラスからMethodInfoが引けたはず。
0338デフォルトの名無しさんNGNG
>328

> ただ、横スクロールバーが出ていると微妙に右にスクロールしてしまうのが
> 気持ち悪いですね。hdoc2.parentWindowは型がサポートされてない旨の例外が

場当たり的だが、scrollintoviewのあとに
document.parentWindow.scrollBy(-1000,0);
ってやって、左に戻しておけばどうかと
0339デフォルトの名無しさんNGNG
>338
残念ながら型がサポートされていないという例外が飛んでしまうので
document.parentWindowが評価された時点で落ちます。トホホ。
0340デフォルトの名無しさんNGNG
>>339
キャッチすれば良いじゃん。
0341デフォルトの名無しさんNGNG
>339
> >338
> 残念ながら型がサポートされていないという例外が飛んでしまうので
> document.parentWindowが評価された時点で落ちます。トホホ。

俺はdocument.parentWindow.scrollBy(-1000,0); で普通に使えて
いるが。WebBrowser_V1 を使っているせいかな?
0342336NGNG
自力で解決できそうかな? つーわけでメモ。

■ 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をクラスのコントロールのメンバとしてグローバル変数(いろいろなメソッドで共通に使えるように)宣言したいのです。
しかしあるメソッドの中では
Graphics formGraphics = this.CreateGraphics();
としてますので、これを利用して"this"を抜かし、
Graphics formGraphics = CreateGraphics();
と宣言するとエラーが出ます。
どのように宣言をすればよいのでしょうか?
わかる方お願いします

0344デフォルトの名無しさんNGNG
全角と半角が混ざっている可能性のある数字文字列を半角のみに変換する
簡単な方法はありますか? 具体的には下のようなイメージです。

"0123456789" -> "0123456789"

今のところひたすらReplace()で変換してます・・・(効率悪〜)
0345336NGNG
>342
自分で問題点発見。
細かいことは分かりませんが、HTMLを部分出しにしている場合、
全文が完全に出力される前にリンクをクリックされるとイベントを
横取りできないみたいです。

当然といえば当然だけど回避策はないのかなー。
0346デフォルトの名無しさんNGNG
>>343
フィールドでGraphics formGraphics;としといて、
コンストラクタで formGraphics = this.CreateGraphics(); とするのは
だめなのかい?
0347デフォルトの名無しさんNGNG
>342
「HTMLを部分出し」 っていうのがよく意味わからんけど、
document.close()の前にイベントハンドラの処理をやってるなら
本来はちゃんとイベントが接続されるはず。

anchorElementのonclickを捕まえる方法は俺もやったことがあるが
挙動が不審なんだよ。

interopかmshtmlのPIAのバグのせいなのか、わからんのだが、
ちゃんとイベントハンドラ接続しているのに、ランダムに全く原因不明で
イベントがファイアしないことがあってあきらめたことがある。

document.HTMLDocumentEvents2_Event_onclickを捕まえて、
IHMTLEventObjのfromelementをみてやる方法もあるが、こっちも
なんか挙動がおかしかったように記憶している。
0348デフォルトの名無しさんNGNG
DelphiとC#ってC#の方が速いんですか?
0349デフォルトの名無しさんNGNG
JITはCLR持ちだから、同等になりそうな気がするが、試してくれ。
0350デフォルトの名無しさんNGNG
>347
> document.HTMLDocumentEvents2_Event_onclickを捕まえて、
> IHMTLEventObjのfromelementをみてやる方法もあるが、こっちも
> なんか挙動がおかしかったように記憶している。

この方法ではたしかホイールが利かなくなったような記憶が。。。
あとこれは想像だけどイベントハンドラの不発はmshtmlのHTMLパーシングが
非同期(多分)で遅いことが原因じゃないかな。foreachで回す時までにlinkに
すべてのアンカーが入っていないような気がする。ケツから後方一致でやってる
みたいでハンドラ不発はランダムじゃなくてある個所から手前(ファイルの先頭)
までが全滅している。
writeで書き込んだ後、何らかの方法でmshtmlのパーシングが完了したことを
確認する手段があればいいんだけど。。。
0351デフォルトの名無しさんNGNG
READYSTATEとかかなあ
0352デフォルトの名無しさんNGNG
>>344
VB.netのStrConvを使うとか。
0353デフォルトの名無しさんNGNG
GetPixel()メソッドで取得したRGB値をR,G,Bの各値を取得する関数はありますか?
それとも自分で作らないといけないのでしょうか?
わかる方お願いします
0354デフォルトの名無しさんNGNG
>>352 のStrConvなどここに書いてある。
http://www.atmarkit.co.jp/fdotnet/csharptips/013vb/013vb_02.html
0355デフォルトの名無しさんNGNG
>>353
Color構造体で返って来るので、
普通に各プロパティ(R,G,B)を見ればいいのでは?
0356デフォルトの名無しさんNGNG
>346
サンクスです。コンストラクタでthisが使えるのですね。
0357350NGNG
すんませんあやふやな記憶だけで大嘘ぶっこいてました。
ちゃんとコードを書いて確認してみましたが、mshtmlのlinksを参照したときに
アンカーの漏れが発生するという事実は確認できませんでした。

イベント不発の原因は接続のタイミングを計ればどうにかなるというものでは
なさそうです。。。
0358デフォルトの名無しさんNGNG
>350

> この方法ではたしかホイールが利かなくなったような記憶が。。。

あ、たしかにそうだったかもしれない。

> あとこれは想像だけどイベントハンドラの不発は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デフォルトの名無しさんNGNG
S.W.Forms.Control の OnImeModeChanged ってどういうときに使うの?
0360デフォルトの名無しさんNGNG
>>359
ImeModeプロパティが変更された場合に発生します。
0361デフォルトの名無しさんNGNG
WebBrowserコントロールでリンクにマウスポインタを合わせたときに
ツールチップを表示させたいんですが、ToolTipクラスはコントロール
依存みたいでアンカーエレメントに対応付ける方法がわかりません。
仕方がないので今はtitleプロパティを代用にしてますが、これだと
マウスポインタの座標を基点に右下方向に表示されてしまいます。
出来れば右上方向に表示したいのですが方法が分かりません。
ご存知の方がいたらぜひご教示ください。
0362デフォルトの名無しさんNGNG
>>361
消極的で悪いけど、一般的に知られている方法以外で情報を提示するとユーザは混乱するよ。
Webサイト見てて急に広告が落下してくるとビビるだろ?あれと一緒。
広告は貼り付けてあるもので降ってくるものではない、と言うブラウザの常識を越えた方法だから。
0363デフォルトの名無しさんNGNG
>361

title属性ででティップが表示されるのはブラウザの機能だから、
いじるのは無理じゃないかな? とりあえず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デフォルトの名無しさんNGNG
C#からのwebブラウザコントロールの使い方なら、このソースを見ると、参考になるよ。http://www.geocities.co.jp/SiliconValley-Sunnyvale/5386/ちなみに、2ちゃんブラウザ作ってるの?
0365デフォルトの名無しさんNGNG
新しいThreadを作る時に引数をもった関数でThreadStartできますか?
0366デフォルトの名無しさんNGNG
>>365
ThreadStart デリゲート見るとダメっぽいね。
0367デフォルトの名無しさんNGNG
>>385
アドホックinvokeを使えばできるよ。クラスライブラリではなく、C#のデリゲート
自動生成機能なんで探すのはめんどうだが。
0368デフォルトの名無しさんNGNG
threadプール使えと言わんばかりの仕様に見えるのよねー
0369デフォルトの名無しさんNGNG
>>367
アドホックinvokeって初耳ですがなんですか?
別に引数なくても困りませんが。スレッドクラス作るし。
0370367NGNG
ms-help://MS.VSCC/MS.MSDNQTR.2002JUL.1041/cpguide/html/cpconcompilersupplieddelegatebegininvokeendinvokemethods.htm
これだけど、書けば勝手に作られてスレッドプール使われるからアドホック。
でも、本当は、アドホックデリゲートとおいらは書きたかったんだが、書き間違えたスマソ。
0371367NGNG
>>369
こんなのもあるが、おいらは、Threadクラスから派生するほうが良いと思う。
・データの局所化(クラスのフィールドにパッケージング)
・テンプレートメソッドパターンが使える
とか、そんな理由から。
1ショットならアドホックデリゲートでも良いかも。
0372デフォルトの名無しさんNGNG
>>367
詳しそうだから聞いてみちゃうけど、スレッド間のメッセージのやりとり
はどうやるのがいいですかね?
メッセージキューで調べるとシステムワイドのメッセージキューサービス
なんてのがでてきやがる・・・
0373デフォルトの名無しさんNGNG
>>370
なるほど、それアドホックデリゲートって言ってたのね。
知らずに使ってたよ。
>>371
Threadクラスから派生かぁ。考えてもみなかったけど、
あまり必要に迫られていなかったなぁ。
でも考えてみれば、派生したほうが便利な場面あるね。
ありがとう。
0374デフォルトの名無しさんNGNG
>>373
と思ったがヘルプみてみると、Threadクラスはsealedだわ。
継承できんがな・・・
漏れが意図を汲み取れなかったのだな・・
0375デフォルトの名無しさんNGNG
>>372
非同期デリゲートつかうんじゃなかったっけ?
まあ場面によって色々あるけど、
ヘルプで「スレッド化チュートリアル」で引けば基本はわかるかと。
0376デフォルトの名無しさんNGNG
うーん、一応スレッド関連は眺めてみたんですが、スレッド間通信という
のはありませんですた。
0377デフォルトの名無しさんNGNG
>376

単にデータのやりとりをするなら非同期デリゲートでIAsyncResultのasyncStateん
中に放り込むとか?

単純なThread.Startに比べると、非同期デリゲートは なんかいちいち面倒で、
気軽に使えん。
0378デフォルトの名無しさんNGNG
C#のツールバーってなんか退化してません?
ReBarとか、ドッキング可能なツールバーってなくなっちゃったの
でしょうか?
0379367NGNG
>>374
ごめん。JavaのThreadとごっちゃになってた。.NETのThreadは継承できないね。逝ってきます
0380359NGNG
>>360
>ImeModeプロパティが変更された場合に発生します。

いや、発生要因は Help は見ているからわかっているんだけど。
いつ呼ばれるのか、では無くて、どういうときに使うことを想定しているのか。
という質問なの。

IME 自身のモードを切り替えても呼ばれないし。
0381デフォルトの名無しさんNGNG
俺が常用しているThreadの小技。使い方は MyThread.GetThread(スレッドに渡したい引数※).Start();
(※サンプルでは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を使って何かする
  }
}
0382381NGNG
今気付いたけどスレッド間通信も簡単に出来ると思う。
送信側は MyThread.SendMessage(受信側スレッド名 送りたいデータ) とかするだけで
受信側スレッドの状態管理なり排他制御なりは MyThreadクラスに任せてしまえる。

もしかしてデザインパターンとしてとっくに名前ついてる?
0383381NGNG
すまん、間違い発見。
インスタンスメソッドの方のGetThreadだけど、引数要らんわな。
0384デフォルトの名無しさんNGNG
#と♯って何が違うの?
0385デフォルトの名無しさんNGNG
スレッドの話が出ているので便乗質問なのですが、
lock(this) {
  ....
  ....
}
って書いた場合、lockの{}で囲まれた処理だけが
排他的にスレッドによって実行されるってことなの?
それとも、(this)って書いてあるから、{}の中の処理
を実行中は、thisで示されたインスタンス自体がロック
されるってこと?

0386デフォルトの名無しさんNGNG
>>380
コントロール表示時のIMEモードをどうするか設定しておくプロパティじゃないの?

つまり、ユーザが「半角/全角」キーを押すことは関係なく
0387デフォルトの名無しさんNGNG
>>386
>>359-360読むと
そのプロパティが変更された時に発生するイベントが
何の役にたつのだと、言いたいわけだろう。

全部のプロパティにChangeイベントがいるか?
0388デフォルトの名無しさんNGNG
>>387
ないよりはいいかと思う漏れは逝ってよし?
誰が何に使うかわからんわけだし、放置でいいでしょ。
0389デフォルトの名無しさんNGNG
>>388
同意。
0390デフォルトの名無しさんNGNG
>>385
thisがロックされるのではなく、(厳密な言い方ではないが)thisがさしている
オブジェクトにロック済みのマークが付けられる。そのため、
lock(this) {
を実行しようとするすべてのスレッドは、マークを付けたスレッド自身を除き、
そこでブロックされます。つまり、lockブロック抜きで
this.setxxx(xx);
する、スレッドを止める手段は無しです。
したがって、「インスタンス自体がロック」のほうに近いかな。lock(this)な
ブロックであれば、どこであっても影響を受けるから。
0391デフォルトの名無しさんNGNG
>>390
つまりcooperative lockであってmandatory lockではないということですか
0392385NGNG
大変よく分かりますた。
0393デフォルトの名無しさんNGNG
うわ〜ん。IHTMLDocument2のイベントは onclickに限らず不発が多いよ〜。
これってC#特有の問題?バージョンがあがれば解決の望みあり?
0394デフォルトの名無しさんNGNG
>>384
#は電話のボタンの右下のマーク
♯は音楽記号のシャープ
0395デフォルトの名無しさんNGNG
>>393
ちなみに、どんなイベントがダメなの?

うわさによると、次期VS.NETに付属する.NET Framework1.1では直って
いるらしいが。
0396デフォルトの名無しさんNGNG
>>395
どこで聞いた噂ですか?
0397デフォルトの名無しさんNGNG
>>395
過去ログみてみ。β版でちゃんと治ってるって報告あり。
0398デフォルトの名無しさんNGNG
>#は電話のボタンの右下のマーク
読み方は?
0399デフォルトの名無しさんNGNG
>>398
たてたてよこよこ
0400デフォルトの名無しさんNGNG
ま〜るかいてちょん
0401デフォルトの名無しさんNGNG
(+。+)アチャー。
0402デフォルトの名無しさんNGNG
>>398 い!
0403ネットワーク試験遅刻しそうNGNG
BitmapメンバのSetPixelメソッドははPaintEventArgs eを取得して処理しないといけないのでしょうか?単独で使うとエラーがでます。
これはあるBitmapにピクセルをセットするとVC++のOnPaint()などの処理を呼び出さないといけないのでしょうか?
わかる方宜しくお願いします
0404デフォルトの名無しさんNGNG
>>403
いや、早く行けよ。がんばれよ。
0405デフォルトの名無しさんNGNG
>>398
いげた。

そういえば大学でC教えてた教授が「いげた」って言ってた。「いげたインクルード」とか。
今、C#のことを「シーいげた」って言ってんのか確かめたい!
0406デフォルトの名無しさんNGNG
>>405
その理屈でいくと、「C++」は「シーくさかんむり」にでもなりそうなものだが。
0407405NGNG
ちゃんと「ぷらぷら」って言ってた。「シー」は言わずに。
0408デフォルトの名無しさんNGNG
.<見えるかな?のことを、うちの会社ではみんなポツと呼ぶ。
unknownはアンノンと呼ぶ。
C++はシーププラだし、うちの会社変な奴ばっか(´д`;)
0409デフォルトの名無しさんNGNG
>>403
ちゃんと、サイズを指定してビットマップ作ってる?
0410デフォルトの名無しさんNGNG
C#で使えるデリゲートというものがありますが、
このデリゲートとイベントの違いは何でしょうか?

イベント機能はデリゲートを使って作られているそうですが、
何が、普通のデリゲートと違うのでしょうか?

何かあったら登録されているメソッドを呼び出すというのは
デリゲートとまったく同じだとおもうのですが、
0411デフォルトの名無しさんNGNG
フォームのボタンを押すと、別スレッドで重たい処理をやって、
その結果が出たら、フォームにあるテキストボックスに結果を
表示しようと思っているのですが、別スレッドから、フォームの
コントロールに直接アクセスしてはいけないそうです。

じゃぁ、いったいどうやったらいいのでしょうか?

すぐ上のレスでイベントの話が出ていますが、イベントを使っても、
やっぱりだめなんですよね?イベントとか実行しても、フォーム側の
スレッドで実行されないんですよね?

なんか、ここら辺がよく分かってないのですが、C#のイベントというの
はMFCとかのWindowsのメッセージによるイベント駆動のイベントとは違うのでしょうか?
あの昔のイベントなら、メッセージをキューに入れておけば、フォームのスレッド
が暇になったときに勝手に実行してくれたりしたのですが、、、

0412デフォルトの名無しさんNGNG
C++の
「
int x;
unsigned char buf[100];
int* p=(int*)&buf[x];
」
をC#で書きたいのですがどうすればいいのですか。
int buf[100];
int* p=buf;
ならばうまくいくのですが。
char*からint*への変換はできないのでしょうか。
なお、「fixed」「/unsafe」を使うことは分かっています。
0413411NGNG
調べてみたら、なんとなく分かりました。
どうやらこの方法を使うようです。

ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpcondevelopingmultithreadedwindowsformscontrol.htm
0414デフォルトの名無しさんNGNG
>>413
というかカコスレに超既出なんだが、、
0415デフォルトの名無しさんNGNG
>>410
激しく既出。

フィールドとプロパティの関係と似たようなもの。

class Hoge
{
 int n; // フィールド
 int N { get { return n;} } // プロパティ

 HogeDelegate f; // 普通のデリゲート型のフィールド
 event HogeDelegate OnXXX; // イベント
}
0416410NGNG
>>415
過去ログの方も読んでみました。大変参考になりました。

でも、>>415 ということは、なるべく、eventを使って隠蔽化した
方がいいということなんでしょうかね。
0417デフォルトの名無しさんNGNG
>>411
Control.Invoke
0418デフォルトの名無しさんNGNG
>>415
今まで何となくしか理解してなかったけど、
簡潔かつ分かりやすくて目の前が開けますた。
サンクス!
0419デフォルトの名無しさんNGNG
textBoxにWriteLineするにはどうしたらよいですか?
0420デフォルトの名無しさんNGNG
改行するってこと?MultiLineにして\r\nでいいのでは?
0421デフォルトの名無しさんNGNG
他には、Environment.NewLineとかあるけど、\r\nで良さそうだね。
MessageBoxの場合、\nでも大丈夫だった。
0422デフォルトの名無しさんNGNG
>421

\rが必要だっていうのには俺もかなり悩んだなあ。
windows名前空間だから\r\nなわけぇ? とおもいきやmessageboxは
言われてみれば\nでもいけるし。なんかここら辺の不統一が気持ち悪いね。

宇宙仮面も怒ってたな
0423デフォルトの名無しさんNGNG
private void button1_Click(object sender, System.EventArgs e)
{
  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デフォルトの名無しさんNGNG
おれも 怒ってる ゴラァ!
0425デフォルトの名無しさんNGNG
>>423
textBox1.Text += "\r\nAAA\r\nBBB";
じゃダメなのか? (;´Д`)
0426デフォルトの名無しさんNGNG
>423

なぜにこんな回りくどいことを……????
425かtextBox1.AppendText("\r\nAAA\r\nBBB"); のどっちかっしょ。
0427デフォルトの名無しさんNGNG
(;´Д`)
0428デフォルトの名無しさんNGNG
(;´Д`) <書くのもメンドくさい
0429デフォルトの名無しさんNGNG
くだスレの方が質問レベル高いような気がする。
0430デフォルトの名無しさんNGNG
C#カンファレンス 2002
http://www.shoeisha.com/event/cs/
0431デフォルトの名無しさんNGNG
たまにゃ土日に大阪でやってくれ。。。
0432デフォルトの名無しさんNGNG
Microsoft .NET Pet Shop 2.0
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet.asp
0433デフォルトの名無しさんNGNG
>>432
インストール時にWindows認証も選べるようになったので、MSDE使いも楽に動かせるね。
0434デフォルトの名無しさんNGNG
「Panel」だと「OnMouseWheel()」って駄目なんでしょうか。
0435433NGNG
と思ったら、やっぱり混合モードにしないと動かないみたいね。
ということで、ここを参照。
http://www.sqlpassj.org/bunkakai/begin/series/s01/0113.aspx
0436デフォルトの名無しさんNGNG
今月号は買いづらいなあ。(;´Д`)
http://dotnet.impress.co.jp/index_b.htm
0437デフォルトの名無しさんNGNG
>>435
そんなしちめんどくさいことを。。。レジストリいじればすぐになおるっしょ。
やり方は今月のDBマガジンの付録に書いてあった。
0438デフォルトの名無しさんNGNG
>>430
セッションを投票で決めるらしい。もうネタがないのか?(w
0439433NGNG
>>437
ほんとだ。レジストリのLoginMode変えてDB再起動するだけでできた。ありがと。
0440デフォルトの名無しさんNGNG
>>438
マイナーなネタでもふるか。メッセージキューとか。
0441デフォルトの名無しさんNGNG
>>440
選択肢は3つらしい。
http://www.shoeisha.com/event/cs/vote/
0442デフォルトの名無しさんNGNG
出来レースだな、こりゃ。
0443デフォルトの名無しさんNGNG
ほんとにどれがきてもしゃべるのか?しゃべれるのか?
0444デフォルトの名無しさんNGNG
XmlObjectSpaceを使ったIBuySpy実装。なかなか面白そう。
http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=b706dc79-415d-45de-8a6c-eb518adb0075
0445デフォルトの名無しさんNGNG
やっぱりObjectSpacesでリレーション設定したオブジェクトは
XMLに出来ないのかなぁ・・・
0446デフォルトの名無しさんNGNG
http://www.daimi.au.dk/~vedel/microsoft/ms-pub/VS.NET/program%20files/microsoft%20visual%20studio.net/vc7/vcpackages/
ここに置いてあるdllって安全?
0447デフォルトの名無しさんNGNG
>>446
日付を見る限り、ベータっぽくない?
0448デフォルトの名無しさんNGNG
MSDNどころかC#Standard買う金ないんで
60日の体験版で勉強したいんですが
あれって、60日過ぎても
また再インストールして使えないですか?
SharpDevelopは何故かうちの環境じゃ動かないんです。
0449デフォルトの名無しさんNGNG
デザイン時に、コントロールのプロパティにデータソースを指定する際、
TypeConverter("System.Windows.Forms.Design.DataSourceConverter")
っていう属性を付けると、一覧から選ぶことが出来るけれど、標準のComboBoxや
ListBoxのDisplayMemberのように、列を一覧から選ぶことが出来るように
するには、どの属性を付ければいいんだろう?
Editor("System.Windows.Forms.Design.DataMemberFieldEditor", typeof(UITypeEditor)
とか
TypeConverter("System.Windows.Forms.Design.DataMemberFieldConverter")
つけても駄目だった。むむ〜。まぁ正しい列の文字入力すれば動くけれど。

だれかわかる人いますか?
0450デフォルトの名無しさんNGNG
>>448
.NET Frameworkにコンパイラついてくるぞ。
無料で配ってる。
0451デフォルトの名無しさんNGNG
.NETに陰りが出始めてるよ。
C#<<<JAVAが
C#<JAVA
にすらなっていない現状。
クライアントアプリを作るにも、C#クソだし
サーバーサイドやるにしても.netクソだし、
.netの設計者殺すしかないかも。
0452デフォルトの名無しさんNGNG
スレ違い
http://pc3.2ch.net/test/read.cgi/tech/1034875332/l50
0453デフォルトの名無しさんNGNG
http://www.ascii.co.jp/pb/msdn/toc/bn_no31.html
ちょっとよさげな内容。
0454デフォルトの名無しさんNGNG
>>453
これでつか?

> .NETセキュリティ
> エビデンス,ポリシー,パーミッション,施行サービスを提供するCLRの
> セキュリティインフラストラクチャ
> (September 2002 Vol.17 No.9)●Don Box
0455デフォルトの名無しさんNGNG
日経ナントカよりはマシだろうか
0456デフォルトの名無しさんNGNG
相変わらず訳が糞だねぇ。施行サービスってなんだよ?
0457448NGNG
>>450
.NET Frameworkは一応コマンドラインで使ってるんだが
借りてきたC#の本に対応していないので勉強できない・・・
DelphiみたくStandardタダにするとか
機能限定無料版とか無いのがイタイ
60日間試用版って一回消していれなおして使えんのかなぁ・・・・
情報キボンヌ。
0458デフォルトの名無しさんNGNG
>>457
フリーの.NET統合開発環境「SharpDevelop」
http://pc3.2ch.net/test/read.cgi/tech/1023727377/
とかいうスレが立ってるから、見てみたら?
0459デフォルトの名無しさんNGNG
>C#Standard買う金ないんで
リアル小学生でも親にねだって
買ってもらえる程度の額を、出せないなら
生活保護を受けに逝った方がいいよ。
>機能限定無料版とか無いのがイタイ
正直、きみの方がずっとイタイ
0460448NGNG
>>458
サンクス
実は、SharpDevelopスレの181が漏れなんですわ
未だにフォーム表示するだけの空アプリも作れんので凹んでます
VB6やVC6ならおもむろにF5押すだけで出来るのに・・・
0461デフォルトの名無しさんNGNG
立派な機能限定無料版だと思うのだが
0462デフォルトの名無しさんNGNG
出ルφなら何でも出来るがC♯は何も出来ないという認識でよいですか?
0463デフォルトの名無しさんNGNG
>>462
いいですよ。他で議論するところいっぱいあるから他でやってね。
0464デフォルトの名無しさんNGNG
質問です。Windowsを終了する時に、自作アプリケーションを起動しておくと
Windowsの終了処理が中断してしまいます。そこで、
Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEndingEventHandler( OnShutdown );
としてハンドラにはthis.Close();としてフォームを閉じる処理を記述して対応しようとしたのですが、
どうもうまくいってないようです。何か対処法はないでしょうか?
0465デフォルトの名無しさんNGNG
>>457
アクティベーションが必要になるから無理では?
0466デフォルトの名無しさんNGNG
>>465
ウィンドウがアクティブじゃないと駄目なんですか・・・
役にたたないですね、それじゃ。
どうすればいいんでしょうね。シャットダウン処理とめるのがデフォルトだと困るなぁ。
0467デフォルトの名無しさんNGNG
>>465
アクティベーションが必要になるのは、
アカデミック版だけじゃないの?
試用版も必要なの?
0468デフォルトの名無しさんNGNG
>>466
何か、>>465のレスを勘違いしてない?
0469デフォルトの名無しさんNGNG
>>468
あ! 思いっきり勘違いしてますた。逝ってきます。鬱すぎる・・・
0470デフォルトの名無しさんNGNG
>>467
ネットを使ったライセンス認証が必要。なんか本買った時とかに付録で付いてたのが
貯まってしまって三枚くらい体験版あるけど日経の「C#で始めるWINプログラミング」
にはアクチが必要と書いてある。
他2枚は特に注意書きはないけど、同じ体験版だし必要かと。
0471467NGNG
>>470
なるほど、サンクスです
0472デフォルトの名無しさんNGNG
>>447
>借りてきたC#の本に対応していないので勉強できない・・・

君だめぽすぎ。C#の本に対応って・・・本末転倒じゃねぇか。
開発環境がらみのところは読み飛ばしちまいな。
0473472NGNG
447じゃなくて、457。俺もだめぽすぎた・・・逝ってまいります。
0474デフォルトの名無しさんNGNG
>>471
間違った。体験版入ってるのは「始めようC#」だった。
0475デフォルトの名無しさんNGNG
>>460
SharpDevelopの0.92が出ているよ。試してみたら?
0476デフォルトの名無しさんNGNG
お前らみんなダメポすぎんな
間違いだらけだぞ!

次に来るのは決まってABですが何か?
0477デフォルトの名無しさんNGNG
::::::::::::::::::( ノ:::::::::::::::::::::::::::::   | 十   ┼   キ . 十   ┼   キ
:::::::::/::::::::::::::::::::::::::::::::::::::::::    |⊂ レ ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
:::::::/\::::::::::::::::::::::::::::::::::::::    !
::::::/  \::::::::::::::::::::::::::::::   /. 十   ┼   キ . 十   ┼   キ
::::/    \:::::::::::( ノ:::   / ⊂ レ ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
:::: ̄ ̄ ̄ ̄ ̄:::::::::::    '                 /l
:::::::::::::::::::::::::::::::::    / 十   ┼   キ       / .:|
:::::::::::::::::::::      -   ⊂ レ ヽ/  ̄ \ヽ  _ −'  .::└‐- .,/
::::::  _ ―  ̄         /  ..::::::::::..l /   ..::::::::::::::::::::......
. ̄ ̄    十   ┼   キ   |  ::::::::::::::ノ/   ::( ノ:::::::::::::::::::::::::::
    ∧ ⊂ レ ヽ ノ こ (フヽ  |  ::::::::::/ l   ::::::::::|::::::::::::::::::::::::::::
    /:. `,             |  ::::::::::| |  :::::::::::::::| ̄ '‐- ._/
   /::::. '、  十   ┼   キ .l  ::::::::::ヾ  :::::::::::::::|    /::::::
___/::::::::. `、⊂ レ ヽ ノ こ (フヽ !  ::::::::::::゙、  :::::::::::::::|  /::::::::::::
:::::::::::::::::::::  \          ヽ.  ::::::::::::\ ::::::::::::|/:::::::::::::::::::
:::::::::::::::::( )  ヽ  十   ┼   キヽ :::::::::::::::` -::::::::::::::::::::_ -''
:::::::_/:::::::::::::..   i⊂ レ ヽ ノ こ (フヽ \ :::::::::::::::::::::::::::::::::::::::::::::::::
 ̄  /::::::::::::::::::   l    _ ― 、     〉 ::::::::::::::::::::::::::::::::::::::::::::::
   /::::::::::::::::::::   |  /    \  ┼   キ . 十   ┼   キ
  /:::::::::::::::::::::   l  |  .::::::::::::. ヽ ノ こ (フヽ ⊂ レ ヽ ノ こ (フヽ
\/:::::::::::::::::::::   / / :::::::::::::::::: }
0478デフォルトの名無しさんNGNG
>>476
次に来たのはAAでした。
0479デフォルトの名無しさんNGNG
質問です。
NotifyIconのContextMenuを使うとステータス領域を“右クリック”で
ポップアップメニューを表示させることができますよね。
でも、NotifyIconを使ってステータス領域に表示されたアイコンを“左クリック”で
ポップアップメニューが表示されるようにしたいのですが、
どうしても方法がわかりません。ご教授ください。
0480デフォルトの名無しさんNGNG
>>479
ContextMenu.Show()
0481デフォルトの名無しさんNGNG
書かれてみると案外左クリックも便利かもね?
0482デフォルトの名無しさんNGNG
期待しましょ。
http://www.develop.com/kbrown/book/default.htm
0483デフォルトの名無しさんNGNG
疑問だったんですけど、なんで const なメソッドが無くなったんでしょう。
例が悪いけど、
void AssertValid() const;
とか
void Dump(...) const;
とかどうしたら良いんでしょうか。
0484デフォルトの名無しさんNGNG
多重継承とかテンプレートとか、VB厨に理解できないようなものは、すべて外されたデス。
0485デフォルトの名無しさんNGNG
>>483
constをつけるまでも無くコンパイラが自動判別するから
0486484NGNG
半分ネタで書いたんだが(俺もVB上がりだし)マジで理解してないやつもいるんだな。
0487デフォルトの名無しさんNGNG
>>486
まぁ、インターフェースでそれなりにカバーできるし。

テンプレートは激しく欲しいよ。テンプレート厨が沸くのはうざいが。
0488デフォルトの名無しさんNGNG
AssertValidがフィールドいじってるかどうかなんてきにすんな。
そう組んだやつがわるい。
0489デフォルトの名無しさんNGNG
スレッドを強制的に終了する方法はありますか?
Abortとか使ってもSuspend中のスレッドは終了できないみたいなんですが・・・
0490デフォルトの名無しさんNGNG
>>485
const というのは、プログラムミス防止のためのものであるから
勝手にコンパイラに判断されては困ると思うのだが・・・
0491デフォルトの名無しさんNGNG
>>490
へぇ。
0492483NGNG
私もそう思うんだけど。
実際には const は使えないんですよね。
なんでだろ…?
0493デフォルトの名無しさんNGNG
> 疑問だったんですけど、なんで const なメソッドが無くなったんでしょう。

必要ないから。

そもそもconstメソッドなんかに頼っている時点で、カプセル化の意味がなし。
# オブジェクト自体をimmutableにするとか、いろいろ方法がある。
0494デフォルトの名無しさんNGNG
例えばそのオブジェクト自体をimmutableにする場合に、
DBC的な用法でconstメンバ関数を使うことも十分あるのでは。

#どの言語でも原理主義者はいややね。
0495デフォルトの名無しさんNGNG
constというのはROMに配置するためにあるのだ!
0496デフォルトの名無しさんNGNG
まぁJavaと違って普通に関数作れるしね・・・。
0497479NGNG
>>480
ありがとうございます。
ところが、Showメソッドは引数がControlなので、NotifyIconを引数に指定できません。
なにかうまい方法でもあるんでしょうか?
0498デフォルトの名無しさんNGNG
>>483
C#ではObject型はすべて参照という点に注意して考えてみてください。
意味が薄くなってきたから、いっそ取り除いてシンプルにしてしまえと言う事だと思います。
C++ 見たいに class をオブジェクト型だけではなく、代数型や構造体のように使うことをやめ
オブジェクト型に特化しているので、オブジェクトがメンバとして実体配置されることが無くなって
そのオブジェクトが参照している先まで const か?
ということになってしまいます、そこを見ないなら、constの意義がないです。

>そもそもconstメソッドなんかに頼っている時点で、カプセル化の意味がなし。
貴方は論点はずしまくり
0499デフォルトの名無しさんNGNG
漏れはいつもconst用のコメントブロックを作るスタイルなので
const無くてもへーき。
0500483NGNG
>>498 意見どうもです。
オブジェクトを Dump すると、そのオブジェクトが参照(と言うより所有)しているオブジェクトもダンプする事がありえますよね。
元のオブジェクトが(C++で言うと)参照定数のコンテクストにあるとき、Dump 呼び出しは所有物に対しても通るけど、他の const でない操作はコンパイラがブロックしてくれる…
っていうのが存在価値なんじゃないかなと思ってるんです。

自分で面倒見やがれと言うスタンスで統一したと言う事でしょうかね。
0501デフォルトの名無しさんNGNG
>>497
おいおい。
ContextMenuにShowメソッドがあるって。
0502479NGNG
>>501
度々すみません。

private void nIcon_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
   if (e.Button==MouseButtons.Left)
    {
    ContextMenu.Show();
    }
}

ということでしょうか?コンパイルエラーになるのですが・・・。
0503デフォルトの名無しさんNGNG
>>502
>ということでしょうか?コンパイルエラーになるのですが・・・。

で、エラーメッセージ書かないボケはどこのドイツですか?
0504デフォルトの名無しさんNGNG
>>502
つうかヘルプでShowメソッドのところみたか?
引数たんねーよ それじゃ。
0505デフォルトの名無しさんNGNG
エラーメッセージ書かないのはネタだと何回も何回も・・・(略
0506479NGNG
>>503
すみません。コンパイルする以前の問題だったので、書きませんでした。
気をつけます。

>>504
ContextMenu.Show((Control)sender,new Point(e.X,e.Y));
とすると、senderがNotifyIconなのでキャストできないですよね。
かといって、NotifyIconコントロールを貼り付けたFormを指定すると、
「System.ArgumentException: 非表示のコントロールでは、ContextMenu を表示できません。」
になるし。
0507デフォルトの名無しさんNGNG
>>506
言っても書かない馬鹿一人。
0508デフォルトの名無しさんNGNG
いいなぁ、バカって。
人生、楽そうだ。
0509デフォルトの名無しさんNGNG
そのDLLを参照に追加してみるのが最初の一歩だと思った
0510501NGNG
>>506
497での発言は、ContextMenuのShowメソッドを見た上でのコメントやったんね。
やっと意味わかったよ。

このShowメソッドは使えないね。
かといって、左クリックを右クリックとだまくらかす方法はないかと
考えてみたが、ちといいアイディアなしだわ・・・。

いけそうで、いけないな・・・むむむ。
0511デフォルトの名無しさんNGNG
タスクトレイに常駐するだけのアプリケーションはどのように書きますか?
0512479NGNG
>>510
そうなんです。いけそうで、いけないんです。
あきらめてAPIでいこうかと思ったんですが、
面倒だからそのまま右クリックに逃げました。(苦笑

>>511
Form1にNotifyIconを貼り付けて、
static void Main()
{
Form1 form = new Form1();
Application.Run();
}
ではだめでしょうか?
0513デフォルトの名無しさんNGNG
Formはいらないのですが、そういうことはできますか?
0514デフォルトの名無しさんNGNG
コンソールアプリケーション
0515デフォルトの名無しさんNGNG
TabControlにTabPageをAddしていって、表示がいっぱいになると
Tabをスクロールするのに右の方に[←][→]みたいな矢印がでますが
この矢印の大きさを変えることってできるのでしょうか?

0516デフォルトの名無しさんNGNG
>>514
どっちにしろウインドウ作らないとメッセージが飛んでこないわけで。
一瞬で終了ってアホっす。
0517デフォルトの名無しさんNGNG
http://homepage3.nifty.com/takubon_world/software/IMEWatcher/index.html
こういうソフトはどうやってつくるのでしょうか?
0518デフォルトの名無しさんNGNG
516=511なの??
単にフォームがいらないだけならコンソールアプリケーション。
常駐したいならServiceBase継承してサービスアプリケーションかけ。

以上
0519デフォルトの名無しさんNGNG
知らない事だと"以上"と言って終わらせたい低脳がいるスレはここですか?
0520デフォルトの名無しさんNGNG
Windowsアプリでも >>511 はできるけど。
0521デフォルトの名無しさんNGNG
>>511
Application.Run()だけでOK。
Application.Exit()で終了!
0522521NGNG
NotifyIconにFormは必須じゃないYO!
0523デフォルトの名無しさんNGNG
ListViewってタイマーなんか使って定期的にアイテムのテキスト更新すると絶対ちらつくね。
ちらつく頻度はまちまちだけど、駄目だね。
SetStyle(ControlStyles.DoubleBuffer, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
とかlistView.BeginUpdate();とかさ試したり、
control.BeginInvoke();とかさタイマーのイベントの中でやってみたのね。無駄なのわかってたけど。
駄目なんだね。仕様ね・゚つД`)゚・。

0524デフォルトの名無しさんNGNG
>>523
そう思うなら変更があったときだけ書き換えろや。アホか。
0525名無しさんNGNG
>>523
変更されたアイテムだけをUpdateするようなメソッドを自作すれば?
0526デフォルトの名無しさんNGNG
ダウンロード状況表示するようなやつなんで、変更されたもんだけってわけにはいかなっす。
一秒ごとに経過時間加算して表示すんだし。
0527デフォルトの名無しさんNGNG
VBのDoEventsみたいなのはどうやればいいんでしょうか?
0528デフォルトの名無しさんNGNG
変数名に大文字使えなくするにはどうすればいいのですか?
0529デフォルトの名無しさんNGNG
>>527
Application.DoEvents
0530デフォルトの名無しさんNGNG
>>528
そういうことを考えた人を殺してください。
0531デフォルトの名無しさんNGNG
>>528
そうしたい理由がわからん。
君が気を付ければいいだけの話。
0532デフォルトの名無しさんNGNG
>>523
変更したときだけ再描画するようにせーよ
0533デフォルトの名無しさんNGNG
>>531
int a;
a=2;

これでaは空間に存在しないってエラーが出て数分間はまった気持ちがあなたにわかりますかあ?
0534デフォルトの名無しさんNGNG
>>533
どこに大文字があるんですか?(プ
0535デフォルトの名無しさんNGNG
大文字じゃなくて全角文字?
0536デフォルトの名無しさんNGNG
大文字と全角文字を勘違いしていたというオチですか?つまらん。
0537デフォルトの名無しさんNGNG
>>533
intとaの間に全角スペース?

全角スペースも使えなかったっけ。(使いたくはないが)
全角+も全角数字も使える。
ちゃんと1+1は2になる。
0538デフォルトの名無しさんNGNG
>>533
UNICODEで保存しないと全角文字は使えない。
全角スペースが入ってて悩むような馬鹿がUNICODEでソースを保存してたりはしないだろ。
0539デフォルトの名無しさんNGNG
>>538
特に初期設定から変えてなくても全角文字使えますけど・・・。
0540538NGNG
>>539
今、確認してみたら確かに使える。
β1の頃は無理だったんだけど。
0541538NGNG
ついでにちょっと 533 みたいなのも試してみた。
全角スペースを □、
半角スペースを _ で書くと、

a,□_b
見たいに、全角スペースと識別子が並んでない場合はOKで、

a,_□b
見たいに、全角スペースと識別子が並んでる場合はコンパイルエラーになった。
0542デフォルトの名無しさんNGNG
HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
Stream st = httpRes.GetResponseStream();
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift_JIS"));

上記のようにStreamReaderを使って、webからテキストを読み込む
際に、何バイト読み込んだかを取得する方法はあるでしょうか?
サーバがContent-Lengthを返さない場合なのですが、、、

自分なりに考えてみると、StreamReaderを使わず、直接、バイト
単位で読み込み、容量を計算し、随時、バイト列をテキストに直す
方法ぐらいしか思いつかないのですが、、、

何かいい方法があれば、教えてください。

0543デフォルトの名無しさんNGNG
C#でWebServiceの質問です。Windows2000上でIISを使ってます。
IISでセッションタイムアウト値を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;
}
}
}

}
-------------------------------------------------
0544543NGNG
Global.asax の Session_Startハンドラで Sessionのタイムアウトを
初期化するしかないのかな??
うーむ。
0545デフォルトの名無しさんNGNG
そういやMSDNのドキュメントで読み取り専用な配列は無いから、
プロパティにしてそのまま返すと大変な事になる。
GetXXX系の関数にしてコピーを返すべきだ、とか書いてあったな。
もう、馬鹿かと、アフォかと。
だったらconst使わせろと。
まぁ、PointとかRectangleとかしょうもない物まで全部参照型で何が何でもコピーを返さなきゃいけないJavaよりははるかにマシか。
0546デフォルトの名無しさんNGNG
SDKでのActiveX使用方法について疑問があります。
コンパイル時に
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
>>545
>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
C#にて、ネットワーク関係のプログラムを勉強したいのですが
良い書籍、HP等はありませんか?
0550デフォルトの名無しさんNGNG
>>545
そこでの読取専用な配列とは、読み取られ側が読み取り側に対してかける制限であり、
読み取り側自身がかける制限であるconstとは違う。
0551デフォルトの名無しさんNGNG
>>548
すれ違い。後。書き直す必要ある?
0552デフォルトの名無しさんNGNG
>>549
MSDN

取りあえずSocket関係のクラス調べれば言いっしょ。
0553548NGNG
>>551
スレ違いでした。すいませんでした。
あちらに質問してみます。
0554デフォルトの名無しさんNGNG
C#.NETには、javaのBigDecimal同様の機能を持ったクラスはありますか?
0555デフォルトの名無しさんNGNG
>>547
C#ならそう言うのは値型だから自動的にコピーされるYO
0556デフォルトの名無しさんNGNG
>>555
参照で返したくても、自動的にコピーされちゃうの?
0557デフォルトの名無しさんNGNG
モチロンダゼハニー
0558デフォルトの名無しさんNGNG
>>556
参照で返したいなら参照で返すように書けばいい。
0559デフォルトの名無しさんNGNG
TcpClientとNetworkStreamを使っていて、相手がコネクションを切断してきたということ
を知るにはどうしたらよいでしょうか?
0560デフォルトの名無しさんNGNG
>>558
どーやってやるの? 教えてください。
0561デフォルトの名無しさんNGNG
>>559
TCPのお約束に従うなら、readしてみないと分からないんじゃないかな
0562デフォルトの名無しさんNGNG
>>542
System.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
>>558
どーやってやるの? 教えてください。
0564デフォルトの名無しさんNGNG
>>563ms-help://MS.VSCC/MS.MSDNVS.1041/csref/html/vclrfRef.htm
0565デフォルトの名無しさんNGNG
>>562
えーと、それはつまり、

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デフォルトの名無しさんNGNG
バイト数を数えるだけのストリームを間に挟むとか。。。
0567デフォルトの名無しさんNGNG
>>564
structを参照で返すことができるの? って話だと思うよ。
C++だと
mystruct& foo() {
return x;
}
みたいな。

これはC#で可能なの? ref,outが戻り値にも使えるの?
0568デフォルトの名無しさんNGNG
戻り値は暗黙にout。refは無理。
0569デフォルトの名無しさんNGNG
>>565
Encoding sjis = Encoding.GetEncoding("Shift_JIS");

StreamReader sr = new StreamReader(st, sjis);
string str = sr.ReadLine();

int size = sjis.GetByteCount(str);

こうするとか。
0570デフォルトの名無しさんNGNG
>565

結局はストリームで直にバイトを読んでいって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
>>569
なるほど、それだとスッキリ書けますね。
でも、速度的には >>570 の方が早いのでしょうか。
まぁ、でも、こんだけマシンパワーのある時代なので、
分かりやすく書ける方がよさそうですね。

というか、MFCにあるByteArrayみたいなクラスは無い
のかと思っていたら、MemoryStreamを使えばよかった
のですね。いま気づいたYo!

0572デフォルトの名無しさんNGNG
>>571
まあ、>>569 だと二度手間(?)になるから、>>570 のほうがいいとおもうね。
一回 byte[] から char[] や string にしたものをまた byte[] に
変換して(るのかどうかしらないけど)サイズ取得だから…
>>570のほうが(・∀・)イイ!!と思うよ。
0573デフォルトの名無しさん NGNG
SHDocVwのBeforeNavigate関連で質問なんですが
ページを更新した場合呼ばれないのは仕様ですか?
呼ばれないのだとしたら更新を検知するには何を使えばよいでしょう?
更新時にもURLとかヘッダーとかの情報を取得したいです
0574デフォルトの名無しさんNGNG
MenuのショートカットってWindows自体でもそうなのですが、
使いにくくないですか?

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デフォルトの名無しさんNGNG
>>574
Winアプリのお作法ですから…
1つのアプリだけ操作体系が異なるってのも使いにくいし。
0576デフォルトの名無しさんNGNG
MainMenuのMenuItemにはVS.NETのプロパティで
ショートカットキーを設定できるようにはなっている
んですが、なぜか機能しないですよね。たんなるバグ?
それともやり方がまずいのか
0577デフォルトの名無しさんNGNG
バグだったら希望者全員にVisualStudio買ってやるよ。
0578デフォルトの名無しさんNGNG
今からC#を始めようと思うのだが、お薦めの書籍は何?
0579デフォルトの名無しさんNGNG
>>574 のFileだとShortcutが効かないような。(New, Openは効く)
買って >>577
0580デフォルトの名無しさんNGNG
>>579
バグじゃなくて Windows の仕様じゃ...?
0581デフォルトの名無しさんNGNG
ショートカットとアクセラレータキーが混乱しているような……
0582デフォルトの名無しさんNGNG
えーと質問お願いします。
ファイルで保存してあるDTSパッケージをC#から使いたいのですが、
コードの書き方がさっぱりわかりません。
参照設定→.LoadFromStorageFileを使うとこまではわかったのですが、
サンプルがVBしかなくどう記述していいのか。

DTS.Package myPackage = New DTS.Package("C:\test.dts");

と書いたのですが。

0583デフォルトの名無しさんNGNG
>580
MainMenuのMenuItemにshortcutが設定できない(しても機能しない)
ならばプロパティでshortcutの項目を表示すべきじゃないでしょう。
ご丁寧にコードにも追加しちゃってるしね。
0584デフォルトの名無しさんNGNG
system.type からその型のクラスのインスタンスを作ることってできますか?

class a
{
}

class b:public a
{
}

system.type st = typeof(b);
class a;
//a = new b();//これをtype からとりたい
a = new st(); //イメージとしてこんな感じ
みたいなかんじで。
0585デフォルトの名無しさんNGNG
>>584
こんな感じで。

  Type st = typeof(B);
  A a = (B) Activator.CreateInstance(t);
0586デフォルトの名無しさんNGNG
>>582

  Package myPackage = new PackageClass();
  myPackage.LoadFromStrageFile(〜);

ってな感じだと思うんだけど、
optのパラメータが多いときはVB.NET使った方が楽だと思うよ。
0587586NGNG
Strage → Storage の間違いね。
0588584NGNG
>585
ありがとうございます。
0589デフォルトの名無しさんNGNG
http://www.gotdotnet.com/team/csharp/learn/Future/default.aspx
0590デフォルトの名無しさんNGNG
ブラウザのリンククリックイベント(URL)を拾うにはどうすればいいんでしょうか。
はじめたばっかでまだパニック中・・。
0591デフォルトの名無しさんNGNG
>>578
プログラム素人さんならば、日経ソフトウェアがイイ
0592デフォルトの名無しさんNGNG
>>589
・Generics → Rotorで体験済み。便利だけど、コレクション以外で
今ひとつ使い道が浮かばない。

・Iterators → foreachの無駄がなくなってよさげだけど、
yieldとかまた予約語が増えるのね...。

・Anonymous Methods → 構文的にちょっとJavaとは違うみたいね。
機能的には萌え。RADでちゃんとサポートしてくれるといいんだけど...。

・Partial Types → C++っぽくて激しく萎え。


っていうか、これってEverettじゃなくてYukon対応版の方だよね?
0593デフォルトの名無しさんNGNG
GenericsとIteratorsで無駄な box / unbox をなくして実行効率アップ。
コンパイル時に検出できるエラーも増えて(゚д゚)ウマー。

Anonymous Methodsで無駄なイベントハンドラを隠して、
Partial Typesで自動生成部とカスタムロジックを別ファイルにして読みやすさ(゚д゚)ウマー。
0594デフォルトの名無しさんNGNG
MS、Visual Studio .NET新版について説明
http://headlines.yahoo.co.jp/hl?a=20021109-00000011-zdn-sci
0595デフォルトの名無しさんNGNG
Generics
Iterators
Anonymous methods
Partial types

さっぱりわからん??
0596デフォルトの名無しさんNGNG
よっしゃ!上二つはわかった!!
0597デフォルトの名無しさんNGNG
anonymous methods
匿名メソッド? どんなのなんだろ。
0598デフォルトの名無しさんNGNG
クロージャーじゃなくて?
0599デフォルトの名無しさんNGNG
>>597
わざわざ名前をつけて定義しなくてもいい使い捨てメソッド。
イベントハンドラで効果大。

  button1 = new Button();
  button1.Size = new Size(96, 24);
  button1.Text = "Click!";
  button1.Click += new EventHandler(sender, e) {
    MessageBox.Show("button1 clicked!");
  }
0600デフォルトの名無しさんNGNG
ところで、↓のキャラってJavaのDukeみたいなもんなの?

http://www.gotdotnet.com/team/csharp/
0601デフォルトの名無しさんNGNG
>>600
激しいほどに最低なデザインセンス。

これでは、Dukeの足元にも及ばぬ。



C#の普及は、まだまだだなぁ。
0602デフォルトの名無しさんNGNG
JavaのDukeみたいなもん、じゃないのに。
0603デフォルトの名無しさんNGNG
Control.MouseButtonsっていうので、マウスのどのボタンが押された
か取得できるらしいのですが、どのボタンを押しても、MouseButtons.None
が返ってきてしまいます。

FormのClickイベントの中でやっているのですが、何が悪いのでしょうか?
0604デフォルトの名無しさんNGNG
>>603
ネタ?
0605デフォルトの名無しさんNGNG
>>601
そのページの左上の手よりはマシかと。
0606デフォルトの名無しさんNGNG
>>603
MouseEventHandlerでMouseEventArgs.Buttonを見るんじゃないの?
0607デフォルトの名無しさんNGNG
どこかのスレでPropertyGridのローカライズがらみの
質問してませんでしたっけ?一応こんなの↓見つけたんだけど、、、
役に立つなら使ってあげてくださいな。

Globalized property grid
http://www.codeproject.com/cs/miscctrl/globalizedpropertygrid.asp
0608デフォルトの名無しさんNGNG
>>599
おお サンクス(・∀・)
なるほど。ハンドラ追加する時の面倒が軽減するね。
0609デフォルトの名無しさんNGNG
スレッドを実行するときにThread.IsBackgroundを
使ってバッググラウンドで実行するかフォアグラウ
ンドで実行するかが選択できるのですが、これは、
どんな意味があるのでしょうか?

ファオグラウンドだと現在の処理がブロッキングさ
れるのかと思ったら、そんなことは無く、バックグ
ラウンドで動いているようなのですが、何が違うの
でしょうか?

0610デフォルトの名無しさんNGNG
優先度の傾向がちょろっと変わるぐらいじゃなかろうか、と予想。
0611デフォルトの名無しさんNGNG
http://www.gotdotnet.com/team/csharp/images/Logo2.gif

このロゴかっこいくない?
0612603NGNG
>>604
ネタじゃないのですが、、、

>>606
ClickイベントだとMouseEventArgsは送られてこないのです。
で、Petzold の本読んだら、ClickイベントでもControl.MouseButtons
はスタティックに使えるので、これで、どのボタンが押されたか
は取得できますと書いてあるのですよ。

ところが、なぜか、MouseButtons.Noneしか返ってこないというわけです。

なんででしょうか?

0613デフォルトの名無しさんNGNG
>>612

実験してないから確証はないが、
Clickはマウスのボタンを離したとき(つまりイベント発生時には、
すでにボタンは押されていない)に起きるイベントだからでは?
0614デフォルトの名無しさんNGNG
>574
自己レスです。(^^;
MainMenuのItemであるFile項目のF2キーなどでの
一発ポップアップ?はAPIを使って可能でした。
0615デフォルトの名無しさんNGNG
数日前にC#をはじめますた。
今までは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
>>615
型変換メソッドはSystem.Convertクラスに用意されてる。
int intA;
intA = System.Convert.ToInt32(textBox1.Text);
0617615NGNG
>>616

教えて頂いたとおりSystem.Convertクラスのメソッドを使用したところ
無事に出来ました。ありがとうございます!

MSDNとかWebで4時間ぐらい探し続けてわからなかったのに。。
やっぱこの板はイイ(゚∀゚)

616さんありがと〜
0618デフォルトの名無しさんNGNG
各クラスにParseというメソッドもある。
この場合はInt32.Parse( textBox1.Text )とか。
0619デフォルトの名無しさんNGNG
「lstrcpy」の代替用のメソッドはありますでしょうか?
システムの制限上、「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
Webページへのアクセス処理を作っていたのですが、うまく動作しません。
以前は同じプログラムが動作していたのですが、何かあるんですか?

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デフォルトの名無しさんNGNG
System.Net.SocketsクラスのtcpClientを使っているのですが
Winsockコントロールを使用したときのDataArrivalイベントのようなものはないのでしょうか?
DataArrivalイベントというのは、データを受信したときに発生するイベントで
その中に受信データを処理する部分をかきます。

もし、DataArrivalイベントに代わるものがなければ
データ受信用のスレッドを別に作成して、毎回バッファをチェックするという
方法しかないうということでしょうか?
0622デフォルトの名無しさんNGNG
http://www.patipati.com/lupan/R3_temp.swf?inputStr=2%82%B0%82%C6
0623デフォルトの名無しさんNGNG
>>620
>以前は同じプログラムが動作していたのですが、何かあるんですか?

以前ってのはいつだよ。以前から今までに何をやったのさ。
そんな質問じゃ誰もわからんって。
0624デフォルトの名無しさんNGNG
EnumWindowsを使って取得したhwndからControlのインスタンスを作ろうとしたら
自分自身の分しかできませんでした。
どうしたら他のウィンドウも取得できるのでしょうか?
0625デフォルトの名無しさんNGNG
DataSetのテーブルの結合処理をするには、
コードでガリガリ書かなきゃなんないのかねぇ。

SQL文を与えて一発結合、みたいなのはできないものかな。
0626デフォルトの名無しさんNGNG
>>625
ビュー作ったら?
0627デフォルトの名無しさんNGNG
>>621

普通はブロッキングするので、毎回チェックする必要は
ないと思われ。

0628621NGNG
>>627

ブロッキング?

やはり別スレッドで自前でチェックするものを作らなければいけないということですか?

質問ばかりですみません。
0629デフォルトの名無しさんNGNG
>>628
一般的には、データの送受信のところは別スレッドでやった方が
いいと思われ。

TcpClient使ってやるなら、読み出しはNetworkStream.Read使うんでしょ?

NetworkStream.Readっていうメソッドはデータが来ないと、その場で処理が
止まる。なので、いちいちチェックする必要とかは無い。データが来るまで待ってて
くれるのだから。

ただ、メインのスレッドで、これを使うと、ブロッキングのため他の処理が一切
できなくなってしまう。だから、普通は別のスレッドで行うのが一般的。


0630デフォルトの名無しさんNGNG
C#ってselectつかえないの?
0631621NGNG
>>629
お察しのとおり、NetworkStream.Readメソッドを使うんです。
データが来ないとその場で処理待ちするとは知りませんでした。
それなら、別スレッドでやった方がいいという意味も納得がいきます。

助かりました。
ありがとー!
0632デフォルトの名無しさんNGNG
>>630
条件分岐のこと?
それなら switch-case 文。

セレクトボックスのことなら ComboBox。
0633デフォルトの名無しさんNGNG
>>632
わざとボケてる?

>>630
Berkeley socket interface は System.Net.Sockets.Socket。
public static void Select(
  IList checkRead,
  IList checkWrite,
  IList checkError,
  int microSeconds,
);
0634デフォルトの名無しさんNGNG
DirectX 9.0 RC 0 : Public Beta for End-User
http://www.microsoft.com/downloads/release.asp?ReleaseID=45160
0635デフォルトの名無しさんNGNG
LonghornでSystem.Windows.ShellとかSystem.Windows.Navigationとか
.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から別のFormを表示した時に、表示したFormの方に
フォーカスが移ってしまうのですが、表示元のFormから
フォーカスが移らないようにする方法はあるでしょうか?
0637デフォルトの名無しさんNGNG
>>636
やったことないから、わかんないけど
CanFocus プロパティをFalseにすればいいのかも。
それやると不具合あるなら、根本的な解決方法じゃないけど
別FormをShow()した後に元のFormのフォーカスをFocus()で
セットし直すとか。
0638デフォルトの名無しさんNGNG
>別FormをShow()した後に元のFormのフォーカスをFocus()で
>セットし直すとか。
それだとウインドウが点滅したようになってしまうので、
だめなのです。

うーんと、つまりどんなことがやりたいかと言うと、ToolTip
のようなウインドウを表示したいのです。
なんかちょっとした情報を表示するときに、任意の位置に、
メインのウインドウのフォーカスをそのままにしてウインドウが
表示したいんですよ。

ToolTipクラスは任意の位置っていう指定ができないので、タイ
トルバー無し、枠無しのToolTipっぽいFormを作ってそれに情報
を表示してみたのですが、Show()をやったとたんにそっちのウイン
ドウにフォーカスが行ってしまうのです。

なんかいい方法ないでしょうか?

0639デフォルトの名無しさんNGNG
C#には
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/
の様なAPIドキュメントはないのですか?

Directory dir = new Directory("c:\\");

こう書いたら
引数を '1' 個指定できる、メソッド 'Directory' のオーバーロードはありません。
とか言われて意味がわかりません!
0640デフォルトの名無しさんNGNG
>>639
ないわけない。
0641デフォルトの名無しさんNGNG
こんなのはどうでしょう?
http://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
>>641
ありがとうございます!

でもやっぱりnewの仕方がわからない…
0644643NGNG
静的だからnew出来ないのかな?
0645デフォルトの名無しさんNGNG
>>643-644 そのとおり。ちゃんと読みなはれ。
>解説
>Directory クラスのすべてのメソッドは静的であるため、ディレクトリのインスタンスを
>作成しなくても呼び出すことができます。
0646644NGNG
ttp://www.runan.net/program/tips/csharp/1_06.shtml

ここに騙された…
0647騙されたって・・・NGNG
そこの文書の作成日・・・00/08/27って・・・
そりゃー仕様も変わるかもだ。

ちなみに初代C♯スレが
>1 名前: 名無しさん♯ 投稿日: 2000/12/18(月) 13:06
か。
0648デフォルトの名無しさんNGNG
>>638
漏れも以前、色々試してみたが駄目でしたなぁ。
なんで、マウスポイントしたらステータスバーに説明を表示するってのにした。
0649デフォルトの名無しさんNGNG
>>648
だめでしたか、、、

これは.NET Frameworkだからだめなのでしょうか?
API直たたきならできるのでしょうか?

実際、こういうフォーカスを移さないでウインドウを表示
しているアプリケーションって結構あるのですが、どうやって
るのだろう。。。

例えば、MSNメッセンジャーとかは友達リストに登録している人
がログインすると、画面の右下に「○○さんがログインしました」
ってな感じで情報表示用ウインドウが出るけど、その時作業して
いたウインドウからフォーカスははずれないです。

あと、何のメーラだったかは忘れたのですが、新着メールが
あると、画面の下の方に新着メールのタイトルだけをそっと表示
してくれるようなソフトもありました。これもウインドウは表示
するけど、フォーカスは移動しないです。現在作業中のウインドウが
あれば操作は続行できるのです。
0650デフォルトの名無しさんNGNG
>>649
window開くつうか直に描画してるのだと思われ。
ディスプレイのデバイスコンテキスト取得してね。
0651デフォルトの名無しさんNGNG
>>649
よく知らないけどCBTフックを調べてみたら?
0652デフォルトの名無しさんNGNG
API直叩きならできる。直描きもフックも不要。
ShowWindow APIにフォーカスを移さずに表示する選択肢があるから。
0653デフォルトの名無しさんNGNG
C#のコンパイラは無料で手に入るときいたのですが

どこへ行けばダウンロードできるでしょうか?
0654マジレスしてみるNGNG
>>653
SDK
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デフォルトの名無しさんNGNG
ダブルバッファリングくらいしろい。
0657デフォルトの名無しさんNGNG
>>652
うぉ〜ほんとだ!!
APIのShowWindow()っていう関数だと、

> SW_SHOWNA
> ウィンドウを現在のサイズと位置で表示します。
> SW_SHOW と似ていますが、この値を指定した
> 場合は、ウィンドウはアクティブ化されません。

っていうのがありますね。
これならできそうです。C#からAPIの叩き方を調べてみます。
ありがとさんです。

でも、なんでC#では.NETではできないんですかね。
.NETヘボすぎです。。。
0658657NGNG
今API直叩きで組んでみたのですが、なんかやっぱりだめです。
なんででしょう?

とりあえず、
[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メッセンジャーとかが表示しているやつはウインドウっぽいんですよねぇ、
だって、クリックできるし。。。
どうか、分かる方がいたら、おながいします。
0659658NGNG
いろいろ調べてみたら

ShowWindowというAPIは

nCmdShow
ウィンドウの表示方法を指定します。アプリケーションがほかの
プログラムから STARTUPINFO 構造体を渡して起動された場合、
初めて ShowWindow 関数を呼び出したときには、このパラメータ
は無視されます。構造体が渡されていない場合、ShowWindow 関
数を初めて呼び出すときには、WinMain 関数の nCmdShow パラ
メータで取得した値を指定してください。以降の呼び出しでは、次
のいずれかの値を指定できます。

だそうです。なんで、初回起動時に1度表示してから、
このAPIをたたいてみたところ、なんと!、フォーカス無しで
ウインドウが呼べました。

でも、初回に無駄に1度表示するというのがちょっとかっこわるいような。。。
まぁ、しょうがないですかねぇ。

とりあえず、解決しますた。みなさんありがとです。
0660デフォルトの名無しさんNGNG
>>655
PaintBackground イベントをオーバーライドして何もしないようにしろ。
そしたらちらつき消える。

っていうかさ、画面の再描画時のちらつきに関する質問、多すぎ。
Users のメーリングリストで4回くらい同じ質問見たことある。
0661デフォルトの名無しさんNGNG
C#のドキュメント、なんでメンバの返り値の型書いてないんだ?
0662デフォルトの名無しさんNGNG
>>661
(゚Д゚)ハァ?
書いてあるけど?
0663デフォルトの名無しさんNGNG
>>661
VB厨とみた。~~~~で示したところが戻り値だ。

[Visual Basic] Overloads Public Shared Function FromFile(String) As Image
                                   ~~~~~~~~
[C#] public static Image FromFile(string);
          ~~~~~~
0664663NGNG
ちとずれたな。
0665661NGNG
添付されてる、HTMLなリファレンスマニュアルの事だよ?
javadocには返り値の型書いてあったのに。
0666デフォルトの名無しさんNGNG
>>661
具体的に戻り値の書いてないメソッドをあげてみなよ。
どこみたって、きちんと書いてあると思うが?

例えば、String.IndexOf メソッドはこんな感じで書いてある。
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfsystemstringclassindexoftopic1.htm
戻り値はintである。

書いて無いというメソッドを上記のように具体的に示してくれ。
0667デフォルトの名無しさんNGNG
SDKいれたら何Mぐらいになる?
もれのおかしいかも…
0668デフォルトの名無しさんNGNG
おまえら、いい加減「放置」をおぼえろよ。
誰にだって勘違いはあるんだし。な、661
0669デフォルトの名無しさんNGNG
結局放置できない668。
0670デフォルトの名無しさん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. |
0671669NGNG
>>670
くすっ。最初っから俺は放置しろとか言ってないもん(w
0672デフォルトの名無しさんNGNG


====================リセット====================
0673デフォルトの名無しさんNGNG
ぼうけんのしょ 1 がきえました
0674デフォルトの名無しさん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
static void Main()
{
Form1 form1 = new Form1();
Application.Run(form1);
}


form1.TextBox1.Text = "ABC";
0676674NGNG
>>675

Application.Run の直前で自分でForm1のインスタンスを作成して
staticで保持しておけばよかったんですね!
おっしゃるとおりにやったらできました。

助かりました。どうもです〜!
0677デフォルトの名無しさんNGNG
まぁ、static使ってもいいけど、コンストラクタに参照渡した
方がいいと思うよ。

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デフォルトの名無しさんNGNG
TextBox1を渡せよ
0679最近はC ◆vmmZ0hhNNc NGNG
>>666
多分、メンバ一覧(xxxxMembersTopic.htm)の画面のこと言ってるのだと思うよ。
>>665でJavadocとか言ってるし。

っつぅか、確かにいちいち詳細見なければ、戻り値や引数が分からないのはJavadocに慣れた漏れもつらいです。

>>674
っつぅか、OOPについて少し勉強した方が…
インスタンスメンバとクラスメンバの違いや、スコープのことが分かってないと、これからかなり厳しいと思われます。
0680デフォルトの名無しさんNGNG
DataSetクラスみたいにIDisposableインターフェース持つ
オブジェクトを返すメソッド作ったとき、
内部で例外発生した場合のリソース開放処理ってどうしてる?

public DataSet GetDataSet()
{
  using (DataSet dataSet = new DataSet())
  {
    // データセットに値を格納する処理
    
    return dataSet;
  }
}

って書ければ、例外発生時のリソース開放漏れは防げるけど・・・
正常動作時にもDisposeされたインスタンス返しちゃうよね?

でも、実際は、これで上手く動いたりするんだな。

なんか勘違いしてますかね私。
0681680NGNG
DataSetの代わりに、StreamReaderでやってみたら、
呼び出し側でエラー出たよ。

System.ObjectDisposedExceptionって
・・・予想どうりか。

というわけで、680みたいな記述は間違いなわけね。
たとえ動いたとしてもね。
0682デフォルトの名無しさんNGNG
>>680
try, catchじゃダメなの?
0683680NGNG
try-catchで問題ないんだけど、めんどくさいじゃん。

一度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;
}

とか書きたくないじゃん。
0684680NGNG
ありゃ 
"&hbsp;"をインデントに読み替えてくださいな。↑
0685デフォルトの名無しさんNGNG
プッ
0686デフォルトの名無しさんNGNG
>>685 性格悪いなぁ

>>683 &nbsp;な。
0687デフォルトの名無しさんNGNG
つーかfinallyだろ。プッ






まあusingは便利だけどね。
0688デフォルトの名無しさんNGNG
C#でファイルに書き込んで作った10KBほどのバイナリデータ(あるクラスの配列すべてのデータを書き出したもの)をC++で読みこみ、C++側で作った同じクラスに代入しようとしました。
しかしC++で読み込むと、ファイルの途中でまだ先があるにも関わらずそれ以上読み込めなくなります。
デバッグして読み込みが終わるところをチェックすると、おかしくなる寸前まで正常に読み込まれ(自動変数表示に表示されるクラスのデータメンバが正常)ているので、型の大きさの違いは無いはずなのです。
一方、C#でC++と同じ読み込みアルゴリズムを作り、ファイルを読み込むと最後まで正常に読み込まれました。
一体何が悪いのかわかりません。助けてください。
0689デフォルトの名無しさんNGNG
さげてしまいすみません。
0690688 NGNG
書き忘れていましたが、C++では入力に
_open
_read
を使っています。
0691デフォルトの名無しさんNGNG
> 一方、C#でC++と同じ読み込みアルゴリズムを作り、
> ファイルを読み込むと最後まで正常に読み込まれました。

これでいいじゃん。終了。
0692688 NGNG
すいませんが良くないのです。C++側はゲームの本体で、C#はエディタなのです。
0693デフォルトの名無しさんNGNG
691って、C#とC++それぞれにシリアライザ/デシリアライザを作る
という意味だと思うのだけど、688はそれとどう違うの?
0694デフォルトの名無しさんNGNG
シリアライザってなんですか?
新人レスラーですか?
0695デフォルトの名無しさんNGNG
694を新人レスラーとしてこのスレに迎えることにしますた。
芸名:シリアライザー
0696688 NGNG
>>693
C++とC#で同じ読み込みアルゴリズムにも関わらず、C++だと読み込めなくなります。
前にも一回こんなことがあってうやむやのまま終わりました。
0697デフォルトの名無しさんNGNG
で、あんたのプログラムのバグを直せと?
0698688 NGNG
なにかC++とC#の間でデータのやりとりする際に気をつけなければならないことなどがあれば教えてください。
0699デフォルトの名無しさんNGNG
int や char のサイズが違う。

なんてオチだったりして。
0700688 NGNG
ぎゃー!テキストモードでひらいてたー!!!
0701デフォルトの名無しさんNGNG
>>688=700
逝ってください。
0702デフォルトの名無しさんNGNG
データグリッドの列にコンボボックスつけれませんか?
0703FNGNG
質問なんですが、
BMPがテキストになったファイルを
もう一度画像ファイルとしてピクチャーボックスに
表示するにはどうしたらいいのでしょうか?
0704デフォルトの名無しさんNGNG
C#ってIE上で動くアプレットみたいなものつくれますか
0705デフォルトの名無しさんNGNG
>>703
次で回答がなければ質問の仕方が悪いと思え。

どうぞ。
↓
0706デフォルトの名無しさんNGNG
マルチは氏んでください
0707デフォルトの名無しさんNGNG
ワロタ
0708デフォルトの名無しさんNGNG
>BMPがテキストになったファイルを
意味若欄
BASE64にでも変換したのか?
0709デフォルトの名無しさんNGNG
質問です
FORM1からFORM2にあるLISTBOXコントロールを操作するにはどうすればいいの?
Form2.listBox1ってやってもコンパイルでエラーが出る。
みんな暇そうにしてんだから教えてくれ

おれは今からデートなんで、夜には帰るからそれまでに回答よろ!
0710デフォルトの名無しさんNGNG
てか、age
0711bloomNGNG

http://homepage.mac.com/bloombloom/
0712デフォルトの名無しさんNGNG
>>711
強烈な精神的ブラクラ
0713デフォルトの名無しさんNGNG
>>709
Form1にForm2のインスタンスを渡せ
0714デフォルトの名無しさんNGNG
この手の質問って多いよな。フォームからフォームを操作したいんです。みたいな。
0715デフォルトの名無しさんNGNG
過去ログにかなり既出でしたよ。
俺は過去ログに出てた。

private static formPim _instance = null;
public static formPim GetInstance()
{
if(_instance == null)
{
_instance = new formPim();
}
return _instance;
}
ってな方法でやってますわ。
0716債務不履行の名無しさんNGNG
>>709
デートする暇があったら,過去ログ読めば?(w
0717デフォルトの名無しさんNGNG
>>716
男とデートに1票 :-)
0718709NGNG
ふ〜、今帰ってきたYO
やっぱ手コキが一番気持ちいなw

てか、マジレスついてんじゃん(ワラ
正直、期待してなかったんだけど、あんたらいい人過ぎるYO!!
これじゃあ、初心者が調子乗ってしまうぞ
まあ、なにはさておき>715感謝!!
0719デフォルトの名無しさんNGNG
これももしかしたら即出の可能性があるのですが、
ArrayListにint型ポインタを格納するにはどうしたら
よいのでしょうか?
STLのVectorの場合は
vector<int*>などとやるのですが・・
0720デフォルトの名無しさんNGNG
>>719
「くわっぱ!!」と大きな声で叫ぶといいかも
0721デフォルトの名無しさんNGNG
>>719
IntPtrを使う。
0722デフォルトの名無しさんNGNG
>721
ArrayList 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
>>722
同じインスタンスへの参照を入れておくとか。
値型だとダメだと思うのでクラスで。
0724デフォルトの名無しさんNGNG
ArrayList list2 = list1とかじゃダメなの?
0725デフォルトの名無しさんNGNG
Visual Studio .NET 2003 Final Beta ヽ(´ー`)ノ
http://msdn.microsoft.com/vstudio/productinfo/vstudio03/default.asp
0726デフォルトの名無しさんNGNG
VS 2003 って、ロードマップに出てる Everett とは別物?
あと、C# にテンプレートが追加されるのって Yukon で?
0727デフォルトの名無しさんNGNG
>>726
次(マイナー)  VS 2003 = Everett
その次  テンプレート追加 = for Yukon
そのまた次  for Longhorn
0728デフォルトの名無しさんNGNG
>>727
>次(マイナー)  VS 2003 = Everett
>その次  テンプレート追加 = for Yukon

http://www.zdnet.co.jp/news/0211/09/nebt_08.html
は誤報?
0729デフォルトの名無しさんNGNG
>>728
それは文章すっ飛ばしてるから。
原文 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
>>727-729
おまいら、VS .NETとSQL ServerとOSのコードネームごっちゃにして話すすめるなよ(w
0731デフォルトの名無しさんNGNG
>>730
オレは混乱しないように↓にならってforを付けたつもりなんだが。
http://msdn.microsoft.com/vstudio/productinfo/roadmap.asp
0732728NGNG
>>729 すまん。原文読んでなかった。
ZDでも「future release of its Visual C# tool.」で
「include four new features」って言ってるね。
0733デフォルトの名無しさんNGNG
>723
そうですねぇラッパークラスでも作って
やるしかなさそうです。
どーもC#ではポインタも一定ではないようなので
このあたりは難しいところです。
Delphiやってた時にはラッパークラスで独自配列
を作ってやっていましたが、ちょっとメモリが
もったいないですよね。
class TInt
{
public int Value;
}
とか作ってからobject型にしてArrayListに格納する
という事ですが、この手段を使ってもC#の場合には
最終的には値をコピーしてしまうのでしょうね(汗
Delphiではobject=ポインタ的な作りだったので楽
だったのですがね。
Delphiはともかく
やはりこういうポインタの使いまわしするアプリ
にはC++が楽ですね。
0734デフォルトの名無しさんNGNG
>>733
つうか、無意味にポインタを使いたがるのが間違いだと思う。
0735デフォルトの名無しさんNGNG
深く読まずにカキコ
boxing/unboxingってそのためにあるんじゃなかったっけ?
0736デフォルトの名無しさんNGNG
(;´д`)/<ハイ!先生!

C#でローカルユーザの追加をしたいんですけど
どうやればいいんですか?

NET USER "ユーザ名" /ADD

↑これと同じ事をC#でできませんか?
なにとぞ教えて下せぇ。
0737デフォルトの名無しさんNGNG
C#からまんま同じコマンドを実行すれば?
0738デフォルトの名無しさんNGNG
>>736
たぶんWMIでも可。
0739デフォルトの名無しさんNGNG
ageちゃうぞー
0740デフォルトの名無しさんNGNG
Pythonのダウンロードしたのが開けなくて困ってます。
あぁ、なんて私は馬鹿なんだろう…。
心優しい方、誰か教えてください…。
3000円の本まで買ったのに…なんかその本古かったらしい…。
0741デフォルトの名無しさんNGNG
コンピュータの専門用語が全くわからない人はどこからはじめたら言いのでしょう。
胎児からか……。
0742デフォルトの名無しさんNGNG
ListViewのcolumHeaderをクリックすることで、その列でソートしたいのですが
どうすればいいのですか?
0743デフォルトの名無しさんNGNG
>>741
「できる! Windows98」あたりから。
0744デフォルトの名無しさんNGNG
>>741
アビバのCMから。
0745デフォルトの名無しさんNGNG
Javaだと次のようにインスタンス化されなくても実行される
処理がstatic{}でかけたのですが、C#ではどうやるんでしょうか?

private static int hoge;
static {
hoge = 99;
}
0746デフォルトの名無しさんNGNG
>>745
static クラス名() {
}
0747745NGNG
>>746
さんくすこ。



くすこだって。。。。ポッ...
0748デフォルトの名無しさんNGNG
>>746
そのstaticなコンストラクタだけを実行させることは出来る?
Javaだと、Class.forName("クラス名"); だけど。
0749デフォルトの名無しさんNGNG
>>748
Javaでも実行されないと思う
0750デフォルトの名無しさんNGNG
>>749
は?必死だな。(藁
0751デフォルトの名無しさんNGNG
>>750

?
0752デフォルトの名無しさんNGNG
>>748

スタティックイニシャライザって、VMの実装にもよると思うけど、
そのクラスが必要になったときに自動で動作するもんでしょ?
Class.forNameとかとは関係ないと思うのだが。

>748 の言ってるのはJDBCドライバとかの話かな?
0753デフォルトの名無しさんNGNG
http://pc3.2ch.net/test/read.cgi/tech/1037407642/542
classのstatic initializerを使ったトリックを自慢しに来たのかな?
0754752NGNG
>>753

その辺っぽいねぇ。
あれって自身をシステム側のドライバデータベースに登録するって
処理じゃなかったっけ(DBは専門じゃないのでよく分からんです)?

だがそれにしたって、Class.forName("クラス名")を呼ぶたびに
スタティックイニシャライザが走ると思われても困る。
それじゃ全然スタティックじゃないし。
0755デフォルトの名無しさんNGNG
i
0756デフォルトの名無しさんNGNG

ブラウザコンポーネントを使うと、exeファイル以外
に次のようなdllファイルが生成されますが、これは
再配布してしまっていいものなのでしょうか?

AxInterop.SHDocVw.dll
Interop.SHDocVw.dll

また、こういった情報はどこに記載されているのでし
ょうか?MSDNを上記のファイル名で検索しても何も、
出てきませんでしたが。。

0757デフォルトの名無しさんNGNG
定数の配列ってのはどうやって作れば?

public const int[] MAX_OBJECT = {1024}; // コンパイルエラー
0758デフォルトの名無しさんNGNG
以前にOSのシャットダウン時にアプリケーションが終了せずに、
シャットダウン作業を中断させてしまう問題について質問した者です。
原因がわかりましたが対処法がわかりません。

原因はFormのClosingイベントハンドラでe.Cancel = true;として
フォームを閉じないようにしていた為でした。
OSのシャットダウン時にOSがフォームを勝手に閉じようとして、Closingイベントハンドラ
の上記の行でシャットダウン処理を全てキャンセルしてしまいます。
しかも、SessionEndingイベントが発生しないので対処のしようがない状態です。
よろしくお願いします。
0759デフォルトの名無しさんNGNG
System.Windows.Forms.TabControlにTabPageを2つ作って、
1つ目の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デフォルトの名無しさんNGNG
>>759
AppendTextの変わりに
this.textBox1.Text += "abcd";
とすればよろし。なんで例外でるのかしらんけどね。

余談だがApeendText変な時あるよ。一行長すぎると途中で切れて表示されなかったり。
まったくわけのわらん動きするときがある・・・
0761ハマリNGNG
System.Diagnostics.Processを使って、外部コマンドを呼び出してます。
コマンドプロンプトの画面が一瞬見えるのが凄く気に食わないのです。

WindowStyleはHiddenにしてあるにもかかわらず、しっかり表示されるのです。

例えば、ping.exeを呼び出すとします。
私がやりたいことは、『ping.exeを動かして、その出力だけを変数に格納する』
ということです。ところが、実際はpingを打っている間、黒い画面がフォーム
を覆うような感じで表示されてしまうのです・・・。

なにかご存知ないですか?
0762デフォルトの名無しさんNGNG
>761
Win32コンソールプログラムでもダメですか?
0763デフォルトの名無しさんNGNG
>>761
WindowStyleがNormalだと表示、Hiddenだと非表示にちゃんとなるよ。
pingは試してないが入出力の問題のような?
0764ハマリNGNG
コンソールプログラムでもだめです。

Process 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
>>764
そのコードではないが自分のをちょっと改変してping.exeでやってみた。
確かに出るね。
でもCreateNoWindowをtrueと追加したら出なくなった。
試してみて。
0767ハマリ(糸冬)NGNG
>>766
>でもCreateNoWindowをtrueと追加したら出なくなった。
さすがです。見事にでなくなりました。
どうもありがとうございます。もっとよくヘルプ見るようにします。
0768デフォルトの名無しさんNGNG
質問でございます。
ListView があってアイテムがいくつか入っています。
この状態のとき,あるイベントによってアイテムのBackColorを変更したのですが,
ListView.Update() や ListView.Refresh() ではBackColorが変わりません。
(これらのメソッドはListView自体の更新をするだけで,アイテムには関与しないってことですよね?)

今は ListView.Itemsを空にしてもう一度追加しなおしているのですが時間がかかってしまいます。
うまい方法はないでしょうか。
0769デフォルトの名無しさんNGNG
Bitmapクラスに透過色を設定したいんだがうまくいかない。
単純に、
img.MakeTransparent(transparentColor)
とするだけでは駄目なのか?
0770デフォルトの名無しさんNGNG
>>768
>今は ListView.Itemsを空にしてもう一度追加しなおしているのですが時間がかかってしまいます。
それしかない。
0771デフォルトの名無しさんNGNG
>>770
そうですか。
がまんするしかなさそうですね。
ありがとうございました。
0772デフォルトの名無しさんNGNG
コントロールのClickイベントで右クリックと左クリックを見分けるにはどうすればいいでしょうか?

右クリックするとコンテキストメニューが出るようにしてあるのですが,
クリック時に処理Aを行わせると,右クリックでコンテキストメニューが開く場合にも処理Aが行われて困っています。
0773デフォルトの名無しさんNGNG
>>771
できませんか?
すくなくとも、Update(), Refresh(),
Hide() してから Show() のどれでもいけるような・・・。
おいらの詳細モードではできてるけど。
それとももっと別の話してるのかな・・・。(?_?)
XP Professional SP1
.NET Framework 1.0 SP2だけど・・・。
0774768NGNG
すいません。解決しました。
同じ内容の異なるインスタンスに対して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スティービーワンダーNGNG
「わからないことを信じているから、苦しむのさ。迷信はだめだ。」
http://www.microsoft.com/japan/msdn/net/books/ProgADONET/chapter10.asp
0776デフォルトの名無しさんNGNG
ASP.NETで、すでにある、WebControlsを継承してUserControlsってつくることできませんか?
0777デフォルトの名無しさんNGNG
int x=0;
BinaryWriter bw;
bw.Write(x);

書きこみのこれを
BinaryReader br;
x=br.ReadInt32()

こうやって読みに、もしくは読みから書きに変換してくれるプログラムない?
いちいちリード/ライトで対応するコード書くの面倒くさくてさ。
0778777 NGNG
1つ2つならまだいいんだけど20個ぐらいになってくるともうやりたくないってなる気持ちわかる?
0779デフォルトの名無しさんNGNG
プリーズ>>772
0780デフォルトの名無しさんNGNG
>>779
なぜOnClick
0781779NGNG
>>780
えっと,クリックされたときにOnClickが呼ばれるからなんですが・・・
右クリックと左クリックを区別したいときはMouseUp・MouseDown等を駆使するしかないのですか?
0782779NGNG
>>780
あ,もしかして「何故OnDoubleClickじゃなくてOnClickでやるのか」という意味ですか?
だとしたらなんとなくです・・・すいません。
0783デフォルトの名無しさんNGNG
>>782
780じゃないから予想だが、
OnClickメソッドでなくClickイベントで処理せんのか?
という意味だろう。
で、何かのコントロールを継承してコントロール作成中かい?
0784779NGNG
>>783
レスありがとうございます。

>OnClickメソッドでなくClickイベントで処理せんのか?
OnClickメソッドの継承とClickイベントにハンドラ追加するのとでは何か違いがあるんでしょうか?
どちらも EventArgs を受け取るようですが。

ListViewを継承したものなんですが,ダブルクリックではなくてクリックで実行したいと思ってやってみたのですが,
右クリックのときにも反応してしまうのです。
0785783NGNG
>>784
いや、継承したクラスならOn〜をオーバーライドするのでいいよ。

>OnClickメソッドの継承とClickイベントにハンドラ追加するのとでは何か違いがあるんでしょうか?

継承したクラスでの記述ならClickイベントとして記述する必要はないよ。


・・・って、よくよく考えたら
780は唐突にOnClickと言ってるんだろう。そんなことそれまでにでてないような・・・
0786779NGNG
結局ダブルクリックにすることにしました。
今サイズ変更可能なパネルを作ったのですが,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
>>786
>OnKeyDownが呼ばれないのですが。。。
動作としてはそれで正しいじゃないだろうか。
例えばLabelなどでも同じ動作で、Panel、Label、PictureBoxは
ドキュメントのPublicなイベントを見るとそこにはKey〜系がない。
TextBoxにはPublicなイベントしてKey〜系あるし。

ただ、これを裏付ける解説のあるドキュメントを見つけられんのだけど。
0788779NGNG
>>787
あ,ほんとですね。確かにPublicイベントにKey系がありませんでした。
ControlのKeyイベントにハンドラ追加したらいけるかなと思いましたがダメでした。

結局,Panel(やLabel,PictureBox等)ではKeyイベントを拾えない,ということになるのですか?
0789デフォルトの名無しさんNGNG
フォーカス持たないコントロールがKeyイベントをどうやって取得するのかと。
0790779NGNG
>>789
がびーん!そういうことですか・・・。

AxWebBrowserをPanelに追加していて,Panelが一つの単位になってますので
Panelで色んな処理をしようと思ったのですがダメみたいですね。
どうもお騒がせしました。
0791787NGNG
>>789
おれもフォーカス持たないからだろうと思ったんだけど、
CanFocusプロパティはTrue返すんだよ。
PanelはともかくPictureBoxなんかなら、WndProcをオーバーライドすれば
Key系も拾えるんではないかと予想。

でもま、FormのKeyPreview=Trueにしてそっちで処理するのがいいのかな。
0792デフォルトの名無しさんNGNG
ASP.NETで、ViewStateがらみのところで困ってます。

今作ってるのはTextBox1とCustomValidatorとButtonだけの
シンプルなページで、TextBoxに入れられた文字列が数字か
どうかを判定をして、数字でなければ OnServerValidate内で
args.IsValid = falseにして元のページに戻しています。

問題なのは、数字の場合も元のページに戻して、引き続き
入力させるようにしてるのですが、前回入力値が残っており、
これを消す方法が分かりません。

ページに戻る前に ViewStateを初期化する方法とか、何らかの
解決策があれば教えてください。おながいします。
0793デフォルトの名無しさんNGNG
XmlTextReaderでXMLファイルを読み込む際に
空要素はどのように見分ければよいのでしょうか?
XmlTextReader.IsEmptyElementだと、
<hoge />は検知できても
<hoge></hoge>は検知できないようです。
良い方法があれば教えてください。
宜しくお願いします。
0794デフォルトの名無しさんNGNG
ASP.NETでExcelファイルを作成するプログラム作っています。
ファイル作成して内容書き込みまではできているんですが、
印刷の向きや倍率など設定する方法がわかりません。

いい方法あったら教えてください。
0795あああああNGNG
ダメだ!!!亜fdさふぁあじゃじゃ
再現性は低くて、たまにクラッシュするバグで悩んでます。
デバッグすると
『'System.NullReferenceException' のハンドルされて
いない例外が system.windows.forms.dll で発生しました。』
と出て、

[STAThread]
static void Main()
{
Application.Run(new Form1());
} ←★ココにマークが出る

こんなところにジャンプします。どこが悪いのか目星つけられないんですTT
0796デフォルトの名無しさんNGNG
>>795
VS.NETのステップ実行でデバッグしてるんだよね?
★印に飛ぶ直前に実行したコードを見るのがよいかと。
0797デフォルトの名無しさんNGNG
>>796
ステップ実行なら悩まないでしょ。
0798デフォルトの名無しさんNGNG
>>795 これでどう?

try
{
Application.Run(new Form1());
}
catch(NullReferenceException nrex)
{
Console.WriteLine(nrex.StackTrace);
Console.ReadLine(); //StackTraceを読み終えるまで停止させる
}
0799あああああNGNG
今たてこんじゃったので後でやって、報告します。
報告いらんか・・いやしておこう、サゲて。
0800自己レスNGNG
>>792
Validation OK時にthis.Server.Transfer("元のページ.aspx", false);
とやるだけでOKでした。
0801デフォルトの名無しさんNGNG
素朴な疑問だけど、
C#でゲームプログラミング(DirectX)は速度的に向いてないかな?
やっぱ、C++,Cでやったほうがいいかな。
Java育ちなので、C++,Cはどうも開発効率的に非効率な気がして・・・。
処理的には、早いんだろうけど。
0802デフォルトの名無しさんNGNG
DirectX9βを触ってみたけど、nativeとまったく遜色なかったよ。
これからはC#やVB.NETでDirect3Dするのも普通になったりすると思う。
たとえばPostPetなんかはコレで作っても問題ないだろうね。
0803801NGNG
バリバリな動きで綺麗なグラフィックの3Dゲームとかも、
C++やCでガリガリ書いたやつとC#で書いたものとを比べても、
パフォーマンス的にそんな劣らないのかな?
0804デフォルトの名無しさんNGNG
PCのクロックやビデオカードの違いの方が、影響が大きい罠。

あとはガベコレでつっかえないかどうか。これはある程度コードを
書いてみないと判らないな。
0805デフォルトの名無しさんNGNG
C#のガベコレってJavaより短い周期で動いてない?気のせいかしら?
0806デフォルトの名無しさんNGNG
ビデオドライバがやるテクスチャメモリのガベコレとか
プログラマが自分で組み込んだガベコレとかのほうが
時間かかってたりしてね〜
0807LoserC#NGNG
C#で自前のフォームを作成し、そのフォームを新しく作ったウィンドウにも継承するにはどのようにすればよいのでしょうか?
public class Form2 : Namespace1.Form1
と記述してデザイナを表示しようとすると
”ドキュメントを読み込み中にエラーが発生しました。”
と出ます。
またDLLを作成してフォームを継承する方法もあるのですが、
DLLの作成の仕方が分かりません。
誰かご指導お願いします。
0808795NGNG
えっと・・スレッドから、DataBridにbindしたDataTableを更新するのって
危険なのでしょうか。

スレッド生成しないでやったらへんなバグでなくなりました。
でもスレッドでやらないと、処理中に応答なくなるしなぁ。

因みに、オカシクなるときは、データグリッドの縦方向のスクロールバー
が2本表示される(鬱
0809デフォルトの名無しさんNGNG
>>808
定番の質問かな?
ちゃんとControl.Invoke()、Control.BeginInvoke()使ってる?
0810デフォルトの名無しさんNGNG
こっちにも貼っておこう
http://www.microsoft.com/japan/presspass/releases02/120302gdn.asp
0811デフォルトの名無しさんNGNG
データを利用したいアプリケーションがDDEしかサポートしていません。
あらゆるところでNETはDDEのサポートはすでになしというのを見るのですが、
今からVB6でアプリケーションを書くつもりはさらさらありません。
C#でDDEを使うことは絶対に無理ですか?もしなんか方法があったら教えて。
0812デフォルトの名無しさんNGNG
age
0813デフォルトの名無しさんNGNG
>>811
DDEをラップするDLLをUnmanaged Codeで書いて、それをC#から呼ぶ。
0814デフォルトの名無しさんNGNG
>>813
thanks!
Unmanaged Code ということはC++とかでDLLを書くの?
そのラップ作業というのはDLLのメッセージの種類全部に対応させるとか、かなり大変な作業になるのかな?
0815デフォルトの名無しさんNGNG
DLLのメッセージの種類>DDEのメッセージの種類
0816デフォルトの名無しさんNGNG
DllImportって、必ずstaticじゃないといけないの?
0817808NGNG
invokeでできました。しかしこれ、メインのフォームのコードでなら
this.invokeでできるけど、自分で定義したクラスのコード内から
invokeできませんよね・・
0818デフォルトの名無しさんNGNG
質問です。
MDIChildrenな子フォームにAxWebBrowserコントロールを追加しています。
ここで子フォームを Hide(), Show() させたいのですが、Show()した時に
AxWebBrowserコントロールがうまく機能せず真っ白になってしまいます。
以下にソースを載せますので、解決方法を教えてください。

0819デフォルトの名無しさんNGNG
using System;
using 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デフォルトの名無しさんNGNG
  public void Toggle(object sender, EventArgs e) {
    if (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デフォルトの名無しさんNGNG
>>817
Controlを使うときにInvokeしないといけないわけで、
ControlにはInvokeあるんだから問題ないと思うが。
0822デフォルトの名無しさんNGNG
ListViewはListView.ListViewItemCollectionとして
Itemが入っていると思われますが、
このコレクションの中から、入力されたキーワードの
前方一致で検索を行う良い方法はないでしょうか?
完全一致ならContainsメソッドで出来るのですが・・・
一行づつ取り出して調べるしかないのでしょうか?
0823817NGNG
>>821
.....自分でも低レベルなのはわかってるんです。はい。頑張ります(><

ええとですね、自作のクラス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
>>823
計算の結果が出たらイベント発生させてその中でInvoke呼ぶのが普通。
0826823NGNG
>>824
>Calc c = new Calc()
>int a = c.CalcMethod(); // 計算させて結果をもらう
>こんな感じで計算した値をもらっちゃいけない理由があるのね?

本当はそれでもいいんです (汗
ただの変なコダワリの類ですが、ワーカースレッドを生成して、それにある処理
を任せたら、計算・経過報告のコードもワーカー側にまとめたいなと
思っていたのです(フォーム側で結果を受け取って表示ではなく)。
フォームのコード量を増やしたくないというのもあります。

>>825
なるほど。そういう手続きを踏むのが普通ということが判れば十分です。
GUIのプログラム書くのが始めてなもので、なんと煩雑な!と思いました
が、そういうものだと理解するようにします。

0827821NGNG
>>823
というか、書いていることが矛盾している。

>ええとですね、自作のクラスCalc.csでは計算だけをして、クラス内で
>Windows.Formのメンバは使わないとします。

System.Windows.Forms名前空間のクラスを使わないのだから、
そのCalc.cs内ではInvokeを使うことはない。

>このとき、Calcクラスで
>計算した結果を逐一メインのフォーム(Form1とします)のテキストボックスに表示
>するような場合、Calcクラスの中からはForm1のinvokeメソッドを呼べませんよね?

・テキストボックスに計算結果を表示したい。
・Calc.csからはコントロールを使わない。
つまり、論理的に考えて、
テキストボックス(またはテキストボックスを使用しているクラス)側
からCalc.csのクラスを利用するわけだから、そのクラスでInvokeを発行すればよい。

もう一度言う。817よ、言っていることが矛盾している。
0828デフォルトの名無しさんNGNG
どなたか >>818-820 プリーズ・・・。
0829デフォルトの名無しさんNGNG
>>818-820 の妥協案として,Show&Hideをやらずに
子フォームのLocation.Xを+10000&-10000する方法を思いつきました。

これで解決かと思いきや,+10000等をした時にスクロールバーが反応してしまって困っています。
そこでFormの水平スクロールバーを表示しないようにしたいのですが,
class MainForm : Form {
  public MainForm() : base() {
    base.HScroll = false;
  }
}
としたのですが,何故か水平スクロールバーが消えません。
どないすればよかとですか?
0830デフォルトの名無しさんNGNG
xyzzyで*csharp-indent-tabs-mode*をtに出来ないんだけど、
なんでだろう?
(setq *csharp-indent-tabs-mode* t)
と.xyzzyに書いて、*.csという拡張子を持つファイルを開くと、
「名前が衝突するためexportできません。editor::*csharp-indent-tags-mode*」
と表示されて悲しい。分かる人いません?
0831デフォルトの名無しさんNGNG
ListView で次の様になります。(私の環境だけ?)
(1) Windowsフォームに System.Windows.Forms.ListView を追加します。
(2) ListView にアイテムをたくさん(1000個ほど)入れます。
(3) Release コンパイルし、Windows98 パソコンで実行します。
(4) ListViewでスクロールを繰り返します。
(5) GDIリソースを使い果たしてしまいます。
なぜでしょう?わかる人いませんか?
0832デフォルトの名無しさんNGNG
>>830
xyzzyスレで聞きなさいよ
0833デフォルトの名無しさんNGNG
>>829
まずブラウザコントロールだけを非表示にした後、少し遅らせてMDIチャイルドを非表示にして、戻すときは逆にMDIチャイルドを復元した後、少し遅らせてブラウザを復活させるというのでなんとかならないでしょうか?
0834デフォルトの名無しさんNGNG
>>833
あ,タイミングの問題なのですか。
今から学校なんで帰ってきてから試してみます。
ありがとうございます。
0835デフォルトの名無しさんNGNG
>>833
んー。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デフォルトの名無しさんNGNG
System.InvalidOperationException: 'AxWebBrowser' コントロールのウィンドウ ハンドルを取得できません。ウィンドウなしの ActiveX コントロールはサポートされていません。
at 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
AxWebBrowserのShow&Hideは普通にできるのですが
その親コントロール(今回はForm)がShow&Hideされると
AxWebBrowserは対応できないようです。
解決策を知ってる方がいらっしゃれば宜しくお願いします。

ついでと言ってはなんですが, >>829 ができればもうそっちでやるつもりなので
あわせて宜しくお願いします。
0838デフォルトの名無しさんNGNG
>>837
↓の現象が起きてるのかな?どうも1.1でも再現するみたいね。

http://www.dotnet247.com/247reference/msgs/9/45348.aspx
0839デフォルトの名無しさんNGNG
確かに、一度Hide()してからShow()したとき、タスクバーをよく見てみると
子ウィンドウの分バーが1個増えてるね。
0840デフォルトの名無しさんNGNG
>>839
その子ウィンドウを最大化すると・・・
0841840NGNG
あれ?>>819-820さんのソースでは問題ないや。
こっちではひどいことになってる。(藁
とりあえずソース載せとこ。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=57&fi=no
0842ご教授くださいませNGNG
C#でグローバルフックってできるんでしょうか?
0843デフォルトの名無しさんNGNG
>>842
.NET Frameworkではグローバルフックはできない。
http://support.microsoft.com/default.aspx?scid=kb;en-us;318804
0844ご教授くださいませNGNG
Σ(゚д゚lll)ガーン
0845デフォルトの名無しさん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
>>845
あ,すいません。訂正です。

>but the browser window is permanently attached to the upper left corner of my desktop
>ってどういうことなんでしょう?左上コーナーとは?

>>841さんのコードで分かりました。
0847卑怯者NGNG
private void menuHide_Click(object sender, System.EventArgs e)
{
  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
>>847
うおおおおおおおおおおおおおおおおお!できてる!
ありがとうございます!

Formを保存しておいて消し去るんですか。
全然思いつきませんでした。
# というかRegionプロパティなるものを初めて見ました。
0849デフォルトの名無しさんNGNG
DLL内の関数をインポートする場合、DllImportAttributeで呼び出し規約が指定できるんですが、
インポートしない場合に呼び出し規約を指定する方法はありますでしょうか?

cdecl規約のコールバックの作り方がわからなくて悩んでいます。
0850デフォルトの名無しさんNGNG
場違いだったらごめんなさい・・
FFFTPで数日前から画像のみアップできなくて困ってます!
解決策を教えていただけませんか?
0851デフォルトの名無しさんNGNG
>>850
謝れば何をやってもいいのか?
反省だけならサルでもできる。
お前はサル以下だな。
0852デフォルトの名無しさんNGNG
>>851
アホか。本当に反省してると思うのか? あれはタダの芸だ。サルには反省などできん。
0853デフォルトの名無しさそNGNG
で、>>852は>>850と>>851 どっちがよりあほだと思う?
0854デフォルトの名無しさんNGNG
851
0855デフォルトの名無しさそNGNG
>>854
なんだ、本人か。(w
0856デフォルトの名無しさんNGNG
攻撃するメソッドと攻撃を受けるメソッドを作ってそれぞれイベントを発生させようとしてるんだけど。
ガイドラインに素直に従えば

・攻撃
Attack = 攻撃するメソッド
 Attacking = 攻撃しますよイベント
 OnAttack = 攻撃しましたメソッド
  Attacked = 攻撃しましたイベント

・攻撃される
BeAttacked = (以下同様)
 BeingAttacked
 OnBeAttacked
  WasAttacked

ってーなんか OnBeAttacked とか WasAttacked とかめちゃくちゃいやなんでどうしようか迷ってそうだ、ちょうどいいイベントがあるじゃないかとコントロールがクリックされた時のイベント見てみるまでもなく Click とかなってるし。
どうやったら「クリックされた」が Click の一語に集約されるのか甚だ疑問ってゆーかじゃぁすでに Attack を使ってしまってる俺はどうすればいいのよ。

で .NET Framework の命名ガイドラインがどこかおかしいことはこの際置いといて俺のためのナイスなメソッド名ってないかな・・?
0857デフォルトの名無しさんNGNG
Attack
BeginAttack
OnAttack
EndAttack
0858デフォルトの名無しさんNGNG
寺利編むを思い出すな
0859デフォルトの名無しさんNGNG
ちょっとだけワラタ。「SUMMARY OF RESULTS」のとこだけ読んで十分。

http://www.objectwatch.com/issue_42.htm
0860デフォルトの名無しさんNGNG
◆ネーミング倶楽部◆
http://pc3.2ch.net/test/read.cgi/tech/1035362308/

#まあでも.NET命名は特殊だからC#スレで聞くほうがいいのかな。
0861デフォルトの名無しさんNGNG
試行錯誤でFTPクライアントを作っています。
バイナリファイルのダウンロードで行き詰まっています。
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
>>861
おいおい。

EndOfStreamException ストリームの末尾に到達しました。

って書いてあろうが。

ms-help://MS.NETFrameworkSDK.JA/cpref/html/frlrfSystemIOBinaryReaderClassReadByteTopic.htm
0863デフォルトの名無しさんNGNG
>>861
あと1バイトずつだと多分遅いぞ。
0864861NGNG
>>861、863
レスありがとうございます。
プログラムを始めたばかりで詳しくないのですが例外を使って
判別するのは悪い事では無いのでしょうか?
また、何バイトずつ読むのが適当でしょうか?
0865デフォルトの名無しさんNGNG
>>856
>・攻撃される
> BeAttacked = (以下同様)
攻撃されるメソッドって・・・

> BeingAttacked
BeUnderAttack

> OnBeAttacked
OnBeUnderAttack

>  WasAttacked
・・・
0866デフォルトの名無しさんNGNG
>864
> >>861、863
> レスありがとうございます。
> プログラムを始めたばかりで詳しくないのですが例外を使って
> 判別するのは悪い事では無いのでしょうか?
> また、何バイトずつ読むのが適当でしょうか?

上の例じゃ読み込み終了で終わったのか、ほかの例外で終了したのかわからんべ。

素直にStream.Read(.....)でバッファに読み込んでいったら?
戻り値がゼロになったところで終了判定。
バッファサイズは俺もどのくらいが適当なのか判らないけれど
ネットワークが遅けりゃ1〜2KB、速けりゃ32KBぐらいの感じで考えてるが…

0867デフォルトの名無しさんNGNG
で、cdecl規約のコールバックの作り方がわかる奴はやっぱり誰もいないの?
0868デフォルトの名無しさんNGNG
内容不明瞭
0869 NGNG
WIN-XPホームエデションではVS.NET、特に.NET ASPの開発は不可と聞いた
覚えが。本当ですか。
0870デフォルトの名無しさんNGNG
ホームエディチョンではIISが動かないと思った。
よってIISのアドオンであるところのASP.NETは動かない。
VS.NET自体は問題なく動いてるよ。
0871デフォルトの名無しさんNGNG
>>867
(何こいつ・・・)
0872デフォルトの名無しさんNGNG
http://www.blong.com/Conferences/BorConUK2002/Interop1/Win32AndDotNetInterop.htm
0873861NGNG
>>866
ありがとうございました。上手く行きました。

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
>>871
きっとそうやって「俺わかるよ。ほらこうするんでしょ。」ってコード書いてくれる奴を
釣ろうとしてるんでしょ。
0875デフォルトの名無しさんNGNG
857,860,865
レスありがたおうよ。
ガイドラインによればBeginとEndは使っちゃダメなのよ。
これらは一般に非同期実行のときに使用されるから混乱を避けるためにイベントでは使用するべからずなりよ。

受け身のメソッドってのは変な感じかもしれないけどポリモーフィズムを考えれば必須だよね。
UnderAttack参考にさせてもらうよ。
0876デフォルトの名無しさんNGNG
>>875
>受け身のメソッドってのは変な感じかもしれないけどポリモーフィズムを考えれば必須だよね
どう必須なの?
「攻撃される」はイベントであって、その中で発行する「攻撃される」側のメソッドは
「守備をする」とかではないの?

0877デフォルトの名無しさんNGNG
>>874
いいや、いもしないのに釣れるわけねーじゃん。
0878デフォルトの名無しさんNGNG
>>872
だからそれはDllImportが使える場合ね。
コールバックはデリゲートだから、DllImportは使えないんだよ。

まあ、わかんなくてもしょうがないよ。
俺でも一日悩んだんだから、君たちには難しすぎたね(藁
とりあえず解決したから、もう答えてくれなくても全然かまわないよ。

もし、どうやるのかどうしても知りたい奴がいるなら、
ちゃんと礼儀正しく頼めば、気が向いたら教えてやるよ。
まあ、お前らのレベルじゃ必要ないからいないだろうけどね(藁
0879デフォルトの名無しさんNGNG
DllImportした関数に文字列(byte[] -> char*)渡して、
結果を先に渡した文字列の部分を指すポインタ(char* -> IntPtr)入りの
構造体で返してもらってるんだけど、この元の文字列(byte[])が
予期しないタイミングでガベコレに巻き込まれて
アドレスを移動されてしまう。

すると、返してもらった構造体内のIntPtrは、アドレス移動に
追随出来ず、無効な領域を指してしまうんだけど、これを防ぐ方法有る?
0880デフォルトの名無しさんNGNG
>>877
「釣ろうとしてる」んでしょ。日本語大丈夫?
0881デフォルトの名無しさんNGNG
>>879
pinすればいいじゃん。

>>880
釣れもしないものを釣ろうとするのはお前くらいだよ。
0882デフォルトの名無しさんNGNG
>>881
俺じゃねーってw
0883デフォルトの名無しさんNGNG
ご隠居が釣り竿の手入れをしようと、室内で竿を取り出した。
それを見ていた与作は、「何を釣ろうとしてるんですか?」と尋ねた。
するとご隠居は「部屋の中で魚が釣れるわけないだろう。まったくお前は粗忽だねぇ」と答えた。
すると与作は「釣れるかどうか聞いたんじゃなくて何を釣ろうとしてるか聞いたんですよ。日本語大丈夫?」
と尋ねた。

かくして与作はいつも通りみなの笑い者になりましたとさ。
お後がよろしいようで。
0884デフォルトの名無しさんNGNG
>>883
必死だなw
0885デフォルトの名無しさんNGNG
与作をバカにするのくらい、必死にならなくても余裕だが何か?
0886デフォルトの名無しさんNGNG
>>883
えーっと。釣り場(2ちゃんねる)で釣りしているのと
釣り場じゃないところ(室内)で釣りしているのとは話が
違うと言いたかったんですか? それとも>>883自体が釣り餌ですか?
0887デフォルトの名無しさんNGNG
もうそろそろ悔しくて「釣れた」と捨て台詞を吐くころだろう。
0888デフォルトの名無しさんNGNG
いやいや、まともなコード書ける奴は釣れないって。
釣れるのは与作ばかりだから、釣れたなんて台詞はとてもとても。
0889デフォルトの名無しさんNGNG
>>888
?
良く分からんが888ゲットおめ。
0890デフォルトの名無しさんNGNG
>>849=>>867 が基地外だった。で終了放置で良いですか?
0891879NGNG
>>881
pinって何?
0892デフォルトの名無しさんNGNG
>>891
pinningでヘルプ引いてみ
0893デフォルトの名無しさんNGNG
C#ならfixedだね
0894デフォルトの名無しさんNGNG
>>890
お前みたいな粘着厨房は放置ということで終了
0895デフォルトの名無しさんNGNG
>>894
はあ?俺一回しか書いてないんだけど。。。まあいっか。
0896デフォルトの名無しさんNGNG
>>876
能動か受動かって単に文法上の問題だから。
たとえば怪我をするって日本語だと能動だけど英語にすれば be injured とかだし。

どっちにしてもC#は他のクラスのイベントを呼び出すことが出来ないからそのイベントを起動するためのメソッドが必要なんだよね。
攻撃されたときの WasAttacked イベント内で防御とかいろいろするにしてもまずそのイベントを発行するための BeAttacked メソッドが必要って感じかな。
0897デフォルトの名無しさんNGNG
>869
XP HOMEは
VS.NETでのASP.NET開発→×
WebMatrixでのASP.NET開発→○
0898デフォルトの名無しさんNGNG
>873

なぜNSからFSに直に書き込まぬ?
0899デフォルトの名無しさんNGNG
「cdecl規約のコールバック」って意味がよくわからんけど、dumpbin /exportな
関数を作る方法なら過去スレにガイシュツ。当時はスゲーのがいたもんだ。
0900デフォルトの名無しさんNGNG
>>899
すごくねーよ。
そんなの初歩の初歩だ。DllImportAttributeを使えばいいだけだろうが。
コールバックの場合はデリゲートを使って作らなくちゃいけないから、
DllImportAttributeが使えねーんだよ。

ちなみに、どこが意味わからねーんだ?
cdeclもコールバックもデリゲートも常識的な用語だろ。
0901879NGNG
fixedキーワードだけじゃ、抑え込める範囲が狭すぎたけど、
GCHandleのpinningと組合わせて解決出来たよ。
ありがとヽ(´ー`)ノ
0902デフォルトの名無しさんNGNG
>>900
おいおい、過去ログみたのか?みてからいえよクソボケ。
DllImportなんてどこにも書いてねーよ。おめーdumpbin /exportの意味がわかんねーんだろ。
0903デフォルトの名無しさんNGNG
ちなみに馬鹿がぼけたレス続けるとむかつくから教えてやるが、Part4のログだ。
見てから謝りに来い。
0904配列としてのインスタンス作成に関してNGNG
あるクラスのインスタンスを配列で確保したい場合に

private static CSrc[] src;
src=new CSrc[]{new CSrc(),new CSrc(),new CSrc(),new CSrc(),new CSrc()};

と書いたのですが、この方法は見た目、うざいです。
どなたか、もっとすっきりした記述方法はご存知ないでしょうか
0905デフォルトの名無しさんNGNG
foreach(i in src) { i = new CSrc() } ってのはどお?
0906配列としてのインスタンス作成に関してNGNG
サンクスです。
自己レスですが、
src=new CSrc[10];
for(int i=0;i<src.Length;i++)
{
src[i]=new CSrc();
}
で解決してました。
でも、上様の処方がより簡潔です。
お知恵お借りいたします。

どうもでした
0907配列としてのインスタンス作成に関してNGNG
あれ,foreach文で
foreach(CSrc i in src)
って、やると、iって読み取り専用?
従って、割り当て不可?
ちょっと渡来しましたが、できませんでした。
いかがでしょうか。
0908デフォルトの名無しさんNGNG
>>907
905のようなあんぽんたんが発生しないように読取専用にしてあります。
たとえ読取専用にしなくても代入は無意味でしょ。

ところで
ms-help://MS.MSDNVS.1041/cpgenref/html/cpconstaticfieldnamingguidelines.htm
このへんによると静的フィールドには名詞の省略形を使用し、
なおかつハンガリー記法で書くべきなんだそうだ。

すなはち
↓ハンガリアン
StrAppName
  ↑省略

おまいら実践してますか?
俺はしてませんが。
0909デフォルトの名無しさんNGNG
する訳が無い。
ハンガリアソなんか糞食らえだ。
0910デフォルトの名無しさんNGNG
>> 849
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconusingcallbackfunctions.asp?frame=true
検索したらすぐ見つかったけどこういう事じゃないのかな?
878で言ってるのはどういう事だろう?DllImport使わないわけでもないような。
あと、Part4の528,529はコールバックとは全然関係無さそうだけど…。
0911デフォルトの名無しさんNGNG
>>908
これでチェックすべし。
http://gotdotnet.com/team/libraries/
0912デフォルトの名無しさんNGNG
ちょっと遅ネタだけど、期待しましょ。ヽ(´ー`)ノ
http://discuss.develop.com/archives/wa.exe?A2=ind0212a&L=dotnet-web&T=0&F=&S=&P=6733
0913デフォルトの名無しさんNGNG
WSTKの正式版が出たみたいね。1.1で標準装備になるのかな?

Web Services Enhancements 1.0 for Microsoft .NET
http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/002/108/msdncompositedoc.xml
0914913NGNG
WSTKじゃなくてWSDKだった・・・。スマソ
0915905NGNG
あんぽんたんですあっはっは。
普段使ってないのに書き込むもんじゃないなぁ
0916904NGNG
あんぱんまんです
0917デフォルトの名無しさんNGNG
>>902
おいおい、そこに書いてあるようなことなら、DllImportでできるっつってんだよ。

>>910
おいおい、呼び出し規約変えてねーじゃんかよ。

まったくバカばっか。
0918デフォルトの名無しさんNGNG
>>917
うーん、君は何がしたいのかほんとにワカラナイ。Cでいいから例を書いてくれ。
それみて考える。
0919デフォルトの名無しさんNGNG
>>917
>>902に書いてあることはDllImportではゼッタイに不可能ですが何か?
できるもんなら見せてみろ。
0920910NGNG
DllImport無しでっていう事なのね。ネットワーク上に配置してあるDLLを
Reflectionで読み取ろうとしたとか?

しかし放置されたのをきちんと我慢出来ない人なんだね。
0921ななしNGNG
教えてって言ったのに、誰も教えてくれなかったニダ

謝罪と賠償を(ry
0922デフォルトの名無しさんNGNG
セクースさせてって言ったのに、誰もさせてくれなかったニダ

謝罪と賠償を(ry
0923デフォルトの名無しさんNGNG
>>849はこういうことかな?違うかもしれんが
cdecl 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デフォルトの名無しさんNGNG
人を見下す前に、自分の言葉で説明して理解されようとか思わないのかね。
0926デフォルトの名無しさんNGNG
>>924
バカ(藁
早くCで例を書いてくれよ。バカ(藁
cdeclとか言ってんのにCで例が書けないわけないよな?バカ(藁
0927デフォルトの名無しさんNGNG
Del厨以来久々に大型新人が登場したな(w
歳末助け合いの季節だ。誰か924の昇天を助けてやってくれ(w
0928デフォルトの名無しさんNGNG
>>878で
>コールバックはデリゲートだから、DllImportは使えないんだよ。

って書き方するから皆混乱してるんじゃないか?
DllImportAttributeが使えないって話だったよな。
0929デフォルトの名無しさんNGNG
> とりあえず理解できないなら黙ってろよ。



うん。
0930デフォルトの名無しさんNGNG
っていうか、878で「解決した」って書いてあるね。

でもその同じ878で「コールバックはデリゲート」という意味不明なことが書いてあるね。

コールバックはデリゲート。
「デリゲートはコールバックとして利用できる」ではなく、
「コールバックはデリゲート」。




コールバックはデリゲートじゃないよ。お馬鹿さん。プ
0931デフォルトの名無しさんNGNG
>>930
俺は理解しました。
コールバックはデリゲート、正しいです。
一人騒いでるやつがやりたいことは、DllImportすることがメインなのではなく、
その DllImport した関数に対して、cdecl のコールバック関数を渡してやりたいのです。
コールバックに渡すのはデリゲートなので DllImport は使えません。

Windows API で使われてるコールバックは stdcall で、
.NET のコールバックは自動的にこれの関数ポインタに変換される。
ところが、今使おうとしてる関数が要求しているコールバックは cdecl だ、さて困った。
と言うことじゃないでしょうか。

俺は C++ でアダプターを一本挟むことを提案します。
0932931NGNG
.NET のコールバックは自動的にこれの...
↓
.NET のデリゲートは自動的にこれの...

意味不明だ(;´Д`)
0933デフォルトの名無しさんNGNG
>>931
漏れもそうだと思った。でもそれのやり方なら>>923さんの.NET 247へのリンクで解説されている。
それをコイツは924で「全然違うよバカ」とのたまわった。

過去ログの参照も指摘されていたが、そこにもC#単独では無理だがILをいじれば可能とされている。
それをコイツは917で「DllImportでできるっつってんだよ」とのたまわった。

だから931さん、それは違うんだ、きっと。もっときっとすごいことなんだ。

それから、コールバックはデリゲート使わなくたって実現できるから、
「コールバックはデリゲート」は正しくない。
0934284NGNG
2つのアプリケーションのインターフェイスとしてファイルを使っている。
両方とも頻繁にそのファイルにアクセスするのでファイルの読み書きの競合が発生する。
それで、その sr= File.OpenText(....);があるブロックにtry{}で囲み、 finally{}で後処理をしてエラーがでても中断しないようにしたつもりが、まだ同じエラーがでてくる。
もう理解不能なのでだれか説明してくれませんか?
0935934NGNG
ちなみにエラーは別のプロセスがそのファイルを使用しています。とかいう趣旨のもの。
エラーを拾って構造的な処理をしたいのではなくて、ただそのエラーが出るのが分かっているので無視して処理を進めたいということです。
0936デフォルトの名無しさんNGNG
現在、ListViewにデータを表示するアプリケーションを作成しています。
ListViewクラスはデータをListView内に保持するので、自作クラスにデータを持っていると
データの2重管理になってしまいます。
Model/Viewのような感じにしたいのですが、そういった考えは古いのでしょうか?
0937デフォルトの名無しさんNGNG
>>936
ListView以外にViewを持つ可能性があるなら、Model/Viewにして
データを二重持ちにしたほうがいいだろうねえ。

その可能性がないならListView派生クラスにボッコボッコ埋め込む。
0938デフォルトの名無しさんNGNG
>>935
try{}catch{}finally{}
catchしる。
0939936NGNG
>>937
どうもです。
リストビューで使うデータは他の表示でも使うので、どうしようかと。。
2重にするとデータの入れ替えとか起きたときに整合性を保つのが大変っぽい。
やっぱリストビューを表示とデータ管理クラス両方の役にするのがいいっぽいかな。
0940デフォルトの名無しさんNGNG
>>939
他のViewがあるなら、迷わず二重持ちにするけどなあ・・・

その、他のViewが参照のみで、操作をしないのであれば、
ListViewがデータ管理役になっても大丈夫かな?
0941934NGNG
>>938
特にしたい処理がなければfinallyだけで良いと思っていたんだけど。
空のcatchでやってみます。thanks
0942デフォルトの名無しさんNGNG
>>941
キャッチしないと例外が外に飛び出てっちゃうよ
0943934NGNG
>>942
try-finally だけの構文もありと書いてあったので、一番一般化されたエラー処理はこれなのかなと思っていました。
それはなんのためにあるの?
0944デフォルトの名無しさんNGNG
>>943
漏れはそのtry-finallyは使わないけど
メソッド使用してる側でcatchすれば用が足りる時、使えるかもね
でも
try{}catch(Exception error){ throw error;}finally{}
ってしたほうがわかりやすいと漏れは思ってる。あくまで漏れの考えだけどね・・・
0945デフォルトの名無しさんNGNG
>>943
そいやbefore/Afterパターンってのにも使えるねtry-finallyは。
http://www.hyuki.com/dp/dpinfo.html#BeforeAfter
0946デフォルトの名無しさんNGNG
>>939
迷わずModel/Viewにするのがいいんでは?
データは一元管理にしないといかんでしょ
そうしないと、いわれてるように更新、同期の管理など大変に.
ListViewだとどう実装するのかは知らないんですが、オーナードローになるのかな?
マスひとつひとつをセルとすると必要なセルの表示時にデータを見に行って表示って感じか
0947名無しさん♯NGNG
次スレです。
http://pc3.2ch.net/test/read.cgi/tech/1039646808/l50
0948デフォルトの名無しさんNGNG
ほほう、C#でデリゲート以外のコールバックができるとな?
ここはC#のスレであって、C++のスレじゃないぞ。
ちなみに俺は解決した。
他にできる奴はいねーの?(藁
0949デフォルトの名無しさんNGNG
>>948
パターン名で言ったらなんだい?
0950デフォルトの名無しさんNGNG
>>948
俺できるよ。でもそんなひれくれた聞き方するやつになんか教えない(藁
0951デフォルトの名無しさんNGNG
>>950
嘘つくな。お前にできるわけねーだろ。
本当だと言い張るんならソース見せてみろ。
0952デフォルトの名無しさんNGNG
>>951
嫌。出来ないと思われても良いよ。見せるよりマシ。
0953デフォルトの名無しさんNGNG
>>952
はったりプ。
0954デフォルトの名無しさんNGNG
>>948
ばかじゃねーの。いいかげんにしろ。
0955デフォルトの名無しさんNGNG
>>950
次スレ立てろヴォケ
0956デフォルトの名無しさんNGNG
>>955
わかりました。
0957&diamonds;NGNG
>956
立ってるよ
0958デフォルトの名無しさんNGNG
ほどよく荒れてるな(W
0959950NGNG
>>957
俺が立てました。
0960pictyNGNG
C言語で一定周期(100ms以内)の信号を画面に表示させたいのですが、
どの関数を使ったらよいかわかりません。どなたか教えていただけませんか?
0961デフォルトの名無しさんNGNG
>>960 いちおうこのスレはC#の質問なのでCの質問スレ捜して聞いてみたほうがいいよ。
それに質問も漠然としてるね。信号とはなんだろう。
C#、.Netで一定時間毎に何か処理させたいときはタイマーをフォームに貼り付けて、イベントハンドラを書くというのがやり方だけど。
0962デフォルトの名無しさんNGNG
unsafe コンテキストで
MyStruct s = new MyStruct( Hogehoge );
SomeNativeMethod( new IntPtr( &s ) );
// MyStruct preventOptimizing = s; // コメントはずすと正しく動くよ

ってな感じで、メソッドに渡すだけの構造体を使うと、
最適化で消滅して正しく動かなくなるんだよねぇ。
アドレス取ってるんだから最適化しても残さないといけないと思うんだけど。
0963デフォルトの名無しさんNGNG
だからpinしろって。
0964デフォルトの名無しさんNGNG
そういや、C#って、かなり積極的にガベコレしてるね。
0965デフォルトの名無しさんNGNG
>>964 ソースは?どうしてそう思ったんだい?
0966デフォルトの名無しさんNGNG
デバッガでこまめにメモリ内容チェックしたから。
0967デフォルトの名無しさんNGNG
962はstructだからガベコレは無関係だぞ
0968デフォルトの名無しさんNGNG
structもガベコレされることすら知らない967がいるスレ
0969デフォルトの名無しさんNGNG
structがガベコレ対象だと思い込んでいる968が煽るスレ



structはガベコレされません。
0970 NGNG
>>962

これきついね。APIに渡すための構造体を wrap するクラスは全部 pin
するってこと。。。?
0971デフォルトの名無しさんNGNG
>>962
いや、それはstructの使い方が間違っているってことだろう。
アドレスをメソッドに渡したらアドレス(32ビット数値)が残っているだしょ。
IntPtrにキャストしてるんだから。

素直にヒープに取ればいいじゃん。ちなみにpinは関係ないよね。
0972962NGNG
>>971
いえ、実は構造体は Win32 の RECT で、メソッドは DirectX の LockRect なんですけどね。
このメソッドはその場で RECT を参照するだけなのでスタックに取っても大丈夫なはずなんです。
ちなみに preventOptimizing への代入を、メソッドを呼ぶ前に持ってきても正しく動きました。
IL 見てないので正確ではないかもしれませんが、アドレス演算子以外の何らかの形で一度も参照されないと変数自体が削除されるみたいなんです。
0973デフォルトの名無しさんNGNG
>>972
うー、そうですか。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; // コメントはずすと正しく動くよ
 }
}
0975962NGNG
まず、C#のソースコードです。

D3DLOCKED_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 に受け取ります。
*/
0976962NGNG
次に、正常に動く(preventOptimizing を使用している)コードの IL です。

// 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 に割り当てられる

0977962NGNG
// texture.GetSururfaceLevel( 0 )
IL_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 に渡されているので正しく動きます。
0978962NGNG
次に、preventOptimizing を使わずに、正しく動かないコードの IL です。
ほとんど同じですが。

// 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 に割り当てられず綺麗さっぱり消滅します。
0979962NGNG
// texture.GetSururfaceLevel( 0 )
IL_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
うーん、Interop.DxVBLibA.dllも使って975のコードをコンパイルしてみたものの、
再現しませんでした。唯一書けなかったのは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;
 }
}
0981962NGNG
とりあえず再現する最小限のコードを乗っけます。(行数の関係でかなり押し込みましたが)
問答無用で最初のローカル変数が表示されるようです。
どうやら結構複雑な問題のようで、アドレスを取るだけでは問題は発生せず、
それより前に 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
>>981
うー、コピペして、.NET Framework 1.0 RTM、SP2、1.1 Final Betaで
試しましたが、いずれもValue=1でした。。。。
0983962NGNG
>>982
あれぇ〜〜??
ってことはもしかしてこっちの.NET Frameworkが古いのかも?
SP2当ててなかったっけな・・・?
0984デフォルトの名無しさんNGNG
ShowValue( new IntPtr( &valueWantToShow ) );
のところを
fixed(int* p = &valueWantToShow){
 ShowValue(p);
}
にしたらどう?
レス数が950を超えています。1000を超えると書き込みができなくなります。