C♯相談室 Part9

このエントリーをはてなブックマークに追加
1名無しさん♯

   ∧_∧____
  /(#゚ー゚) ./\
/| ̄∪∪ ̄|\/    C#,.NET関連の話題はこちらでどうぞ。
  |____|/
   ,,,,∪∪,,, ,,


ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10

過去スレは>>2-5あたり
2名無しさん♯:02/12/12 07:47
3:02/12/12 07:49
関連スレ

VisualStudio.NET(MSDN Deluxe) Part 7
http://pc3.2ch.net/test/read.cgi/tech/1034772444/l50

くだすれC#(Part2)
http://pc3.2ch.net/test/read.cgi/tech/1035895873/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

フリーの.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
>>1
おつかれっす。
2chにC#を使ってアクセスしたいんですけど
string url = "スレのURL"
WebClient wc = new WebClient();
Stream st = wc.OpenRead(url);
StreamReader sr = new StreamReader(st,Encoding.GetEncoding("shift-jis"));
string lowtext = sr.ReadToEnd();
sr.Close();
st.Close();

ってやるとアクセスできないんです。
ヤフーとかはいけるんですけど。
これって無理なんでしょうか?
>>6
アクセスできない理由を書かないのは質問に答えて欲しくないから?
8 :02/12/12 14:39
9 :02/12/12 14:40
Delphi で言う所の
http://home1.infonia.ne.jp/~delphian/delphi/
みたいな(出来れば日本語の)サイトって無い?

googleでC#引っかからん・・・
codeprojectかしら
116:02/12/13 10:52
>7
ごめんなさい。
6のようにアクセスすると
http://www5.ocn.ne.jp/~zio/test.html
(帰ってきた内容をHTMLで保存して自分のページに上げているだけです)
のような内容が帰ってきます。
”Configuration Error”ってなんか設定をしなきゃならんのでしょうか?
>>11
エラーログになんて書いてあるの?
>>11
というか「あなたのリクエストが間違ってる」って言われてるようだが?
146:02/12/13 13:45
>12 >13
レスありがとうございます。
エラーログってどこで見るんでしょうか?
例外みたいなのはなげられてなさそうです。

URLのせいも疑ってもう少し調べてみました。
string url = "http://pc3.2ch.net/tech/";
だとokのようで
string url = "http://pc3.2ch.net/test/read.cgi/tech/1039646808/l50";
だと上記のようなデータが帰ってくるみたいでした。
"read.cgi"
が返すHTMLにアクセスしたい場合ってこれではだめってことなんですかね?
>>14
多分 http://www.monazilla.org/ で勉強して。
16デフォルトの名無しさん:02/12/14 19:09
>>6
それ俺も思いっきり引っ掛かって試行錯誤したんだけど、
read.cgi は、UAにMonazilla/を称していると、アクセスできない。
こんな仕様、アンドキュメントでしないでくれって感じだが。
これ一つ判明させるのに、数日かけたよ。。
>>16
どっかのスレで既出だよ。
Monazillaスレだったかな?失念すまん。
186:02/12/15 01:33
ありがとうございました。
15さんのリンク先でなんとかなりました。
思いっきりスレ違いでしたね。ごめんなさい。
せめて帰ってくるHTMLデータに、Monazillaへの
案内だとかはいってたら助かってたんですが。
19デフォルトの名無しさん:02/12/18 01:24
このスレ、スレッドが検索(c#)で引っかからないんだな
C♯の参考図書ってここで聞いていいの?
20あぼーん:あぼーん
あぼーん
21前スレ962(多分:02/12/19 14:47
なんか 2ch 開けなくて報告が遅れました。
SP2 当ててみましたが直りませんでした。
前スレでレスくださってた方以外にも実験してもらえると助かります。
最適化ありで以下のコードをビルド、実行すると、
本来なら 1 が表示されるはずなのですが、私の環境では 1024 が表示されます。
Windows 2000/Visual Studio.NET 2002 Pro
csc.exe のバージョンは 7.0.9466.0 でした。

using System;
using System.Runtime.InteropServices;

public class Class1{
[STAThread]
static void Main(string[] args){
int valueToShow = 1024;
int preventOptimizing = valueToShow;

object dummy;
Dummy( out dummy );

unsafe{
int valueWantToShow = 1;
// int preventOptimizing2 = valueWantToShow;。
ShowValue( new IntPtr( &valueWantToShow ) );
}
}
static void Dummy( out object o ){ o = null; return; }
static void ShowValue( IntPtr p ){
Console.WriteLine( "value = "+Marshal.ReadInt32( p ) );
}
}
22厨房教えて糞:02/12/19 23:58
C#でアプレットのようなことをしようとしてもうまくいきません。
Windows XP Professional
.NET Framework SP 2
IE 6.0 SP1

ここを参考にしました。
http://ja.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx
http://www.microsoft.com/japan/msdn/columns/webteam/webteam10012001.asp

必ずhttpを通せとあったので、サーバにアップしてみましたが同じでした。
1つ目のURLでのサンプルもまともに動きませんでした。
http://ja.gotdotnet.com/quickstart/winforms/Samples/IeSourcing/VB/IESourcing.htm
>>22
.NET1.1だとセキュリティ警告のダイアログが出てきて、
「Yes」を押せば動いたよ。知らんかった。
>>21
前スレの流れがわからんが、漏れも試してみた。
Win2000(SP3)、.NET Framework SDK1.0(SP2)
/optimize+でコンパイルしたら1024が表示された。

最適化が変な感じだ。ILDASMでILコードに起こしてみるとどうも、
int preventOptimizing;
int valueWantToShow;
が削除されてるっぽい。

悪さしてるのは、Dummyメソッドかなぁ・・・。わからん。
ILコードのニーモニックわかる人解析きぼんぬ。
>>21
value = 1 ですた。当方.NET 1.1。
>>21
再現しますた。

csc /unsafe -> value = 1
csc /unsafe /debug- /o -> value = 1024

最適化がバグバグに一票。
2726:02/12/20 13:26
んで、ildasmつかって中身比べてみたけど、どうもIL自体はどっちも一緒みたい。
だからJITあたりがプチ壊れているのではないかと推測するのがよさげ。
2822:02/12/20 15:12
>>23
1.1ってどう入手するんでしょうか?

それとどなたか1.0でうまくいった方はいらっしゃいませんか?
>>28
コードアクセスセキュリティをゆるめるしかないんじゃない?>1.0
>>21
前スレで再現できなかったものです。21のコードって前スレと変わってます?
よくわかんないんですが今日21をコピペしたらあっさり再現しました。やはり
ILがおかしいですね。

情報探してみたら、こんなのが報告されてました。根は同じなのかな?
http://www.jelovic.com/weblog/e49.htm

1.1ではやはり再現しない(Value=1)ので、SP3か1.1、どっちが早いかって
ことでしょうかねぇ。MSさんここ見てるだろうか。
3121:02/12/20 17:25
サンクスです
再現してよかったです。
多分 out パラメータを使うと、その関数内では一度も使用していないのに Dummy 内で使用しているかもしれないからってことでその辺の最適化に問題があるんじゃないかと思ってます。
1.1でOKということは、やっぱバグってことで修正されたと見ていいんでしょうかね。
なんか1.1はVS2002では使えないとか?
ってことはVS買い換えなきゃいけないのかな・・?


>>22

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\ドメイン名]
"http"=dword:00000002

をレジストリに結合すれば動くよ。
***.reg にしてユーザーに実行してもらうか何かするよろし
3222:02/12/20 18:39
>>29 >>31
ありがとうございます。

レジストリを書き換えてみましたがよくわかりませんでした。
たとえば以下のページだと
http://ja.gotdotnet.com/quickstart/winforms/Samples/IeSourcing/VB/IESourcing.htm
ドメイン名の部分は ja.gotdotnet.com になるのでしょうか?
試してみましたがうまくいきませんでした。

どうも実用的じゃなさそうなので諦めようかと思います。
>>32
ja.gotdotnet.com じゃなくて gotdotnet.com だけだよ
ja 限定にしたければ

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\gotdotnet.com\ja]
"http"=dword:00000002

インターネットオプションで信頼済みサイトに登録するのとやってる事は同じ。
あくまでユーザーの環境で、信頼されてるサイトのコードなら実行されるだろうと言う前提に基づいてるから、信頼済みサイトでもコードを実行しないように設定されているなら動かないけどね。
3422:02/12/20 19:21
>>33
ありがとうございます。うまくいきました。

でもこれでは不特定多数を相手にしたサイトでは使えないですね。
それ以前に.NETランタイム自体、一般人はインストールしてないでしょうし、
.NET 1.1ではダイアログから承認させられるようなので、
1.1が普及する時期(Longhorn?)までは自己満足用と考えることにします。
35デフォルトの名無しさん:02/12/20 21:01
TcpClientとStreamReaderとNetworkStreamを使って
TCP接続してるんですがStreamReaderのReadLineメソッド
を使った場合読み込めない場合制御が帰ってこないのですが
対処法は無いのでしょうか?
37デフォルトの名無しさん:02/12/22 12:03
たとえばC#のForm派生クラスのPaintハンドラを実装する場合、2つ方法がありますよね。

1つは、基本クラス(Controlクラス)のOnPaintメソッドをオーバーライドする方法
1つは、PaintEventHandlerメソッドを新規に作ってForm派生クラスのPaintイベントにアタッチする方法

僕が参考にしている本ではOnPaintメソッドをオーバーライドする方法が
推奨されているようなことが書いてあったんだけど、VisualStudio.NETの
機能を使ってイベントハンドラを実装すると、メソッドを新規に作って
Paintイベントにアタッチしています。

実際どちらの方法を使うのがいいんでしょう?
OnPaint
>>36
使い方わかんないでつ。
ドキュはどこでしょう・・
>>37
漏れのばあいは
Formの場合はOnPaintつかうけど、
PictureBoxとかはPaintアタッチしてる。
楽だから
>>39
AspectJのドキュメント。(藁
>>41
AspectJとおなじでつか。了解でつ。
ありがたう。
>>37
継承するときはOnPaintをオーバーライド、
継承しないとききは後者。
.Net framework 1.1かVisual C# .NET 2003でGenericsがサポートされる可能性はありますか?
>>44
ありません。次期版(Yukon?)までお楽しみ。
46名も無き英雄for北朝鮮:02/12/26 08:19
はつかきこです。
http://ukamen.hp.infoseek.co.jp/Programming1/ImageViewer/index.htm
で「ファイル」メニューをフォームに追加するのってどうすればいいのですか?
47人民武力部長官:02/12/26 09:24
>>46
偉大なる将軍様に聞いてくれ。
48名も無き英雄for北朝鮮:02/12/26 10:28

偉大なる金正日さま〜〜〜〜〜〜〜
あの朝鮮中央放送うけるし・・・
金正日の頭とか服装受けるし・・・・
49 :02/12/26 15:21
VS7の
「ソリューションエクスプローラ」
のように横からニョキニョキviewが伸びてくる
のを作りたいんだけど、そういうコンポーネントや
ヒントあったら教えて下さい。
51 :02/12/26 18:48
>>50
スーパーサンクス
52デフォルトの名無しさん:02/12/26 19:36
スレッドを超えてイベントを送りたいのですがこの場合どうすればいいんでしょう?
したいことはこうです.
GUIメインスレッドがメインフォームの処理を行うとします.ここで別クラスの発生させるイベントを処理するメソッドを記述します.
別クラスの処理は別スレッドが行います.別スレッドが処理中イベントを発生させます.
このときにそのイベントをメインフォームのメソッドで処理したいんですが、そのときに処理するスレッドをGUIメインスレッドにしたいんです.

通常の記述で書くとメインフォームのメソッドが呼ばれても、別スレッドのコンテキストで実行されることになると思います.

イベントの仕組み使わないで書けば難なくできることなんですが、その仕組みを使ってきれいにかけないかと思い質問させていただきました.

非同期デリゲートとかも見たのですがちょっと違いそうです.
品とあれば教えてください.
>>52
Control.BeginInvoke
54デフォルトの名無しさん:02/12/27 11:26
コントロールを作ってみたいんですが(というか、作る必要がある)、
どっか参考になるサイトありますか?
55 :02/12/27 12:22
>>54 最低限とりあえずはMSDN見ろよ(w
それかその辺の本屋に売ってる本買うとかさ
56デフォルトの名無しさん:02/12/27 12:42
これ?
ms-help://MS.VSCC/MS.MSDNVS.1041/vbcon/html/vbconComponentCreation.htm

本ってどんなのがあります?
田舎なんで、その辺の本屋にはまずC#の本なんて無いです。
>>52
同じことが[CS:02946]にも(変換ミスまで同一)
>>52
マルチポストかよ
>>53が哀れだな
60デフォルトの名無しさん:02/12/28 14:53
何万とある.NETのクラスの中で、一番重要なクラスは何でしょうか?
>>60
System.Object
いや、System.AppDomainも捨てがたい
>>60
System.String
いいとこ9000ぐらいだろうと言うツッコミは不可でつか?

どうせだから、System.Collection.IEnumeratorとSystem.Collection.IEnumerableもあげとこ。
65デフォルトの名無しさん:02/12/28 23:22
コントロール作り始めたんだけど・・・プロパティのデフォルト値
を設定しようとしてるんですが・・・うまく設定されません。

[DefaultValue(typeof(DateTime),"2002/12/12")]

何がおかしいんだぁ(T.T)
"2002/12/12" は string じゃん
勝手にキャストしないよ
>>65
コンストラクタに書いてもちゃんとVS.NETは認識するよ
68デフォルトの名無しさん:02/12/29 12:26
DateTime.NowでやってもStringにキャストはできんってエラーになる。
MSDNみてもString型で書くように書いてあるし・・・。
俺のVS.netが駄目なのかなぁ。

参考元
ttp://ukamen.hp.infoseek.co.jp/Programming1/LedButton/index.htm
>>68
コンストラクタで普通に代入しる!
>>68
Nowだから駄目なのかも。
71デフォルトの名無しさん:02/12/29 16:50
>>69
その普通を馬鹿に教えてクレクレ。

[Category( "設定" )]
[Description( "日付" )]
[DefaultValue(typeof(DateTime),"2002/12/12")]
public void DateTime Days{.........
をコンストラクタ内に書いても"["は無効って言われるし(´Д⊂グスン
value
指定した型の TypeConverter と英語 (US) カルチャを使用して、その型に変換できる String。

ってこたぁ、「Month/Day/Year」か?
>>71
普通って普通のコードだよん
this.XXX = DateTime.Now;
これでVS.NETはちゃんと認識する
74デフォルトの名無しさん:02/12/29 17:20
Class MyClass : System.Windows.Forms.Control
{
[Category( "設定" )]
[Description( "日付" )]
[DefaultValue(typeof(DateTime),TodayTime)]
public void DateTime Days{.........}

MyClass()
{
TodayTime = DateTime.Now;
}
}

こんな感じですが(´Д⊂ モウダメポ状態です・・・。
Month/Day/Yearも駄目でした。
ネタとしてはまあまあだな…
>>74
そうじゃなくて、コンストラクタ内で

  this.Days = DateTime.Now;

とすれば、DefaultValueAttributeは不要かと。
7774:02/12/29 17:49
デキタ━━━━(゜∀゜)━━━━!!
ありがとうございます。助かりました。

みなさん、よいお年を。
なんつー切り替えの早さだ。(ワラ
79デフォルトの名無しさん:03/01/01 00:03
あけおめあげ!
このスレが上がるとは思わなかったw

謹賀新年。
.NET元年は今年なのか?
82デフォルトの名無しさん:03/01/01 00:27
>>81
去年はお試し期間だったってことで
83名無しさん♯:03/01/01 00:41
あけおめです。ヽ(´ー`)ノ
今年は.NET 2.0のお試し期間ですな。(藁
今年の.NET&C#のロードマップはどうなっdの?
85名無しさん♯:03/01/01 01:35
>>84
.NET1.1正式版のあと、Yukonのβとともに.NET2.0β開始だと思われ。
すでに2.0で忙しいとの話も↓。
http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=102613
87デフォルトの名無しさん:03/01/04 05:10
CodeDOMっつーのは…なにができるのかよくわかりません。
とくjにCodeParserはコード解析ができるのか?
だと非常にありがたいんだが、Parseがabstractということは実装ないんだよな、やっぱり…
何か知ってる人いたら教えてください.お願いします.
>>87
ASTからソースコードを生成するのに使います。
フローチャートプログラミングツールとか作るのに使えます。

CodeParserは今の所役立たずです。
http://www.dotnet247.com/247reference/msgs/15/75500.aspx
> There is no C# parser implementation in this release.

もしC#のパースをするのであれば、Monoの実装が使えます。
mcsのソースをダウンロードして(C#で書かれています)、
CSharpCodeParserだけ引っこ抜いて使えます。
http://www.go-mono.com/download.html
-> mcs\cs-parser.jayを同梱のjayでコード生成する

ただしこれをやるとGPLに感染してしまうので
素人にしかお勧めできません。
>>88
マジッすか? インテルからのクレームで、XFree86ライセンスにしたんではなかったっけ?
>>89
それはクラスライブラリの方です。
コンパイラは依然としてGPLです。
9189:03/01/04 22:02
>>90
サンクス
92 ◆qZ/VDjzu96 :03/01/04 22:54
某所で要望があったので立ててみました。
良かったらメモ書きに使ってくださいな。
http://onigiri.s3.xrea.com:8080/csharp/
>>92
乙!

#でもWikiが翼輪から名い・・・Goooooogle逝かなきゃ
>>92
DelWikiの管理人様ですか?お疲れさまです。
95デフォルトの名無しさん:03/01/06 10:36
>>95
XP SP1の人はインスコする必要なし
98デフォルトの名無しさん:03/01/06 14:26
.NETで作られた有名アプリって何がありますか?
>98
今作ってるからちょっと待って。
>>98
♯Develop
101デフォルトの名無しさん:03/01/06 19:58
Web Services Enhancementって.NET 1.1でもちゃんと動きますか?
インスコしようとしたら「may not perform correctly」って脅されたんですけど・・・。
102デフォルトの名無しさん:03/01/06 20:43
>>101
サポートしないって書いてあるじゃん。
103デフォルトの名無しさん:03/01/06 21:23
>>99>>100
真面目に聞いてるんだから、ちゃんと答えてくれないと起こるよ?
>>102
むー、仕方がない。1.0入れますか・・・。
>>103
なんで>>100も?
#デブはキラーではあるがアプリではない。
107デフォルトの名無しさん:03/01/06 22:53
C#でソフトを作った時、走らせるために必要なランタイムはどのくらいのサイズになりますか?
>>107
40MB位だっけか?
こりゃすごいわ。

Using WSE-DIME for Remoting over Internet.
http://www.codeproject.com/useritems/RemotingDIME.asp
>>107
20.4MB
111 :03/01/06 23:44
>>109

What's this??
>>109
RemotingのCustom Channel。
クライアントからの出入口はBinaryFormatter (TCP) だけど、
内部でDIMEメッセージに変換してWebサービス呼び出し (HTTP) をやってる。
Remotingの型の表現力をそのままに、Webサービスの恩恵も受ける、といった感じね。
113111:03/01/07 14:47
>>112 Thanks!! It's GREAT!
>>101
やや遅レスだけど、1.1でもインスコは問題なくできたよ。
PasswordProviderぐらいの簡単なアプリしか動かしてないけど、目立った問題は今のところなし。
115デフォルトの名無しさん:03/01/07 23:41
ところで、SOAPのトレースツールで何かいいのありませんか?
今はtcpTrace使ってるけど、.NET製のがあったら使ってみたい。
tcpTraceってこっちの方。念のため。
http://www.pocketsoap.com/tcptrace/
DIMEを使うと引数・戻り値なしのWebMethodなのにファイルをうpできてしまうな。
妙な感じだ。
日本で実開発で使ってる香具師いないのかな?> WSE
119IP記録実験:03/01/08 21:36
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>549さん
お兄ちゃん…酷いょ…
>307
どうせただのテキストファイルなんじゃないの。
なんだコピペかよ(^^;
123デフォルトの名無しさん:03/01/09 18:34
保守
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
祭りはもう終わりですか
だよねぇ(^_^;)
だよねぇ(^_^;)
で、誰か頭のいい人、某○○さんが結局何をいいたかったのか
まとめてくれません?(^_^;)
法律板にひろゆきを助けてあげれそうな強腕弁護士いないの?
2ちゃんねる が衰退していく

あるネット関連会社の社長は、
「いずれにしても2ちゃんねるは資金が底をつけば終わり。
あまり知られていないことだが、2ちゃんねる内部関係者によると今、
大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」
と証言する。
2ちゃんねるが判決によって力を失った場合、
資金提供の打ち切りも予想される。

http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html
おい!おまいら!!

と こ ろ で I P は 誰 が 見 れ る ん で す か ? 


ひろゆき?夜勤?
聖地エルサレムは奪回されました!
匿名とは、自分が提示する情報だけで勝負することをいうので、
135デフォルトの名無しさん:03/01/10 22:11
JavaのServletで言うところの、HttpRequest.setAttribute()に対応する、ASP.NETの機能はありませんか?
>>135
HttpContext.Handler あるいは Control.ViewState
>>312
はたらいらさんに全部。
マンコマンコ
140デフォルトの名無しさん:03/01/10 22:56
当方初心者以前です。プログラミングを勉強する場合まず何を用意すればいいですか?
Microsoft Visual C++.netとかいうのがあるそうで。このソフトでC言語もできるんですか?
>>140
C#のスレで、Microsoft Visual C++.netでC言語の質問をするあなたは、
一体どの言語の勉強をしたいのですか?

ちなみに、C、C++、C#は似てはいますが、すべて別の言語です。
142140:03/01/10 23:41
>>141
すいません。とりあえずはじめはCがいいのかな〜などと思っています
スレ違いですね
143デフォルトの名無しさん:03/01/10 23:44
>>140
結論から言うと「出来る」
実験
87さんがんばってください。
応援だけはします!
>>139
C#のサイトが太字と小さい字で読みにくすぎ。
おみとろん使ってるけど。
く、クリがあずき大なんか〜?
ポイズン
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
どうでもいいことだが、2ちゃんえるに最初に書き込んだのだれだ?
>>前スレの989

>> 無知はいいねぇ

ほ〜、じゃあ、IPだけで個人特定する方法言ってみ。
ほれ言ってみ
もう2ちゃんねる無しでは生きていけません。
ちょっと2chが面白くなくなってしまうのでは・・・と心配してしまう
のですが、ワタクシ・・・。
告発系が駄目って事ですよね。
ううぅーん。雅の事も言えなくなっちゃうのかな?(関係ないか)
 
155デフォルトの名無しさん:03/01/11 19:45
っていうか、スレ違いは(・∀・)カエレ!
C#でCGIを書くという選択肢はありですか?
>>156
ASP.NETと言うならまだしもな。
>>156
なしだけど、どうしてもやりたければ、標準入出力と環境変数が使えるんだから
できるでしょ。正規表現だって使えるから、C++より楽かも。
しかし、プロセス生成コストがすさまじく高いという罠。
>>158
そう?.NETの.exeの起動ってそんなに重いかな。
Javaのそれに引きずられてない?
一発目の起動は激しく重いな。どうしようもなく。
それはJavaの話ね。

cgiにしてみた人いる?
162158:03/01/11 23:32
>>159
確かに、引きずられてた。確かに、2回目以降は激早(へたなWin32ネイティブより
早い−MFCとかVBVMとか使うようなヤシより)。
でも、160の言うことは間違いなく、正しい。1回目は激遅。
>ID:A+3kp3mQ

判ったからネレw
ここ詳しい事のっていますよ
http://www.kouken.com/
165デフォルトの名無しさん:03/01/11 23:34
1回目はあんなに遅いのに、なんで2回目からは速くなるんだろう?
アセンブリをキャッシュするプロセスみたいなのがいるのか?
.NET Framework入れても特別なサービスは登録されないみたいなんだが。
てことは.NETってOSプロセスの深くにこっそり潜り込んだりしているの?


>>165
2回目以降はキャッシュが効きます
どこまでの発言がやばいのか教えて欲しいな
当て字を使えばOK?セクハラだったら施苦腹とか
おいらが謎なのは、キャッシュの何がきいてるかがわからんのよ。
JITそのものが遅いってのは考えにくいし(初回起動時のことだ)、あそこまで
遅いってのはCLRのメモリー展開と動的バインディングしか考えられんのだ。
まあ、おいらの想像力不足ってことはあるだろうけど、いったい何をキャッシュ
すれば、あそこまで早くなるんだろう?
> 2回目以降は激早

ってことはcgiとして使っても問題なさそうですね。
 Apache + .NETなCGI
なんてのもアリってことかな。
おとなしくASP.NET使えという気もするけど。

>>165
> なんで2回目からは速くなるんだろう

ほぼすべてのdllが常駐しているから、だったかなあ。
よくわからん。
速いを早いと書く間抜けはおいらだけだな……
>>165
ただのキャッシュに決まってるだろ、OS標準の。
ただのキャッシュってえのは、ディスクキャッシュのことですかい?
1回目と2回目の起動時間の差は、キャッシュの効く範囲内で、
最もでかいプログラムが最大になる。
それだけ.NETがでかいってことだ。
>>173
試したことないだろ? 2回目の起動の速さは絶対的な速さだよ。
でかいプログラムの代表だがIEの1回目の起動と2回目の起動で速度差を感じるか?
ライブラリのでかさを考えろよ
IE何メガか調べてみ
>>174
IEの一回目の起動なんざどうやって確認しるんだ。
OS起動時にこっそり起動してるんだからありゃ。
iexplore.exeは89KBだね。
主要なコンポーネントは
mshtml.dll/shdocvw.dll/wininet.dll/urlmon.dll
だったかな。前2つはエクスプローラーが読み込んでると思った。
どうにかして初回の起動速くすることはできないのん?
ngenしてもあんま意味なかったし。起動は。
>>178
スタートアップにダミーのプログラムいれとけば?
>>179
やっぱそうきますね。でもやられたらキモイねぇ。
自分でやる分にはええんだが。
>>180
レジストリのRUNの方でな。
Apache2入れてcgi-binディレクトリにC#で作った.exe入れてみたよ

アタリマエかもしれんが、動いた。ちょっと感動

これってSYSTEM権限で動いてるのかな?だとすると嫌かも・・・
ごく単純なベンチマーク(wgetを100回繰り返す)
をやったら、Cで書いたほうがC#のより2倍速かった。
2倍で済んでると言うのが正しいのか?
Javaは確認するのがしんどい...
800⊂(゚∀゚ )  
メロンパンナって孫悟空なのか?
最強の釣り師キラーを祝福いたす
先週あたりからは、もうじゃなくても、訴えられたら捕まるんだよね?
PreJITって今のバージョンじゃ無いの?
探したけどβ2の情報ばっかりだ。
これがあれば、初回から速い起動が望めるんだけど。
>>188
ないから困ってる。
>>188-189
(゚Д゚)ハァ?
ngenがPreJITだけど何か?
>>183
Cとの速度差に何の意味があるのかと
CでC#のよーなコードが動くわけじゃないし、C#でCみたいなコード書く必要もないし。

しかし2倍しか違わないとは・・・なかなか速いんだな・・・
(・∀・)イイ!

What's New in Visual Studio .NET 2003 (codenamed Everett)
http://www.3leaf.com/default/articles/ea/WhatsNewWithVS2003.aspx
>>190
インストール時や起動時に自動でやるやつがなくて困ってるってことなんだけど・・
勝手に閲覧しておいて、「ルールには従わないが言う事を聞け」
これがトオルと思ってるんですかぁ?(^_^;)
直ぐ上、20レス位を読みましょう。
過去ログに目を通す癖を付けた方がいいです。
196山崎渉:03/01/13 18:37
(^^)
■基礎知識■

■「言論の自由はどうなった!」
言論の自由は、名誉毀損には適用されません。
批評・批判といった言論だと証明するのは、発言者の責任です。

■「最高裁があるじゃないか! 高裁差し戻しだ! 反訴しろ!」
最高裁は憲法に絡まない限り、受理してもらえません。今回の件では不受理はほぼ確定でしょう。
高裁差し戻しの可能性はひじょうに低いのはひろゆきも承知で、だから、最高裁にもっていこうとしています。
反訴についても、誰を訴えるかという特定が困難。これまた不受理の可能性がひじょうに大。

■「T動物病院は削除ルールに従ったのか! 2ちゃんには削除ルールがちゃんとあるんだ!」
2ちゃん独自の削除ルールに従わねばならない法的根拠はありません。
また、2ちゃんの削除ルール自体、判決では不十分なものとされています。

198デフォルトの名無しさん:03/01/14 02:24
ある unmanaged な API を使いたくて、その API で使われている共有体を C# で定義し
てみたのですが、インスタンスを作成すると、実行時に例外が発生してしまいます。

以下のサンプルで reserved の位置を他のメンバと重ならないようにすれば回避で
きるのですが、本来の目的を達成できません。

なんとか、うまく回避できないもんでしょうか?それとも仕様だから駄目?
# サンプルは行頭に全角スペースが入ってます

using System;
using System.Runtime.InteropServices;
namespace Sample {
 // union ngclass { int field; int reserved[4]; };
 [StructLayout(LayoutKind.Explicit)]
 public class ngclass {
  [FieldOffset(0)]
  public int field;
  // 追加情報 : アセンブリ '0' の型 'Sample.ngclass' を読み込めませんでした。
  // オフセット 0 に不適切に整列されたか、オブジェクト以外のフィールドで
  // オーバーラップされたオブジェクト フィールドが含まれています。
  [FieldOffset(0)] // <- これを 0 以外にすると OK だが...
  [MarshalAs(UnmanagedType.ByValArray, SizeConst=4)]
  public int[] reserved;
 }
 class Class1 {
  static void Main(string[] args) {
   ngclass ng = new ngclass();
  }
 }
}
199198:03/01/14 19:00
>>198
事故レスです。やっぱり仕様で駄目なのね。
ms-help://MS.VSCC/MS.MSDNQTR.2002OCT.1041/cpguide/html/cpconunionssample.htm
ヘルプに載っていた。。。首つって来ます。
元のStreamを閉じずにStreamReaderを破棄する方法ってないんだっけ?
GC.SuppressFinalizeかましてReaderを闇の彼方に葬り去れば出来そうだけど
なんかそれはちょっと危ないしなんかうまい方法ないだろか。
>>199
classでなくてstructでもダメっすか?
うーん、Unionsのサンプルだと動くのに自分でコード起こすと実行時例外で落ちるなぁ。
>>200
Dispose(false)でダメ?試してないからダメかもしれんが。
>>200
ただ放っておく。null代入してもいいけどさ。
204200:03/01/15 01:20
>>201
struct でも同じでした。ヘルプにあるように複数の class or struct に分割して、
受け側の method は overload で対応と言う解しか無いようです。
しまった。204 は 200 じゃなくて 199です。
もうしばらくの間、首つって来る。
206山崎渉:03/01/15 17:48
(^^)
207デフォルトの名無しさん:03/01/16 15:45
Visual Studioでデバッグするときに、混合モードでアセンブリレベルで実行できますけど、
ILレベルでステップ実行ってできないんでしょうか。
>>207
確かデバッグメニューのウィンドウメニューにあったと思ったけど。
ステップ実行中に ctrl+alt+D
さっき、たぶん一生使わないだろうと思ってたadd/removeアクセサ使ったんだけど、
こいつらって色分け表示されないんだね。get/setはされるのに。
>>209
まあ、VS.net 2003 で修正されるんじゃないの。
211デフォルトの名無しさん:03/01/19 17:26
自分で作ったスレッドから、Windows.Forms.Control系の
クラスを操作する時は、Invoke()やBeginInvoke()を使うのは分かったんですけど、
それ以外のクラスは普通にスレッド内から呼び出しても良いんですか?
TcpClientやStream系のクラスなんですけど。
>>211
問題なかろー。アクセスの競合には気をつけよう。
Graphicsでデスクトップに描画するにはどうしたらいいんですか?
Graphics.FromHdc(IntPtr.Zero)ではダメでした。
InterOpかな
>>213
某MLで同じ話題が出てたな。
そのときのソースのコピペ

IntPtr bDC = Win32Support.CreateCompatibleBitmap(gDC,
s.Width, s.Height);
Bitmap bmp = Bitmap.FromHbitmap(bDC);
Graphics gra = Graphics.FromImage(bmp);
IntPtr bmpDC = gra.GetHdc();
Win32Support.BitBlt(bmpDC,0,0,box.Width,box.Height,gDC,0,0,Win32Support.TernaryRasterOperations.SRCCOPY);
pictureBox1.Image = bmp;
215Not 213:03/01/20 23:33
>>214
gDC取得部分がない罠。ま、だいたいわかるけどね。
216213:03/01/21 05:51
Win32Supportって自前ですよね?
gDCに相当する部分を取得したいんです。
217213:03/01/21 17:58
結局pInvokeしました。
System.Windows.Forms.NativeMethods
とか使わせぇって思いました。
何ゆえネイティブメソッドを.NETライブラリでサポートせにゃならんのか
>>218
WindowsローカルなGUIをラップしただけのクラス群とかは言及しないのか?
>>219
SWTを馬鹿にしてんのか?
221WORA:03/01/21 22:29
>>220
ええ、してますが何か?
222213:03/01/22 05:44
>> GDI+
rOPくらいサポートして下さい。
描画部分はことごとくMC使ってますが何か?
>>222
本当、GDI+って使えない ヽ(`ー´)ノ

>>223
正しい
MCって?
>>225
Managed C++
227山崎渉:03/01/23 21:18
(^^)
保守age
>>前スレ153
(SortedList)formatter.Deserialize(stream);
の前に
stream.Position = 0;
としてみたらどうだろう?
ダメかな?
230229:03/01/26 11:22
随分昔の話で申し訳ない
おお、過去ログが全部見られるようになってるね。
232デフォルトの名無しさん:03/01/31 03:36
下がりすぎ。アゲテ寝てみる。スマソ
233デフォルトの名無しさん:03/01/31 06:13
変数に値を放り込んで戻してくるのは
void f(out doubble x)
{
 x=なんやら;
}
void main(){
f(out x);
}
ってするでしょ。

配列で同じことやるにはどうするの?
つまり、mainからarray[]を渡して、それに値が入って戻ってくる。


配列変数に値をセットしたいなら同じようにout使えば良いし、
配列の中味に値をセットするのなら別に何も気にせずそのまま渡せば良いし。
>>233
StreamのReadとかWriteでも普通にやってるじゃん。
なんでvoidなの?
俺はそういう時、配列を返却するが。
>>236
うむ。同意。呼び出し元でバッファを確保する必要はない。
なんでマイクロソフトは
.NET FrameworkをWindowsUpdateの
「重要な更新」の方に置かないの?
今のままじゃ普通の人は誰もダウンロードしないと思うんだけど。
>>238
既にこけてる技術です。
>>238
訴える会社があるから
>>238
そう、すべてはSunのせい。
今度のServerから.NETの名前がはずれたのもそう。
sunうざい。JavaなんてイラネーYO!
243238:03/02/01 22:01
それじゃあ.NET用に作ったソフトを気軽に使ってもらえる日が来るのはまだまだ先ってことですか?
でも次期Windowsには最初から搭載されているんですよね?
それともマイクロソフトの気が急に変わって、.NETなど無かったことにされるんですか?
>>238
将来性に関する議論は別スレでやってるよ
http://pc2.2ch.net/test/read.cgi/tech/1044037433/l50
StringクラスのTrimメソッドって文頭と文末のスペースしか削除しないんですか?
リファレンスには文中のスペースも削除するらしきことが書かれているんですが。
246フサギコ♯:03/02/02 05:30
|,,∧   
|Д゚彡 テストしてみるのはどうでしょう。
|⊂ミ
| ミ    
|''U

private void Check(string A, string B)
{
 if (!(A.Equals(B))) {
  MessageBox.Show(A + " と " + B + "は一致してません");
 }
}

private void button1_Click(object sender, System.EventArgs e)
{
 Check("ABC", " ABC ".Trim());
 Check("ABC", "ABC ".Trim());
 Check("ABC", " ABC".Trim());
 Check("A B C", " A B C ".Trim());
 Check("ABC", " A B C ".Trim());
}
247フサギコ♯:03/02/02 05:46
|,,∧  質問がありんす。  
|Д゚彡
|⊂ミ  
| ミ    
|''U
MenuにCtrl+↑
を割り当てたいのですが、どうすればいいでしょうか?
DropDownに出てこないし、
System.Windows.Forms.Shortcut.にも定義されていないみたいです。

また、その、ショートカットで
TextBoxを1行スクロールさせたいので
TextBoxに"Ctrl+↑"を押したように見せかけてやりたいですが
メッセージやキーイベントはどうやって送信するのでしょうか?

キーを送信せずとも、
単に1行スクロールさせるには
EM_LINESCROLLメッセージを送ると思うのですが
その送り方もよくわかりません。

教えてください。
TextBoxをスクロールためにメッセージ送るなら

[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
private const int EM_LINESCROLL=0x00B6;

しておいて

int hScrollCount=0; int vScrollCount=1;
SendMessage(textBox.Handle, EM_LINESCROLL, hScrollCount, vScrollCount);

するとか。そのまんまだけど。
もうちょい他に方法はないのだろうか・・・
>>247
矢印キーの捕捉には罠がありますぞ。
詳しくはここを見るべし。
http://www.syncfusion.com/faq/winforms/search/544.asp
こりゃ便利。

Fesersoft VS.NET XSLT v1.0 Schema
http://gotdotnet.com/userarea/keywordsrch.aspx?keyword=XSLT%20Schema
251フサギコ♯:03/02/03 22:17
レスありがとうございます。
そうやってメッセージを送信するのですね。

    ∧ ∧  矢印キーは、MLでも話題に
    ミ ゚Д゚彡  なってますたね。
  〜ミ,,,,uuミ

>private const int EM_LINESCROLL=0x00B6;
この定数の番号って、C#でもAPIは
しっかり知っとく必要がありそうですね。

私がやりたいことの、他の例ですと、
例えば[Delete]キーをショートカットに割り当ててしまうと
ショートカットメニューの機能が働いてしまって
TextBoxにキャレットがあったとしてもは
Deleteキーが送信されないので、その機能がなくなってしまうので
困ります。

ですので、対処としてmenuItemClickイベントで、
textBox1に対してDeleteキーを押したというメッセージを
通知したいという処理がしたいのです。
どうやるのでしょうか?
keyeventとか、都合のよさそうなメソッドがありそうかなと
考えているのですが、
メールの過去ログは検索してもみつかりませんでした。
>>251
ここのページは参考になるよ。
http://www.syncfusion.com/FAQ/WinForms/

んで、これね。(7.4参照)
http://www.syncfusion.com/FAQ/WinForms/FAQ_c46c.asp#q860q
と思ったら、MenuItemイベントがもう一度呼び出されてダメか。スマソ
あらま、ずばりそのものがあったわ。(27.8参照)
http://www.syncfusion.com/FAQ/WinForms/FAQ_c94c.asp#q808q
Shortcutがenumって無理があるよ。
カーソルやアルファベットを含む文字コード+Shift・Ctrlの押下状態込みにして欲しい。
256フサギコ♯:03/02/05 00:48
          _______________
   ∧.,,∧   /お返事、
  ミ.,,゚Д゚彡< ありがとうございます。
  ミ つ目(ミ . \
〜ミ,,O,,,,,,つ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

なかなかなれないので難しいです。
試してみます。

ショートカットキーはEnumなのに
組み合わせが意外に少ないような
気がしますね。
一般キーとNUMキーの区別したショートカットキーの
登録は出来ないのんすか。。。

257デフォルトの名無しさん:03/02/05 03:33
SHDocVwで表示しているhtml上の<INPUT>タグにデータを流し込んで
html上のボタンを自動で押すという事をしたいのですが

http://www.users.gr.jp/ml/archive/com/2896.asp
http://www.users.gr.jp/ml/archive/com/2899.asp
http://www.users.gr.jp/ml/archive/com/2904.asp
http://www.microsoft.com/japan/msdn/columns/webteam/webteam02052001.asp

上記を参考にC++>C♯化して、なんとかINPUTにデータ流し込んで
onclickでscript実行まで出来たのですが、サンプルソースが
見つからなかったsubmit(onsubmit)のイベントの発生が
うまくいきません・・・。
MSDNを見ても、IHTMLFormElement::submit() じゃなくfireevent
で出来るみたいなんですがどのElementやObjectを生成したり
使ったりすればいいのでしょうか?

よろしくお願いします。
>>257
Web の Form にデータを流し込んで submit するまでを自動化したいって事ですか?
なら、こんな感じで IHTMLFormElement.submit() で出来ませんか。

IHTMLElementCollection forms = Document.getElementsByName("Form");
IHTMLFormElement loginForm = (IHTMLFormElement)forms.item("Form", 0);
IHTMLInputElement inputUserName, inputPassword;
inputUserName = (IHTMLInputElement)loginForm.item("login", 0);
inputPassword = (IHTMLInputElement)loginForm.item("password", 0);

inputUserName.value = name;
inputPassword.value = password;
loginForm.submit();
259257:03/02/05 12:26
>>258
ご返事ありがとうございます。
今の所、IHTMLFormElement.submit()でsubmit出来ているのですが
MSDNのIHTMLFormElement::submit() の説明で fireeventの方が
良いのかと、勝手に自己解釈して変更してたんですが失敗続きなんです・・・

ElementやObjectの生成や使い方が間違っているんだと思ってるんですが、
自分に理解できる範囲の説明が見当たらなくて何が原因なのか・・・
260258:03/02/05 19:56
>>259
IHTMLFormElement::submit のヘルプに書いてあるように IHTMLDocument4::fireEvent
を使うと、どうやっても ArgumentException が出てしまう。。。なんでだろう...
とりあえず HTMLFormElementClass.fireEvent を使えば、期待通りに onsubmit
イベントが発生するみたいです。
261257:03/02/06 14:50
>>260
うーん。。。。>>258さんのサンプル風に書くと

object eventObj = ((IHTMLDocument4)Document).CreateEventObject(ref null);
((HTMLFormElementClass)loginForm).FireEvent( "onsubmit", eventObj);

でいいんでしょうか?
エラーは出なくなったんですがPOSTされてないのか画面が切り替わりませんでした・・・
もしかして根本的な間違いで、

submitボタンクリック
 ↓
イベント発生(firevent("onsubmit"))
 ↓
スクリプトでイベント乗っ取ってたらそっちを処理
 ↓
onsubmitイベントが残ってたらsubmit処理(IHTMLFormElement.submit())

てのがそもそも妄想なんでしょうか・・・・
262258:03/02/06 16:17
>>261
コードに関してはそんな雰囲気で OK。(厳密には、eventObject の srcElement
プロパティ等を設定しないと駄目だけど)
fireevent は onsubmit イベントハンドラの呼び出ししかしないので、fireevent の
返り値を見て ture なら submit 呼ばないと駄目ですよ。
263257:03/02/06 18:34
>>262
ガ━━Σ(゚Д゚;)━━ン!!!

マウスでボタン押したのと同じ事にはならないんですか。。。
onclickみたいにIEが面倒見てくれるのかと・・・

<INPUT onclick=hogehoge(value) type=submit value="btn1">
この場合、
fireevent("onclick")->fireevent("onsubmit")->返り値がtrueならsubmit()
(htmlソース見てイベントフックしてなかったら直にsubmit()でも可)
この流れになるわけですか?
264258:03/02/06 20:55
>>262 で嘘書いてしまった。srcElement は、FireEvent が設定
してくれますね。

>>263
fireevent はイベントハンドラを呼び出すだけだと思っていました。
form の submit ボタンの onclick を fireevent で呼び出しても、
submit されませんよね。
C#でタスクマネージャのアプリケーションタブにプログラムの名前が表示されず、
プロセスタブにプログラムの名前が表示されるようなプログラムを作る方法を教えてください。
ノートンアンチウイルスやボリュームコントロールみたいにタスクトレイにアイコンが表示される、
メインフォームの無いプログラムを作りたいんです。
ShowInTaskbarとかそんなん無かった?
ActiveXが載ってると表示がおかしくなるバグがあったはずだけど。
267265:03/02/06 23:32
>>266
できました、どうもありがとうございます。
268デフォルトの名無しさん:03/02/08 02:02
PropertyGridで表示されるプロパティの順番をアルファベット順とかじゃなくて
プロパティが宣言されてる順番で表示するようにするにはどうしたらいいですか
269257:03/02/08 02:13
>>264
html内のvbs[sub hogehoge_onclick]を見て理解しました。。。

>fireevent はイベントハンドラを呼び出すだけだと思っていました。
<INPUT onclick=hogehoge()>や hogehoge_onclickでイベント発生時に
実行されるように登録されてて、onclickで呼び出されてたわけですね・・・
だからsubmitは自動でされないと・・・

258さん、長々とお付き合い下さりありがとうございました。
大変参考になりました。それでは失礼します。
>>268
PropertySort.NoSort。ただし期待通りの結果になるかはよく知らん。
271 :03/02/09 19:03
メインフォームから別のメインフォームに切替えるのはどうすればいいですか?

海の向こうではVSLive!開催です。
>>271
別のメインフォームのインスタンス.Show() でいいんじゃないの?
おい。おまえらのなかで
Microsoft.Win32.RegistryKeyのGetValueで
REG_EXPAND_SZになっている値を展開せずに取得する方法
がわかる奴教えてください。おながいします。
マルチポストなのか?
っていうか、なぜ、展開せずに取得したいの? 生なことしたいんだったら生な呼び方
(=P/Invoke)したら?
>>275
そういう方法しかないってことなのかー。サンクス。
そういうことだとREG_EXPAND_SZは読みも書きも.NETでは無理っぽいな。
生で取りたいのは環境変数を書き換えるアプリを作りたいから。

も一個の方は一日たってもレスつきそうになかったから、こっちに投げたんだけど…
マルチのつもりはなかったんだけど、こゆのもダメなんだろか?
>>276
1日1回しか見に来てない人もいるしなぁ。
せめて一言、1日たってもレスが付かなかったのでって書いた方がいいかと。
.NET駄目じゃん
>>278
くだすれC#とこっちでレスが分散してるからなぁ。
最近、くだすれの方がレス多いし。

あと、C#初心者のためのメーリングリストなる代物が出来てな。
厨房過ぎて2chでは返事もらえないような連中がそっちに流れた。
281デフォルトの名無しさん:03/02/11 18:12
VBのCreateObject("クラス名")
の様に、文字列でクラス名を引き渡してインスタンス化したいんですが、
.NETヘルプで、言語別の比較表を見ると、C#には無いっぽいように見えます。
でも、いくらなんでも、それはないでしょう。
知ってる方いますか?
>>281
Assembly
Microsoft Preps Platform, Visual Studio Upgrades
http://wininformant.com/Articles/Index.cfm?ArticleID=37985
284デフォルトの名無しさん:03/02/11 23:15
>>282
ありがとう。アセンブリ周りは、理解するのを後回しにしてたんやけど・・。
とうとう理解しなくてはならなくなったのか。
相当考え方の入れ替えが要りそうやね。
別にAssembly.GetType(string)メソッドを使うだけなのでは?
286 :03/02/12 03:28
ListViewの背景に画像を表示したいのですが、プロパティ BackgroundImage
がありません。
Controlクラスをみると
public virtual Image BackgroundImage {get; set;}
なにやらオーバーライドするようなことが書いてあります。
具体的にどうやればいいのですか?

>>286
普通にオーバーライド出来ないの?
289286:03/02/12 13:24
public class Form1 : System.Windows.Forms.Form
{
 private System.Windows.Forms.ListView listView1;
}

えと、フォームにリストビューを貼り付けて、それからどうやって
オーバーライドするのでしょうか?
290名無しさん♯:03/02/12 13:29
ASP.NET Starter Kits Beta
http://asp.net/Default.aspx?tabindex=9&tabid=47

個人的には Community Starter Kit がよさげ。
291名無しさん♯:03/02/12 13:57
Starter Kit 1個ずつ落とすのめんどい・・・。
C#にevalってありますか?
>>290
(・∀・)イイ!!
>>292 それってMATLABのeval関数と同じ?
>>292
それってPHPのeval関数と同じ?
>>295
それってJavaScriptの(略
>>292
それってPerlの(略
>>292
それってC#の(略
299デフォルトの名無しさん:03/02/13 15:00
>>292
evalとはevalute(評価)する関数ですか?

MATLABのeval関数です
http://www.mathworks.com/access/helpdesk/jhelp/techdoc/ref/eval.shtml
なんかこのスレくだスレよりくだスレだな(藁
WindowFormsはUnixで使えますか?
evalといえばperlだろ
303どなたかご教授を・・・:03/02/13 23:07
NativeWindowクラスって使ってもマネージド?

将来.NET対応のWin以外のOSで動かないなんてないですよね・・・。
>>303
.NETの一部をJavaで実装すればWin以外で対応させることできませんかね...?
305デフォルトの名無しさん:03/02/13 23:30
C#でJavaのRMIに相当するものはありますか?
>>305
.NET Remotingかな。
>>306
レジストリとかネーミングサービスとか欲しいよね。
>>307
あるが。
>>309
いいね。仕事で.NET使うならこういうアプリを作ってみたいね。
でもVB.NET製
312名無しさん♯:03/02/14 06:50
むー。気になりまつね。

ttp://dotnetweblogs.com/Cweyer/archive/02122003.aspx#2307

> I am currently sitting here in the Conference Center on the Microsoft
> Campus in Redmond and surfing through a wireless connection.
> On Monday we had a sneek preview of the next version of ASP.NET
> - let's call it V2. Of course I am under NDA and I won't hurt it.
> But all I can say so far: forget about V1. Forget about any other
> web platforms you have heard of or even worked with.
> The maxime is simple but straight: Productivity and power while
> remaining able to extend nearly everything. This rocks!
313名無しさん♯:03/02/14 06:56
>>311
COM InteropがあるからVB.NETの方が適してるかな、と思ってみたり。
314どなたかご教授を・・・:03/02/14 07:41
NativeWindowクラスって使ってもマネージド?

将来.NET対応のWin以外のOSで動かないなんてないですよね・・・。
将来も何も、現時点でMSはWin以外に提供する気はさらさらないようだが
FreeBSDに提供する計画はどうなるんだろう?
>>314
Managed だがポータビリティは無いだろう。Win32 の Message にべたべたに
依存するから。

様々なプロットフォームに .NET Framework が移植され、ポータブルな GUI
ツールキットが追加されることは当面ありえないと思うので、あんまり考えても
しょうがない。

もしそういうアプリを作成する必要に迫らせているなら、今の時点では Java で
SWT を使うことなどを検討したほうが建設的だと思う。
318デフォルトの名無しさん:03/02/14 12:54
べつにWINDOWS以外のOSで動かなくてもいいと思うのは私だけですか?
オレ的にはLinux(+Apache)でASP.NETさえ動いてくれればほぼ完璧。
>>309 左側の円グラフ表示されている枠は他のOSではどう実装できるんだろう?
C#とJ#とVB.NETの違いって何?
>>318
ある意味、正しい。特にクライアントサイド。

でも J2EE と比べて ASP.NET, COM+ は開発コミュニティの層が薄いのがさみしい。
Jakarta Project みたいのがどんどん発生するためには今の Windows だけで閉じて
いたんじゃダメぽ。向こう (Java) で開発してると、ソレっぽいコンポーネントが
大抵どっかには転がってるっつー羨ましい状態。
>>322
M$もOpenSourceに対して譲歩しないことには.NETがJ2EEに勝つのはつらいと思われ
324デフォルトの名無しさん:03/02/14 13:53
>>318
金融関係やミッションクリティカルがWindowsでしか動かないのは、大抵の場合危険すぎだと思いますが
どうですか?
家畜はM$には従わないよなぁ。
>>325
M$に従ってるからM$にとって家畜というからなあ。
327デフォルトの名無しさん:03/02/14 14:39
>>324
いいじゃないか。日本の金融なんて元々崩壊しているし。
だから差分じゃねえよ!!
>>327
爆笑。

けどさすがにC#をWindowsServerに載せてそれを宇宙船に搭載するには
まだまだだに〜。

日本が崩壊して次は中国の出番ですか。
>>329
コロンビアの事故はWindows 2000にSPを当てていなかったのが原因ですが、なにか?
>>330
そんな理由でコロンビアが爆発したと決まったわけじゃねーだろヴォケ
死滅系のスレでやってくれよ。
Javaのレイアウトマネージャに相当するものってありますか?
それとも座標指定でGUI部品置いていかないとだめ?
>>333
DockプロパティでBorderLayoutみたいなことはできる。
>>333
どうしても必要と言うことなら、
Providing Custom Layout Engines for Windows Forms
http://www.gotdotnet.com/team/windowsforms/customlayoutengines.aspx
336フサギコ♯:03/02/15 00:28
  ∧,,∧  レイアウトマネジャって
 ミ,,゚Д゚彡  どんな場面で"使える"の??
 ミつ日(ミ
>>336
ウィンドウのリサイズに合わせてコンポの位置・サイズを調整したいとき。
あとは環境非依存のレイアウトを設定したいときかな。
例えば、位置固定で配置してみたら、WindowsのクラシックUIとLunaで見た目が変わる場合とか。
どこまでもWindowのサイズを小さく出来てしまうプログラムって以外と
多いね。まあそれが問題にならなければいいのだけれど、
1) あるところまでWindowサイズを縮めようとするとガクガクいってる
プログラム(多分WM_SIZEで処理しちゃってるんだろうな...)
2) Windowサイズを極限まで縮められるのだが、そのまま終了して次回
起動すると困ったことになるプログラム
などをたまに見かける。
340デフォルトの名無しさん:03/02/15 02:34
C#でEJBのSessionBeanやEntityBeanに相当するものは作ることはできるのでしょうか
Managed C++のスレってあったっけ?
配列の扱いがよくわからん・・・
342333:03/02/15 11:42
レイアウトマネージャについて質問したものですが。
とりあえず、Anchor と Dock でウィンドウのリサイズに強い
コンポーネント配置ができそうなので、それで解決しようと思います。
どうしても駄目なら >>335 勉強してみます。
>>322
.NETの普及にもオープンソースが必要不可欠になりそうな予感
344341:03/02/15 13:16
発見しました・・・スレ汚しスマソ
345age:03/02/15 19:31
発見したのでage。
346age:03/02/15 19:31
といいつつ、あげそこねた。だめぽ。
C#挫折したのでC++を勉強します
348フサギコ♯:03/02/15 21:48
  ∧,,∧
 ミ,,゚Д゚彡
 ミつ日(ミ
WebForm1.aspxのある、
フォルダ名を取得したいときは
どのようにしたらよいでしょうか?
C:\Interpub\wwwroot\xxx
とか、そんな感じの文字列を取得したいです。

よろしくお願いします。
349名無しさん♯:03/02/15 22:08
>>348
Pageクラス内で取るならこんな感じで。

  string path = Server.MapPath(Request.Path);
  string dir = Path.GetDirectoryName(path);
350名無しさん♯:03/02/15 22:12
ちょっと紛らわしいので補足。

 Server → this.Server
 Path → System.IO.Path
コンソールアプリでClipboardクラスは使えないんですか?
なぜかnamespaceがSystem.Windows.Formsで
usingすると怒られるんですが。
>>351
参照を追加
exe右クリック->バージョン情報で表示されるバージョン情報の設定ってどこでやるの?
>>353
[assembly: System.Reflection.AssemblyVersion("1.0.0.0")]
などをソースに入れておく。
VS.NETならAssemblyInfo.csで設定。
C#死滅スレが "終了" で荒らされたのでココ借りよ
C#のライブラリが鞍替えして
一からライブラリ全部覚えなおさないといけない可能性はありますか?
>>354
これって今までの、リソースによる指定と被らないのかね?
>>355-356 は放置プレイでお願いします。
VS.NETでビルドする時に一緒に(ビルドの最後に)
何かプログラムも実行できるようにすることは可能ですか?
具体的にはgacutilやngenなどしたくて、今はビルド終わった後
それらバッチファイルにしたものを実行しているのですが。
カスタムビルド?
>>359
2003から可能。
>>360-361
ありがとう。
カスタムビルドで調べたら
Visual C# プロジェクトではカスタム ビルド ステップはサポートされていません。
とあってC++用を使えば可能みたいですが、入れてないので
>>361 の2003まで待つことにします。
あげようや。
C#のライブラリが鞍替えして
一からライブラリ全部覚えなおさないといけない可能性はありますか?
ライブラリと言語の区別がついていればC#に関係なく可能性がどうか分かるはずです。
貧乏C# std使いなんだけど旧バージョンのVSSかCVS組み込める
プラグインみたいなものってないのかな。
>>367
C# stdで使えるかどうかは知らないけど。

ttp://www.jalindi.com/igloo/
369デフォルトの名無しさん:03/02/17 01:54
>>292-299 ワロタ
結局eval関数あるんですか
>>369
eval関数のような簡便なのはないが、
メモリ上でコード生成してコンパイルもできるよ。

C#では複素数型は扱えますか?
Visual C#でTCPで接続するところまでは出来たんですが
C++のようなSendの代わりになる関数って無いんでしょうか?
>>373
Socket使ってるなら当然あると思うけれど。・・・じゃないや。

確か入出力共にstreamになってるんじゃなかったっけ?

適当なreaderとかwriterに渡してrecv/sendしる。
375デフォルトの名無しさん:03/02/17 21:59
誰かサブスレッド使ってブロッキングしないような
標準入出力のパイプをサポートしたProcessEx作って。
376デフォルトの名無しさん:03/02/17 22:02
明日までにお願い。
C# (.NET Framework) で,2ch のトリップを生成できるような
クラスはありますか ?
くだスレ逝け
>>377
くだすれの839参照。
>>372
Doubleが長桁計算になった複素数型はありますか?
(1000桁くらい計算できるもの)
>>380
おめえずっとうぜえよ。
>>380 対決するんならよそでやってね。
>>381
ハァ?
384373:03/02/17 23:17
>>374 レス感謝です。
NetworkStream型に初期化するために以下のソースを書いたのですが
最初の引数に何をいれればいいのかがわかりません。

NetworkStream sndstr = new NetworkStream( , FileAccess.ReadWrite );

Net.Sockets.Socket型の引数が必要みたいなので、その型で初期化し、
接続されていないといけないようなので、Socket.Connectで接続しようとしたら、
Connect関数の引数を何にすればいいのかわかりません。

EndPoint型で初期化したクラスやnullを使ったのですがsndstrの値がnullになるため、
エラーが発生します。

どこをどう直せばいいでしょうか?それともまるっきり考え方が間違ってるでしょうか?
>>364
ある。
386373:03/02/17 23:44
>>384
一応自己解決です。
全然誤解してみたいで恥ずかしいです。

>>382
それは>>381にいってください。
388フサギコ♯:03/02/18 00:03
    ∧,,∧     名無しさん♯さん
   ミ,,゚Д゚彡    ありがとうございます。
    ミ つ旦)~~
  〜と,,,~),,~)     遅レスごめんなさい
]]]]]]]]]]]]]]]]]]]]]]]]]]]]

大変、望みどおりの答えでございました。

C#MLの方を検索して、"MapPath"って単語は
見つからなかったですが、ASP.NETMLでヒットしました。

勉強させていただきました。
389デフォルトの名無しさん:03/02/18 01:26
おお。USERS GROUPの過去ログ更新されとる。
VB.NET MLの過去ログが封印されてる。(w
>>おお。USERS GROUPの過去ログ更新されとる。
ぷぷぷ。バカハケーン↓っつうか洒落にならんだろ。ログに永久保存かよ!!
http://www.users.gr.jp/ml/archive/cs/950.asp
>>391
んなことこのスレで語るなヴォケ
他スレでやれ
393デフォルトの名無しさん:03/02/18 19:54
VS.NETで作成したインストーラーで自作のプログラムをインストールしても、
なぜかコントロールパネルの「プログラムの追加と削除」で
自分のアイコンではなく、黄色いフォルダのアイコンが表示されるんです。
アプリケーションフォルダにアイコンを配置してあるし、
ちゃんとAddRemoveProgramsIconに自分のアイコンを設定しました。
でもうまく表示されません。
プログラムメニューに置いたショートカットは正しく自分のアイコンが表示されます。
これって何が悪いんでしょうか?
394373:03/02/18 23:33
サーバにTCPでクライアント接続し、文字列の送受信が出来るようになったのですが、
文字列を受信したときに「送信」ボタンを押さないと受信した文字列が
表示されません。
ソースのどの部分にそういった処理を書けばいいのですか?
受信スレッドをクルクル回すぅ
396373:03/02/19 00:24
>>395
レス感謝です。
ということはマルチスレッド処理しないといけないんですよね
実はまだマルチスレッド処理の仕方がわかってない(´・ω・`)
勉強します。
WinSockみたいにメッセージ駆動の非同期型のソケットないの?
マルチスレッドが面倒なら、タイマーで一定時間置きに
受信メッセージをチェックするだけでもできるぅ
>>397
そういうのって Socket そのものじゃなくて、
TcpListener とかそういうのを使うんじゃないかと。
400デフォルトの名無しさん:03/02/19 19:11
VS.NET の Debugger で、特定の Class (例えば ArrayList) は、値のカラムに
プロパティの値 (ArrayList の場合は Count) が表示されます。
自分で作った Class は、この部分に Class 名が表示されるのですが、
ArrayList の様にプロパティの値が表示されるようにする方法はあるのでしょうか?

CLR のソースを入手して ArrayList のソースを見てみましたが、それらしい
記述がありませんでした。 (´・ω・`) ショボーン
401373:03/02/19 19:21
メッセージを受信したときようにマルチスレッドを作成し、for(;true;)で囲い
永久ループさせてブレークポイントを付けたところ動いてる用なのですが、
メッセージを受信してもフォームに表示されません。
スレッド部分のソースは以下に貼ります。

nwthrdはこの関数を含んでいるクラスの名前、ntstrはNetworkStream宣言した変数(?)、
sockCliはTCPの接続情報(TcpClient宣言)が含まれてます。
スレッドが呼び出される時はフォームの作成時にスレッドの作成、即中断。
その後は接続ボタンを押すと再開、切断ボタンを押すと中断です。

public static void zyusin()
{
nwthrd fm1 = new nwthrd();
for(;true;)
{
try
{
byte [] rcv = new byte [fm1.sockCli.ReceiveBufferSize];
fm1.ntstr.Read( rcv, 0, fm1.sockCli.ReceiveBufferSize );

fm1.label1.Text = Encoding.Default.GetString( rcv );

}
catch {}
}
}
>>401
Text プロパティの値を設定した後で、Refresh() を呼ぶべし。
また、WindowsForms コンポーネントは Thread Safe ではないので
BeginInvoke か Invoke を使うべし。
Thread を使わなければ、*Invoke はいらないよ。
>>400
確信は無いけど、次を試してちょ。
<DefaultProperty("Hoge")> _ ←これ。
Public Class Hage
Public Property Hoge() As ...
404403:03/02/19 20:05
ここはC#相談室だったっけ。
C#の場合は、
[DefaultProperty("Hoge")]
public class Hage
{
...
405373:03/02/19 20:17
>>402
レスありがとうございます。
Refresh()をやってみましたがダメでした。

さっき書き忘れましたがフォームのクラスの方で
private System.Windows.Forms.Label label1;
をprivateからpublicにしてましたがいろいろ問題がありそうなので
クラス内にsettext関数を作りスレッドからその関数を呼び出すように変更しました。

また、無限ループ内にThread.Sleep(1)を加えて、
if( fm1.ntstr.CanRead )という条件を加えました。

いろいろ調べてみたらfm1.ntstr.CanReadこの値が常にnullを取る。
接続したあとメッセージを受信し、フォームのクラスの方で受信メッセージを
表示させようとするとちゃんと表示される事から、メッセージがスレッドの方へ
流れていない事がわかりました。
どうすればリアルタイムで受信メッセージを表示出来ますか?
406400:03/02/19 20:43
>>403
レス Thanks です。
DefaultProperty は、コンポーネントを Form に放り込んだときに
最初に選択されるプロパティの指定のようで、Debugger の表示には
反映されませんでした。
自分で何か Attribute Class を作る必要があるのかなぁ。
>>405
Control.BeginInvokeは?
408403:03/02/19 21:14
お手数かけて、すまんぽ。出直して来ます。
>>400
IList を実装しているクラスだとデバッガが Count を
表示する仕掛けになってるんじゃない?
ToString() は override されてないし。
410400:03/02/19 23:54
>>409
IList を実装していても Count プロパティが存在する保証は無いので、
その可能性は無いと思います。他の例だと system.windows.forms で
TextBox は Text が、TrackBar は Value が表示されるんですよね。

試しに TextBox を継承して TextBoxEx を作ってみると、Value が表
示されずに、クラス名が表示されますね。そうするとデバッガがクラス
に応じて、値を表示しているだけなんですかねぇ。うむむ。。。
>>410
ごめん ICollection と間違えた。

でも、
> TextBox は Text が、TrackBar は Value が表示されるんですよね。
から考えると、DefaultPropertyAttribute かなという気がしなくもない。
TextBoxEx にこのプロパティ付けてテストしてみてくだされ。
412400:03/02/20 00:54
>>411
残念ながら DefaultProperty では無いのです。>>403 を見てくだされ。
蛇足だが DefaultProperty は Component 用で、しかも派生クラスで
変更しなければ、そのまま有効なのじゃ。

その後判った事としては、一度に複数のプロパティの値が表示される
構造体を発見。System.Drawing.Rectangle は X, Y, Width, Height が
表示されて、しかも Debugger の 16/10 進数表示の指定に従ってい
ます。

やはり Debugger の中でハードコードされているのだろうか・・・
413名無しさん♯:03/02/20 01:56
>>412
そのへんの挙動は TypeConverter あたりが怪しそうね。
414409:03/02/20 03:02
>>413
それだ!
415名無しさん♯:03/02/20 07:08
むー。謎が多いですなあ。

・DefaultProperty説 → RectangleとかSizeみたいに複数のプロパティが表示されるのもある。

・ToString説 → TextBoxのサブクラスを作っても {Text="〜"} では表示されない。
ToString()をオーバーライドしてもダメ。

・TypeConverter説 → TextBoxのはComponentConverterなので、
特別なものを使ってるわけではない。(間違いスマソ。)

となると、やっぱりデバッガ側でリストかなんか持ってるのかな?

ちなみにDbgCLR.exeでも同じ結果だった。
C:\Program Files\Microsoft Visual Studio .NET\Common7\Packages\Debugger\mcee_cs.dat

多分これがデバッガ上で表示されるフォーマット定義だと思う・・・実際に試してはいないけど。
417409:03/02/20 10:06
>>416
それ当たり。気付かんかった。降参。
>>416
Bingo!! 当たりです。ありがとうございます。
色々とアドバイスを頂いた皆様、お付き合いありがとうございました。

試しに System.Drawing.Color の表示が判り辛いので、

<System.Drawing.Color>=R=<R> G=<G> B=<B> A=<A>

と定義を変更したところ、きちんと反映されました。(゚∀゚)
これで debug が少し楽になります。
>>418
蛇足ですが、表示できるのは property だけではなく、変数も可能でしたね。
最初からコレに気づいていれば、もう少し早く絞れたかも。
420416:03/02/20 16:26
ちなみにこれはMSDN Libraryで「C# 独自 データ デバッガ ウォッチ」みたいな
ので検索したら出てきました。C++でも同じようにできるみたいですね。

#MSDN Library情報多いのはいいけど検索キーワードに悩む・・・。
421名無しさん♯:03/02/20 17:13
>>416
お見事。(゚∀゚)

mcee_mc.datの方は残骸なのかな?
WinFormsとかURTとか古い用語が残ってる。(藁
423422:03/02/21 06:55
> Practice What We Preach.

(・∀・)イイ!
>>421
>mcee_mc.datの方

そっちはC++のマネージコードのデバッグで使うらしいです。
425名無しさん♯:03/02/22 09:47
eXtensible C#
http://www.resolvecorp.com/products.htm

>>424
J#用もあるみたいね。
426373:03/02/22 12:10
解決しました。
スレッド用に新しくクラスを作るのをやめて
Form1クラス内にスレッド用の関数をおく形になりました。
わかりにくいソースでよかったら、希望があれば公開したいと思います。

いままでレス付けてくれた方に感謝します。
427Win9xは嫌い:03/02/22 16:57
C#で、Winアプリケーションを組んでいます。
WindowsXPやWindows2000で使用している分には問題ないのですが、
WindowsME/98でアプリケーションを動かしてみると、少々問題があります。

と言いますのは、
親メインフォームから、独立した子フォームをどんどん開くと、
突然、ブルースクリーンになって、OSごとお亡くなりになってしまう、
という現象がおきています。
一枚づつこまめに消していけば(表示上子フォームが一枚だけの状態にしておけば)、
まず落ちることはありません。

リソースメータで確認したところ、
子フォームを開くたびに、どんどんシステムリソース/ユーザーリソースを消費してしまっているようです。

そこで、皆様にご質問なのですが、
Windowsフォームを作成する場合に、
システムリソースをなるべく消費しないようにするようなコツはありますでしょうか?
また、このような現象に出会った、と言う方はいらっしゃいますでしょうか?

よろしくお願いします。
428Win9xは嫌い:03/02/22 16:59
>>427
ちょっと情報が足りなくて怒られそうなので、補足を。
Win98にインストールしてある
.NET Frameworkはversion1.0で、SP2を当ててあります。
Office 11に
Install Iris (requires Outlook,.net framework)
というのがありまして
Microsoft Codenamed: Iris, or more formally named
'Microsoft Office Outlook 2003 with Business Contact Manager'
(powered on the .Net framework and SQL database technologies) ......
だそうです。
(WinBeta.Orgより)
430373:03/02/22 20:09
Tcp接続でのサーバー機能を付けたいのですがTcpListenerを使わずに
Socketクラスで行う方法はありますか?
>>430
Socket.Listen()、Socket.*Accept()

373 さんは、少し Winsock の勉強をしたほうが良いぞ。
432デフォルトの名無しさん:03/02/23 02:13
Console.ReadLine()がブロックするかどうかを事前に調べることはできますか?
434ぷく:03/02/23 11:32
いろいろ自分でさがしてみたのです(検索や子犬のワルツ、vectorなど)が見当たらなかったので
しっていたらお聞きしたいのですが、
2つツールについてききたいのですが、
1.複数のコマンドをひとつのボタンを押すだけでいくつかのコマンド実行できるツールはありませんか?
たとえばボードの<a>をおすと<enterキー、enterキー、スペース>のボタンが一気にコマンドされるよな
ものをさがしているのですが。
もうひとつは・・
2.HPに大量アクセスすることができるツールをさがしています。(できればブラウザを表示しなくてもすむものを(^^))
[2]に関してはひとつみつけたのですが使い勝手がわるかったもんですから。
ドラッグしたファイル名を取得するプログラムを作ったんだけど
VS.NET上で動かすと正常に動作するんですけど、
EXE単体だとショートファイルネームになってしまうんです

これって既知の仕様なんでしょうか?

以下、ソースです

private void textBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
// ファイルのドラッグのみ許可
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
// 複数ファイルに対応
foreach ( string f in (string[])e.Data.GetData(DataFormats.FileDrop) ) {
// フルパスからファイル名を取得し、テキストボックスに出力
FileInfo fi = new FileInfo( f );

if ( textBox1.Text.Length == 0 ) {
textBox1.Text = fi.Name;
}
else {
textBox1.Text += "\r\n" + fi.Name;
}
}
}
}
>>435
ええ、コマンドライン引数なのでスペースとか入るとまずいんでしょう。
>436
お返事ありがとうございます
DragAndDropなので、コマンドライン引数じゃないんです
とりあえずVS.NET上から使えば問題ないんですが、
釈然としないものがあるので
>>435
試してみたけどショートファイルネームにはならなかったよ。
時々、Form.Close()や、閉じるボタン[X]でフォームを閉じようとしても、
Closingイベントが呼ばれないときがあります。
しょうがないので、Application.Exit()で閉じてますが、
Closing時に必要な処理がしたいので、困ってます。

特にタブコントロールを置くと、発生しやすい気がします。
何が悪いんでしょうか。
>>439
こんなところに同士が!!(; ;)

>時々、Form.Close()や、閉じるボタン[X]でフォームを閉じようとしても、
>Closingイベントが呼ばれないときがあります。

Xで閉じれなくなることあります。イベントが発火しないんですよ、ほんと。
しかも漏れのコードでは確実に再現します。タブを追加して削除してやるとそうなるんですよ。

で、そのままじゃどっかの質問スレにも挙げられないしで、
最小構成の再現できるコードを作ろうとしてシンプルに作ると特に問題が発生しない。
いろいろ試したけど何が引き金になってるのかわからない。

> 特にタブコントロールを置くと、発生しやすい気がします。
同じくタブコントロールでなってます。

フォーム
+メニュー
+タブコントロール
  +タブページ ←タブページ以下複数
   +パネル
    +テキストボックス
+リストビュー

みたいな構成で、複雑だからかなと上の構成で新たに作ってみても
再現しないんです、これが。再現できる単純明快なコードを起こせれば原因に
迫れると思うんだけど。
他に同士はいませんか、あげ。
>>441-441
俺も同士だ。結局解決しなくてもうほったらかしだな。
もうC#触ってないし。
444439:03/02/25 10:45
>>442
情報サンクスです。
>>440
タブページを削除すると起こるバグみたいですね。
しょうがないので、直接WndProcからWM_CLOSEを拾って処理するようにしました。

private enum Wm
{
  Close = 0x0010,
}
protected override void WndProc(ref Message m)
{
  switch (m.Msg)
  {
  case (int)Wm.Close:
    CancelEventArgs args = new CancelEventArgs();
    OnClosing(args);
    if (!args.Cancel) {
      OnClosed(new EventArgs());
      Application.Exit();
    }
    break;
  default:
    base.WndProc(ref m);
    break;
  }
}
何とか動作します…。
Formの内部的にはこれでいいのか解りませんけど、とりあえず。。
445デフォルトの名無しさん:03/02/25 14:13
class foo {
 void bar()
 {
  // この場所でインスタンスの名前である f を入手する方法って?
  // リフレクションでどうにかなりますか?
 }
}
.......
 foo f = new foo();
447445:03/02/25 14:27
>>446
...無理、ってこと?
fってインスタンスの名前じゃなくて、
インスタンスへの参照の名前なんじゃないの?
449445:03/02/25 14:47
>>448
インスタンスへの参照名でもいいんだけど。
450445:03/02/25 15:04
無理みたいですね。
しょうがない。
>>450
CodeProviderでは無理?
452デフォルトの名無しさん:03/02/25 16:20
フリーの画像減色ライブラリもしくはコードってないですか?
453440:03/02/25 23:27
>>442, 444
うむむむという感じだが、情報&回避策ありがとう!!
うーむ、開発環境作ってたんだけど、TabControl行けてないな、こりゃ。
(・∀・)チンポ!!
455デフォルトの名無しさん:03/03/02 15:09
cgiなどで使われている、
同時書き込みによるファイルの破損を避けるための、
ファイルのロックはC#でどのようにすれば良いんでしょうか?
ASP.NETでページのログやカウント数などをファイルに記録したいんです。
普通DBを使わんか?
>>455
WindowsだとOS自体がファイルをロックするから
別にロックしなくてもいい
同時に書き込もうとしたら例外が発生するから
それを捕捉してSleepしてから再度試す
458名無し@沢村:03/03/02 17:01
>>455
Mutexで排他制御
>>458
そのMutexの管理外の奴がファイルアクセスする可能性もあるわけだが。
460山田 ◆KOAKBPMeOo :03/03/02 17:27
以下のソースでボタンを押すとフォームのタイトルバーが
点滅するんですが、(pubAPI.cs)のnamespaceをtest->pubtestに変更して
(Form1.cs)のnamespaceの前に
using pubtest;
を追加して実行すると
「内部コンパイラ エラー : ステージ 'BEGIN'」と怒られます。
どこが間違っているのでしょうか?
461山田 ◆KOAKBPMeOo :03/03/02 17:28
(Form1.cs)
namespace test{
....中略....
private void btnFlash_Click(object sender, System.EventArgs e)
{
//ウインドウフラッシュTEST
pubAPI pA = new pubAPI();
pA.Flash(this);
}
}
462山田 ◆KOAKBPMeOo :03/03/02 17:30
(pubAPI.cs)
using System;
//Windows APIを利用するための宣言
using System.Runtime.InteropServices;
namespace test
{
public class pubAPI
{
//フラッシュ情報を定義する構造体
public struct FLASHWINFO
{
public int cbSize;
public IntPtr hWnd;
public int dwFlags;
public int uCount;
public int dwTimeout;
}
//フラッシュ状態を示す定数
private const int FLASHW_CAPTION=0x01;
private const int FLASHW_TRAY=0x02;
private const int FLASHW_ALL=(FLASHW_CAPTION | FLASHW_TRAY);
//ウインドウをフラッシュさせるAPI
[DllImport("User32.dll")]
private static extern int FlashWindowEx(ref FLASHWINFO pfwi);
463山田 ◆KOAKBPMeOo :03/03/02 17:30
//ウインドウをフラッシュさせる関数
public void Flash(System.Windows.Forms.Form frm)
{
FLASHWINFO flashWInfo = new FLASHWINFO();

// フラッシュ情報を設定
flashWInfo.cbSize = Marshal.SizeOf(flashWInfo);
flashWInfo.hWnd = frm.Handle;
flashWInfo.dwFlags = FLASHW_ALL;
flashWInfo.uCount = 4;
flashWInfo.dwTimeout = 0;
// フォームのキャプションとタスクバーボタンを4回フラッシュ
FlashWindowEx(ref flashWInfo);
}
}
}
>>460
間違ってないと思う
トリッキーな変更だとVS.NETが差分を検地し切れなくて
内部コンパイラエラーになることがたまにある
(たとえばあるメソッドをvirtualにしたりとか)
そういうときはVS.NETを終了して
プロジェクトのbinとobjフォルダを削除してから
再度VS.NETを起動してビルド・ランしてみそ

VS.NET 2003で直ってるといいな〜
465名無し@沢村:03/03/02 17:44
>>459
じゃあMutexでの排他制御とファイルアクセス失敗の判定を併用すればよかろう。
while (...)
{
Sleep(...);
}
このような構文ではSleep時間が短いと無駄にCPUパワーを消費することがあるのでお勧めできん。
特にサーバーサイドでは。
466山田 ◆nMxnSesuAs :03/03/02 17:58
>>464
>プロジェクトのbinとobjフォルダを削除してから
>再度VS.NETを起動してビルド・ランしてみそ
ご回答有難うございます。その通りにフォルダを削除してリビルド
(もちろん2つのCSソースのnamespaceは変更してForm.csにusing
追加しました)すると動きました!よかったよかった!
せっかく別ファイルにソース書いてるのに同一のnamespaceにしないと
動かんのはワケワカランって昨日から12時間以上悩んでいました。

本当に有難うございました。
//ウインドウをフラッシュさせる関数
public void Flash(System.Windows.Forms.Form frm)
{
FLASHWINFO flashWInfo = new FLASHWINFO();

// フラッシュ情報を設定
flashWInfo.cbSize = Marshal.SizeOf(flashWInfo);
flashWInfo.hWnd = frm.Handle;
flashWInfo.dwFlags = FLASHW_ALL;
flashWInfo.uCount = 4;
flashWInfo.dwTimeout = 0;
// フォームのキャプションとタスクバーボタンを4回フラッシュ
FlashWindowEx(ref flashWInfo);
}
}
}
>>466
ついでにもう1つ

バッチビルドした直後にVS.NET終了すると
アクセス違反でbinフォルダが削除できないはず
そういうときはVS.NETでそのプロジェクトを開いて
実行して終了すると削除できるようになる

VS.NETにはこの手の妙なバグが結構ある
でもVS.NETユーザーに2003が無償配布されるらしいから
もうちょっと待つのが吉かな
469デフォルトの名無しさん:03/03/04 02:43
指定したGUIDを持つデバイスへのHandleを返すメソッド
ありますか?
Web Services Enhancements (WSE) 1.0 SP1 for Microsoft .NET
http://www.microsoft.com/downloads/details.aspx?FamilyID=06255a94-2635-4d29-a90c-28b282993a41&DisplayLang=en

WSE Settings Tool for Visual Studio .NET
http://www.microsoft.com/downloads/details.aspx?FamilyID=e1924d29-e82d-4d9a-a945-3f074ce63c8b&DisplayLang=en

しかし、System.MessageBus見た日にはなかなかやる気も起きない。(藁
471デフォルトの名無しさん:03/03/09 11:46
[Q1]
何故.NETフレームワークのクラスメソッドは、大部分がabstract宣言されていないのですか?
オブジェクト指向を謳っているのに、継承による拡張ができないなんてあんまりです。
>>471
最近の風潮は不用意に継承を行うべきではないと言うことになっています。
って言うかvirtualでは?
>>472
まずいのは実装の継承では?
インターフェイスの継承もダメなん?
>>471
んん?
普通に継承できない?
>>471
override

[Q2]もあるの?
476デフォルトの名無しさん:03/03/09 13:01
RichTextBoxのLoadFileメソッドです。
オーバーライドの指定をしてもだめでした。
テンプレートは?
>>476
new
C#って死滅しちゃうの? Part10
http://pc2.2ch.net/test/read.cgi/tech/1046548464/807

807 デフォルトの名無しさん <sage> 03/03/09 11:47
>>796
こちらにコピペしときました。移動してください。
http://pc2.2ch.net/test/read.cgi/tech/1039646808/471
480デフォルトの名無しさん:03/03/09 14:19
System.IO.File.Copy はあるのに、
System.IO.Directory.Copy はなんでないんでつか。
ディレクトリをコピーしたいとき、どうすればいいんですか。
>>480
同名のディレクトリを作れば良いだけでは?

482死滅796:03/03/09 14:34
どうして足りないメソッドを1つ2つ追加して拡張したいだけなのに、
委譲とかしなきゃいけないんですか?
委譲だとメソッドが二度呼ばれて遅くなるし、
そもそもRichTextBoxの全メソッドを委譲するコードなんて
面倒臭くて書けません。
LoadFileを呼んだときに、ちょっと
>>482
そのしょうもない拡張のために本当に独自のサブクラスを作るべきなのか?
委譲してサポートメソッドとした方が便利ではないだろうか?
484死滅スレ796:03/03/09 14:49
(すみません。途中で書き込んでしまいました。)
やりたいことは、タブページのタイトルに設定するファイル名,変更済みマーク(*)を、
LoadFileメソッド内で自動的に適切な値に設定してやりたいだけなんです。
そして、その定型的なコードを今後、毎回書かなくていいように、
オブジェクト指向的に再利用したいんです。
UML的にはこんな感じです。
EditorTabPage 1<>----1 MyRichTextEdit
タブページを作ると、MyRichTextEditも作られて配置されます。
そのあとのLoadFileで、タブのタイトルも設定したいのです。
主な使いかたとしては、TabPageのメソッドはほとんど呼びません。
だから、RichTextBoxのLoadFileメソッドを再定義できれば、
何も考えずにRichTextBoxと同じく使えるようになると思ったのです。
EditorTabPage.EditBox.LoadFile("hoge.txt");
と書けるようにクラスを作るのは、やっぱり無理なのでしょうか?
>>484
よくわからんがそれだとRichTextBoxがTabPage操作することになるんだろ?
オーバーライドしたところで汎用性のあるクラスになるとは思えんがな。
つうか EditorTabPage.EditBox.←がダメすぎ。
487死滅スレ796:03/03/09 15:21
じゃあどうしたほうがいいんでしょうか。
TabPageにLoadFileメソッドを書いてやったほうが
いいんでしょうか?
でもそれだとRichEditBoxのメソッドを使いたいときは、
インスタンスを直接操作させるか、そうしないなら、
委譲のために全てのメソッドをTabPageに書く必要が出てしまいませんか?

前者だと、RichEditBoxのLoadFileを呼ばれると非常に困りますし、
後者だと委譲のコードを書くのにすごい手間がかかります。
しかもフレームワークのバージョンアップでメソッドが増えたときに、
委譲のコードを追加するために、変更が必要になりそうです。

すっきりする解決策を教えてください。 >>485-486さん
メニュー選択時のイベントハンドラ内でゴニョゴニョすべき問題じゃない?
単発機能A,B,Cを追加するためにいちいち継承していたら
A,Bを併せ持ったクラスを作りたくなったときに頓挫するでしょ。
>>489
すでにボロクソに論破されてる気がするのは気のせいですか。
そうですか。
491名無しさん♯:03/03/09 17:19
♯タンまで釣られてる……
>>487-488
漏れもそう思う。結局クライアントコードでも同じことになるよ。
そうゆう考えならね。
>>494
おお! 早速使ってみよ。
>>494
なんでつか、これ?
>>496
オプソのプロファイラ
498デフォルトの名無しさん:03/03/10 03:33
コーディングスタイルガイドラインってない?
1.1正式版まだなの?FinalBetaが去年の10月だったのに・・・・
.NETに嫌気がさして、優秀なC++技術者がごっそり辞めたのが、
MSの開発の遅れの最大の原因らしい。
そういやMSVMを作ってたキティさんコード書く人ってまだいるのかな?
激しくスレ違いかもしれませんが…。
C#で2chブラウザ作ってみました。
どうでしょうか。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/9453/twintail100.lzh
>>499
MSの予定だと初めからリリースは来年って話じゃなかったっけ?
>>499
1.1の開発は終わってるが、Windows Server 2003が出るまで出せない。
>>502
スレ嫁ねぇ。v1.0.3705

2003/03/10 17:55:34
System.IO.FileNotFoundException: ファイルまたはアセンブリ名 Microsoft.mshtml、またはその依存関係の 1 つが見つかりませんでした。
ファイル名 : "Microsoft.mshtml"
at twintail._2ch._2chThreadBrowser.Close()
at twintail._2ch._2chThreadBrowser.Download(ThreadItem item)
at twintail.Forms.MainForm.OpenThread(ThreadItem item, Boolean newTab)

Fusion log follows:
=== Pre-bind state information ===
LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = C:\twintail\
LOG: Initial PrivatePath = NULL
Calling assembly : twintail, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Publisher policy file is not found.
LOG: Host configuration file not found.
LOG: Using machine configuration file from C:\WINNT\Microsoft.NET\Framework\v1.0.3705\config\machine.config.
LOG: Post-policy reference: Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: Attempting download of new URL file:///C:/twintail/Microsoft.mshtml.DLL.
LOG: Attempting download of new URL file:///C:/twintail/Microsoft.mshtml/Microsoft.mshtml.DLL.
LOG: Attempting download of new URL file:///C:/twintail/Microsoft.mshtml.EXE.
LOG: Attempting download of new URL file:///C:/twintail/Microsoft.mshtml/Microsoft.mshtml.EXE.

>>502のexeがあまりに怪しげでいきなり実行するのが危険だと思った場合
安全に実行する方法ってある?
例えばルートディレクトリ以下のファイルを全部消すコードが入っていて
それを実行する前に警告するとか。
507デフォルトの名無しさん:03/03/10 19:32
>>505
あぁー!すみませn
ファイル一つ忘れてました。
アップし直します
>>506
VMwareとか。
>>506
NT系ならユーザー作ってセキュリティ変えてやればいいかな。
VPCかVMWare使うのも手ですな。
510506:03/03/10 19:39
,NETFrameworkの枠組みを使ってできたりはしないの?
確かあのLifeゲームみたいなのってDLL勝手にダウンロードして実行してたけど
あのDLLって悪さできないようになってると聞いたような。
511デフォルトの名無しさん:03/03/10 19:40
512デフォルトの名無しさん:03/03/10 19:41
>>506
怪しいですか(´・ω・`)ショボーン
>>510
ええ、でもそのフレームワークではネイティブなプログラムは動きません。
>>512
ソースの形式で配布して、各自でコンパイル汁!
っていうのなら皆安心!…ダメ?

もしくは、VMWare・VirtualPCスレで配布するとか(w
>>513
ここはC#スレなわけだが。
516デフォルトの名無しさん:03/03/10 19:50
>>514
それでもいいですが、ソース下手でも良いですか?
別に502が怪しいというわけじゃなくって単にそういう機能があるかどうか知りたいだけだよ。
>>513
おぉ。ネイティブなプログラムが動いてしまうと悪いことが
簡単に出来てしまうので、それはいいことですね。
感心しました。
519514:03/03/10 20:16
>>516
シャレで書いたんだけど(w

>ソース下手でも良いですか?
構わないけど、そのかわり俺は大したアドバイスできるレベルじゃないYO!
じっくりマターリ勉強中。。

>>517は本当に怪しんでたわけじゃないみたいなので、別にバイナリ配布で
OKだと思う。
ソースを見せるのも人のソース見るのも勉強になるよ。

今やってる仕事の前の人のソース見て強く思った。
頼むから見せることも意識して書いてくれ、と。
521514:03/03/10 21:04
ついんてーるからカキコしてみる。
板一覧取得中にもう一回板をクリックすると、取得完了になっちゃうみたい。
522502:03/03/11 02:44
>>521
仕様ですw
>>522
このスレ取得したらタイトルが「あぼーん」になるのですが。
WinXP/.NET Framework 1.0 SP2/Twintail 1.0.1
>>524
うまくいきました。
>>502
ファイルが見つかりません
>>524 スレ嫁ないよヽ(`Д´)ノウワァァァン
以下エラー

System.IO.FileNotFoundException: ファイルまたはアセンブリ名 Interop.SHDocVw、またはその依存関係の 1 つが見つかりませんでした。
ファイル名 : "Interop.SHDocVw"
at twintail.Forms.MainForm.CreateThreadBrowser()
at twintail.Forms.MainForm.OpenThread(ThreadItem item, Boolean newTab)

Fusion log follows:
=== Pre-bind state information ===
LOG: DisplayName = Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = D:\Program_Folder\twintail_exe\
LOG: Initial PrivatePath = NULL
Calling assembly : twintail, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
LOG: Attempting download of new URL file:///D:/Program_Folder/twintail_exe/Interop.SHDocVw.DLL.
LOG: Attempting download of new URL file:///D:/Program_Folder/twintail_exe/Interop.SHDocVw/Interop.SHDocVw.DLL.
LOG: Attempting download of new URL file:///D:/Program_Folder/twintail_exe/Interop.SHDocVw.EXE.
LOG: Attempting download of new URL file:///D:/Program_Folder/twintail_exe/Interop.SHDocVw/Interop.SHDocVw.EXE.
529527:03/03/11 21:15
>>528
見れたyo

さんくす
530514:03/03/11 23:39
>>522
仕様かYO!
スレ一覧取得中にもう一回クリックで中止という仕様なら、「読み込み中止しますた」
みたいなメッセージがイイ!気がしますた。

あと、検索機能でプルダウンからマ板を選択して「C」で検索したらC++相談室しか
ヒットしなかったYO!(表示中のスレタイから検索だと正常だった。)

もうひとつ、書き込みウィンドウはモーダルだと後から他レスのコピペが出来ないから使い勝手
がよろしくない悪寒。

最後に、専用の動作報告BBSかスレがホスィ。
C#相談室に動作報告し続けるのは心苦しいっす。
でも、今の段階でソフトウェア板とかにスレ立てると心無い厨房の的になる
可能性高いので、今のうちはある程度クローズドな状態で相手を選んだ方が
長続きすると思ふ。
A BONEのスレとかあからさまにリア厨な感じのDQNが時々現れてるし。。

試した環境はWinME+再配布パケジ。
531デフォルトの名無しさん :03/03/11 23:45
直接C#と関係ありませんが、SHFileOperation APIでファイルコピーする際に
表示される進行状況ダイアログのプログレスバーの進行状況をフックすることは
出来ないのでしょうか?
Javaスレが上にあるんでageておく。
>>530
報告どうもです。

>>「読み込み中止しますた」
>>書き込みウィンドウはモーダル
自分もそう思ってましたw
次のバージョンで直します。

>>専用の動作報告BBS
http://bbs5.vibe-station.com/type1/bbs.cgi?room=null
設置してみました。
>>516
ソース激しくキボンヌ!
オプソ化のヨカーン
>>506
とりあえずAnakrinoでソースチェックしてから使うとか。
>>534
ソース公開してみますた。下手ですが。。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/9453/archives/twintail_src_v103.lzh
538デフォルトの名無しさん:03/03/13 00:07
Excel.Application xlsObj = new Excel.Application();
で生成したexcelオブジェクトを、そのままResponseに出力して
クライアントのIEブラウザで読む方法ありませんか。
いったんxlsObj.SaveAsしてResponse.WriteFileしてから用済みのxlsファイルを消せばできるんですが、
ファイルの同期とかの問題もあるのでそのまま出力したい。
539デフォルトの名無しさん:03/03/13 02:03
>>537
まだ見てないけど
神サンキタ------
>>532
そんなことすんならC#死滅スレを下げるようにしたほうがいいって
>>537
勉強させて頂きます。
542デフォルトの名無しさん :03/03/13 21:21
以下のようなコードでXMLからchildnodesを作成し、foreachで動的に
ToolBarのDropDownMenuに追加しています。

private void AddtbMenu(int i,XmlNodeList clds,ref ToolBar tb)
{
ContextMenu cm = new ContextMenu();

foreach(XmlNode xmlN in clds)
{
try
{
MenuItem miOne = new MenuItem(xmlN.InnerText.ToString());
cm.MenuItems.Add(miOne);

}
catch(Exception e)
{
MessageBox.Show(e.Message,"エラー",
MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
finally
{
}
}
tb.Buttons[2].DropDownMenu = cm;
//MessageBox.Show(tb.Buttons[2].DropDownMenu.MenuItems.Count.ToString());メニュー登録数
}

しかし、追加したメニューにクリックイベントを発生させる方法が分かりません。
お助け下さい。
>>542
MenuItemのコンストラクタにイベントハンドラを追加するのもあったはず。
MenuItemをnewするときにハンドラも一緒に登録すればよい。
544デフォルトの名無しさん:03/03/13 21:39
C#で自分自身の正当性をチェックしておかしなところがあったら例外を投げる機能を実装するとき
チェックメソッドの名前と投げる例外の名前・種類は決まったものがありますか?
Release/Debug両方で常にチェックします。

また一般に内部エラーのチェックはどういうコードを書きますか?
Debug.Assertですかね。
>>542
miOne.Click += new EventHandler(Clicked);

void Clicked(object sender, EventArgs e)
{

}

これじゃだめ?
C#のコードで、エクスプローラへファイルやフォルダをドラッグアンドドロップ
するにはどうすればよいのでしょうか・・・。

例としては、リストビューのアイテムをつかみ、エクスプローラへドロップ
するという感じです。

色々調べては見たのですが、いかんせんMFCを使ったコードばかりで、
C#(というか、.NETのクラスライブラリ)ではどのようにしたらよいか、良く分
かりません。何か良いサンプルコードはありませんでしょうか?
>>546
ms-help://MS.VSCC/MS.MSDNVS.1041/vbcon/html/vbtskPerformingDragDropBetweenApplications.htm
このへんどうですか
548Tino ◆sMrLqQHxo6 :03/03/13 22:48
>>546
解凍ソフトのような、ドラッグ元がファイルとして存在しないものを
想定しておられるのでしたら、これが参考になるかもしれません。
http://www.egroups.co.jp/files/miscprj-dev/CSharp/FileRenderer-20030211.zip
549デフォルトの名無しさん:03/03/13 23:26
>>547
>>548

おおお〜感動です。こんな感じです。
MFCをなんとかC#で書けないかと System.Runtime.InteropServices.Marshalと
戦っていたのですが、さすがにへこんでいた所でした。
これを参考に頑張ってみます。ありがとうございました。

550542:03/03/13 23:27
今帰宅しました。自宅にコードをメールで送信したので、2時くらいまで
がんばってみます。
551542:03/03/13 23:49
>>545
有難うございます!!追加したメニューを判別するのに少し悩みましたが、
頂いたコードのclickイベント内でsenderをMenuItemへキャストする
ことで、インデックスの取得に成功しました!!もっと勉強します!!
private void ForEach(int i,XmlNodeList clds,ref ToolBar tb)
{
ContextMenu cm = new ContextMenu();
foreach(XmlNode xmlN in clds)
{
try
{
MenuItem miOne = new MenuItem(xmlN.InnerText.ToString());
cm.MenuItems.Add(miOne);
miOne.Click += new EventHandler(Clicked);
}
catch(Exception e)
{
MessageBox.Show(e.Message,"エラー",
MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
finally
{
}
}
tb.Buttons[2].DropDownMenu = cm;
}
------------------------------------------------------------------
void Clicked(object sender, EventArgs e)
{
MenuItem mi = (MenuItem)sender;
MessageBox.Show(mi.Index.ToString());
}
あれ?こんな記事あったんだ。知らんかった。

Visual C# .NET 2003 Language Changes
http://msdn.microsoft.com/library/en-us/dv_vstechart/html/vbtchVisualCNET2003LanguageChanges.asp

Visual C# .NET 2003 IDE Changes
http://msdn.microsoft.com/library/en-us/dv_vstechart/html/vbtchVisualCNET2003IDEChanges.asp
554フサギコ♯:03/03/15 21:48
   ∧,,∧  
  ミ,゚Д゚彡 
  ミ,,UUミ
検索ダイアログを使いたいのですが
どうすればよいのでしょうか?
555780:03/03/15 23:26
556さっむ:03/03/15 23:27
http://www.bunbun.ne.jp/~tk0608/
あややぽろりうp中
557780:03/03/15 23:48
>>554
555のリンク中にあったよ。
559780:03/03/16 00:06
>>558
おおおっ!これはいい!BorlandのIDEのようだ。
Borland曰く、「BCBやDelphiのIDEをMSは真似る」だってよ。
IDEの起源はVB
ここ、
http://www.codeproject.com
幼少時に母親にデパートへ連れて行ってもらって楽しかった日々が蘇るよ。
実に楽しいなあ。
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
IDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVBIDEの起源はVB
確か日本の井出さんが作ったんだよね。
564デフォルトの名無しさん:03/03/17 18:35
例えば、以下のようなXMLドキュメント
<?xml version="1.0" encoding="utf-8" ?>
<Test xmlns="http://tempuri.org/Test.xsd">
<Enterprise>
<Ent>HONOA</Ent>
<Ent>TOYOYA</Ent>
<Ent>SUZOKI</Ent>
<Ent>NISSAM</Ent>
</Enterprise>
<Terminal>
<Term net="総務" ent="TOYOYA">本田</Term>
<Term net="総務" ent="HONOA">鈴木</Term>
<Term net="設計" ent=TOYOYA"">川崎</Term>
<Term net="設計" ent="NISSAM">山葉</Term>
<Term net="経理" ent="NISSAM">豊田</Term>
</Terminal>
</Test>
があるとして、この中からAttribute の net="設計"のみを含むコレクションノードを
一発で取得するメソッドは無いでしょうか?foreachを使って以下のように処理すると扱えるのですが、結構ダサいです。
foreach(XmlNode xmlN in *.*.ChildNodes)
{
try
{
if (xmlN.Attributes["net"].Value == "設計")
{
ListBox.Add(xmlN.InnerText.ToString());
}
}
}
よろしくお助け下さい。
>>564
XML処理ってどうやってもダサいじゃんというのが今のところの結論。

裏で同じ事やってるのにそれをラップしてるかしてないかだけでカコイイ、カコワルイ言ってたら大変だと思うけどね。
566564:03/03/17 18:45
>>565
んん?それじゃDataSetにぶち込んでから操作するほうがスマートですかね?
メッセンジャーサービスnetsendで送信されてきたダイアログの
文字列を取得する方法はありますか。
568デフォルトの名無しさん:03/03/17 20:33
>>567
あれはー。パイプを使ってるんだっけか。API 関連のサンプルサイトを
探したほうが早いと思うよ。
569デフォルトの名無しさん :03/03/17 22:43
お馴染のコントロールライブラリ「UtilityLibrary.dll」はソース中に
ライセンス関連の情報を始め、作者の情報も一切無いが商用利用OKなんでしょうか?
http://msdn.microsoft.com/chats/

Future Directions for Visual C#

> Join Eric Rudder, Microsoft Senior Vice President of Developer
> and Platform Evangelism and Anders Hejlsberg, Distinguished Engineer
> and Chief C# Language Architect as well as other Visual C# team
> members for a candid chat on new language features, our language
> design philosophy and code-focused tools.
>>569
著作者に尋ねるのが筋
572デフォルトの名無しさん:03/03/17 23:18
>>564
XPathで一発じゃねえ?

例:Test/Terminal/Term[@net="設計"]
>>572
う〜む、うまく行かない。iter.Count が 0 になる。
どこが間違えてるんだろ・・・。

using System;
using System.Xml.XPath;

class XPathTest {

  static void Main() {
    XPathDocument doc = new XPathDocument("Test.xml");
    XPathNavigator nav = doc.CreateNavigator();

    XPathNodeIterator iter = nav.Select("/Test/Terminal/Term[@net=\"設計\"]");
    while (iter.MoveNext()) {
      Console.WriteLine(iter.Current);
    }
  }
}
あ、Selectの先頭の / は要らないか。でも結果は同じ。
>>564

using System;
using System.Xml;

class MyTest
{
  public static void Main(string[] args)
  {
    XmlDocument dom = new XmlDocument();
    try
    {
      dom.Load("test.xml");
      XmlNodeList l =
dom.SelectNodes(@"//Test/Terminal/Term[@net=""設計""]");
      foreach(XmlElement e in l)
      {
        Console.WriteLine(e.GetAttribute("ent"));
        Console.WriteLine(e.InnerXml);
      }
    }
    catch(Exception ex)
    {
      Console.WriteLine(ex.Message);
    }
  }
}
576573:03/03/18 00:56
xmlns外したらうまく行った。

<Test xmlns="http://tempuri.org/Test.xsd">

<Test>
577564:03/03/18 01:32
>>572-575
今日出勤してから試します。わざわざ有難うございます。
System.Net.HttpWebRequestクラスで
euc-jpやshift-jisのクッキーを扱うことはできるのでしょうか。

myReq.Headers.Add("COOKIE",System.Text.Encoding.GetEncoding(encoding).GetBytes("てすと"));

myReq.CookieContainer.Add(new System.Net.Cookie("COKIE","てすと"));
等、いろいろためしてはみたのですけれど・・・

どうかご教授ください<(_ _)>
>>579
euc-jpやshift-jisのクッキーってのが良く分からんが、
クッキーはURLエンコードしないか?
URLエンコードしてもutf-8のバイト列はutf-8のバイト列ですよね?

socketで組んでしまうのが一番なのでしょうか。
postあたりの処理を思うと気が重いのですけれど・・・
myReq.Headers.Add("COOKIE",System.Web.HttpUtility.UrlEncode("あああ",System.Text.Encoding.GetEncoding(encoding)));

myReq.CookieContainer=new CookieContainer();
myReq.CookieContainer.Add(new System.Net.Cookie("test",System.Web.HttpUtility.UrlEncode("あああ",System.Text.Encoding.GetEncoding(encoding)),"/","www.virtualenvtest.com"));
を試してみましたが、
再度URLエンコードが行われているらしく、「%82%a0%82%a0%82%a0」がわたってしまいました。
URLエンコードを無効化できないかな、、
>>582
だったら尚更意味が分からない。何をしたいのかさっぱり分からない。
URLエンコしてもShift-JISはShift-JISだしEUC-JPはEUC-JPだぞ。
ちょい訂正
>URLエンコしてもShift-JISはShift-JISだしEUC-JPはEUC-JPだぞ。
Shift-JISをURLエンコしたら、デコードすればShift-JISだし
EUC-JPをURLエンコしたら、デコードすればEUC-JPだぞ。
>>582
なんで無効化したいのか、理由を言ってくれ
何が困るんだ?
すいません、睡眠をとっていました。
どうも自分が致命的な思い違いをしてそうなのですが

>「%82%a0%82%a0%82%a0」がわたってしまいました。
と表記したのは紛らわしかったですね。
”正しくは「%2582%25a0%2582%25a0%2582%25a0」がわたってしまった”で
(%25='%'のエンコード)
自分でCGIが編集できるのであればもう一度デコード(もしくはs/%25/%/;)を行うことで解決できるのですが、
そうでないCGIにはリクエストを行うことができないので困っています。

stringはutf-8の文字列しか保持できないのですよね?
stringに別の文字コードの文字を保存させれれば問題ないのですけれど・・・
>>586
System.Net.Cookieを使ったことがないのでかなりいい加減な意見ですが
Cookieを使う前後の部分をもう少し書いてもらえれば答えが見つかりそう
UrlEncode しなけりゃいいじゃんとおもたが
System.Net.Cookie が string しか取らないから
Byte[] を渡しようがないのね・・・

そもそも送り手と受け手が同じエンコーディングでないと
お互い理解不能になってしまうし、HTTP HeaderのURL Encodeされた
部分がどの文字コードセットなのかを指定する部分がないし
Unicode(UTF-8)を使うのは自然な成り行きな感も。

System.Net や System.Web がことごとstring渡しみたいなので
WebRequest/WebResponse を使わずにHTTP ヘッダーを自前で
作って投げるしかないのかねー?
>>588
stringにbyte詰めちゃ逝けない法律も無し。どこかで文字コード変換されたら鬱だけど。
どうやって詰めるか教えてください(´д⊂
base64とかどうよ?
592564:03/03/18 20:27
>>572-575
以下のコードうまくいきました。有難うございました。しかし......。
[@net=""設計""]の「設計」の部分の文字列を変数にすることは出来ないのでしょうか?
例えばテキストボックスの文字列から取得するとか。手持ちのWroxの書籍で
調べたんですけど、どーも分かりません。

dom.Load("test.xml");
XmlNodeList l =
dom.SelectNodes(@"//Test/Terminal/Term[@net=""設計""]");

foreach(XmlElement e in l)
{
Console.WriteLine(e.GetAttribute("ent"));
Console.WriteLine(e.InnerXml);
}
(.xml)
<?xml version="1.0" encoding="utf-8" ?>
<Test xmlns="http://tempuri.org/Test.xsd">
<Enterprise>
<Ent>HONOA</Ent>
<Ent>TOYOYA</Ent>
<Ent>SUZOKI</Ent>
<Ent>NISSAM</Ent>
</Enterprise>
<Terminal>
<Term net="総務" ent="TOYOYA">本田</Term>
<Term net="総務" ent="HONOA">鈴木</Term>
<Term net="設計" ent=TOYOYA"">川崎</Term>
<Term net="設計" ent="NISSAM">山葉</Term>
<Term net="経理" ent="NISSAM">豊田</Term>
</Terminal>
</Test>
593564:03/03/18 20:31
ちょっとgoogleってきます。
>>586
おいおい。だったら文字列をURLデコードして渡せよ。
勝手にデコードしてくれる関数にデコード済みの文字列渡したらダメだろ。
>>594
shift-jisやeucで(日本語の)文字列を送りたい
 ↓
byte[]をうけつける引数は無い
 ↓
だったら文字コード変換したbyte[]をURLエンコードしてから渡してみたら

という流れなんですけれど
596564:03/03/18 21:06
以下のようにすると一発でした。お騒がせしました。
XmlNodeList l =
dom.SelectNodes("//NetMsg/Terminal/Term[@net='" + ListBox1.Text + "']");
597564(補足):03/03/18 21:07
//NetMsgの前の@が存在するとうまくいきませんでした。
>>595
2バイトを使って1ワードな値を作る(エンディアンに気を付けてね)。それをStringの1文字に代入。
・・・をこつこつと。
>>598
System.Net.Cookie でURLエンコードされてるんだから
文字コード変換してるんでしょ?

おそらく "あ" (Shift-Jisで0x82,0xA0) なら
0x0082, 0x00A0 という文字列にしちゃえといいたいんだろうが、

これを System.Net.Cookie に食わせたら、おそらく
U-0082はUTF-8で0xC0,0x82に、U-00A0はUTF-8で0xC2,0xA0なので
%C2%82%C2%A0 となるだろう罠。
>>599
違います。以上。
601デフォルトの名無しさん:03/03/18 22:26
C#ってテンプレートが装備される予定ないの?
602デフォルトの名無しさん:03/03/18 22:34
>>601
C#用テンプレート、Generics は、R&Dで開発中。将来的には搭載されることに
なりそうですね。
>>600 は、何が言いたいのかさっぱりわからんな。(w
605macuser:03/03/18 23:48
話全然変わるけど、そろそろMSマジでやばいみたいね。
Win開発者がぞくぞくとLinuxのほうへ流れてるらしい。
恐いねー。やっぱり時代はLinuxだね。と、Unix。
Mac使いでよかったわ。
これからも細々MacとPBを愛用するか。
>>605
Windowsがヤバイのと非intel系のUNIXに何の関連が?
>>605
Macが来年には第3のOSになっちゃうんだよね。
>>604
ワハハ、くだらねー。
けど、こういうの好きだー。

>>605
魚がかからない釣りは止めて下され。
サーバが可哀想だ。
>>608
ゴスゴス釣れてるのは俺の気のせいだろうか・・・? 
610質問者:03/03/19 00:05
>>598

byte[] bs =System.Text.Encoding.GetEncoding("Shift_jis").GetBytes("ああああ");
char[] cs=new Char[(int)System.Math.Ceiling(bs.Length/2)];
for(int l=0;l<bs.Length;l+=2)
{
cs[l/2]=Convert.ToChar((bs[l]<<8)+bs[l+1]);//逆?
}
if (bs.Length/2!=System.Math.Floor(bs.Length/2))
{
cs[cs.Length-1]=Convert.ToChar(bs[bs.Length-1]);
}
string c=new String(cs);

という感じですよね?
なるほどと思ったんですが、
サーバー側には「あ」一文字に付き3バイト送られてしまってるようでうまくいきませんでした。
今は何とかできないかと思って仕組みを理解しているところです。
//うーん、やはりsocketを使って実装すべきかなぁ・・・
611608:03/03/19 00:27
>>609
書き込んでみたら、その間に釣られてるヤシがいた…ヽ(`Д´)ノ ウワァーン

      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < 1.1正式版まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  愛媛みかん |/
どうせv1.1.4322のままだよ・・・。
そんなことよりさぁ・・・

      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < 2.0ベータ版まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
       | 和歌山みかん|/
>>610
System.Net.Cookie が String(= UNICODE) を、
UTF-8 に変換してURLエンコードしちゃってるんだから
System.Net.Cookie を使う限りどうやっても無理。

あ(= Shift-Jis 0x82,0xA0) を Unicode(U-82A0 or U-A082) に
無理やり合わせても、UTF-8(= 0xE8,0xA8,0xA0 or 0xE2,0x82,0x8A)
になるだけ。

>>598はただの妄想。早く気づけ。
616質問者:03/03/19 17:49
ありがとうございました、頑張って1から組んで見ます。
本当に勉強になりました、どうもです>各位
617601:03/03/19 20:56
>>602

ありがとう。早く搭載されてほすい
>>618
リアル学生しか登録できないのかな?
>>619
心は学生です!とのたまえばよろし。
といってもエバンジェリストの皆さんを困らせんようにな。
放送大学へ逝け。
623デフォルトの名無しさん:03/03/21 23:05
Windowsフォームでアプリを作っています。
重い処理させるとウィンドウが固まったような状態になってしまうのですが
何か回避策はないでしょうか?
>>623
過去ログにいっぱいあるけど?
マルチスレッド化か、お勧めできないがApplication.DoEvents を使う。
どうやるのかは自分で調べてね。
>>623
これでも読んでね
[ C# Threading Handbook ]
http://www.amazon.co.jp/exec/obidos/ASIN/1861008295
非同期デリゲートがおすすめ
552じゃなくて>>570だった。スマソ
いやー、wrox倒産したねー。しょうがないか。
630デフォルトの名無しさん:03/03/22 20:32
C#は単体テストにはNUnit使うのが普通なの?
632デフォルトの名無しさん:03/03/24 16:36
質問です。

System.Diagnostics.Process.Start(string fileName,string arguments)
メソッドの fileName が null の場合、InvalidOperationException が投げられるのですが
これは MSDN のドキュメントに載っていませんでした。
もっと正確な例外情報が欲しいのですが、何かありませんでしょうか?
>>632
fileNameにnullを渡して何をさせたいのか説明してください。
>>633
ドキュメントの不備を指摘してるだけだろ。
633のメール欄
636632:03/03/25 02:59
>>633
ユーザが外部ツールのパスを設定していない場合、fileName が null になるのですが
普通に ArgumentException が投げられるんだろうなと思って
それだけキャッチしてたんです。

>例外の種類 ArgumentException
>条件 fileName パラメータまたは arguments パラメータが null 参照 (Visual Basic では Nothing) です。

こう書いてあったので。

で、キャッチした先でメッセージと設定画面が出るはずだったのですが、
不思議な例外が投げられて???になった、というわけです。

原因がわかったので対処はできましたが、
一度こういう事があると疑心暗鬼になって困ります。


ところで throws とは?
>>636
>ところで throws とは?
これは言わなかったことにしてくれ。荒れるから。
>これは言わなかったことにしてくれ。荒れるから。
恥の上塗り
>>636
>ところで throws とは?
http://www.mindview.net/Etc/Discussions/CheckedExceptions
要約:throwsって使えないよね。
>要約:throwsって使えないよね
という厨房と、throws必須!という厨房が対立するので荒れるんですよ。>>636
>>640
ところで、throwsが使えない、というのはどういうことで?
使いにくい、というのは同意なのですが。
必須じゃなければいいのに。
そう、必須という意見もどんなのなんでしょう?関連レス・スレありますか?
ThrowsAttributeとか自作の属性作ったら
何とかならないのかな?
>>642
J#はそうやってる。
>>643
javax.servlet.ServletException(Throwable rootCause)
みたいな感じの話?
.NET Remoting に関する詳しい書籍はありませんか?
HPでもいいけど。
>642
どっちかというとライブラリこそが対応していて欲しい。
>>646
J#がやってるんなら、ライブラリも対応してるんじゃないの?
どうなってるんだ? J#って。
>>646
VS.Netニセん惨に期待しましょう
>>647
メソッドのメタデータに com.ms.vjsharp.cor.JavaThrownExceptions
というのを付けてる。

で、catch されてるかをコンパイル時にチェックしてる。
651デフォルトの名無しさん:03/03/25 16:10
ADODB.RecordsetのEOFに相当するものって
ADO.NETでありませんか?
ExecuteReaderのRead()を使ってるとEOFがわからないのです。
>>651
Read()の戻り値の意味は?
653デフォルトの名無しさん:03/03/25 16:47
>>652
falseのときにとればいいんですね?ありがとうございます!
やってみたのですが、どうも行が一行少ない。
どのタイミングでとればいいんでしょう。
655デフォルトの名無しさん:03/03/25 17:10
>>654
ヘルプは見ています。ググルも。
この方法でやってみて、falseの時に分岐したら
行が一行足りないんです。
656デフォルトの名無しさん:03/03/25 21:35
>>655
ソースを晒してみ。
657デフォルトの名無しさん:03/03/26 10:44
>>656
>>654を元にすると
while (myReader.Read()) {
Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
   if (!myReader.Read())
Console.WriteLine("false");
}

という感じです。
if以下をつけるかつけないかで、結果の出方が全然ちがいます。
>>657
ネタなのか!?

myReader.Read() を2回呼んじゃだめだろ。
659デフォルトの名無しさん:03/03/26 11:36
>>658
やらないか?
>>658
そういうことですか!ありがとうございます。
でも未解決です・・
>>659
ウホッ
(以下略)
Cを少しかじっただけの新参プログラマーにおすすめのC#、VisualC#の解説書ってありますか?
具体的なプログラム例がいっぱい載ってるのがいいんですが。
書店逝ってもC++のばかりでつ…(つД`)
663デフォルトの名無しさん:03/03/26 18:10
>>661
     /                    ヽ
   / __, ィ_,-ァ__,, ,,、  , 、,,__ -ァ-=彡ヘ  ヽ
    ' 「      ´ {ハi′          }  l
   |  |                    |  |
   |  !                        |  |
   | │                   〈   !
   | |/ノ二__‐──ァ   ヽニニ二二二ヾ } ,'⌒ヽ
  /⌒!|  =彳o。ト ̄ヽ     '´ !o_シ`ヾ | i/ ヽ !
  ! ハ!|  ー─ '  i  !    `'   '' "   ||ヽ l |
 | | /ヽ!        |            |ヽ i !
 ヽ {  |           !           |ノ  /
  ヽ  |        _   ,、            ! , ′
   \ !         '-゙ ‐ ゙        レ'
     `!                    /
     ヽ     ゙  ̄   ̄ `     / |
       |\      ー ─‐       , ′ !
>>663
(*´∀`)ウホッ♪
(*´д`;)…
(*´д`)ウホ…?
(*´д`*)ウホォ?
Σ(゚д`*;)ウッ,ウホッ?
Σ(*゚Д`;)ウ…ウ…ウッホォォォォォォォ?!!!!
(*・ロ・;)ホ,(*'ロ';)ホ--ッッ!!!…
(*´д`;)………
(*゚д゚*)ウホー…
>>662
その本屋へんだね。かなり増えてきてないかな。
http://www.amazon.co.jp/exec/obidos/ASIN/477411507X/ref=sr_aps_b_3/250-7526697-9041851
こんなんとかどうでしょう。読んでないけど、。
Introducing Microsoft SQL Server "Yukon"
http://www.microsoft.com/sql/evaluation/yukon.asp
>>665
ありがとう。もう少し調べてみます。
>>666
MSのサイト更新情報って、どこで拾ってるの?
まさか全サイト毎日巡回してはいないよね??
>>668
最近はMLよりblogが情報源です。
>>669
なるほど……お勧めサイトってあればURL希望。
「ココだけは逝っとけ」っていうとこがあれば是非。
>>670
いや、所詮は日記だから必読というのはないんだけど。(藁
ここからリンクを辿ってみるとか。
http://dotnetweblogs.com/
>>671
激しくサンクス!

出してもらったURLを取っ掛かりに、リンク辿ったり似たようなサイトを
探そうかと思ってたんで、ひとつ手間が減ったって感じでうれしい。ありがd>671
まあ漏れは専ら誰かが2chにリンク貼ってくれるのを待っているわけだが。<情報源
674デフォルトの名無しさん :03/03/27 22:02
質問です。
CADや帳票設計などのソフトに不可欠な、
描画したラインをクリックして掴み移動させるという機能は
どのように実現すればいいのでしょうか?

アドバイスお願いいたします。
675デフォルトの名無しさん:03/03/28 04:00
特定のメソッドをサブクラスでオーバーライドできないようにするには
どうしたらいいですか?
sealedをつけてみたのですがうまくいきませんでした
javaでいうところのfinalみたいのありませんか?
C#はvirtual修正子をつけないとオーバーライドはできないからなにもつけないが正解。
677675:03/03/28 05:50
>>676
なにもつけないとwarningはでるもののコンパイルできてしまいました
オーバーライドしてほしくないメソッドをオーバーライドすると
errorになってくれるのってありませんか?
>>675
属性で。
>>674
マウスダウンでキャプチャしてコントロールをLockWindowUpdate()
マウス移動ごとにGetDCExと50%くらいのハッチブラシを使い
ROPのPATINVERTでガリガリ描く。
マウスアップでキャプチャとLockWindowUpdateを解除。
>>677
それはオーバーライドじゃないからベースクラスの参照から呼び出してる側には影響ない。
681675:03/03/28 18:14
>>678
MethodAttributes.Finalというのを見つけたのですが
どうやって使うかわかんなくて・・・
>>680
ベースクラスにキャストしてから呼び出したら
ベースクラスで宣言したほうが呼びだされました
ありがとうございました
684デフォルトの名無しさん:03/03/29 14:36
Windows Server 2003がMSDNに出たらしいけど、入れた人いたらCLRのバージョン教えて。
日本語版はまだぽ
686デフォルトの名無しさん:03/03/29 21:08
ガイシュツかもわからないんですが
On Error Resume NextみたいなのってC#にないんですか?
なんすかそれ。
ないよ。VB的小手先指向プログラミングはいったん忘れ去ったほうがいい。
>>686
VBのやつだな。エラーを無視して突っ切るやつ。

例外処理をいちから勉強すれば無問題。
690674:03/03/30 00:14
>>679
うへえ!GDI+で、もっとかっこよく出来ませんかね?
691674:03/03/30 00:30
うっ!
Drawing2D.GraphicsPathでヒットテストして掴めばいいのかな!?
On Error Resume Next
怖い命令だな。よく使う気になったなほんとうに。
>>692
今となっては確かにそうだけどN88BASICがこの機能を既に実装していたというのは驚くに値するよ。
694デフォルトの名無しさん:03/03/30 15:24
既に描画済のbmpファイルの上から新しくbmpファイルを描画したいのですが、
そのとき上に描画するbmpのがサイズが小さく透過色を指定して描画したいです。
それで考えたんですが
1、内部処理で上から描画された状態のbmpを作成する。
2、そのつど新しくpictureboxを作成する。
の二つを思いついたんですが、もっとスマートな方法ってあるでしょうか
>>690-691感嘆詞すぎw
>>693
歴史的には N88 というか MS-BASIC の仕様ですね。
知ってのとおり、あのころの BASIC はインタプリタ、単一ソースの実装でしたから、
たとえば出荷した業務アプリケーションに、文法エラーを起こすコードが含まれている
可能性があったのです。
客先のコンソールで "Syntax Error" と出してアプリ強制終了。とさせるわけにはいかないので
最後の手として On Error Resume が導入された。というわけで。
最初の実装は、エラーが出たら、無条件で次の行から継続実行。というものでした。

その後、中間コードへのコンパイルなどができるようになって上記の問題はほとんどでなくなりましたが。

例外処理とかとはちょっと異なった設計/思想だったので、.NET 化したときに実装できなくなったんだろうけど
残しても面白かったのにね。
Windows Server 2003 RTM を MSDN から落として入れてみたんだけど
.NET 1.1 (だけ)が入っているのはいいとして、 1.1.4336 がはいっていたよ。

1.0 で作ったアプリも別途 1.0 の RunTime 入れなくても動くんだね。
>>697
サンクス。1.1.4322のままだったらどうしようかと思った。(w
v1.0.3705
v1.1.4336
v1.2.21213
4336?
4322.573じゃないの?(mscoree.dllのバージョン)
staticメンバを、インターフェースまたはabstractクラスに定義するのはできないみたいなんですが、
staticメンバの関数を別々のクラスに定義したい場合
(その関数が実装されてることを保証する)には、どうしたらいんでしょうか。

interface IParser {
 static int Parse();
}

class A : IParser {
  public static int Parse() {
   //...
  }
}

class B : IParser {
  public static int Parse() {
   //...
  }
}
---
int a = A.Parse();
int b = B.Parse();

こんな感じにしたいんですが…。
結局、クラスごとに定義しないと駄目なんでしょうか。
ワラタ > NothingButXMLInfoSet改名

気持ちはよくわかる。(w
誤爆か?意味不明
>>701
そもそもstaticメソッドをインターフェイスに対してプログラミングすることができないべ?
705679:03/04/01 19:10
>>690
System.Windows.Forms.ControlPaint クラスも参照。
706701:03/04/01 20:05
>>704
レスサンクスです。
インターフェースは例えで、そんな感じのデザインパターンというか、
何か上手い実装方法はないかなと思いまして。。
『C# Primer』(Lippman) の訳本が出てた。
お前ら、ISO認定取得ですよ!
>>708
正式にはまだ、今月中かと。
710デフォルトの名無しさん:03/04/04 16:27
JIS取得はいつー?
強力なweblogが増えてますなあ。
http://blogs.gotdotnet.com/brada/
712デフォルトの名無しさん:03/04/06 14:59
.NET開発の実際っていかがなものでしょ?
FCL + Wizardだけで十分間に合ってるか、フレームワーク(もどき)がないと駄目か。
しばらく見てないうちにF#でこんなページできてた。
http://www.strangelights.com/FSharp/
701 の気持ちが分かるー。
派生クラスが Singleton である事を強制する方法はないかなと
考えたことが少しあるんだけど,思いつきませんでした。
特に重要でもなかったんでそのまま派生クラス毎に Singleton にしたけど。
>>714
genericsでごまかせない?
>>712
Windowsアプリ作って遊んでる身だが、仕事で使ってなくてよかったーって感じ。
コントロールのバグの多さ、致命的な嵌りどころとかにちょっとなぁって思ってるところ。
まぁ趣味でやってるので、継承でバグを握りつぶしたり、APIで自前実装して代用したり、
なんとか回避してるけど、業務だったら保守性とか話にならないわ、これ。

#といっても、あんまり業務ならごちゃごちゃいじらないところか・・・
ちなみに作ってるのは開発環境。#Dがあまり好きでないので
こじんまりとしたIDEっぽいのを作ってるよ。

WebアプリやWebサービス関連は知らん。
>>716
そのバグ報告して。
VS Tools for Officeが出たらしい。
ttp://radio.weblogs.com/0117167/2003/04/06.html#a232
>>717
・TabControlでタブを削除するとFormを終了することができなくなる場合がある
(くだすれC#でも同様の報告があったけど、かなり致命的だ。泥臭い回避が必要?)
・TextBoxBaseクラスのSelectionStart、SelectionLength、MaxLengthは、
NT系では文字数、9x系ではバイト数
・ListBoxをDoubleClickイベントやMouseUpイベントでそれを配置したフォームをCloseすると
例外が発生する
・ActiveXコントロールをInteropして使う場合、FormのLoadイベントが起きない場合がある
・KeyPressイベントの引数e.Handled=Trueでは日本語は無効化できない
(このことは少なくともドキュメントには書かれていないし、ドキュメントを素直に読めば、
マルチバイトを無効化できないのが仕様とは読み取れない)
・C#コンパイラの最適化にバグあり。挙動がおかしくなる場合がある。

・ドキュメントの間違い数箇所以上。

この辺あたりが自分が確認、検証したことのある分。
次のバージョンとかでなおってくれてればいいんだけどねぇ。
>>719
1.1で直ってるのがいくつかあるな。
721!719:03/04/07 22:03
TabControlのやつは俺も困ったなぁ。

あと、
・ListViewのViewを複数回切り替えるとListViewItem.BackColorの変更が無効になる場合がある
ってのもあったな。
それからActiveXコントロールのおかしな挙動も発見した。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=57&fi=no
722デフォルトの名無しさん:03/04/08 01:49
リストボックスにDoubleClickのイベントハンドラを追加したのですが、なぜか2回呼ばれてしまいます。
あるFormを継承したクラスを引数にするthisのメンバ関数をイベントハンドらの中で呼び出すと2回呼ばれ、
呼び出さないと正常に動作します。
そのメンバ関数では引数のFormを多態させてShowDialogしてその後ベースクラスのメソッドを呼び出しますが、DoubleClickイベントを発生させるようなコードはありません。
なんででしょうか?
下が概要です。

ある継承されたクラス
class B{public virtual void Generate(){};}
class A : B{public void override Generate(){};}
メンバ関数

private void foo(B b)
{
b.ShowDialog();
b.Generate();//処理
}

private void DoubleClick(object sender,EventArgs e)←2回呼び出される
{
A a=new A();
foo(a);
}
723719:03/04/08 02:47
>>722
>・ListBoxをDoubleClickイベントやMouseUpイベントでそれを配置したフォームをCloseすると
例外が発生する

と根源が同じっぽい気がする。
ListBoxのWmMouseUpメソッド(Click、DoubleClick、MouseUpの実体)がたぶん変。

ListBoxを継承して新たなListBoxを作成し、
WndProcをオーバーライド→ダブルクリックのメッセージを横取り→
→本来のDoubleClickイベントを起きないようにメッセージは握りつぶしつつ、
Shadow付きで定義した同じシグニチャのDoubleClickイベントを
発火してやるとか・・・・。
724722:03/04/08 03:22
>>723
UpdateControlというイベントハンドラ追加とコントロールの値をアップデートするメンバ関数を2回呼び出して2回登録してしまってました
勘違いでした。申し訳ありません。
>>719の面目丸つぶれだな。哀れだ
C#からMozilla(Gecko-ActiveXコンポーネント)を使う方法
C:\> AxImp.exe "C:\Program Files\Mozilla\mozctl.dll" /source
C:\> type GeckoTest.cs
using System;
using AxMOZILLACONTROLLib;
using System.Windows.Forms;
public class GeckoTest {
  [STAThread]
  public static void Main() {
    AxMozillaBrowser gecko = new AxMozillaBrowser();
    Form form = new Form();
    form.Controls.Add(gecko);
    gecko.BeginInit();
    gecko.EndInit();
    object arg1 = 0; object arg2 = ""; object arg3 = ""; object arg4 = "";
    gecko.Navigate("www.google.co.jp", ref arg1, ref arg2, ref arg3, ref arg4);
    System.Windows.Forms.Application.Run(form);
  }
}
C:\> csc /r:AxMOZILLACONTROLLib.dll Gecko.cs
C:\> GeckoTest.exe
>>726
寝る前にこれ見たらやってみたくなって、mozillaダウンロード中...。
10MBもあるのか…。ISDN(;´Д`)キツイ
>>727
うまくいったら報告してくだしぃ(*゚ー゚)
こちらの環境はWindows2000+Mozilla1.2.1です
Geckoコンポーネント(AxMOZILLACONTROLLib)はIEコンポーネント(AxSHDocVw)とほとんど同じみたいです。
例えばステータスバーに表示すべき文字列もIEコンポーネントと同じように

gecko.StatusTextChange += new DWebBrowserEvents2_StatusTextChangeEventHandler(Hoge.StatusTextChanged);

としておいて、

private void StatusTextChanged(object sender, DWebBrowserEvents2_StatusTextChangeEvent e)
{
  System.Console.WriteLine(e.text);
}
を用意すれば取れました。(また一つおもちゃが増えたな)
>>728
デキター(・∀・)
最初、mozilla/binフォルダにパスを通すのが解らず起動時にエラーが出ましたが、
exeごとmozillaフォルダに突っ込んでやったら上手くいきました。
チョト感動。

一応ソースup
http://www.kari.to/upload/index.cgi
[1376.lzh]
>>730
おめ。良ければどのバージョンのMozilla使ったか教えて欲(*゚ー゚)しぃ
起動時のエラーって「ダイナミックリンクライブラリが指定されたパスに存在しません」ってやつ?
こっちではMOZILLACONTROLLib.dllが同じフォルダにあればちゃんと動くようです。

1376.lzh落とせない(´Д⊂
>このディレクトリは、外部からの直接アクセスを禁止しています。
って。
>>731
リファラチェックしてるだけだと思うので、コピペしる。
1.3releaseでもできたよ。
>>732
なんかMozillaで落とせない気がする。referrerじゃなくてuser-agentかなあ。
734連カキスマソ:03/04/08 12:17
>>732
>1.3releaseでもできたよ。
報告ありがd。ちゃんと新しい版にも追従してるみたいね(*゚ー゚)

実はこれをJavaに埋め込みたいのさ。
(Java Embedded(webclient)は消えてったから難しそう)
Geckoって窓でも犬でもまともに動くからちょいとOS依存部分をラップして
((=゚Д゚=)ノ ドコデモWebClient作ろうかなと。
でもGeckoスレが落ちちゃってて(´・ω・`)ショボーン

>>726
今更だけど訂正(どうでもいいんだけど
C:\> csc /r:AxMOZILLACONTROLLib.dll Gecko.cs
C:\> csc /r:AxMOZILLACONTROLLib.dll GeckoTest.cs
735連カキスマソ:03/04/08 12:21
>>730
IEで落としました(アリガd>>732
ちゃんとブラウザになってるね(*゚ー゚)

#誰かJavaEmbedded作って つД`)
>>731
あ、書くの忘れました(w
Win2000、Mozilla 1.4b
http://lxr.mozilla.org/mozilla/source/extensions/manticore/
こんなもんがあったけど、まだ使えんのかな?
Microsoft Visual Studio .NET 2003 and .NET Framework 1.1 Tests Come To An End
http://www.winbeta.org/modules.php?name=News&file=article&sid=1275
キタ━━━━━━\(T▽T)/━━━━━━ !!!!!
Java Embedded動いたー!
これでC#でもJavaでもMozillaが使える!疲れたよ(´Д⊂ママン
スレ違いsage
740デフォルトの名無しさん:03/04/09 00:12
OleDbについて教えてください。
mySQL4.0を使っています。
以下のソースでDataSetに値を入れようとしているのですが、
コメントアウトしてあるほうのSQLだとFillのところでエラーになってしまいます。
DataSetに入れる場合のSQLの制約などがあるのでしょうか?

//string cmd = "select * from tbl where id='aaa' and address like 'あ%'"
string cmd = "select * from tbl where id='aaa'"
DataSet dataSet = new DataSet();

String conStr = "Provider=MySQLProv;Data Source=mysql;";

OleDbConnection oleDbConnection = new OleDbConnection(conStr);

OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(cmd, oleDbConnection);

dataSet = new DataSet();
oleDbDataAdapter.Fill(dataSet,"tbl");



エラー情報 : E_FAIL(0x80004005) がありません。
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Data.OleDb.OleDbException: エラー情報 : E_FAIL(0x80004005) がありません。
741デフォルトの名無しさん:03/04/09 03:20
もじらって何ですか?
しばらく見ない間に面白そうな話が。
もれも試してみようかな。
・・・MozillaDLしなおさなきゃ。

ところでコンボボックスのバギーな挙動は1.1で直った?
性的メンバに非性的メンバ関数からでもアクセスできるのがちょっとイイかも。
744メモ:03/04/09 11:26
IISLockDown/URLScan導入後、urlscan.iniの
[AllowVerbs]セクションにDEBUGを追加しないと
VS.NETでデバッグできない。
>>736
細かい事いうけどMozilla 1.4aだよな
746736:03/04/09 21:22
>>745
Helpのバージョン情報を確認すると、
-------------
Mozilla 1.4b
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030407
-------------
と書いてあります。。
>>746
レスサンクス

どこみても1.4bが落とせないからちょっと焦ってた。
1.1(英語版)リリーーーーーーーーーース!
Aximpする前に、
regsvr32 mozctlx.dll
してやる必要ありますよね?
>>749
たぶんそうだと思います。
僕は他のGeckoコンポーネントを使うブラウザ(Delphi)をすでにインストールしていたので、
regsvr32が実行されていたのだと思います。
>>730のエラーが出るのはそのためでしょうか?
また、regsvr32を実行するレジストリのどこに登録されるのでしょうか?
Wnidowsには詳しくないので教えてください。

情報はページに反映させたいのと思います。
http://www004.upp.so-net.ne.jp/rcl/program/gecko/
以降Geckoの話はスレ違いなのでこっちでやりましょう。

Geckoベースのブラウザを作ろう。
http://pc2.2ch.net/test/read.cgi/tech/1023546699/
752名無しさん♯:03/04/10 07:21
近年まれに見る地味なリリースだな
>>753
派手にやるとそれに気づいたstandardユーザーが怒り出すからでは。
結局アップデートできないんでしょ。
VS.NET 2003(英語版)も出てますな。
756デフォルトの名無しさん:03/04/11 07:44
お前らもう少し祭れ!
Academic ユーザもショボーンですか
>>753
いつもホームページは後から更新だよ。
C++とソースコードレベルでほぼ互換なBinaryReader & Writerないですかね。
いちいち読み込み書き込みをC++に対応させるのが面倒なんです。
MS、学生対象に「テラリウム」プログラミングコンテスト
http://www.zdnet.co.jp/news/0304/11/njbt_02.html
【Terrarium】4世代目 最終局面 決戦は金曜日♪
http://pc.2ch.net/test/read.cgi/tech/1024319607/
Terrariumまだやってたのか・・・
C#の腕もあがったし、久しぶりにやってみるかな
Hippo.NET
http://hipponet.sourceforge.net/

Current features
・Client/server model
・Trigger build from remote clients
・Implements the build process proposed by Microsoft
・Automatic build number updates in AssemblyInfo files
・Build history information
・Current activity information
・Fully configurable
・Rich Windows Forms UI

Future features
・Multiple projects
・Event notification, eg. MSN Messenger style
・Scheduled builds
・Automatic builds after changes
(・∀・)ヒッポ!
Speculation about Microsoft's mysterious X#
http://techupdate.zdnet.co.uk/story/0,,t481-s2133275,00.html
765デフォルトの名無しさん:03/04/12 03:12
C#で、Winampみたいなタイトルバーのないアプリケーションを作りたいのですが、
どうしたらできるのでしょうか?
フォームのControlBoxプロパティをfalseに、Textプロパティをnullに。
やれやれvs.net 2k3 落とさないとな。
まあいいかmsdn回線速いしな。
Visual Studio Tools for Office Beta
http://www.microsoft.com/downloads/details.aspx?FamilyID=9e0b1b7c-4ab5-40d2-b4d9-5817ab0bc1e5&DisplayLang=en

リリースラッシュですな。
QuickStart入れるのめんどくさくなったね。
http://msdn.microsoft.com/netframework/downloads/sdkmsde/default.asp
まあ、数ヶ月もすればYukon版MSDEに置き換わるんだろうし。
interopにこだわったサイト
http://www.dotnetinterop.com/
772__多言語対応について__:03/04/13 23:03
質問があります。
C#に限った質問ではありませんが、メニューその他ラベルに表示する文字を
他の言語に切り替えるのはどのようにすればいいのでしょうか?
チェックつきメニューに言語を選択できるようにしておき、該当言語に
チェックをつけると表示が変わるのがありますが、1つ1つのコントロールごとに
if (mnuEnglish.Checked){
  control1.Text="Up";
  control2.Text="Down";
こんなぐあいで変更させるのですか?もっとうまい例があるのでしょうか?
OSや処理系のサポートがあるならそれを使う、なければ自分でがんばる、
が一般論かなあ。.NETだとリソースに埋め込むんでねーの、よくしらんけど
リソースに埋め込んでさくっとカルチャー切り替え。
776デフォルトの名無しさん :03/04/14 22:42
778776:03/04/14 23:22
WinError.h ミレ
英語版、えらくサイズが小さいんですが、1.0もこんなもんでしたっけ?
782デフォルトの名無しさん:03/04/16 05:55
C#にclass a{}
a* A;
a* B;
*B=*A;
みたいな*演算子のかわりはないのですか?
インスタンスのコピーとるときみんなどうしてるんですか?
Copyメソッド作って中にあるデータ全部コピーするんですか?面倒くさいじゃないですか?
*演算子ってなんだよ?(藁
784デフォルトの名無しさん:03/04/16 06:44
すいません、C#しか知らない人にはきいてません。C++も知ってる人がいてくれるといいのですが。
785名無しさん♯:03/04/16 07:19
>>782
IClonableを実装して、その中で MemberwiseClone() を呼ぶのが常套手段かと思われ。
786デフォルトの名無しさん:03/04/16 07:28
>785
やはりそのようにするしかないのですか。わかりました。どうもありがとうございます。
Deep Copyの場合はフィールドのCloneもお忘れなく。
788デフォルトの名無しさん:03/04/16 13:02
SharpDevelopでxxx.exe.manifest使わずに
XPスタイルを有効にする方法ってないでしょうか?
789デフォルトの名無しさん:03/04/16 15:39
Formをリサイズしたときに
MainMenuがちらつかない
ようにすることはできるのでしょうか?
>>789
どんな風にちらつく?
うちは全くちらつかないですが。
791デフォルトの名無しさん:03/04/16 15:57
英語版のSDK1.1がうまくインストール出来ないんですが。
SDK、Sample、Documentationの項目をチェックするところで、全部チェックしてるのに、
「Documentationだけチェックしてますね、SDKも入れて下さい( ̄ー ̄)」
って警告されてそこから先に進めないんですが、どうしたらいいでつか?
792デフォルトの名無しさん:03/04/16 16:03
793789:03/04/16 16:26
>>790

Form作成後に MainMenuのコントロールを配置してメニューに
テキストを入力(例 Test1, Test2, Help)。ビルドして
Formをはげしくリサイズすると、文字がちらついてしまう。

IEとかVS.NETのメニューはちらつかないけど、
普通のアプリはちらつくみたいだから
カスタムコントロールとかで作るしかないぽいか...。
>>788
リソースにmanifestを入れればいい。
795790:03/04/16 16:44
>>793
ためしにForm作成して確認してみたけど、平気だった。

画面のプロパティで「ドラッグ中にウインドウの内容を表示する」にチェック入れたり、
ResizeRedrawをtrueにしてるとか、リサイズごとにRefresh()またはInvalidate()呼んでるとか、
コレなら微妙にちらつくけど、それ程気になる物でもないし違うかね。

普通のアプリまでちらつくんじゃ、環境のせいではないかと言ってみたり。。
>>791
うん。おいらもそうなった。
でもね、.NET Frameworkアンインストールして、再起動。
Redistribute版1.1をとりあえず先にインストール
んで、から1.1SDKインストールしたらちゃんと入ったよ。
ついさっきだけど。
System Requirements

・Supported Operating Systems: Windows 2000, Windows Server 2003, Windows XP

・You must install the .NET Framework Redistributable Package version 1.1
 prior to installing the Microsoft .NET Framework SDK version 1.1.
ほんまや。ちゃんとダウンロードページんとこに書いてあるやん。
799デフォルトの名無しさん:03/04/17 00:38
>>794
早速やってみましたが、以下の2通りの方法のどちらもダメでした。

1)プロジェクトツリーの[リソースファイル]の右クリックでリソースの追加で
Manifestファイルを追加

2)[ファイル][新規作成][ファイル]で[MISC]カテゴリの[空のリソースファイル]
で作成したhoge.resourcesを上記方法でリソースファイルに追加、その後
リソースの編集ウインドウで右クリック[ファイルの追加]でManifestファイルを追加
(System.Byte[]型になっている)

Manifestファイルをexeのところにおいて置くとOKなので、Manifestが間違っている
わけではないようです。またコードはUTF-8で保存しています。
リソースへの追加の仕方を詳しく教えていただけませんでしょうか。
>>799
SharpDevelopは知らないがVSだと
ttp://www.microsoft.com/japan/msdn/thisweek/vbxp/vbxp3.asp

ちなみに1.1だと
Application.EnableVisualStyles();
でOK
801デフォルトの名無しさん:03/04/17 01:15
そもそも、
http://www.gotdotnet.com/team/windowsforms/any.exe.manifest.zip
ここにあるように、リソースタイプを指定したりはSharpDevelpでは
できないですよねー。謎だなぁ。
802デフォルトの名無しさん:03/04/17 01:23
>>800
あ、1.1ならその手があるんですね。
日本語もさっさと出してほしいなぁ。
英語版と日本語版の違いってヘルプだけ?
803デフォルトの名無しさん:03/04/17 06:38
テラリウムやってる奴いる?
>>799
Managed ResourceじゃなくてWin32 Resourceとして追加しないとダメ。
805山崎渉:03/04/17 15:13
(^^)
806デフォルトの名無しさん:03/04/17 19:14
age
初めてのC# 〜 覚え書き 〜
ttp://homepage3.nifty.com/midori_no_bike/CS/
808デフォルトの名無しさん:03/04/17 23:57
>>804
/win32resですよね。
どうもこれってSharpDevelopのIDEから指定できないみたいなんですよ。
プロジェクト設定のどこにもコマンドラインオプションを
手入力できるところがないという...。

で、コマンドラインでビルドしたらうまくいきました。
とりあえずSharpDevelop上ではあきらめます。
809名無しさん♯:03/04/18 21:32
遅レスで申し訳ないけど・・・、

>>785
> IClonableを実装して、その中で MemberwiseClone() を呼ぶのが常套手段かと思われ。

Design Guideline的にはNG。常套手段にしてはいけない模様。スマソ
http://blogs.gotdotnet.com/brada/commentview.aspx/984c2c2a-2c78-4ca2-b447-08fa7de9e6f3
>>800
> Application.EnableVisualStyles();
これってマニフェストなしでVisual Styleが有効になるってこと?
Win32アプリではできないのかな?
>>810
.NET FrameworkのAPIだってば・・・。
>>810
だから究極的にはどこかでAPIを呼び出してるのかと
レス先間違えた
>>811
814山崎渉:03/04/20 03:11
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
815山崎渉:03/04/20 03:46
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
>>812
ただ単にランタイムが代理で manifest ファイルを使ってるだけだよ。
v.1.1.4322 フォルダにある XPThemes.manifest というやつ。
このファイルを別の場所に移動すると Visual Style が利かなくなる。(藁
これまたすごい濃い内容ですな。
ttp://blogs.gotdotnet.com/cbrumme/
818デフォルトの名無しさん:03/04/20 22:16
System.Net.CredentialCacheのAddメソッドについて質問です。
認証必要なエロサイトから、ファイルをDLするプログラムを書いているのですが、
IEではアクセス可能なURLが、ソースで実行すると、401(認証されていません)の
エラーが返ってきます。
行1:NetworkCredential myCred = new NetworkCredential("UID","PWD");
行2:CredentialCache myCache = new CredentialCache();
行3:Uri uri=new Uri("エロサイト");
行4:myCache.Add(uri,"Basic", myCred);
行5:WebRequest req = HttpWebRequest.Create("エロ動画のURL");
行6:req.Credentials=myCache;
行7:HttpWebResponse res = (HttpWebResponse)req.GetResponse();
↑ここの行で、401が返る。
ユーザーID、パスワードは合ってます。ソースで、工夫の価値があるのは、
行4:myCache.Add(uri,"Basic", myCred);
の、"Basic"の場所だと考えたのですが、そもそも、ここの引数の値の意味が
HELPを見ても、全然分かりません。
ここには、他にどの様な値を入れる事が出来るのか、値の意味又は、他の設定値の
一覧等が載っている場所があれば教えて頂けないでしょうか?
宜しくお願いします。
>>818
とりあえず、入れられる値の一覧。
意味については、・・・簡潔に説明できる代物では・・・。

using System;
using System.Collections;
using System.Net;

class Test : IEnumerable {

  IEnumerator IEnumerable.GetEnumerator() {
    return AuthenticationManager.RegisteredModules;
  }

  static void Main() {
    foreach (IAuthenticationModule module in new Test()) {
      Console.WriteLine(module.AuthenticationType );
    }
  }
}

(実行結果)
Digest
Negotiate
Kerberos
NTLM
Basic
>>818
machine.configの

//configuration/system.net/authenticationModules に登録されてるやつ。
っていうか、CredentialCache使う必要あるのかな?
普通に req.Credentials = new NetworkCredential("UID","PWD"); だとどうなる?
>>818
そもそもそのサイトはBasci認証でいいのか?
401Responseの返答結果見てみろよ。
Digestというオチかな?
>>818
ちなみに複数返ってきてる場合はどれでもいいぞ
825818:03/04/20 23:51
>>819-824 レスありがとうございます。
>>819 Kerberosを見た時に、ちょっと意味がわかりました。認証方式の名前
なんですね。REDHAT入れる時に出てきますね。でも、何の認証方式かなんか、
まさか向こうは教えてくれないでしょうね。
>>820 ありがとうございます。今度見てみます。と、言いますか、なぜそんな
事まで知ってるんでしょう。凄いですね。
>>821 残念ながら、そのやり方でも同じエラーで終わりました。
認証では、そんな単純なコードでもいけるんですね。
>>822 すいません。「返答結果」の見方が分かりかねます。エラーオブジェクトのスタックは
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.HttpWebRequest.GetResponse()
でした。
>>823 それが、819さんの実行結果を入れてみましたが、全部駄目でした。
>>824 複数とはどこの事を指しているのでしょうか?

質問時には、ぼやけますので省略しましたが、このサイトが、
普通の認証サイトと違って、クセのあるサイトです。
>>825
>「返答結果」の見方が分かりかねます。
エラーメッセージ関係ないよ。そのサイト自体が送ってきてるデータ。

telnet でHEADアクセスしてHTTPレスポンスヘッダ見るのが簡単
WWW-Authenticateっていう行
827818:03/04/21 00:05
普通のエロサイトの場合は、上記のコードでも取得出来るのですが、
このサイトの場合、ブラウザからログインすると、ログイン者のグローバル
IPを用いた動的なURLを作成します。
ログインすると http://www.herfirstbigcock.com/bonus/
そして、エロ動画のURLは、
http://50AoOPLep7X0s:cbOQGj4FJ0frc@グローバルIP/hfbc/charisma/videos/index.html#
といったURLに代わります。
このURLをIEのアドレスバーで、直接キックすると、認証サイトらしくなく、
認証ダイアログが上がらずに、MediaPlayerが立ち上がって、エロ動画を見れます。
しかし、ソースでやると、401がでます。勿論、CredentialCacheを指定しない
ソースでも試しましたが、駄目でした。
一番の疑問は、動作的には、IEのアドレスバーURLを打ち込む事と、上記ソース
から実行する場合と、サーバーには同じものが飛んでいっているはずなのに、
なぜ、ソースからは、認証されないのか・・・。ですね。
>>827
リクエストヘッダにHostの設定とかやってんの?
>>827
> サーバーには同じものが飛んでいっているはず
どうやって確認したの?
パケットキャプチャしてみた?
実はクッキーが入ってたりしない?
830818:03/04/21 20:44
>>826
アドバイスありがとうございます。
TELNETは、単にUNIXサーバーとのやりとりにしか使ったことが無かったので、今日
仕事中に色々調べたり、実験してたのですが、例えば
telnet www.yahoo.co.jp 80 としても、IPが違うセグメントなので、ログイン
出来ません。そこの部分がまだ理解出来ていないので、取得結果はもう少し
待ってください。
アドバイスの内容は良く分かります。職場で開発中のWEBシステムの、APサーバーに
やってみたら、上手くいきました(W
>>830
プロキシを使ってるなら
telnet proxy-server proxy-port
な。で、
GET http://www.yahoo.co.jp:80/ HTTP/1.0
見たいな感じで。
832818:03/04/21 23:22
>>828 まだその段階までこぎつけていません。もう少々お待ち下さい。
>>829 レス内容を見た瞬間、「ああ、これや。」と、気づきました。
そうですね。私の中で、ブラインドになってました。
勿論、パケットキャプチャは、生まれて一度もした事が無いですし、
やろうともした事無いですし、その言葉自体、初めて耳にしました。
でも、今回を機に、やってみたくなりました。
ソースは以下の様に変更しました。
行1:HttpWebRequest req = (HttpWebRequest)WebRequest.Create(エロ画像のURL);
行2:req.Credentials=myCache;
行3:req.CookieContainer = new System.Net.CookieContainer();
行4:req.CookieContainer.Add(new Cookie("?","?","?","?"));
行5:HttpWebResponse res = (HttpWebResponse)req.GetResponse();
つまり、行4で出来ているクッキーの内容をぶち込めばいいと考えました。
(クッキーは確かに出来ていました。)
ただ、クッキーは、文字もありますが、数字の羅列なので、意味がわからず、
>>830のレスを打ってから、クッキー周りの調べものを、せっせとしてました。
飯も食ってましたが。
そして、サイトの「猿でも分かるクッキー」系のサイトで、ゼロから
勉強したのですが、IEのクッキーは、どうも、.txtと書いている割には、
数字で値の部分を変換している様に見えます。
このクッキーの値を読み解く事は、セキュリティがらみで無理なのでしょうか?
833818:03/04/21 23:23
>>831
レスありがとうございます。明日、職場で試します。おやすみなさい。
Don Box氏に続いて、Chris Sells氏までとうとうMS入り。
そのうちDevelopMentor丸ごと引き抜かれるのでは。(w
>>827
http://50AoOPLep7X0s:cbOQGj4FJ0frc@グローバルIP/
このURLの50……sがユーザIDで、cb……rcがパスワードなのだが……
>>818
そのエロサイトって、ダウンロードURLからリダイレクトしてない?
認証はリダイレクト先には適用されないから、
リダイレクトを検出するようにしないとハマるよ。
# つか、同じようなもの作ろうとしてハマった。
838デフォルトの名無しさん:03/04/22 19:56
MSからのメールがキター!

> ===== Visual Studio .NET 2003 ご提供のお知らせ====
>
> MSDN サブスクリプションにご加入いただき、誠にありがとうございます。
> お客様の MSDN サブスクリプション有効期限はすでに満了しております。
> 通常であれば、MSDN サブスクリプション有効期限が満了後に提供を開始した
> ソフトウェアは入手することができません。
>
> このたび、MSDN サブスクリプション有効期限が満了している皆様にも特別に、
> 6月30日までにお申し込み Web サイトよりご登録いただければ、Visual Studio
> NET 2003 のみご提供する予定です。ただし、ご提供時期は未定です。
>>838
スレ違い
そ、そんなバカな!!
841818:03/04/22 21:26
>>835
・・・・。そうですね。URLは深いですね・・・・・。
結局、>>835さんのアドバイスに基づいて、ソースをいじくると、成功しました。
成功したソース↓
System.Net.NetworkCredential myCred = new NetworkCredential("92IEyS0XzWmZM","8cADnTEy3g52w")
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://グローバルIP"), "Basic", myCred);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://92IEyS0XzWmZM:8cADnTEy3g52w@グローバルIP/hfbc/charisma/photos/images/charisma_HFBC_001.jpg");
req.Credentials=myCache;
HttpWebResponse res = null;
res = (HttpWebResponse)req.GetResponse();

まず、このサイトは、ログインすると、私に対して、別のユーザーID、パスワードを
設定し、それが、この場合、UID=92IEyS0XzWmZM PWD=8cADnTEy3g52w
となります。で、これをCredentialCacheに叩き込みます。
次に>>836さんのアドバイスに絡んで来るのですが、確かに、このサイトは、
IEでやると、リダイレクトをかけています。さらにクッキーでExpiredを入れてるみたいで、
暫くしてから、コンテンツのURLを見ると、http://ユーザー:パスワード@グローバルIP
とはなっておらず、http://グローバルIP〜になっており、IEで直で叩くと、知らないIDがデフォルトで入っている
パスワード認証画面が出てきて、アクセスできなくなります。
・・・。ほんま、エロサイトですよね?なんで、そこまでするかな。
WEBサイトは、仕事で作っていますが、他人が作ったWEBサイトを逆に辿ってみて、
自分のWEBに絡む無知さが良く分かりました。
皆さん、色々アドバイスして頂き、ありがとうございました。
>>842
for win32だったら買うのにな。
見た感じvs.netより激しく(・∀・)イイ!! ってとこ無いみたいだけど。
>>842
どうでもいいが、ツールパレットがカラフルで気に入った(w
>>842
ツールパレット禿しく(・∀・)イイ!!
MS製なんだか使いにくかったんだよなぁ
終わったな・・・
847デフォルトの名無しさん:03/04/23 22:35
質問です。
いま、情報管理部にいて、各部署の端末にファイルを転送して転送後にメッセージを表示する
アプリケーションを社内用に開発(簡単なユーティリティとして)しています。

listboxで端末を選択後、別のlistboxにドラッグドロップされたファイル名を
拾い、SHFileOperationでファイルコピーしています。ログオンはAdministrator
のパスワードをアプリに持っており(外部xmlファイル内にdesで暗号化して)、
WNetAddConnection2A apiで送信先端末にログオンした後ファイル送信(コピー)、
NetMessageBufferSendでメッセージを送信、接続切断。という間抜けな処理
をしています。

これをログオンせずにWNetAddConnection2A apiなしでソケットを使って
行うにはどのようにすればいいのでしょうか?
上の方法では送信先にサーバアプリケーションが無くても一方的にファイル送信後
メッセージ表示ができて便利なんですが、メッセンジャーサービスで表示させるため
受信メッセージをテキストで残す事が出来ません。

IPメッセンジャーのようなことがしたいのです。しかし会社ではIPメッセンジャーの
インストール許可がおりません。作れと言われました。

よろしくご指導願います。
>>847=マルチに関わるとろくなことがない。放置で。
ネットワークプログラミング相談室 Port5
http://pc2.2ch.net/test/read.cgi/tech/1040220302/785
849847:03/04/23 23:34
>>848
>マルチに関わるとろくなことがない。
そうかな?
MSDNサイトリニューアル。慣れない・・・。
WindowsUpdateに1.1が。
852デフォルトの名無しさん:03/04/24 12:19
853bloom:03/04/24 12:26
英語版SDK1.1って、CDRに焼いて別のHDDにもインストールしようとするとエラー出るのね。
ファイルが壊れてるとかなんとか。HDDごとにダウンロードしろと?
つーかファイルが壊れてるんじゃないの?焼いたときに。
csc /? ってやっても英語なんですけど・・・。ほんとに日本語版?
日本語版redistでも結局langpack入れないと駄目らしい・・・。
一応これも。

Microsoft Visual J# .NET Version 1.1 再頒布可能パッケージ Language Pack
http://www.microsoft.com/downloads/details.aspx?familyid=BE368516-FDCD-47C7-BC63-EFE92E895791&displaylang=ja
Language Packが正式リリースされたのはまだ日本語版だけらしい。
それよりSDKのほうを早くしてくれ・・・
860デフォルトの名無しさん:03/04/26 00:57
1.0でビルドしたバイナリは1.1ランタイム上で動かないのですか?
試したくても試せないのです。
動きます
運が良ければ
863デフォルトの名無しさん:03/04/26 07:50
DataSet.ReadXml(filename)って感じで400件程度の簡単なxmlファイルを
読み書きさせてみたのですが、猛烈に遅いです。800MHzのPCで45秒くらい。
1レコードの項目数は8個くらいしかありません。
DebugからReleaseにしても時間は変わらず。
同じファイルをExcelに読ませてみたら5秒くらいでした。

そういうものなのでしょうか?
そういうもんです。
865デフォルトの名無しさん:03/04/26 07:58
>>863
xlsファイルをcsvに変換して、Excelに読み込ませてみましょう。
866デフォルトの名無しさん:03/04/26 08:10
ぬるぽ ガッ
867デフォルトの名無しさん:03/04/26 08:20
フォルダに対して
NTFSのアクセス権
(ユーザー単位で書き込み・読み込みを制御できるやつ)

を設定したいのですが
どのAPIを使えばいいでしょうか?
868863:03/04/26 10:36
http://www.dotnet247.com/247reference/msgs/18/93676.aspx
こんなの見つけました。
DataSet.WriteXml(filename, XmlWriteMode.WriteSchema)とかすると、
それを読むときに速くなるらしいです。
まだ試してませんが…。
869デフォルトの名無しさん:03/04/26 23:37
>>863
おーい、早くなったか?
>>860
指定しなければ、1.1の入った環境でも1.0で動作するけど、そのこと?
#1.1だけ入ってる環境だとどうなんだろ?

とりあえずxxxx.exe.configで1.1で動作するように指定すれば1.1で動くはず。


871863:03/04/27 09:42
月曜日に会社で試します。
自宅のPCにはVSを入れてないので…。
872デフォルトの名無しさん:03/04/28 00:12
>>870
>#1.1だけ入ってる環境だとどうなんだろ?
↑ここが激しく知りたい・・・
By default, upgrade behavior for Windows Services, Windows Forms,
and console applications installed locally is as follows:

A version 1.0 application installed on a system with only version 1.1 of the .NET Framework
present will try to run against version 1.1 unless the administrator explicitly disallows this behavior.

A version 1.0 application installed on a system with both 1.1 and 1.0 of the Framework
will run against 1.0 unless an administrator changes this behavior.

A version 1.1 application installed on a system with both 1.1 and 1.0 of the Framework
will run against 1.1 unless an administrator changes this behavior.*

A version 1.1 application installed on a system with only 1.0
will not run unless an administrator changes this behavior.*

ttp://msdn.microsoft.com/netframework/productinfo/versioncomparison/default.aspx
>>873
VBのランタイムとあんまかわらんのかも・・・
両方入れてないとだめとはね。面倒くさ。
>>874
1.0でしか動作しないアプリだったら両方入れる必要があるかもしれないが
大抵のアプリは1.0のSDKで作っても1.1で動くのでは
876デフォルトの名無しさん:03/04/28 17:41
SOAPメッセージをトレースしたいのですが、(テキストに落としたい)
みなさんどうやってます?

MSSoapT(MS SOAP Toolkitのトレースツール)を試してみたのですが、
.NETだとうまくいかなくて。。

SoapExtensionを使ってコードを書けば出来たのですが、
何かツール等あれば教えてください。

よろしくお願いします。
>>874
そんなことどこにも書いてない。
>>873はこれ以上無いってくらいまともな対応。
英語ぐらいよめ。

Dll Hellみたいなことにならないといいね。
完全を期すなら両方入れとけってことでしょ.
少しでも不安あるなら[VBと同じ]って言われても仕方ないんじゃないの.
880879:03/04/28 20:10
>>879
ごめん、煽りじゃないんですよ.不安なもので・・
881863:03/04/28 21:22
XmlWriteMode.WriteSchema、試してみました。
結果は全く変わらず。1秒も速くなりませんでした。
しょうがない、XMLはあきらめるか…。
ていうか、この速度じゃ.iniファイル代わりにしかならないのでは?
これでデータを保存したり送受信したりするようなアプリやシステムを
実際に作ってみた人の意見をきぼんぬ。
.net remotingでファイルの転送って出来るの?
>>879
> 少しでも不安あるなら[VBと同じ]って言われても仕方ないんじゃないの.
それはすべてのランタイムライブラリ、DLLやsoが
VBと同じと言っているのと同じだぞ。
>>878
英語読んだか? あれならDLL Hellにはなりそうもないね。
簡単に要点だけ訳してよ。
873のやつ?
1.1のみの環境で1.0用アプリを動かすと、1.1のランタイムで動く。(*)
1.0と1.1の両方入ってる環境で1.0用アプリを動かすと、1.0のランタイムで動く。
両方入ってる環境で1.1用アプリを動かすと、1.1のランタイムで動く。
1.0のみの環境で1.1用アプリを動かすことはできない。
(*)のところでDll Hellが起こるかも!?
>>886
でしょ。俺の英語力のせいじゃなかったんだな。
>>886
そういうのは DLL Hell とは言わない罠
DLL Hell とは DLL の新旧バージョンの違いに依存しているのに
切り分けが出来ないことが問題。

しかし .Net では切り分け出来るようになったので
DLL Hell とはならない(はず)。
889デフォルトの名無しさん:03/04/29 02:17
Configで、1.0のランタイムを使うように指示しておけば、共存環境でも
1.0のランタイムが使われる、と。
>>888
うん、言わないね。
.NETの対策はいい方法だよ。
これ以上のものは無いでしょ。

>>887
英語以前に、DLL Hellに対して知らなすぎと言うことがばれただけだね。
でだ。.NET 1.2 や 1.3 が出たときにどうなるか。なんだな。
.NET Framework 以外にも 3rd party アセンブリは出てくるわけだし。

v1.0 のバイナリが再コンパイルしなくても v1.1 のみの環境で動くのは
「たまたま」MS が v1.1 に v1.0 用の互換レイヤーを入れているからに過ぎない。

本来、アプリケーションに v1.0 のアセンブリを同梱させて配布するべきところなんだよ。
v1.1 が提供していない v1.0 のアセンブリを使っている場合には古いアセンブリを入手
する必要がある。

いわゆる DLL Hell と異なり、プログラマーか状況をコントロールできるようになったけど、
それだけで、本質的な問題である「バージョン違いの共有ライブラリの管理」そのものは解決していない。
一歩前進。といったところか。

何で、静的リンク/単体 EXE を作れるようにしなかったんだろう。
>>891
1.2でも特に問題ないでつよ。
> 何で、静的リンク/単体 EXE を作れるようにしなかったんだろう。
はぁ? これが出来ないからこその、再度倍再度導入なんですが。
今までのアプリなら、静的リンクで配布サイズを最小限に出来た。
共通部分はDLLでと思うなら、配布サイズは大きくなるがDLLを添付して、
アプリのフォルダにDLLを置くことで、DLL Hell を回避できた。

.NET Framework は静的リンクは出来ないし、サイズがでかくて
配布もきついしアプリのフォルダに置くのもきつい。
苦肉の策として、サイドバイサイドが不可欠だったわけだ。

それでもユーザーが、全てのバージョンの.NET Framework を
インストールしていなければ、開発者としては安心できないよな?
>>893
>再度倍再度

うーん、絶妙な当て字だな。
倍倍でファイルの量が増えていくと。

あるライブラリがあって、そのバージョンがあがる場合、
下位互換を保ちながらあげられる場合と下位互換を保つことなくあげられる場合がある。
下位互換を保つことなくあげられる場合、下位バージョンのライブラリで動くプログラムのために、
下位のライブラリが必要になる。(下位互換性がある場合は上位のライブラリのみでOK)

つまり、この場合、Ver2.0が出ようがVer3.0が出ようが、
あるプログラムがVer1.0を前提に作られたものの場合、Ver1.0のライブラリが必要になる。

とりあえず必要なライブラリ等は全部配布するという方針であれば、
自分のプログラムは動く、他人のプログラムに悪影響は与えないわけだね。
>>895
実際には、全てのプログラムがサイドバイサイドの指定をしているとは限らないわ
けだよな。で、自分のプログラムをインストールしたユーザーが、今まで動いてい
サイドバイサイドを指定していないプログラムが動かなくなることもある。「お前
のプログラムが悪いんだろ!」とかなるかもな。
> v1.1 が提供していない v1.0 のアセンブリを使っている場合には
> 古いアセンブリを入手する必要がある。
具体的に何のことですか?
>>897
無くなることはないわな、互換性の問題だろ。
> .NET Framework 以外にも 3rd party アセンブリは出てくるわけだし。
これもよくわからない。
再度倍再度で問題無いだろ
予想の話はヤメレ
実例をあげてくれよん
901878:03/04/29 10:39
DLL Hell"みたいな"ことに"ならないといいね"って書いたのに。チッ
新バージョンを入れても今動いてる環境を壊さないというのがSxSの趣旨でしょ?
新バージョンが旧バージョンと下位互換があるかはまったく別の話。
>>896
> で、自分のプログラムをインストールしたユーザーが、今まで動いてい
> サイドバイサイドを指定していないプログラムが動かなくなることもある。

具体例をどうぞ。
>>903
たんに、新しいバージョンを見るようになるって話じゃないの?
正直、再度倍再度より静的リンクサポートしてほしいね。
配布時に、ライブラリの添付なんて考えなくて良くなるしさ。
>>905
何にリンクしたいんだ?
907名無しさん♯:03/04/29 19:23
もそもそ
これってMarshalByRefObjectだから使えるテクってこと?
910名無しさん♯:03/04/29 20:59
>>909
そです。Remotingのインフラを使ってるので。
.netランタイムがあれほどでかくなかったら、
どうぞ全バージョン入れてくださいってユーザーにお願いできるんだがな。
最近1.1を入れるべきか問い合わせのメールがたくさん来てうんざりしてる。
今回のバージョンアップで開発者もユーザーも混乱してるのは確か。
このスレで1.1のみだと動作が危ういと言うのがわかっただけで収穫だけど、
バージョンアップのたびにこんな思いしないといけないなんていやだ。
何かJavaみたいになってきたな。困ったもんだ。
913デフォルトの名無しさん:03/04/29 23:37
FileOpenDialog とかを UNC や ネットワークドライブ割り当てで使うと
SecurityException が出るんですが、どうしたらいいんでしょうか?

Application.StartupPath でもエラーが発生したんですが、
こちらは Directory.GetCurrentDirectory() を使うことで、
ネットワーク上のパスも取得できるようになりました。
914デフォルトの名無しさん:03/04/29 23:39
すいません。FileOpenDialog ではなく、OpenFileDialog です。
>>911
とりあえず.NETが使われているのは分かった。
1.0で作っている場合、その他のバージョンで動作検証してない場合は
1.0を入れてください。その他のバージョンを入れても問題ありません。
と言えばいいのでは?
プログラムで指定していなければ.NET Framework Configurationで
指定すれば済む話。エンドユーザーにそれをさせるのが妥当かという
問題は残るかもしれんが。
なんだかなー再度倍再度いまいち
.NET Frameworkのバージョンと再度倍再度は関係ないぞ
London Stock Exchange
Subsecond Delivery of Stock Market Information with Windows Server 2003 and Visual Studio .NET 2003
http://www.microsoft.com/resources/casestudies/CaseStudy.asp?CaseStudyID=13911
920デフォルトの名無しさん:03/05/01 13:44
くだすれの方にも書いたのですが、こちらで聞いた方がよろしいかと思ったのでお聞きします。

初心者的な質問で申し訳ありませんが。
データベースにPostgreSQLを使用してOleDb接続でアクセスすることは可能なので
しょうか?
C#でのPostgreSQLへの接続方法を探してみましたが、見つかりませんでした。
データベースは既にできております。
宜しくお願い致します。

OS Windows2000
システムpostgres7.3
ホストbsd
テーブル名 f10
>>920
Monoのアセンブリでも使ってみたら?
http://www.go-mono.com/oledb.html
>>920
MLで答えられてたよ
923920:03/05/01 14:13
お返事ありがとうございます。
上記サイトのサンプルソースを実行してみたところ
'PostgreSQL' プロバイダはローカルのコンピュータに登録されていません
と言うエラーが出ました

OLEDBプロバイダを新しく追加するということなのでしょうか?
924デフォルトの名無しさん:03/05/01 14:55
PostgreSQLやMySQLのネイティブな.NET Data Providerってのもあるみたいよ。
Core LabのMySQLのやつ試したことあるけどDataGlidに一覧だしたりは普通にできた。

http://www.go-mono.com/postgresql.html
http://www.crlab.com/
925920:03/05/01 15:06
>>924
ありがとうございます。
上記サイト見てみます
何気にMonoもやるな
927デフォルトの名無しさん:03/05/01 21:48
ネイティブなDLLを使用する際にDllImportを使用して以下のようにしているのですが
DLLの位置を自分で指定できるようにするにはどのようにしたら良いのでしょうか?
どうかよろしくお願い致します

[DllImport("x.dll")]
 public static extern void DllFunc( int i );
>>927
"x.dll"の部分をフルパス指定すればいいのでは?
929927:03/05/01 22:06
>>928
御返信有難うございます。説明不足な部分があり申し訳ありません。

現在、とあるソフトのユーティリティー作成用のDLLを使用しています。
そのDLLがソフトと同じ階層にある為、自分のプログラム側からソフトのディレクトリを
指定できればと考えています。

どうかよろしくお願い致します。
930927:03/05/01 22:10
肝心な部分が抜けてしまっていました。

ソフトがどこにインストールされるか分からない為、直接フルパス指定が
できませんでした。
ソフトと同じ階層に置くと、ユーティリティーを多数使用している場合
非常に整理が大変かと重い、別フォルダに置ければと思いました。

どうかよろしくお願い致します。
C#って面倒くさいんだなあ
>>931
別に面倒くさくないよ。Cと同じやり方もできるしさ。
>>929
Attributeはコンパイル時に固定値を埋め込むものなので、
実行時にプロパティを変えるなどの芸当は残念ながらできません。
934927:03/05/01 22:52
>>933
Attributeとはそういう物だったんですか。勉強不足でした_| ̄|○
>>932さんの発言を見てLoadLibraryを使える?と思ったので、
そちらの方で試してみたいと思います。
ヒント有難うございました。
結局 .NET 1.0 のアプリにはランタイム1.0を、
1.1アプリにはランタイム1.1があればいいって
ことなんですよね?
いいじゃん、これ。

なんでDLLヘルみたいとか、SxSとかって話になるのかわからん
馬鹿だから。
結局VBランタイムと同じか。
ということにしたいのですね
939デフォルトの名無しさん:03/05/02 02:17
>>930
相対パスで指定するとか、Configファイルでサブディレクトリの指定が効くかも。
後者は、マネージドDLL用なので、アンマネージで効果あるかわからんけど。
結局DLLヘルと同じか。
ということですね
942デフォルトの名無しさん:03/05/02 03:53
ぜんぜん違うけど。
ということにしたいのですね
粘着が一匹いるな
分かりやすい自演だなあ
>>942
わざわざ上げてる、こいつのこと?
粘着が二匹
キモッ
>>943-947
20分もかけて何自作自演してるの?
いつもはこの時間に書き込みなんて無いのに
こういう変わったことするからすぐばれるんだよ。まぁガンガレ!!
>>948
お前が一番長文でガンガってるな(´∇`)ケラケラ
>>949
釣れた!
>>950
遅!!!
夜中中ずっと粘着してたみたいだな(w
>>952
お前は一人で徹夜で粘着かもしれないが
俺は今起きたところだ
いや〜。レスが早いのは たまたま だったんですなぁ(w
くやしかったら、泣いてもいいよ。
>>954
誰が泣くかよ。ばーか。
涙目(w
>>955-956
自演バレバレ(w
>>954-957
恥ずかしいからその辺でやめてくれ・・・
Office XP や DevStudio で使われてるメニューのUIを実現する方法がわかりませぬ。
メニュー以外はmanifest ファイルでUI変更できたのですが・・・
960デフォルトの名無しさん:03/05/02 11:08
>>959 おはよう

1. ttp://www.dotnetmagic.com/
2. ttp://www.codeproject.com/cs/menu/
3. ttp:/www.infragistics.com/projects/toobars.asp?sec=1
4. ttp://www.devexpress.com/products/net/xtrabars/index.asp

1. はフリー。その他VS.NETみたいなタブなんかもある
2. はフリー。ただしユーザー登録をしないとダウンロードできない。
ただし、ほかのライブラリも充実しているので、必見。
3,4. はお金を払って購入する製品。ただし、ライブラリ製品そのものが
かなり充実している。

こんな感じでいい?
961bloom:03/05/02 11:13
962名無しさん♯:03/05/02 11:28
963デフォルトの名無しさん:03/05/02 15:16

拾ったソース中に、文字列をバイト形式にしてファイル出力する部分があるのですが、
日本語を出力しようとするとエラーになります。
マルチバイト対応にするにはどうすればよいのでしょうか?

↓該当コードはこんな感じですです。

char[] chars = this.ToString().ToCharArray();
for ( int i = 0 ; i < chars.Length ; i ++)
{
fileStream.WriteByte (Convert.ToByte (chars[i]));
}
>>963
string text = "あいうえお";
byte[] bytes = Encoding.Default.GetBytes(text);

fileStream.Write(bytes, 0, bytes.Length);

これじゃだめ?
というかエラーメッセージを出してくれないと…。
965963:03/05/02 19:40
>>964
教えていただいたコードでエラーはなくなりましたが、アスキーデータとして
出力されているようで、目的は達成されませんでした。
Encoding.Default.GetBytesではConvert.ToByteのような変換処理が行われないのでしょうか?

元のコードでのエラーメッセージは↓です。

>'System.OverflowException' のハンドルされていない例外が mscorlib.dll で発生しました。
>
>追加情報 : 符号なしバイト型に対して値が大きすぎるか、または小さすぎます。

ちなみにエラー発生時の chars[i] は 'M'(65325)でした。
>>965
ShiftJISなら、Encoding.GetEncoding("shift-jis")
Unicodeなら、Encoding.Unicode

ていうか、

>>ちなみにエラー発生時の chars[i] は 'M'(65325)でした。
>>符号なしバイト型に対して値が大きすぎるか、または小さすぎます

byteは0から255までだから、日本語を1byteには変換できない
後はヘルプ見てね
967959:03/05/02 22:09
960 さん、ありがとうございました。
要は自分でがんばって描画しろ、ってことなんですね・・
なぜか突然TextBoxからエラーがでます。
キーを入力したり、サイズを変更したりすると発生し安いようです。
ただTextBoxを貼り付けているだけなんですが、一体何が原因なんでしょうか。

************** 例外テキスト **************
System.NullReferenceException: [Resource lookup failed - infinite recursion detected. Resource name: Arg_NullReferenceException]
at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
at System.Windows.Forms.Control.DefWndProc(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
at System.Windows.Forms.TextBox.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)
ZIPやらの解凍圧縮を実現させるのはどうしたらよいんですか?
>>969
J#で java.util.zip.* を使うとか、↓とか。
http://icsharpcode.net/OpenSource/SharpZipLib/
× J#で
○ J#の

まあ、言語は何だっていいんだけどね。(w
J#のランタイムは標準のランタイムとは別途インストールする必要がある罠
900 過ぎてからも長持ちするスレ駄なー
974JGreener:03/05/06 11:34
C#でVectorとかコンテナを作りたいのですが、
どこの名前空間にあるのですか?
ネットで調べてもよく分からなかったので(^^;
よろしくお願いします。
化け猫の一人称が猫とか言っているのを見ると寒気がする
>>975
急にどうしたんだ(w
誤爆か?
978デフォルトの名無しさん:03/05/09 15:07
プログラムを実行してる時に
なぜかマウスカーソルが砂時計マークになっているのですが。

実行はちゃんとされます。
979デフォルトの名無しさん:03/05/19 19:41
ん?どした?活気がねえな。
2chに親しんでいる人間は、950を越えたスレを、1000取り以外の目的で上げない。
981デフォルトの名無しさん:03/05/19 19:47
>>978
バグじゃないのか?一種の。
他、処理がカーソルに回っていないとか。
どっちにしろ、.net側の問題だと思われ
>>978
forとかwhileでずっと処理回しっぱなしにしているんじゃないのか?

timerイベントで書きかえれるのならそのほうがいいな。