C♯相談室 Part31

このエントリーをはてなブックマークに追加
434デフォルトの名無しさん
【テスター募集】名も無きP2Pソフト開発スレ Part1
http://tmp6.2ch.net/test/read.cgi/download/1146675993/

このソフトc#で作られてるらしいが、おまえらどうよ?
435デフォルトの名無しさん:2006/05/04(木) 22:30:33
どう、って言われても感想はない
436デフォルトの名無しさん:2006/05/04(木) 22:34:24
ファイルごとにusingを書かなければいけないのが面倒くさいです。
namespace単位でusingを有効にすることはできないんですか?
437デフォルトの名無しさん:2006/05/04(木) 22:34:56
本職のプログラマが見て、このソフトって厨房レベルなの?
このスレだと何かしら意見でると思ったんだが
評価できるレベルにも達してないってことかw
438デフォルトの名無しさん:2006/05/04(木) 22:37:31
>>434

public static string GetSpace(int Count)
{
 string text1 = "";
 for (int num1 = 0; num1 < Count; num1++)
 {
  text1 = text1 + " ";
 }
 return text1;
}

こんなんありますが・・・

いろいろ丸見えだけど大丈夫なのかね
439デフォルトの名無しさん:2006/05/04(木) 22:42:38
>>438
ワロスw初心者丸出しのコードだな、おいw
440デフォルトの名無しさん:2006/05/04(木) 22:48:03
>>438
これはびっくり
441デフォルトの名無しさん:2006/05/04(木) 22:51:15
MainFormが肥大杉だお
デザイナで弄くる時に大変そうだお
442デフォルトの名無しさん:2006/05/04(木) 22:58:09
せめてStringBuilder使ってくれよw
443デフォルトの名無しさん:2006/05/04(木) 22:59:03
>>438-439
おまいらならどう書く?
444デフォルトの名無しさん:2006/05/04(木) 23:01:18
>>443
僕にはわかりません。
445デフォルトの名無しさん:2006/05/04(木) 23:06:56
>>442
作成する文字列の長さがあらかじめ分かっているのに
無駄にStringBuilderつかってるところもあったよ
446デフォルトの名無しさん:2006/05/04(木) 23:10:07
>>445
いや、capacity指定すれば大してかわらんし。
447デフォルトの名無しさん:2006/05/04(木) 23:12:46
.NETアプリってとりあえずReflectorで中身見ちゃうよな
448デフォルトの名無しさん:2006/05/04(木) 23:14:07
>>446
いや、してないし。
449デフォルトの名無しさん:2006/05/04(木) 23:15:55
ダウソ板から来ました!

屑ども死んでください><
450デフォルトの名無しさん:2006/05/04(木) 23:18:14
GetNodeStateはなにやってるんだろう
enumじゃいけないのかなあ
451デフォルトの名無しさん:2006/05/04(木) 23:30:08
ダウソ板からきたじょ

くっせー板www
452デフォルトの名無しさん:2006/05/04(木) 23:31:10
まぁゆっくりしてけ。
453デフォルトの名無しさん:2006/05/04(木) 23:31:14
(・∀・)カエレ!!!
454デフォルトの名無しさん:2006/05/04(木) 23:32:21
>>452
タイラント先生!
455デフォルトの名無しさん:2006/05/04(木) 23:33:51
せめてdotFuscateくらいしてればこんなに叩かれまいに。
456デフォルトの名無しさん:2006/05/04(木) 23:35:06
ではゆっくりと帰ります
457デフォルトの名無しさん:2006/05/04(木) 23:43:20
>>456
おまえおもしろいな
458デフォルトの名無しさん:2006/05/04(木) 23:44:28
やっぱこうやってすぐ中見えちゃうからみんなC#やりたがらないのかな。
C#でやるならソース公開する前提でやらないと
459デフォルトの名無しさん:2006/05/04(木) 23:45:56
>>458
ソース出すっていってるよ
460デフォルトの名無しさん:2006/05/04(木) 23:59:40
あほらしいよな、ソース覗き放題ってのは。
プログラマの価値を失わせることになる。
C#でつくったものは公開したくない。
461デフォルトの名無しさん:2006/05/05(金) 00:08:35
>>455
うまい技術は盗まれるが、糞な技術は盗まれる心配がないという点では、
最良な書き方なのかも。ある意味。

と、技術のない人が言ってみるテスト。
462デフォルトの名無しさん:2006/05/05(金) 00:11:49
敢えて糞に書く、か。
自動糞化ソフトとか作ればいいのか?
463デフォルトの名無しさん:2006/05/05(金) 00:12:50
>>460
パクらせておいて、著作権侵害で請求する方が金になる場合は別かもしれないぞ。
パクったコードも見えるわけだから。
464デフォルトの名無しさん:2006/05/05(金) 00:28:44
>>433
Read の返値で判断した方が良かったと思う
465デフォルトの名無しさん:2006/05/05(金) 00:32:35
とりあえず>>434内のメソッド、
ループはRじゃなくてL

466デフォルトの名無しさん:2006/05/05(金) 00:51:53
明日は我が身になりそうで怖いな。
FuscatorのためにもやっぱStandard買おう。
467デフォルトの名無しさん:2006/05/05(金) 00:56:04
standerdならdotfuctorついてるんけ?
468デフォルトの名無しさん:2006/05/05(金) 01:14:09
>>443
43[89]じゃないけど書くなら
public static string GetSpace(int Count)
{
 return new String(' ', Count);
}
とか。
469デフォルトの名無しさん:2006/05/05(金) 01:24:53
わざわざメソッド作るまでもないじゃんw
470デフォルトの名無しさん:2006/05/05(金) 01:27:35
目欄、目欄!
471デフォルトの名無しさん:2006/05/05(金) 01:29:59
ただ、GetSpaceって言いたかっただけちゃうんかと
472デフォルトの名無しさん:2006/05/05(金) 01:44:00
空白を指定数分ほしくなるようなことってあるか?
PadLeftとかは使うけど。Formatもあるし、いらんだろ
473デフォルトの名無しさん:2006/05/05(金) 01:45:31
>>469
いやそれはそうだけど元コードの中の人が
わざわざ作ってたからそれに倣ってみただけ。
474デフォルトの名無しさん:2006/05/05(金) 01:50:40
あの板で始めたのが失敗だったな。
こっちだったら……

いくらタコでも本人の熱意があれば
助ける奴もでてきただろう………………か?
475デフォルトの名無しさん:2006/05/05(金) 01:52:33
だなぁ…でも本人は目立ちたがりやっぽいしこっちには来ないんじゃないか?w
476デフォルトの名無しさん:2006/05/05(金) 01:57:21
ちょうどこの板に C# 第三のスレ(タイトルからしてネタスレ)があったんだがな。
477デフォルトの名無しさん:2006/05/05(金) 01:58:01
何人かは釣れたし、本人は満足してるんじゃないか
それにしても、.NETの印象が悪くなったのは悲しい・・
478デフォルトの名無しさん:2006/05/05(金) 02:00:09
Formのファイルを分割できないでしょうか?
TabPageにひとつのファイルみたいに。
479デフォルトの名無しさん:2006/05/05(金) 02:01:14
>>478
partial
480デフォルトの名無しさん:2006/05/05(金) 02:15:14
>partial
手動分割ですよね?

デザイナ対応って可能ですか?
デザイナからのEvent作成とか。

教えて君ですいません。
481478:2006/05/05(金) 02:33:09
partialで分割サンプル作ってデザイナからEvent読んでみましたが、
やはりObject記述のファイルを最後まで読んで終了ですね。

Object記述とEvent記述で分けたのが間違いでしょうか?
IDEが非対応なだけでしょうか?
482デフォルトの名無しさん:2006/05/05(金) 02:39:35
>>481
非対応だね。手動でイベント分けて別クラスで処理させるとかしかないねぇ
483478:2006/05/05(金) 02:48:32
どもです。

しかしVSって意味無く重いし、using補完もされない...
他のIDEって無いんですかね?

参照設定とか基礎API展開しておいて、自動補完してくれるような。
484デフォルトの名無しさん:2006/05/05(金) 02:50:10
アレを意味無く重いと言うか。
是非ともアレと同等以上のIDEをアレより軽く作ってくれ。
485433:2006/05/05(金) 09:53:03
>>464
回答ありがとうございます。
しかし、
int length;
do
{
length=ns.Read(data,0,data.Length)
}while(length==data.Length)
のようにしてみましたが、依然読込みが途中で終わります…。
試しにBorland C++ BuilderのTClientSocketで同等の機能を持ったものを作ったら
ちゃんと受信できてるようなので送信自体はうまくいってるみたいです。
486デフォルトの名無しさん:2006/05/05(金) 11:54:23
毎ループ Read の返値を表示させてみ?
487433:2006/05/05(金) 12:00:54
>>486
表示させたりSleepを入れてみたら確かに全て受信できました。
しかし、そのようなことをしなくても全て受信する方法はないのでしょうか。。。
488デフォルトの名無しさん:2006/05/05(金) 12:03:11
んん? 表示させただけで受信できるのか? それ偶々のような気がするが……。
Read は size パラメータで指示したサイズより小さくても処理を返すのが問題のはず。
489433:2006/05/05(金) 12:05:31
>>488
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2658&forum=7
> POP3に関しては特にRead毎にSleepは入れていませんが、一度Readすると
> NetworkStream.DataAvailableがfalseになってしまう時があるため、
> NetworkStream.DataAvailable==trueの条件でReadするとコマンドによっては
> すべてのデータをReadできないことが発生しました。
こういうことなのかなぁとは思うんですが、具体的にどうすればいいのか…。
490デフォルトの名無しさん:2006/05/05(金) 12:14:37
>>488 の理由で、Read が 1 でも返すならまだその NetworkStream は有効であると。
491433:2006/05/05(金) 12:30:44
>>490
具体的にはどうすればいいのでしょうか。
492デフォルトの名無しさん:2006/05/05(金) 14:07:43
ここから先は有料となります
493デフォルトの名無しさん:2006/05/05(金) 14:54:25
ワロw
494デフォルトの名無しさん:2006/05/05(金) 14:59:36
オプション

ソース貼り付け  10000円
出張レクチャー  30000円
コーディング代行 50000円
495デフォルトの名無しさん:2006/05/05(金) 15:07:14
出張レクチャー安いなw
496デフォルトの名無しさん:2006/05/05(金) 16:55:31
レクチャーキボヌ
497デフォルトの名無しさん:2006/05/05(金) 17:08:51
前に張られてたけど
【テスター募集】名も無きP2Pソフト開発スレ Part1
tp://tmp6.2ch.net/test/read.cgi/download/1146675993/
面白いなwwwwwあのソース書いたやつと俺らの技量がどっこいどっこいといわれて糞ワロタ
498デフォルトの名無しさん:2006/05/05(金) 17:15:30
あのさ、大勢の人間が集まる掲示板で「俺らの技量」なんてものがあるとでも思っているのか?
499デフォルトの名無しさん:2006/05/05(金) 17:16:38
マジレス返された orz
500デフォルトの名無しさん:2006/05/05(金) 17:19:58
このスレにまで下らない論争持ち込むつもりなら、ここから先は有料となります
501デフォルトの名無しさん:2006/05/05(金) 17:22:02
いくらですか?
502デフォルトの名無しさん:2006/05/05(金) 17:26:07
ひゃくおくまんえんです!
503デフォルトの名無しさん:2006/05/05(金) 17:28:52
>>501
パンスト破り 500円
パンスト素股     1,000円
ピンクローター    1,000円
生パンティ       1,000円
聖水          1,500円
即尺          3,000円
顔射          3,000円
パイズリ顔射     3,000円
ポラロイド撮影(2枚) 3,000円
オナニー鑑賞     3,000円
バイブレーター    5,000円
ごっくん         5,000円
A・F          10,000円
504デフォルトの名無しさん:2006/05/05(金) 17:32:45
>>502
100*1000^5?
505433:2006/05/05(金) 17:34:12
つまりわかんないんですね。
どうもありがとうございました。
506デフォルトの名無しさん:2006/05/05(金) 17:35:22
そうだねお疲れ
507デフォルトの名無しさん:2006/05/05(金) 19:43:27
>>505
解るよ。だけどお前には教えてやらない。
508デフォルトの名無しさん:2006/05/05(金) 20:13:24
おれもレベルが高いけど教えてやらない
509デフォルトの名無しさん:2006/05/05(金) 20:19:28
同ケースのコードを組んだことがあるならまだしも
イリーガルな部分を返答するには、テストコード組んでみて動作検証してみないと
答えが出てこない場合もある。
そこまで手間を割いてホイホイ教えるほどお人好しではない。
510デフォルトの名無しさん:2006/05/05(金) 20:21:04
ていうか 433 にはもう答えが出てるから……。
433 は読めてないようだけど。
511デフォルトの名無しさん:2006/05/05(金) 22:25:42
女って本番よりAFの方が重要度低いのか・・・・
512デフォルトの名無しさん:2006/05/05(金) 22:34:25
AFはSEXじゃないんで安くなる
513デフォルトの名無しさん:2006/05/06(土) 20:26:03
あれだけ書かれても分からんとは
514デフォルトの名無しさん:2006/05/06(土) 21:20:46
厳密名での署名についての質問です。

「ある厳密名がついていないDll」(A)があって「それを使用しているライブラリ」(B)を厳密名をつけて管理する。
ということはできるのでしょうか?
dllで提供されているAに対して厳密名をつけたいと思いal.exeなどをみたのですが
dllは受け付けないようでうまくいきません。
sn -R を使って署名しなおそうと思っても失敗するのですが、DLLに対して外部の者が署名するということはできないのでしょうか?
515デフォルトの名無しさん:2006/05/06(土) 21:41:55
それできたら署名の意味なくね?
516デフォルトの名無しさん:2006/05/06(土) 21:59:51
署名を新たに他の者が発行したとしても、
元の署名が無効となるわけではないので、意味はあるのではないかと
保証のないものを後から保証を肩代わりみたいな。

517デフォルトの名無しさん:2006/05/06(土) 22:16:30
保障されていないものを参照している時点で意味はない。
後から保障を肩代わりってのは意味がないでそ。
保障されたものを参照しないと参照先は保障できないんだから。
518デフォルトの名無しさん:2006/05/06(土) 22:17:14
保障じゃなくて保証だよっ
orz
519デフォルトの名無しさん:2006/05/06(土) 22:26:03
-Rは署名済みのアセンブリかせめて遅延署名されてないとできない、と思う。
520デフォルトの名無しさん:2006/05/06(土) 22:58:07
バージョン管理とかの点を考えて、署名されていないアセンブリを使用者が署名というのは
それなりに意味があると思うんだけどなぁ。間違ってる?

部署Aで作られたdllを部署Bで使用していて、ある時にAで作られたdllが厳密名で署名されていないことに気づいた。
セキュリティやバージョン管理を考えて、Bは自分のアセンブリに対して厳密名で署名したかった。
Bにしてみれば、Bが作った物は 「今ここにあるAで作られたdll」でしか動かないわけで
Bが「Aで作られたdll」に対してしるしをつけたい。
このdllなら動くぞ、という保証みたいな意味で使えるかなと
521デフォルトの名無しさん:2006/05/06(土) 23:00:25
Managed DirectX(MDX)を補助的な役割で使おうと思っています。
コンパイル時にMDXを参照に追加しているのですが、
実行時にMDXのアセンブリがロードできればMDXを使い、そうでなければ違ったコードを実行するという感じでやろうと思っています。
プログラム開始時にMDXがロードできるかどうかを知ることはできるのですが、実行する時点で問題があります。

void SomeMethod() {
 if (canUseMDX) {
  Device device = ...
  Texture texture = ...
 } else {
  ・・・
 }
}
という感じにしたいのですが、MDXがインストールされていなかった場合(canUseMDX==false)、たとえ実行されなくても
関数内にDeviceなどの宣言があると、関数に入った瞬間例外が発生するらしく、次のようにせざるを得ない状況です。

void _SomeMethod_2(){
 Device device = ...
 Texture texture = ...
}
void SomeMethod() {
 if (canUseMDX) {
  _SomeMethod_2();
 } else {
  ・・・
 }
}
この書き方だとMDXを使う箇所が増えてきた時にメンテナンスが難しくなってしまいます。
この問題を根本的に解決する方法は(設計云々以外に)ないでしょうか?
522デフォルトの名無しさん:2006/05/06(土) 23:09:03
>>520
問題は A.dll が本当に A で作られたアセンブリなのか、B が検証することができないって事だ。
出所不明の A.dll を参照しているのなら B.dll も全体として厳密ではなくなってしまう。

>>521
設計以外でどうやって根本的に解決するんだw
MDX を使うバージョンの DLL と、使わないバージョンの DLL を用意する。
それぞれは同じ抽象クラス(またはインターフェイス)から派生したクラスのみを使う。
メインのアセンブリは抽象クラスのアセンブリを参照する。
実行時に MDX が使える場合は MDX.dll を、使えない場合は GDI.dll を動的にロードしてインスタンスを作成し、
抽象クラスにキャストして扱う。
プラグインでよくある構成だよ。
523521:2006/05/06(土) 23:32:12
>>522
レスどうもです。
その場合たぶんそれぞれのdllを用意する必要はなく、メインアセンブリ内で各クラスを定義するだけで大丈夫ですね。
ただ、必ずしもMDXを使った処理と使わない処理が対になっている訳でなく
(独立したif(canUseMDX) {...} と if (!canUseMDX) {...} が散らばっている感じです)、
それぞれの処理に明確な名前を与えるのが難しいような感じなので >>521 の上の書き方がベストだと思います。

・・・と思ったのですが、その書き方をする方法がないのならば仰る方法がベストですかねえ。

#話がそれますが参照のプロパティで「ローカルコピー」をtrueにすればMDXのアセンブリが出力ディレクトリにコピーされるのですが、
#それでも実行時にMDXがロードできませんでした。ローカルコピーって何の意味があるんでしょう?
524デフォルトの名無しさん:2006/05/06(土) 23:43:27
ロードって何のロード?
アセンブリ自体のロードならできると思うけどそれ以外はアウトじゃね?
525デフォルトの名無しさん:2006/05/06(土) 23:44:17
あとは内部的にロードされる別のアセンブリがあるとか。
526デフォルトの名無しさん:2006/05/07(日) 00:08:17
>>514
「ある厳密名がついていないDll」(A)をリフレクションして使えば署名できると思うけど。めんどくせーけど。
527526:2006/05/07(日) 00:11:44
あ、ごめん、Aを署名しようとしたのか。Bの方かと思った。忘れてくれ。
528521:2006/05/07(日) 00:11:51
>>524
アセンブリのロード自体ができていないようです。
具体的にはVector2のみを使用した関数を呼ぶと
FileNotFoundException : 指定したモジュールが見つかりません。(Exception from HRESULT: 0x8007007E)
が発生します。

>>525
出力されたアセンブリ(Microsoft.DirectX.dll)がMicrosoft.VisualCを参照しているようなのでそれも出力してみましたが
やはり同じでした。

結局この場合ローカルコピーは使えないということなんでしょうかね。
529デフォルトの名無しさん:2006/05/07(日) 00:55:24
>>517,519,522,526レスサンクス

「今手元にあるAのdll」だけを真実としてアイデンティティを認めて名前を付ける。
Bとしてはセキュリティ保護・バージョン管理の道具として、うまく使えないものかと。

使用しているdllに一つでも厳密名がついてないなら厳密名を利用できないのは当然として、
後付できないのは不便だなぁと。
結局、sn.exe/al.exeではdllへのオーバライドの署名は無理ということか。(逆アセすればできそうだけど)
530デフォルトの名無しさん:2006/05/07(日) 01:02:25
たしかに、後から署名できると便利と思うこともないではない。
ただ、現実問題としてこれを許すと、明らかに間違った署名の使い方を
されてしまう危険性がある。
署名というか厳密名という仕組み自体の確実性を壊してしまいかねない。
こういう余地を含めることは許容できなかったんだと思うよ。
531デフォルトの名無しさん:2006/05/07(日) 02:05:22
ていうかildasmとilasmで何とかなるだろ。
532デフォルトの名無しさん:2006/05/07(日) 02:22:16
.NET 2.0 では SuppressIldasmAttribute なる属性が追加されていてな
533デフォルトの名無しさん:2006/05/07(日) 02:24:38
意味なさげ
534デフォルトの名無しさん:2006/05/07(日) 03:06:32
こ、こんなのあったのか…
535デフォルトの名無しさん:2006/05/07(日) 08:13:21
suppress 属性を無視するようになる ildasm のパッチまだー?
536デフォルトの名無しさん:2006/05/07(日) 17:34:40
WebClientのDownloadProgressChanged、
OpenReadAsyncだと呼ばれないんですけどぉ!?
537デフォルトの名無しさん:2006/05/07(日) 17:37:52
まずはソースうp
538ほい:2006/05/07(日) 18:47:26
private WebClient _wc;

private void Form1_Load(object sender, EventArgs e)
{
    _wc = new WebClient();
    _wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(_wc_DownloadProgressChanged);
    _wc.OpenReadCompleted += new OpenReadCompletedEventHandler(_wc_OpenReadCompleted);
    _wc.DownloadDataCompleted += new DownloadDataCompletedEventHandler(_wc_DownloadDataCompleted);
}

private void button1_Click(object sender, EventArgs e)
{
    _wc.OpenReadAsync(new Uri(txtUrl.Text));
    //_wc.DownloadDataAsync(new Uri(txtUrl.Text));
}

void _wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    label1.Text = e.BytesReceived.ToString();
    label2.Text = e.TotalBytesToReceive.ToString();
    progressBar1.Value = e.ProgressPercentage;
}

void _wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    MessageBox.Show("Complete");
}

void _wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
    MessageBox.Show("Complete");
}
539デフォルトの名無しさん:2006/05/07(日) 21:07:13
で、どこで読み込んでるのかね?
540デフォルトの名無しさん:2006/05/07(日) 21:12:46
確かに発生しないようだな。
MSDN フォーラムのフィードバックに投げた方が良いかも。
541デフォルトの名無しさん:2006/05/08(月) 00:25:12
HttpListener上でWebサービスをホストする方法ってどこかにサンプルないですか?
Webサービス呼び出しのコールバックを受け付けるような使い道で使いたいのですが。
「IISが稼動していない環境でも、簡単にWebサービス を公開できるようになる」と聞いたんですけど
具体的実現方法がよくわかりません。(どこまでやってくれるものを期待してよいのかどうかが知りたい。)

とりあえず、Webサービス作成プロジェクトで作った↓のようなものにhttp://localhost/Serviceでアクセスできるようにしたいのですが
public class Service : System.Web.Services.WebService{
[WebMethod]
public string HelloWorld() {return "Hello World";}
}
542デフォルトの名無しさん:2006/05/08(月) 18:32:21
値型、参照型をコントロールしたい
フォームごと、ダイアログごとにソースを分けてイベント処理やコードを記述をしたい
何でもかんでもform1に記述しなくちゃならないのは気持ち悪いんだよね
やらないでいい方法もあるけど、面倒だし
てな人はC++お勧め

始めVBやってたけどいろいろ不満がでてC#をやり
c#はほんと記述が簡単で細かい処理もできるしよかったけど
C++やるとさらに細かく処理できて楽しい
やっぱ最終的にはC++になるんだなー
543デフォルトの名無しさん:2006/05/08(月) 18:35:28
そうだね
544デフォルトの名無しさん:2006/05/08(月) 18:38:41
> やらないでいい方法もあるけど、面倒だし
C++だともっと面倒だが
545デフォルトの名無しさん:2006/05/08(月) 18:39:54
うらやましいな。
C#の手軽さに毒された俺はもうC++に戻れない・・・気がする。
すくなくとも趣味の範囲ではC++やる気しないなあ
速度が重要になってくるとそうでもないのかも知れないけど
546デフォルトの名無しさん:2006/05/08(月) 18:46:44
メモ帳クローンが10分で作れるからなあ…
547542:2006/05/08(月) 18:53:12
>>544
そうなの?

>>545
そりゃ便利だけどさ、配布したいとかなるとさ
.ランタイムいれてくださいーっていうのがな・・・
やっぱネイティブでやりたいわけです

自分だけで楽しむならまあ、C#最強ですな
C++はまだ、始めたばかりでよくわかってないんだけどw
概要についていろいろ見てみると、自分がやりたかったことが
C++だと手軽にできる。APIやネイティブやらフックやら
もちろん、C#でもできるけど、きっちり学びたいんですよねー
548542:2006/05/08(月) 19:01:26
>>544
たとえばさ、OKダイアログ作るのでもさ、フォーム内に記述しちゃうでしょ?
扱いが簡単だから、
C++だったら、別のソースでイベント受けてresult==OKだった場合はうんぬんとか
記述できるし、まあ、C++でイベント作るとなると、あっちこっちに記述しないといけないのはちょっと面倒だけど
あとで、自分のソース見るときにわかりやすいんだよね。
549デフォルトの名無しさん:2006/05/08(月) 19:38:19
TraceListenerを作ってTrace.Listenersに加え、ログをはこうとしたんですが、
よそのDLL(勝手にいじれない)がTrace.WriteLineしているらしく、
余計な文字列がログに混ざってしまいます。
これを抑止できませんか?
550デフォルトの名無しさん:2006/05/08(月) 20:22:34
「よそのDLL」と違う名前のログファイルに吐けばよい(・∀・)
551デフォルトの名無しさん:2006/05/08(月) 20:24:18
>>547
>.ランタイムいれてくださいーっていうのがな・・・
大丈夫だよ。次期Windowsではデフォで
.NETがインストールされるから。
552デフォルトの名無しさん:2006/05/08(月) 20:24:40
TraceListener.Filter をどうにかすればできそうだが
553デフォルトの名無しさん:2006/05/08(月) 20:27:09
>>542
C++ね…C#になれるともう使いたくね。

何とか使えるコードがかけるレベルになるだけで書籍を
何冊も抑えないといけないような言語仕様って終わってる。
「絶対やっちゃいけないこと」集めただけであれだけたくさん本
書けるんだもん。
554542:2006/05/08(月) 21:11:52
本買わないと無理なのか・・
やっぱC++やめました

てか、C#でネイティブアプリ作れるようにしてくれよ!
って言っても趣旨が違うから無理なんだよなー
VB6ひっぱりだすか
555デフォルトの名無しさん:2006/05/08(月) 21:14:45
VBランタイムはいいのか
556デフォルトの名無しさん:2006/05/08(月) 21:18:23
D 言語が完成すればなぁ。
557デフォルトの名無しさん:2006/05/08(月) 21:18:53
VS2005+C#を使用しています。

Bitmapクラスにロードしたフルカラー画像をGIF以外の形式で256色に減色して保存する方法ってありますか?
Bitmap.SaveメソッドはどうやらGIF以外フルカラーでしか保存できなさそうですし・・・
558542:2006/05/08(月) 21:21:30
>>556
もうそれしかないね。
559デフォルトの名無しさん:2006/05/08(月) 21:22:50
TraceSource使え。
560デフォルトの名無しさん:2006/05/08(月) 21:30:40
>>557
取りあえず標準クラスライブラリ使ってお手軽にってのは存在しない。
自前で減色処理を実装する必要がある。
ひょっとしたらどこかにその辺の実装クラスがあるかも知れないが。
Paint.NET とかはどうなんだろ。

あ、一旦 GIF で保存してそいつを保存し直すって手もあるか。
561デフォルトの名無しさん:2006/05/08(月) 21:44:14
いずれ.NET上で動く.NETが出来てその.NET上で動くOSが出来て、そのOS上で動く.NETができて
いずれ、スタートレックみたいにコンピュータと会話しながらプログラミングできる時代がくるのはいつですか?
562デフォルトの名無しさん:2006/05/08(月) 23:06:19
>>556
完成いつかなぁ?
563デフォルトの名無しさん:2006/05/08(月) 23:09:45
未完の大作
564デフォルトの名無しさん:2006/05/08(月) 23:55:31
ミカンの大作
565デフォルトの名無しさん:2006/05/09(火) 01:04:03
>>561
> いずれ.NET上で動く.NETが出来てその.NET上で動くOSが出来て、そのOS上で動く.NETができて

その時はそのOSの上で.NETではない新しいフレームワークが最新の開発環境になってるから

> いずれ、スタートレックみたいにコンピュータと会話しながらプログラミングできる時代がくるのはいつですか?

コンピュータと会話しなくてもシステム開発屋を呼べば会話するだけでソフトはできまっせ
金は掛かるけど
566デフォルトの名無しさん:2006/05/09(火) 08:36:08
くだらねぇ
567デフォルトの名無しさん:2006/05/09(火) 09:46:14
いちいち会話しないといけないの?めんどくせ〜
568デフォルトの名無しさん:2006/05/09(火) 16:46:27
全ての要望をコンピュータが先読みして処理してくれるくらいじゃないとな
まあ、人間いらない世界になるわなー
569デフォルトの名無しさん:2006/05/09(火) 16:50:10
結構多くの人間が最適化で削除されると思う。
570デフォルトの名無しさん:2006/05/09(火) 16:56:26
Earth.GC.Collect();
571デフォルトの名無しさん:2006/05/09(火) 17:27:05
そして誰もいなくなった
572デフォルトの名無しさん:2006/05/09(火) 17:34:26
                      ウワァァァアン!!
                 。・。∧_∧。・。
                。゚  ( ゚´Д`)  ゚。
                  o( U U
                   'ー'ー'
         皆、何処行ったの〜。
573デフォルトの名無しさん:2006/05/09(火) 17:42:55
Earth.GC.KeepAlive(all);
574デフォルトの名無しさん:2006/05/09(火) 17:55:20
public static Object = me;
575デフォルトの名無しさん:2006/05/09(火) 18:34:59
質問させてください。以下のようなコードをcscでコンパイルして実行すると
FolderBrowserDialogは表示される(フォームとボタン)のですが、肝心のフォルダ選択をする
コントロールが表示されずに困っています。

static void Main() {
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
}

VS 2005 expressで新規プロジェクトを作成し、イベントから同じようなコード(ダイアログのインスタンス
がフォームのメンバ変数になっているだけ)を起動すると表示されるのですが、
今実際に開発しているアプリケーションがcscでコンパイルされることを前提にしているので、
VSに移行するというのも難しく。

cscでコンパイルしてFolderBrowserDialogを正常に動かす方法を教えていただけないでしょうか。
576デフォルトの名無しさん:2006/05/09(火) 18:36:32
STAThread 属性付けろ
577デフォルトの名無しさん:2006/05/09(火) 18:46:51
即レス有り難うございます。無事表示出来ました。
これからぐーぐる先生にSTAThreadについて聞いてきます…
578デフォルトの名無しさん:2006/05/09(火) 22:25:15
泣きながら戻ってくるなよ。
579デフォルトの名無しさん:2006/05/10(水) 00:12:13
S(TAT)hread
580デフォルトの名無しさん:2006/05/10(水) 00:13:23
誰が上手い事を言えとw
581デフォルトの名無しさん:2006/05/10(水) 00:34:49
>>579
!!!!
582デフォルトの名無しさん:2006/05/10(水) 00:41:31
不覚にもワロタ
583549:2006/05/10(水) 01:03:54
>>552
>>559

ウワァァァアンうちの仕事場1.1だよ(TAT)
584デフォルトの名無しさん:2006/05/10(水) 14:14:16
フォーム上のコントロール たとえばテキストボックス「txtName」を参照するときに

this.txtName.Text
txtName.Text

とどっちで書いても普通に使えますけど、どっちのほうが一般的に良いとされているんでしょうか?
585デフォルトの名無しさん:2006/05/10(水) 14:17:36
this 付けた方がローカル変数と区別つきやすいから付けてる
586デフォルトの名無しさん:2006/05/10(水) 17:00:56
ttp://uechoco.s14.xrea.com/download/img/stm_window.jpg

こんな風に、プロセスのパスを取得したいんですが、どうすれば良いのでしょう?
System.Diagnostics.Processクラスには無かったようですが。
587デフォルトの名無しさん:2006/05/10(水) 17:17:04
プロセスは仮想的なもんだから、プロセスのメインモジュールのパスな。
588デフォルトの名無しさん:2006/05/10(水) 17:23:41
>>587
System.Diagnostics.ProcessModuleのFileNameで取得できました。thx。
589デフォルトの名無しさん:2006/05/10(水) 23:54:50
>>584
俺の場合、コントロールは「txt」「lbl」など明らかにコントロールであるとわかる
名前をつけてるからthisはつけない。
メンバ変数も「_xxxx」みたいにしていてわかるからつけない。
関数を呼ぶときにつける。this.Close();
590デフォルトの名無しさん:2006/05/10(水) 23:55:40
後プロパティにもつける。
this.IsClosed
591デフォルトの名無しさん:2006/05/11(木) 00:41:42
>>589
MSの推奨する名前付け規約と違うやりかたを持ち出されても...
592589:2006/05/11(木) 00:49:43
私はMSの命名規則を隅から隅まで熟読し、完全にのっとってプログラミングしています。
ただコントロールの名前だけは別。
そしてこの自分の意見と同じ人がかなり多いことが判明したので、そのまま通してます。
なので検索して調べてみてください。
593589:2006/05/11(木) 01:35:56
名前空間は必ず会社名から始まるようにしてますし、publicなメンバはすべてPascal形式です。
英単語の省略は避け、ものすごく長い名前を採用しています。
変数に型名の一部をつけたりしないし、必ず変数の内容のわかる名前にしてます。
Flagとかflgとかは使いません。単語の区切りに_を入れたり記号を入れたりしません。
インターフェイスの先頭には必ずIをつけてますし、キャンセル可能なイベントは〜ing形式にしてます。

ちゃんとMSの命名規約に書いてあります。
私は名前付けに漏れがないかFxCopでチェックします。

それでもコントロールは例外にしています。
594デフォルトの名無しさん:2006/05/11(木) 01:53:52
メンバ変数のって_から始めるの推奨してたっけ?
595デフォルトの名無しさん:2006/05/11(木) 02:18:44
やあ、713だ。
596デフォルトの名無しさん:2006/05/11(木) 03:14:46
FxCopってのあるんだ始めて知った
おもろい
597デフォルトの名無しさん:2006/05/11(木) 03:23:44
MSじゃないが、コーディング規約があった
http://www.objectclub.jp/community/codingstandard/

疑問点
>(54) オブジェクトの同値比較
>オブジェクトの比較では Equals() メソッドを使い、= を使うな。
>特に、Stringの比較では = を使用してはならない。
これって、なんで?Javaと違ってC#は、= overrideされてるんじゃなかったけ?
598デフォルトの名無しさん:2006/05/11(木) 03:37:11
599デフォルトの名無しさん:2006/05/11(木) 03:39:08
演算子はオーバーロードな。
理由も書いてるだろ。
まあ、C# では弱いね>文字列の比較
それ以外については、Object.Equals のドキュメントにガイドラインが示されてる:
> ・参照型のセマンティクスが、その型がなんらかの値を表しているという事実に基づいている場合には、
>  この参照型の Equals のオーバーライドを検討してください。
> ・ほとんどの参照型では、Equals をオーバーライドする場合でも、
>  等値演算子はオーバーロードしないでください。
>  ただし、複素数型のような、値のセマンティクスを持つ参照型を実装する場合には、
>  等値演算子をオーバーライドする必要があります。
600デフォルトの名無しさん:2006/05/11(木) 09:37:32
>>589
継承したとき、this付けないと継承元のが呼ばれちゃうから、
ちゃんとthis付けた方がいい。
601デフォルトの名無しさん:2006/05/11(木) 11:08:02
>>600 継承元と同じ名前のメンバ名つける気ですか?
602デフォルトの名無しさん:2006/05/11(木) 12:20:28
関数の話だろ?
603デフォルトの名無しさん:2006/05/11(木) 13:36:51
>>599
MSDNにはこうある。
>既定では、演算子 == は、2 つの参照が同じオブジェクトを示すかどうかを確認して参照の等価をテストするため、
>この機能を取得するために参照型で演算子 == を実装する必要はありません。
>型が変更できない場合、つまりインスタンスに含まれているデータを変更できない場合、
>その型は、変更不可能なオブジェクトとして、同じ値を持つ限り同一と見なされるので、
>参照の等価の代わりに値の等価を比較するように演算子 == をオーバーロードするのが有効です。
>変更不可能な型以外で演算子 == をオーバーライドすることはお勧めしません。 

stringは変更不可能な型だからこの例外規定に当てはまるわけで、
他では使おうとは思わないが stringだけ特別扱いでいいと思う。
難点としてはJavaやるときもつい文字列の比較に==を使ってしまいそうになることぐらいか。
604デフォルトの名無しさん:2006/05/11(木) 13:51:56
>>602
関数、プロパティ、protectedやpublicなインスタンス変数のどれも継承先で隠蔽にするには
明示的に new キーワードが必要で、あえて使おうとは思わないな。
>>600
隠蔽にしろoverrideにしろ何もつけなきゃ継承先のが優先されるだろう?
605デフォルトの名無しさん:2006/05/11(木) 14:27:30
継承もとのstatic関数のこと言ってるんじゃない?
606デフォルトの名無しさん:2006/05/11(木) 15:15:47
んなもんはじめからthisじゃ呼べないだろ。
607デフォルトの名無しさん:2006/05/11(木) 15:43:06
>>606
だからstaticじゃない関数を呼ぶときには
thisを付けなきゃダメってこと。
608デフォルトの名無しさん:2006/05/11(木) 16:03:39
えー
609デフォルトの名無しさん:2006/05/11(木) 16:27:15
だから、基底クラスのstatic関数と継承クラスの非static関数が同名になってしまったときに
継承クラスで後者を呼ぶときはthisを付けなきゃならない、って場合を考えろと言うことだろ?
610デフォルトの名無しさん:2006/05/11(木) 16:37:33
言ってることがうにくらげ。具体例をソースで示してよ。
611デフォルトの名無しさん:2006/05/11(木) 17:25:35
そんなことは普通やらない。
普通やらないことのために書き方を変えたりしない。
612デフォルトの名無しさん:2006/05/11(木) 17:27:15
>>609
その場合でもnewをつけないと警告が出るよ
613デフォルトの名無しさん:2006/05/11(木) 17:36:33
もう好きなように書けばいいと思うよ。
614デフォルトの名無しさん:2006/05/11(木) 17:43:59
継承元を呼ぶ場合は base.func1()で、override や new(隠蔽)した方を呼ぶ場合はthisは必須ではない。
それから、static関数を呼ぶ場合はクラス名.関数名() で呼ばないと警告が出る。

thisは付けても付けなくても生成されるコードに差は無いから規約があるならそれに沿って、
無いなら好きなほうにしろでFAだったと思う。
thisを使う必要があるのは次のケースぐらいだったかと。
private int count;
void func1(int count) { this.count = count }
615デフォルトの名無しさん:2006/05/11(木) 17:55:40
プロパティの中でキャストしてやりたいのですが、方法がわかりません。
動かないコードですが、
private Arraylist _array = new ArrayList();

public ItemBody item[int i]
{
get
{
return (ItemBody)this._array[i]
}
}
のような感じで、_array の実体は ItemBody クラスのインスタンスが格納されている
状態で、itemプロパティで、_array から必要な項目を ItemBody 型として
取りだしたいのですが…。

アドバイス頂けないでしょうか?
616デフォルトの名無しさん:2006/05/11(木) 18:02:19
>>615
> public ItemBody item[int i]

C# では引数付きプロパティはサポートされてないよ。
617615:2006/05/11(木) 18:03:54
>> 616
ありがとうございます。という事は、プロパティではなくメソッドで実装しないといけない、
という事ですね。プロパティではできない事がわかっただけでありがたいです。
618デフォルトの名無しさん:2006/05/11(木) 18:04:24
2.0なら
private List<ItemBody> _array;
public List<ItemBody> item[int i]
{
get
{
return this._array;
}
}
これでそれっぽくなる

1ならインデクサを実装したItemBody専用のコレクションクラスを作るしか無さそう
619618:2006/05/11(木) 18:05:25
>>618
item[int i]×
item○
620デフォルトの名無しさん:2006/05/11(木) 18:12:01
>>619
それ勝手にaddされたりする。
621618:2006/05/11(木) 18:18:32
そういえばそうか。
ReadOnlyItemBodyList : List<ItemBody>
...そこまでするならitem(int index)で代用したほうがいいね
622デフォルトの名無しさん:2006/05/11(木) 18:20:50
List<T> じゃなくなるが、一応 List<T> には AsReadOnly メソッドがある。
623デフォルトの名無しさん:2006/05/12(金) 10:26:43
DataGridViewなどでセルの値を取得するのにたとえば
MessageBox.Show(dataGrid[0,0].value.ToString());
と書くとします。
ところがそのセルがnullだった場合エラーになりますよね。
ではこういう時にどうするかってことなんですけど、もちろんこのコードの前でnullだったら実行しないという
if文を書けばいいのはわかりますが、たとえばVBでいうところのnz関数みたいなものがあれば
1行で事足りるのかなと思ったりしました。

手間を惜しむわけではないのですが、短くなればそれに超したことはないなと思いました。

オブジェクト指向という考え方からすれば
dataGrid[0,0].value.ToString()
こういう書き方をしないで、ちゃんとセルのインスタンスを作ってからそれを処理するべきなんでしょうけど、
こういうアクセス方法を用意してくれるならnz関数とかもありなのかなと思ったり・・・。

こういう場合はどういう書き方をするのが一般的なんでしょうか?
624デフォルトの名無しさん:2006/05/12(金) 10:27:36
>>623
Nz関数作ってしまえ
625デフォルトの名無しさん:2006/05/12(金) 12:38:30
>>623
DataGridColumnStyle.NullText
626623:2006/05/12(金) 13:00:08
>>625
こんなのがあったのか・・・。
まだまだ勉強不足でした。
627デフォルトの名無しさん:2006/05/12(金) 18:53:07
あの〜すみません。
TreeNodeで、下位のノードがあるかどうかを調べるにはどうしたらよいでしょうか?
628デフォルトの名無しさん:2006/05/12(金) 18:57:41
Nodes の Count 見ればよかろ
629デフォルトの名無しさん:2006/05/12(金) 19:05:14
へば!
そういえばそうでしたね!
ありがとうございます!!!
630デフォルトの名無しさん:2006/05/14(日) 08:46:13
みなさんはtry-catchって全てのメソッドに入れてますか?
自分はほぼ全メソッドに入れてますがこれって一般的なのか?

以前、ロジック上どう考えても例外発生しないところで
例外が発生しアプリが異常終了した苦い経験があり
try-catchをやりまくることに決めたのです。。。
catchしてExceptionのメッセージ、スタックトレースをログ出力したり、
他に取得した方が便利な情報はないか悩んだり、
そのときほど例外処理は難しいと思ったことはなかったよ。
631デフォルトの名無しさん:2006/05/14(日) 08:50:37
>>630
例外は正しく処理できなければプログラムが終了する。それはあたりまえ。
正しく処理できない例外まで捕まえて握りつぶしてるのであれば愚の骨頂じゃないかなぁ?
632デフォルトの名無しさん:2006/05/14(日) 08:55:01
乗っかって質問
通常の動作では出ないはずの例外は
ドキュメントに書いてあってもあえてcatchしてないんだけど
やっぱりcatchしたほうがいい?
633デフォルトの名無しさん:2006/05/14(日) 09:20:26
>>632
処理するつもりが無ければしなくていい。
っていうかできないだろ。空の catch でも書くつもりか?
634デフォルトの名無しさん:2006/05/14(日) 09:48:35
DLLにするような独立性の高いクラスでは一通り補足して他の例外にまとめたりログ吐いたりするようにしている。
そうじゃないものは必要なものだけ。この辺はJavaのそれとはポリシーが違うから郷に入っては郷にだよ。
635デフォルトの名無しさん:2006/05/14(日) 10:32:26
>>630-634
正しく処理できない例外は
デバッグ段階ではひとまずcatchしてログを吐かせて理由を調べ、
↓その上で
実際のリリース版ではログに吐いて処理継続していいのか
上位階層にスローするとか、ほんとに終了させちゃうのか、どうするのかを
判断すべきでしょうね。
636デフォルトの名無しさん:2006/05/14(日) 11:23:59
ゲーム作ってるが、例外が発生したらもう続けようがないので
一番上の層だけで受け取ってメッセージ出力させてる。
637デフォルトの名無しさん:2006/05/14(日) 11:30:07
exceptionのstacktrace見ても解読するの難しい。。。初心者房ですまぬ。
638デフォルトの名無しさん:2006/05/14(日) 11:33:22
何故厨房は厨房のことを房と略すのか不思議でならない。MS厨とか書いてあっても「えむえすぼう」
と読んじゃっているんだろうか。
639デフォルトの名無しさん:2006/05/14(日) 11:34:45
厨房は厨房のことを房と略す
厨房は厨房のことを房と略す
厨房は厨房のことを房と略す
640デフォルトの名無しさん:2006/05/14(日) 11:41:55
なぜかへんがえできない
641デフォルトの名無しさん:2006/05/14(日) 14:15:58
デバッグ時もキャッチしない。
どうせデバッガで止めることもできるから。

ライブラリでも想定外のものはキャッチしない。
ただこれは場合によるな、キャッチしてラップすることもある。

普通の使う側でも想定外のものはキャッチしない。
どうせキャッチしても何もできないんだから。
ログ出力とかは一番上位で勝手にさせるし。
642デフォルトの名無しさん:2006/05/14(日) 14:17:26
すべてのメソッドでtry-catchなんてやるわけがない。
いったいそれぞれのcatchで何をする気だ。
643デフォルトの名無しさん:2006/05/14(日) 14:18:43
想定外のエラーが起こってるのに処理を続行するなんて恐ろしいことはできん。
644デフォルトの名無しさん:2006/05/14(日) 14:21:44
NAL-6295の舌先三寸 - むやみにキャッチしないでね。ゴールキーパー以外はハンドで反則ですよ。
http://d.hatena.ne.jp/NAL-6295/20050909/p1

匣の向こう側 - あまりに.NETな - 例外処理の使い方
http://d.hatena.ne.jp/akiramei/20051023#p1

今週のクラス System.Exception
http://www.ailight.jp/blog/kazuk/articles/6298.aspx
645デフォルトの名無しさん:2006/05/14(日) 16:07:47
すみません、初心者です。
子ウインドウの作成はどうすればいいのでしょうか。
SDKでいう、WS_CHILD属性のウインドウです。
646デフォルトの名無しさん:2006/05/14(日) 16:19:20
>>645
from2.ShowDialog(this);
647645:2006/05/14(日) 16:44:10
>>646
すみません、それはモーダルダイアログでした。
作りたいのは、親ウインドウが動くと子ウインドウも動いて、
子ウインドウをクリックしてもタイトルバーが青くならないタイプのものです。

MDIウインドウも試しましたが、背景色が濃いグレーに固定されてしまって
希望するものになりませんでした。
648デフォルトの名無しさん:2006/05/14(日) 16:52:47
>>647
だからダイアログだっつってんだろ!!!
649デフォルトの名無しさん:2006/05/14(日) 17:38:15
?ダイアログじゃないでしょ
しかもfrom2って何

>>645の言いたいこともよくわからん
form.Controls.Add(child) とかじゃないの
650645:2006/05/14(日) 18:04:27
>>649
多分そういうことですが、childの部分にフォームを与えたところ
'トップレ ベルのコントロールをコントロールに追加できません。'
という例外が発生しました。

WindowsSDKで、CreateWindowの引数のスタイルがWS_CHILD、親ウインドウが
親ウインドウにしたいウインドウのハンドルを指定したときにできるものです。
651645:2006/05/14(日) 18:13:25
>>649
TopLevelプロパティをfalseにしたところ、form.Controls.Add(child)の
やり方で出来ました。ありがとうございます。

652デフォルトの名無しさん:2006/05/14(日) 18:13:29
フォームはトップレベルウインドウだから子ウインドウにはできないですよ
653デフォルトの名無しさん:2006/05/14(日) 21:57:40
質問です。
ドライブをリストするプログラムを作ったのですが、ちょっと問題があります。
テストに使用したPCにはフロッピードライブがついていないのですが、DriveInfo.GetDrives() の結果にはAドライブが含まれており、
DriveInfo.IsReady は false が返るのですが、呼び出しに5秒ほど待たされるという状態です。
一応 try { string s = drive.VolumeLabel; } catch { continue; } などと試してみたのですが同様でした。
ドライブがあるかないか短時間に調べる方法はないでしょうか?
654デフォルトの名無しさん:2006/05/14(日) 23:03:41
>>653
ん〜、うちではそんなこと無いな……。
WMI の Win32_LogicalDisk 使えばどうなる?
655653:2006/05/14(日) 23:19:54
>>654
レスどうもです。
WMIについてはよくわからないのですが、Webページを参考に

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
  ("Select * from Win32_LogicalDisk")
For Each objDisk in colDisks
  Wscript.Echo objDisk.Caption
Next

のようなコードを実行したところ
A:
C:
D:
・・・
のように表示されました。最初のA:が表示されるまでにはやはり5秒ほどかかったようです。
656デフォルトの名無しさん:2006/05/15(月) 00:39:43
>>642
今急に思いつきで、全部のメソッドで
catch(Exception ex){
  Trace.WriteLine(メソッド名);
  Trace.WriteLine(ローカル変数や仮引数などの名前と値);
  throw;
}
とか書いておいたらいざというときデバッグしやすいかもとか思ったんですが
いかがでしょうよ?
657デフォルトの名無しさん:2006/05/15(月) 00:46:22
>>656
(^ω^;)
658デフォルトの名無しさん:2006/05/15(月) 00:51:05
デバッグとかやりやすいってのはまあわかるが、
実際そんなことやっとれんでしょうよ。
やっぱしAOP的にやれんときついでしょ。
659デフォルトの名無しさん:2006/05/15(月) 05:25:48
>>656 実行時に動的に>>656が追加できればいいと思ったことは多々ある。
660デフォルトの名無しさん:2006/05/15(月) 07:47:21
>>656
デバッガ使えよ。
661デフォルトの名無しさん:2006/05/15(月) 08:35:23
>>656
もっと大きい単位でDebugかTrace入れとけば間に合うだろう。
catch (Exception ex) {
  System.Diagnostics.Debug.WriteLine(ex.ToString());
}
662デフォルトの名無しさん:2006/05/15(月) 08:42:51
catchブロック内は「ログ吐きクラス」でも作って、
その中の「ログ吐きメソッド」を呼ぶようにした方が楽。
関数名なんかはそのメソッド内でスタックトレースから
取得するようにしたらよい。
663デフォルトの名無しさん:2006/05/15(月) 13:25:56
つ[ log4net ]
664デフォルトの名無しさん:2006/05/15(月) 13:31:48
デザイナってツールボックスやサーバエクスプローラからD&Dで簡単に
コードを自動生成できて便利なんだけど、これって必ずしもControlに
依存しないよね。だけど、Control継承クラスじゃないとデザイナ画面が
出せません。それ以外のクラスでもデザイナが使えるようにすることって
できないんでしょうか?
665デフォルトの名無しさん:2006/05/15(月) 13:36:23
.NET では基本的に Control じゃない == 非 GUI ということになるが、デザイナを使いたい非コントロールってなんだ?
それとも OpenFileDialog みたいなコンポーネントを作りたいってこと?
666デフォルトの名無しさん:2006/05/15(月) 13:43:56
データベース周りいじっててそう思いました。
DataAdapterやDataSetなんかをデザイナで簡単に作成できるんですが、
それは必ずしもUIと一体化させるとは限らないような気がして。
667デフォルトの名無しさん:2006/05/15(月) 13:47:35
分かりづらくて申し訳ない。要するに(一例として)
UIを持たずにデータベースにアクセスするようなクラスでデザイナ
を使えないかということです。
668デフォルトの名無しさん:2006/05/15(月) 13:53:18
コンポーネントの追加ではいかんのか
669デフォルトの名無しさん:2006/05/15(月) 13:59:44
ああ、こんなときにコンポーネント使うんですね。
ありがとうございます。
670デフォルトの名無しさん:2006/05/15(月) 15:23:35
>>663
機能多すぎて使いづらい・・・(´・ω・`)
671デフォルトの名無しさん:2006/05/15(月) 16:30:29
起動時に開かれる親formのインスタンスを取得したいのですが、
何かいい方法ないですか?
672デフォルトの名無しさん:2006/05/15(月) 16:54:59
必要としてるメソッドに参照を渡せ
673デフォルトの名無しさん:2006/05/15(月) 17:22:49
>>672
起動時のウィンドウって形で取得したいので、パラメータ渡しはしたくないんですよね。
Formの状態を設定するだけなんでFormにキャストしてあげればいいし。

Form myForm = (Form)Application.OpenForms[0];

というわけで、これでいけるかどうか実験中です。
674デフォルトの名無しさん:2006/05/15(月) 21:47:27
>>671
「起動時に開かれる親form」って何?
そもそもそういう特別なWindowってあったっけ?
アプリによっては[起動→スプラッシュウィンドウ→初期化処理→メインウィンドウ]って流れになるから必ずしも最初にCreateWindowされるのが全ての親になるって保証はないわけだが。
どれが親になるのかは開発者しか分からないから、>>672の回答が正解だと思うんだけどね

もしかして単に「最初に作られるトップレベルウィンドウのインスタンスを取得したい」って話?
675デフォルトの名無しさん:2006/05/16(火) 13:47:33
>>656
RealProxyを使えよ。
676デフォルトの名無しさん:2006/05/17(水) 00:38:51
そういう場合普通概念的には透過プロキシ使えよ、という。
677デフォルトの名無しさん:2006/05/17(水) 00:41:34
しかしあらゆるメソッドでプロキシ使えってのは
はっきり言って現実的じゃない。ような気がする。
678デフォルトの名無しさん:2006/05/17(水) 11:36:19
メールクライアントを作ろうとしてるんだが、
POP3のやりとりで
USER−>PASS−>STAT
で動かなくなる。
アンチ・ウィルスを止めるとうまく動く。
どないせえっちゅうんや。
679デフォルトの名無しさん:2006/05/17(水) 12:49:35
アンチ・ウィルスを止める
680デフォルトの名無しさん:2006/05/17(水) 12:50:08
どないもこないもありまへんがな
681デフォルトの名無しさん:2006/05/17(水) 13:01:19
止まるだけならマシやがな
俺のはコマンド間違えるとアンチウィルスソフトが強制終了するがな
再起動するまで直らんがな
682デフォルトの名無しさん:2006/05/17(水) 14:09:49
using Microsoft.Office.Interop;←こんな感じで参照しているのに、
using Microsoft.Office.Interop.Word;←こんな感じで参照しているのに、

private Microsoft.Office.Interop.Word.Application WdAppli;←ここまで丁寧にかけば大丈夫だた。
replaceAll = Word.WdReplace.wdReplaceAll; ←これはエラーでる。

これはなぜでしょうか。

word2000を使用していた頃はこんなことにはなりませんでした。
word2000をアンインストールして、word2003をインストールし使用するようになったら、急に自分で作ったソフトがエラーを出すようになってしまいました。

なお、既に、
wordobjectlibrary11.0は参照追加済みです。

宜しくお願いします。
683デフォルトの名無しさん:2006/05/17(水) 14:15:52
エラーの内容を書かないのは相変わらずだな
684デフォルトの名無しさん:2006/05/18(木) 09:38:07
C#2.0のアプリでファイルアップロード機能を作ろうと思っています。
下記のようにして、win2kサーバのWeb共有を施したフォルダをアップロード先に指定しました。

NetworkCredential nc = new NetworkCredential();
nc.UserName = "username";
nc.Password = "pass";
webClient.Credentials = nc;

System.Net.webClient.UploadFile(url,localpath);
url="http://192.168.0.1/DLSample/"
localpath(コモンダイアログより取得)

これを実行すると以下の例外が表示されアップロードが出来ませんでした。
パスワードの間違い等はありません。

System.Net.WebException: ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。
---> System.IO.IOException: ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。

以上です。
申し訳ありませんが解決方法のヒントをいただけないでしょうか。
685デフォルトの名無しさん:2006/05/18(木) 09:56:29
NTドメインは?
686デフォルトの名無しさん:2006/05/18(木) 10:13:47
>>685
回答ありがとうございます。
[NTドメイン]と言うものを考慮する必要があることを知りませんでした。
そのあたりについてもういちど調べてみます。

ちなみにサーバ上のフォルダにファイルをアップロードするという機能自体は
WebClient.UploadFileを使用することで実現できるのでしょうか。
687デフォルトの名無しさん:2006/05/18(木) 12:06:13
>>686
JAVA
688デフォルトの名無しさん:2006/05/18(木) 22:26:33
>>682
using Word = Microsoft.Office.Interop.Word;
689デフォルトの名無しさん:2006/05/19(金) 00:55:07
private void tabControl1_Selecting( object sender, TabControlCancelEventArgs e )
{
 MessageBox.Show( e.TabPageIndex + "\n" + tabControl1.SelectedIndex );
}

で、e.TabPageIndex と tabControl1.SelectedIndex が同じ値だけど、
これっておかしくない?

tabControl1.SelectedIndex は Selected の後で変わるべきちゃうか?
だって SelectedIndex だもん
690デフォルトの名無しさん:2006/05/19(金) 01:40:07
結局Javaもプロパティをサポートすんだね。
どんだけパクれば気が済むんだ
691デフォルトの名無しさん:2006/05/19(金) 05:12:47
>>690
C#も、JavaとDelphiパクりだし気にスンナヽ(´Д`)ノ
692デフォルトの名無しさん:2006/05/19(金) 06:22:06
確かにJavaはパクってるがDelphiをパクったというのはどうだろうか
693デフォルトの名無しさん:2006/05/19(金) 06:24:19
>>692
設計者、設計者
694デフォルトの名無しさん:2006/05/19(金) 06:24:59
ああ、設計者が一緒だから、パクりじゃないだろ、といいたいのかもしれんか・・・
695デフォルトの名無しさん:2006/05/19(金) 09:08:33
>>694
正解
696デフォルトの名無しさん:2006/05/19(金) 11:07:27
教えて下さい。
string uri = @"URL〜/cgi-bin/set?data=["\]";
WebClient wc = new WebClient();
Stream st = wc.OpenRead(uri);

てな感じで/cgi-bin/set?data=["\]を送りたいんですが、
wc.OpenRead(uri);を実行すると、勝手に["\]がエスケープされて
%22,%5Cになってしまいます。
訳合ってエスケープしたくないんですが、
エスケープせずに送る場合はどうすればいいんですか?
697デフォルトの名無しさん:2006/05/19(金) 11:20:36
UrlEncode しなきゃ駄目な文字だし。そのまま送ったら RFC 違反。
698デフォルトの名無しさん:2006/05/19(金) 13:44:13
>697
そうなんですが・・・
でも、IEのアドレスバーに/cgi-bin/set?data= "\
って入力して、Enter押すと半角スペースは%20に
エスケープする癖に、"\については無変換で送ってるんですよ。

実際、送ったパケットをキャプチャしてダンプを見ると、22 5cで送ってるし・・
699デフォルトの名無しさん:2006/05/19(金) 14:24:53
>>698
といっても>>697の言うとおりだし・・・

>半角スペースは%20に エスケープする癖に
半角スペースはエスケープしないとhttpサーバでエラーになるから、
シフトJISをそのまま送る凶悪なIEでもさすがにエスケープせざるを得ない。
700デフォルトの名無しさん:2006/05/19(金) 14:39:03
>699
じゃあやっぱりIEがRFC無視したクソ野郎ってことですね(´Д`)
ああ〜IEを踏襲した仕様云々〜なんて言わなきゃよかったよ・・・

WebClientっぽいのを一から作って間に合うかどうか(;´Д`)

色々ありがとう。
吊ってきます・・・
701デフォルトの名無しさん:2006/05/20(土) 14:51:02
なぜそこでクライアントを1から作るという発想になるのか
702デフォルトの名無しさん:2006/05/20(土) 16:21:44
次のようなidlを元にmidlとtlbimpを使用して相互運用アセンブリを作成しました。

import "oleidl.idl";
[uuid(82636634-EA4C-4577-8CEF-E5D917E709AE)]
library Test{
  [uuid(4635C6B4-7916-4a6e-8266-1B92C9B3DBD9)]
  interface ITest :IUnknown{
    HRESULT MethodA(GUID guid);
}}

.Net Framework には Guid 固有のマーシャリング処理が含まれているので
MethodAの引数の型は System.Guid になるか、と期待したのですが、
相互運用アセンブリ内で定義されたGUID構造体になってしまいます。

MethodAの引数の型が System.Guid になるようにするには
どうすればよいのでしょうか?
703デフォルトの名無しさん:2006/05/20(土) 18:53:37
PanelのAutoScrollがtrueで、
乗せているコントロールの幅と高さがPanelを超える場合でも、
スクロールバーが縦と横の両方表示されるPanelと
縦しか出ないPanelがある。
PanelもPanel上のコントロールも、DockはNone以外。
Dockが共通でも挙動は異なる。
必要時にスクロールバーが表示されるにはどうしたらいいだろうか。
704デフォルトの名無しさん:2006/05/20(土) 19:02:54
>>703
もっと条件詰めれ
つか AutoScroll と Dock は相性悪いと思うが
705デフォルトの名無しさん:2006/05/20(土) 19:09:53
ScrollableControlの使えなさは異常
糞杉
706デフォルトの名無しさん:2006/05/20(土) 19:21:44
>>704
>もっと条件詰めれ
痛いとこ突かれた。ほか書くことないもんなあ。
環境はC#2005 Express。ぐらい?
Panelは別のPanelに乗っている。
挙動の異なるPanel同士は隣接し、片方がDock.FillでSplitterで分割。
あと訂正。DockがNoneのものもある。

>>705
そうなのか?
AutoScrollPositionが負の値で取得されるのはどうかと思った。
707デフォルトの名無しさん:2006/05/20(土) 20:32:44
>>706
>Panelは別のPanelに乗っている。

親のPanelをDockやめてAnchorにしたら上手くいったことがあったようななかったような
708デフォルトの名無しさん:2006/05/20(土) 21:54:04

デイトタイム構造体への変数入力について教えて下さい。
分や秒だけ、入力し、他の数字(日付や年)は、すでに入っている値をそのままにするにはどうしたらいいのでしょうか?

例えば以下のように数字を入れた後、
X = new DateTime(2006,5,20,21,5,15);

2006年とか5月はそのまま変更することなく、 分と秒だけ変えたいのです。

教えて下さい<(_ _)>
709デフォルトの名無しさん:2006/05/20(土) 21:56:34
作り直せ。
710デフォルトの名無しさん:2006/05/20(土) 22:39:04
ぷろぱてー
711デフォルトの名無しさん:2006/05/20(土) 22:57:10
>>709

レスありがとうございます。

作り直すというのは、どういうことなのでしょうか?


712デフォルトの名無しさん:2006/05/20(土) 23:10:38
X = new DateTime(X.Year, X.Month, X.Day, X.Hour, newMinute, X.Second, X.Millisecond);
元の値から差を計算して AddMinutes でもいいけどな。
713デフォルトの名無しさん:2006/05/20(土) 23:57:55
>>712
あああ〜〜
なるほどそうやればいいだけなのですね。

ありがとうございました。
714デフォルトの名無しさん:2006/05/21(日) 02:09:42
本アプリと、本アプリで使用するデータエディタを作成しております。
データエディタで作成したデータ(クラスオブジェクト)をシリアライズ化してファイルに出力し、
本アプリで読み込んで逆シリアライズをかけたのですが、

アセンブリ 'DataEditor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' が見つかりません。

と言われました。

本アプリ      :SOX.exe
データエディタ  :DataEditor.exe

なので、エディタの実行ファイル名をSOX.exeにすると本アプリでも読み込めました。
シリアライズ化したクラスオブジェクトを逆シリアライズすることが出来るのは、
同じ名前の実行ファイルだけなのでしょうか?
別の実行ファイルでも逆シリアライズできる方法を教えてください。


↓ここを参考にしました。
ttp://dobon.net/vb/dotnet/file/binaryformatter.html
715デフォルトの名無しさん:2006/05/21(日) 03:05:40
そのデータクラスを独立した DLL にして、両方から参照させろ。
716デフォルトの名無しさん:2006/05/21(日) 03:08:54
>>714
シリアライズしたい型をdllの中で定義して、
SOX.exeとDataEditor.exeの両方から参照してみては?
717デフォルトの名無しさん:2006/05/21(日) 04:03:05
>>714
XMLSerializer使うってのはどうよ。
1.1だと日本語環境で致命的なバグがあったけど2.0なら使えるんじゃないかな
718703:2006/05/21(日) 09:47:47
>>707
Anchorで代用できるか試したがうまい具合にPanelを広げられなかった。

自己解決したので報告しとく。
StatusBarのzオーダーが原因だった。
他のコントロールよりも後ろに配置してやらないと今回のような不具合が見られるようだ。
これはToolBarにも同様のことがいえる。
皆さん回答ありがとう。
719デフォルトの名無しさん:2006/05/21(日) 15:53:38
XMLSerializerで1.1だと日本語環境で致命的なバグ
げ、これってどんなの?
720デフォルトの名無しさん:2006/05/21(日) 15:55:40
10分ぐらい固まるんじゃないっけ
721デフォルトの名無しさん:2006/05/21(日) 16:03:34
XmlSerializer クラスから起動された csc.exe が一定時間応答を停止する場合がある
http://support.microsoft.com/default.aspx?scid=kb;ja;899153
722デフォルトの名無しさん:2006/05/21(日) 17:22:31
サンクス、XmlSerializerバリバリ使ってるから心配だったわ。
723デフォルトの名無しさん:2006/05/21(日) 19:10:08
XmlSerializer不便じゃないか?XmlIncludeAttributeとか
724デフォルトの名無しさん:2006/05/21(日) 19:24:37
設定ファイルなんかの
設定オブジェクト<=>Xmlでの永続化が便利じゃない?
List<string>とかもそのままいけるし
ある程度階層化とかも容易だし List<XmlSerialisableな設定オブジェクト>みたいな
725714:2006/05/21(日) 20:03:07
皆さんありがとうございました。
大変参考になりました。
726デフォルトの名無しさん:2006/05/22(月) 15:35:24
フォームが突然普通のクラスに変わってしまうのぜすが、
同じような経験の方いませんか?
(デザイナで開けず、単なるクラスとしてしか触れないので、ボタンの配置等ができない)

HogeForm : Form
と、フォームを継承しているのに、右クリックにて表示される
「デザイナの表示」メニューが消えてしまうのです。
アイコンも、フォームのアイコンでなく、クラスファイルのアイコンです。
727デフォルトの名無しさん:2006/05/22(月) 15:43:42
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
728デフォルトの名無しさん:2006/05/23(火) 02:16:17
ソフトキーボード作りたいんですけど、
キーボードの入力イベントってソフト的に発生するにはどうすれば良いですか?
729デフォルトの名無しさん:2006/05/23(火) 02:17:48
KeyDown,KeyUp,KeyChar(うろ覚え)
730デフォルトの名無しさん:2006/05/23(火) 02:55:00
>>729
なんかそれらはキー入力を処理するためのもののようです。
731デフォルトの名無しさん:2006/05/23(火) 03:14:46
んじゃ、SendMessageすればいけるんとちゃう?
732デフォルトの名無しさん:2006/05/23(火) 03:40:20
どもです。
検索の結果、SendKeys.Send()でいけそうな感じです。
でもマイクロソフトのサイトには、「重要」危ないから使うな、って書いてあるけど。
733デフォルトの名無しさん:2006/05/23(火) 15:28:52
>>702
今更のレスだが、ilasm と ildasm 使えと言うことになるんじゃないかな
734デフォルトの名無しさん:2006/05/24(水) 09:59:39
ここ数日、突然ステップ実行に異常に時間が(1行5秒ぐらい)
掛かるようになってしまったのですが、同じ現象に遭遇した人
いませんか?
ブレークしない分にはデバッグ実行も普通に動作しています。

よろしくお願いします。
735デフォルトの名無しさん:2006/05/24(水) 10:04:48
エディット&コンティニューを有効にしたとか?
//それで遅くなるかは知らん
736デフォルトの名無しさん:2006/05/24(水) 10:06:47
>>735
ありがとうございます。
エディット&コンティニューとは何でしょうか?
試してみたいと思うのですが。
737デフォルトの名無しさん:2006/05/24(水) 10:08:17
>>735
あ、オプションのデバッグのところにありました。
確かに有効になってます。
これってデフォルトは無効なんでしょうか?
738デフォルトの名無しさん:2006/05/24(水) 10:15:24
>>735
無効にしてみましたが、結果は同じですね。

またされている間の5秒間はCPU使用率も100%になってます。
書き忘れてましたが、VS2003 + ASP.NETです。
739デフォルトの名無しさん:2006/05/24(水) 10:54:37
>>735
その後、いろいろ試していたらどうも
ソリューション依存っぽかったので
8MB程度に肥大化していた.suoファイルを
削除して作り直したところ元に戻りました。
(再生成されたファイルは8KB)

エディット コンティニュは有効でも特に
遅くなるという感じはありませんでした。

お騒がせしました。
740デフォルトの名無しさん:2006/05/24(水) 11:29:52
2003でエディット&コンティニュて使えたっけ?
あと、ブレークポイントの数が増えると
極端に重くなる事がある。
741デフォルトの名無しさん:2006/05/24(水) 11:38:26
>>740
使ったことはないんですが、一応オプションに項目はありました。
742デフォルトの名無しさん:2006/05/24(水) 11:40:53
WebBrowserクラスにて、画像表示のON/OFFやActiveXの実行のON/OFF、
JavaScriptの実行のON/OFF、などをやりたいのですがどのプロパティorメソッドを用いればよいのでしょうか??
743デフォルトの名無しさん:2006/05/24(水) 16:57:18
イミディエイトウインドウて、名前完全修飾じゃないと使えないの?

名前 'Convert' は現在のコンテキスト内に存在しません。

て、出るけど、完全修飾なら使える。。。
何か方法ないかしら?
744デフォルトの名無しさん:2006/05/24(水) 17:00:56
>>742
>>394-
745デフォルトの名無しさん:2006/05/24(水) 18:53:31
>>742
COMの知識がないと厳しい。

具体的な方法は、
http://d.hatena.ne.jp/santamarta/20050220
が参考になる。
746デフォルトの名無しさん:2006/05/24(水) 18:58:24
>>733
どうもありがとうございます。

その方法でやってみましたが、
idlを書き換えた際のMSILの更新が大変だったので
結局、 .NET Reflector でDLLをC#のコードに変換して使用する事にしました。
747デフォルトの名無しさん:2006/05/24(水) 20:27:45
C#(NET)でファイルパス等の文字列を縮める
にはどうしたら良いのでしょうか?

例えばエクスプローラのように
"c:\aaa\bbb\cccc"を "c:\aaa\bb..."
としたいのですが

自分では見つけられなかったので
今のところPathCompactPathをP/Invokeしてます
748デフォルトの名無しさん:2006/05/24(水) 21:00:10
DrawString のStringFormatTypeかなんか。
749747:2006/05/24(水) 22:39:24
あ、できました

StringFormat fmt = new StringFormat(StringFormatFlags.NoWrap);
fmt.Trimming = StringTrimming.EllipsisWord;
e.Graphics.DrawString(,,,,,,fmt);
こんな感じで。

因みにEllipsisPathを指定したら中間だけ省略されて面白いですね
>>748さんありがとう


750デフォルトの名無しさん:2006/05/24(水) 23:26:38
GDI+作った奴天才だろ
751デフォルトの名無しさん:2006/05/24(水) 23:36:30
消え去る運命
752デフォルトの名無しさん:2006/05/24(水) 23:37:47
app.config で前もって設定した、keyのvalueの変更ってどうやって
やればいいんでしょうか?
753デフォルトの名無しさん:2006/05/24(水) 23:44:38
エディタで開いて変えるねん。
それがいやならXmlDocumentにでも読み込むねん。
それもいやならあきらめるねん。
754デフォルトの名無しさん:2006/05/25(木) 00:35:19
あー、やっぱり読み込みみたいに簡単にやる方法はないのね。
>>XmlDocumentにでも読み込むねん。
これでやります。dクス >752さん
755デフォルトの名無しさん:2006/05/25(木) 00:37:49
app.configって動的に書き換えるもんか?
756デフォルトの名無しさん:2006/05/25(木) 00:45:44
基本的に書き換えるな
757デフォルトの名無しさん:2006/05/25(木) 02:04:31
2.0ならOpenExeConfigurationとかで開いて変更して保存できるかも。
758デフォルトの名無しさん:2006/05/25(木) 10:02:28
MSDNでC#の文法一覧書かれてる場所わかりませんか?

while(expression)|statementみたいなかんじで・・・
どっかにあったのまえみたんだけれどみつからなす。
759デフォルトの名無しさん:2006/05/25(木) 10:25:16
言語仕様 で MSDN 検索汁
760デフォルトの名無しさん:2006/05/25(木) 10:37:36
あったよ。
あとインストールフォルダのlanguagespecificationXXX.docもあった。
さんくすこ
761デフォルトの名無しさん:2006/05/25(木) 11:48:37
ネットワーク共有についてです。ネットワーク共有で接続しているマシンのサービス名の取得ってできないでしょうか?
\\hogehoge\shareddocs
とアクセスしてフォルダやファイルの一覧の取得は可能ですが、
\\hogehoge
とアクセスして sharddocs などの共有フォルダの一覧を取得したいのです。
c# のリファレンスなどを見ても、ネットワーク共有のクラスなどはないようですし。
どなたかご存じないですか?
762デフォルトの名無しさん:2006/05/25(木) 12:08:05
.NET 単体じゃ無理。NetShareEnum とかが必要。
763デフォルトの名無しさん:2006/05/25(木) 12:22:15
>>762
どもです。System.Net あたりに用意されているといいんですけれどね〜。
ありがとうございました。
764デフォルトの名無しさん:2006/05/25(木) 14:41:16
自分でつくったDLLをグローバルアッセンブリキャッシュに登録し
VisualStudioから参照の追加でこのDLLを参照させるにはどう指定すればいいのでしょうか
765デフォルトの名無しさん:2006/05/25(木) 14:46:06
>>764
・sn.exe
・gacutil.exe

以上
766デフォルトの名無しさん:2006/05/25(木) 14:54:34
説明不足でした。
登録のほうじゃなく参照のほうを聞きたいです。
参照の追加で%SYSTEM%assemblyフォルダ開いても指定できないし
登録したDLLを直接指定すると絶対パスになってしまう。
別のPCに持って行っても大丈夫なようにファイル名だけ指定したいのですが
767デフォルトの名無しさん:2006/05/25(木) 15:02:25
>>766
assembly にあるほうじゃなくて、手元に残っている DLL を指定。
768デフォルトの名無しさん:2006/05/25(木) 15:08:39
開発用の共通ライブラリをプロジェクト間で使い回すためにGACに登録するのは邪道。
GACはあくまで実行時に参照するためにある。
769デフォルトの名無しさん:2006/05/25(木) 16:36:21
なるほど実行時のみですか。
VSでのビルド時のDLLパス指定ですが
参照設定してるDLLのプロパティにある「パス」って項目が編集不可で相対パスが指定できません。
ほかのPCにもっていっても問題なくビルドできるようにするにはどうすれば良いのでしょう
770デフォルトの名無しさん:2006/05/25(木) 17:08:25
>参照設定してるDLLのプロパティにある「パス」って項目が編集不可で相対パスが指定できません。

試してみましたか?
変なコピーの仕方をしなければ問題なくビルドできると思いますが・・・
771デフォルトの名無しさん:2006/05/25(木) 18:24:18
.csprojの中みましたが
参照DLLがプロジェクトと同じドライブにあるとReference/HintPathが相対パスになるが
ドライブがちがうと絶対パス指定に。

例えばこの参照DLLがオラクル製のだとして
違うドライブ:%PROGRAMFILES%oracle\bin\oracle.dll
を参照させると別のPCにもって行ったときoracle.dllが想定外の場所にインストールされてるとビルドできない。
このあたりをグローバルアッセンブリで解決できればいいなとおもったんですが。
プロジェクトフォルダに参照DLLのコピーいれとくのが普通の解決方でしょうか。
772デフォルトの名無しさん:2006/05/25(木) 18:27:38
csproj って、実行時には参照されないって知ってる?
773デフォルトの名無しさん:2006/05/25(木) 19:26:26
>>771
やりたいことはわかりましたが、ドライブが違うのに「相対パス」とか書いても意味ないですよ。
「ファイル名」のことですよね。

参照するアセンブリの場所が変わったときにもファイルをプロジェクトのディレクトリ内にコピーしておくか、
持って行った先でプロジェクトのプロパティで「参照パス」を設定するのが普通なような・・・

それはさておき、元々の質問
>VisualStudioから参照の追加でこのDLLを参照させるにはどう指定すればいいのでしょうか
登録済みのものはファイルを指定しなくても.NETのところの一覧に出てきませんか?
774デフォルトの名無しさん:2006/05/26(金) 17:43:14
http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html

このアプリの設定の保存場所を実行ファイルと同じ場所に変えれないでしょうか?
フォームのサイズと位置を保存したいです。
775デフォルトの名無しさん:2006/05/26(金) 20:43:54
>>773
>登録済みのものはファイルを指定しなくても.NETのところの一覧に出てきませんか?
でてきません。
gacutilからも登録が確認できない。
エクスポローラからassemblyフォルダみるとちゃんと登録はされてんですが。
776デフォルトの名無しさん:2006/05/26(金) 20:53:37
>>775
>エクスポローラから

お前はもう死んでいる!
777デフォルトの名無しさん:2006/05/26(金) 23:27:36
string str = "゚<>゚";として
str.IndexOf("<>");で-1が返ってくるんだけど何故?

最後の「゚」を取り除くと、ちゃんと1が返ってくる。
778デフォルトの名無しさん:2006/05/26(金) 23:31:20
"゚<>゚";

("<>");

↑かわいい^0^
779デフォルトの名無しさん:2006/05/26(金) 23:34:17
以前にも話題に出て答えた記憶があるな。
多分 Unicode に起因する仕様(推測)。
濁点や半濁点は、直前の文字と結合して一つの文字として認識されるようだ。
ちなみに全角の濁点半濁点でも同じ。探すと結構その手の文字は多い。
(日本語環境で表示できるのは全半角の濁点半濁点くらいだが)
780デフォルトの名無しさん:2006/05/26(金) 23:36:49
゚がカルチャ関係でひっかかってたみたいです
StringComparison.Ordinal指定したらOKでした。
781デフォルトの名無しさん:2006/05/27(土) 02:18:54
static void Main(string[] args) {
System.Net.WebClient wc = new System.Net.WebClient();
wc.Headers.Add(HttpRequestHeader.Range, "bytes=0-1");
byte[] data = wc.DownloadData("http://www.example.com");
wc.Dispose();
}

これだけのプログラムなんですが、DownloadDataのところでWebExceptionが発生します。
そのWebExceptionを見ると、StatusプロパティがWebExceptionStatus.UnknownErrorです。

InnerExceptionはArgumentExceptionで、Messageが
"このヘッダーは、適切なプロパティを使用して変更しなければなりません。\r\nパラメータ名: name"
StackTraceが
場所 System.Net.WebHeaderCollection.ThrowOnRestrictedHeader(String headerName)
場所 System.Net.WebHeaderCollection.Add(String name, String value)
場所 System.Net.HttpWebRequest.set_Headers(WebHeaderCollection value)
場所 System.Net.WebClient.CopyHeadersTo(WebRequest request)
場所 System.Net.WebClient.GetWebRequest(Uri address)
場所 System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)

これを見ると、HttpWebRequestでRangeヘッダーやIf-Modified-Sinceヘッダーなどの「制限付きヘッダー」を設定したときに投げられる例外のようです。
ところがWebClientクラスのHeaderプロパティのドキュメントには

>Headers プロパティは、WebClient が要求で送信するヘッダー情報を含む WebHeaderCollection インスタンスを格納します。
>これは無制限のヘッダーのコレクションであるため、HttpWebRequest などの WebRequest の子孫で制限されるヘッダーを設定できます。

と書いてあります。これはドキュメントが間違っているのでしょうか?
また、WebClientでRangeヘッダーやIf-Modified-Sinceヘッダーを使うにはどうしたらよいでしょうか。

.NET Framework 2.0です。
782デフォルトの名無しさん:2006/05/27(土) 02:52:20
そう言うもんだと割り切って HttpWebRequest 使えば
783デフォルトの名無しさん:2006/05/27(土) 10:09:19
MicrosoftのC#のIDEを手に入れたいんですけど、
今、製品版を買うとしたらどれがいいんでしょう?

それと>>4にある無料配布中の開発環境はバージョンが古いのでしょうか?
色々種類が多くてわかりません!
784デフォルトの名無しさん:2006/05/27(土) 10:13:08
>>783
個人開発なら>>4にあるので十分性能あるよ。
最近無期限で無料にもなったみたいだし。
785デフォルトの名無しさん:2006/05/27(土) 10:22:35
>>784
ありがとうございます!
さっそくDLしてきます
786デフォルトの名無しさん:2006/05/27(土) 11:21:13
>>774
ファイルがわけの分からない深い場所に保存されるのと
仕様がはっきりわからないのが気持ち悪くて
結局XMLSerializer使って設定読み書きしてる。
787デフォルトの名無しさん:2006/05/27(土) 11:32:51
ScopeをApplicationにすりゃ良いだけだったような。
でもそれ使わずに俺もシリアル化してる。
788デフォルトの名無しさん:2006/05/27(土) 11:55:39
2005std買ったけど、糞重いから結局無料版のC#でプログラムやってるやつはおれだけじゃないはず
789デフォルトの名無しさん:2006/05/27(土) 11:59:20
糞重いがリファクタ機能を死ぬほど使う俺には重宝
790デフォルトの名無しさん:2006/05/27(土) 12:04:55
分離ストレージの管理ツールはSDKにあるstoreadmだけだから、
GUI系の使いやすいツールがランタイムのほうに付くようにならないと安心して使えない。
ただ分離ストレージは制限ゾーンで使えるから制限ゾーンを使うアプリではよく使っている。
791デフォルトの名無しさん:2006/05/27(土) 12:56:58
アプリケーションの設定ファイルについて言えば、
XMLファイルにすると、ほとんど絶対って言っていいほど
設定用のウィンドウを作ってあげなければならない。
INIファイルならユーザーが自分で開いて楽に設定を変更できる。
よりユーザーに親切にしたいのなら、設定用ウィンドウを
作ってあげればいいし。
792デフォルトの名無しさん:2006/05/27(土) 13:10:51
手抜きするなら PropertyGrid でいいじゃん
793デフォルトの名無しさん:2006/05/27(土) 13:59:56
>>791
個人的にはINIでもXMLでも何でもユーザが手でテキスト開いて設定直すって
ありえない気がするので、どっちも設定画面作るのは一緒。俺の場合。
794デフォルトの名無しさん:2006/05/27(土) 14:41:09
書き直されることを想定して作るけど、推奨はしたくないな……
795デフォルトの名無しさん:2006/05/27(土) 14:58:56
そういえばMS-DOSの頃はユーザーがINIファイルを開いて、
自由ににカスタマイズするのが当たり前だったよな・・・
796デフォルトの名無しさん:2006/05/27(土) 15:02:35
コマンド引数付きのバッチファイル作ったりな
797デフォルトの名無しさん:2006/05/27(土) 18:37:30
>>782
当面はそうしますけど、場合によってはWebClientのほうが楽ですし
ドキュメントに「設定できる」って書いてある以上、出来なきゃおかしいと思います。

しかも例外が発生する場所がおかしいですし。
798デフォルトの名無しさん:2006/05/27(土) 19:45:01
じゃあお前はドキュメントに死ねって書いてあったら死ぬのか!!!!!!!!!!
799デフォルトの名無しさん:2006/05/27(土) 19:56:37
>>798
それだったらドキュメントを直せって話になりますし。。。
800デフォルトの名無しさん:2006/05/27(土) 23:20:02
まあ俺らに言われても困るし、MSDNフォーラムに投げたんだったら後はMSの人の回答を待っとけ。
801デフォルトの名無しさん:2006/05/28(日) 03:43:24
c++のソースをC#にコンバートするツールはありますか?
802デフォルトの名無しさん:2006/05/28(日) 03:52:22
無理だし。
803801:2006/05/28(日) 03:58:08
一旦コンパイルしてからreflectorでソース見ながら手動で変換するしかないのかな?
804デフォルトの名無しさん:2006/05/28(日) 04:11:17
C++ って Managed C++ or C++/CLI なのか?
ま、/clr:pure でもない限りまともに変換できないだろうけど。
805801:2006/05/28(日) 04:15:40
Managed C++なんですけど、文法が難しくて
どうしたもんかと思いまして
806デフォルトの名無しさん:2006/05/28(日) 04:36:38
>>805
どこの文法が難しいのかと
C#に比べてまともなライブラリが揃って無いからソースウゼェ 読メネェ の間違いじゃ?
807デフォルトの名無しさん:2006/05/28(日) 05:34:59
C++ に詳しくない人なのやも知れぬ
808801:2006/05/28(日) 05:39:36
そうなんれす
まったくわからないのれす
横着せずに勉強すればいいんでしょうが・・・
私の脳味噌では厳しいです
809デフォルトの名無しさん:2006/05/28(日) 06:36:14
C# が分かって C++ が分からんって謎だな。
810デフォルトの名無しさん:2006/05/28(日) 08:48:38
C#から始めた俺はC++なんて知らないよ
811デフォルトの名無しさん:2006/05/28(日) 09:34:06
オレはCから始めたがCOBOL,FORTRAN,アセンブラ,BASIC,JAVA,C#(ついでにPerlとPHP)が分かるぞ
ナニから始めた云々なんて関係ないんだよ

言語なんてただの書き方のルールでしかないんだ
アルゴリズムさえ分かってれば「言語が違います」なんてのは障害にすらなりゃしないんだよ

あと1つ。
分からないなら分かってる人間が教えてあげることも可能だが、
知らないなんてのはただの勉強不足でしかない。甘えんな
812デフォルトの名無しさん:2006/05/28(日) 09:37:44
>>810
俺漏れも
813デフォルトの名無しさん:2006/05/28(日) 09:40:14
C++は読めるけど自分で書けない
814デフォルトの名無しさん:2006/05/28(日) 10:42:41
そこまで青筋立てて起こらなくても。
10以上の言語で読み書きできるが、もう全部C#とrubyでいいよと思ったりするよ。
一人じゃない場合、他の人が使えない問題は明らかに障害かと。

動かなくていいから多言語のソースサンプルとか ViewだけC#で提供してくれる。というものが欲しい。
そういうのって、今いいものないのかな。
昔、BabbelFiskenってツール使ってたけど(VB,Delphi対応してた) C++は知らない。
815801:2006/05/28(日) 15:06:44
>>811
単純にプログラミング歴長いおっさんってだけでしょ
それにCからはじめれば多言語理解するのも容易だけど
C#はAPIやOS、ハードウェアなど理解しなければならないものを使う機会が少ないからね
そういう基礎的な理解を必要とせずプログラミングできるのが.NETなんだから
ある意味VB6以上に多言語への応用力がないと思うよ
816デフォルトの名無しさん:2006/05/28(日) 16:53:31
findfirst
findnext
findclose

が GetFiles(); だけで済むんだもんなぁ・・・

817デフォルトの名無しさん:2006/05/28(日) 16:58:24
>>815
ちょっと深いところ書こうとするとあっという間に P/Invoke の嵐になりがちなんだが
そうすると C++ はともかく、C の知識はそれなりに要求されるんだよな
818デフォルトの名無しさん:2006/05/28(日) 17:24:24
>>815,817
結局
 >806> C#に比べてまともなライブラリが揃って無いからソースウゼェ 読メネェ の間違いじゃ?
ってことだな。
819デフォルトの名無しさん:2006/05/28(日) 20:58:30
820デフォルトの名無しさん:2006/05/28(日) 21:07:20
プロパティグリッドにあるでしょ
821デフォルトの名無しさん:2006/05/28(日) 21:12:04
パブリックなフィールド変数をプロパティに設定する意味がよくわからない
getもsetも両方設定するならプロパティをわざわざ設定しなくてもいいんじゃないの?
って思うんだけど、どちらか片方だけ設定するなら意味はあるんだけど
822デフォルトの名無しさん:2006/05/28(日) 21:15:57
値チェックとかできるじゃないか
設定時にイベント起こしたり
823デフォルトの名無しさん:2006/05/28(日) 21:23:02
>>820
すいません、ありました・・・。
でも、これって終了時にその状態を動的に保存したりは出来ないんですね。
824デフォルトの名無しさん:2006/05/28(日) 21:34:39
コントロールを削除したりして、使わなくなったイベントやメソッドがゴミとして残るけど
それら使用されていないメソッドを削除したいんですがいい方法ありますか?
825822:2006/05/28(日) 21:38:22
>>822
set{
if(value>0) Str=value;
}

みたいな感じですか?
826デフォルトの名無しさん:2006/05/28(日) 21:45:04
Str が 数値型か。もにょるな。
827デフォルトの名無しさん:2006/05/28(日) 21:45:36
>>824
Disposeにtrueが渡されたときに
イベントにnullを代入するようにする。
828デフォルトの名無しさん:2006/05/28(日) 21:58:14
protected override void Dispose(bool disposing)
{

}
829デフォルトの名無しさん:2006/05/28(日) 22:00:07
protected override void Dispose(bool disposing)
{
 if (disposing)
 {
   this.Click = null;
 }
}




むしろthis.Events = nullってできたっけ?
830デフォルトの名無しさん:2006/05/28(日) 22:04:49
IDEのフォームエディタで手動でコントロールを削除したときの話じゃないのか?
831デフォルトの名無しさん:2006/05/28(日) 22:06:56
>>827-829 お前ら顧客の要求しようほんとに理解できるのか?
832824:2006/05/28(日) 22:12:10
>>830
それです
さくさくっといくつかのボタンなどを削除したのはいいんだけど
ボタンのイベントやメソッドがどこにあるのか探すのが大変なのでいい方法はないものかと
ちゃんとソース整理してなかったのがいけないんだけどね

決して参照されないメソッドも実行ファイルに反映されたりするのかな?
それともコメントみたいに実行ファイルの容量には反映されないのかな
不安です。
833デフォルトの名無しさん:2006/05/28(日) 22:18:00
決して参照されないメソッドでもアセンブリには含まれるよ
834デフォルトの名無しさん:2006/05/28(日) 22:43:14
>>830
えー、あの文章でよくわかったな。
”メソッドがゴミとして残る”ってどういうことだ?とは思ったが。
その発想はなかったわ、まじで。
835デフォルトの名無しさん:2006/05/28(日) 22:53:15
>>834 それしか思わなかったので>>827-829が何を言ってるんだとしか思えなかった。
836824:2006/05/28(日) 23:08:05
>>833
うはーそうなんだ
ほったらかしの未使用メソッドが大量にあるよー
困ったな。
837デフォルトの名無しさん:2006/05/28(日) 23:41:43
アセンブリに含まれてしまうことよりも、
ソースがわけ分からなくなることのほうが困るだろ。
838デフォルトの名無しさん:2006/05/29(月) 10:45:48
怪しそうなのを右クリ→参照の確認
で、定義しかなければ削除

ってのを繰り返すしかないんじゃないかな
839デフォルトの名無しさん:2006/05/29(月) 14:53:12
ここだけはVBうらやましす。
840デフォルトの名無しさん:2006/05/30(火) 18:35:15
プログラマって職だと出世は諦めたほうがいいのかな?
841デフォルトの名無しさん:2006/05/30(火) 18:37:39
ワケワカラン
842デフォルトの名無しさん:2006/05/30(火) 18:49:18
一生企業の末端として働くことを強制させられるのがプログラマですよね?
843デフォルトの名無しさん:2006/05/30(火) 18:53:41
普通に考えナよ。
言われたままプログラム組んでるだけならその程度の金しかもらえない。
組めるプログラムが高度なものならさらにいい報酬がもらえるし、強い立場にも立てる。
新しいシステムでも作れれば一財産作れる。
844デフォルトの名無しさん:2006/05/30(火) 19:00:33
高度なモノ作ってもソレを上司が理解できない。
たとえ理解されても仕様書と違うと作り直される。
新しいシステムを作ってもソレは会社の資産。
845デフォルトの名無しさん:2006/05/30(火) 19:03:50
作る機会も根気もないです
846デフォルトの名無しさん:2006/05/30(火) 19:26:07
そろそろマ板へ行け
847デフォルトの名無しさん:2006/05/30(火) 19:28:08
>>844 自分で会社作れよ。ぼけ。
848デフォルトの名無しさん:2006/05/30(火) 23:51:14
スレ違いの話題、超ウザイ
849デフォルトの名無しさん:2006/05/31(水) 00:14:06
プログラマが社長になったなんて聞いたことがないな
やっぱ文系に行っとけばよかった
850デフォルトの名無しさん:2006/05/31(水) 00:46:44
>>849
           ( ⌒ ⌒ )
          (     )
          (、 ,   ,)
            || |‘
        ミミ ヽヽヽヽリリノノノ
      ミ   ,,、,、,、,、,、,、,、、 彡  
       l  i''"        i  
       | 」  \' '/  |  >>849
      ,r-/  <・> < ・> |  バカ!
      l       ノ( 、_, )ヽ |  俺を忘れてるぞ!
      ー'    ノ、__!!_,.、|
       ∧     ヽニニソ  l _
    /   ヽ         /   \  
  /   _   `ー--一'       \
 // ̄ ̄(_)               |
 |ししl_l  (            |    |
851デフォルトの名無しさん:2006/05/31(水) 00:49:55
>>849
Gatesは?
852デフォルトの名無しさん:2006/05/31(水) 00:54:23
Visual C#.NET 2005 Express使用中です。
DataGridViewコントロールにDataGridViewImageColumn列を設定しています。
Accessのmdbをデータソースにして、OLE オブジェクト型の列にJPEGデータを
格納して、それをバインドさせてJPEG画像データを表示させてます。

JPEG画像データが正しい場合は特に問題ないのですが、列がNULLの場合は
System.FormatException例外が発生した旨のダイアログが表示されてしまいます。
ダイアログを出さず、NULLの場合は何も表示しないのが1番の希望ですが、
ErrorImageのような表示でもいいので、何かいい方法はありませんか?
853デフォルトの名無しさん:2006/05/31(水) 01:16:07
ん〜、試したけど普通に×マークのエラー画像が表示されるだけだな……。
// 直接画像ファイルのバイトデータ突っ込んだ手製の DataTable では、だけど。
854デフォルトの名無しさん:2006/05/31(水) 02:54:57
微妙にスレ違いかもしれないけど教えてください。

COMのIUnknownって、.netのObjectみたいに基底インターフェイスって考えでいいんですか?
中身が定義済みのインターフェイスだって分かってるなら、
そのインターフェイスにキャストしてOK?
855デフォルトの名無しさん:2006/05/31(水) 03:00:54
自己解決しまし……したのかな?

[InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
と定義してればOKってことですか?
856デフォルトの名無しさん:2006/05/31(水) 03:03:55
>>853
試していただきありがとうございます。
DataGridViewを作り直して、データソースの選択を含めてやり直したら出なくなりました。。。
作り直す前のと比べてみて、何か分かりましたら報告いたします。
今のところ違いは見つからず・・・。
原因がまだ不明ながら、これで結構時間をロスしてしまっていたので、助かりました!
857デフォルトの名無しさん:2006/05/31(水) 03:11:06
idexや配列は1から初めてほしいな
なんで0からなんだよ
10番目の要素がa[9]っておかしいだろ

しっかりしてよM$
858デフォルトの名無しさん:2006/05/31(水) 03:13:01
>>854
COM利用側からいうとIUnknownにキャスト(?)する必要あるか?
859デフォルトの名無しさん:2006/05/31(水) 03:14:58
>>857
釣れますか?
860デフォルトの名無しさん:2006/05/31(水) 08:50:23
>>857
ちゅーか、いまごろそんなこと言ってる奴がなぜCOMを・・・
861デフォルトの名無しさん:2006/05/31(水) 10:51:45
C#使いの漏れがたまに気分転換でVB.NETで
プログラミングするときは、配列の宣言は1つ少なく指定して
後はC#と同じ要領で使っている(・∀・)
862デフォルトの名無しさん:2006/05/31(水) 13:12:47
>>854
ホントにIHogeだっていう保証があるならいいんじゃない?
自分が実装したオブジェクトを相手にしてるときとか。

COMのIUnknownは基底インタフェイスであるのと供に、
オブジェクト実体への参照の役割も兼ねているあたり注意。
同じオブジェクト(IUnkown) に対して別のインタフェイスを要求すると、
別のIUnknown派生インタフェイスが帰ることもある。
アグリゲートされて別オブジェクト(で実装されたインタフェイス)だったりすることもある。
863デフォルトの名無しさん:2006/06/01(木) 01:13:30
>>857
"idex"や"初めてほしいな"に釣られそうだ・・・
864デフォルトの名無しさん:2006/06/01(木) 01:23:57
C#のパーサー作ろうとしてるんだけどむずかしす・・・
ANTLRを使うつもりだが、Genericsとかじぶんで対応しないと。
同じようなことしてる人いますか?
865デフォルトの名無しさん:2006/06/01(木) 03:56:39
FileInfoの移動とかコピーって
ファイルが存在しない場合もエラーでないんだね
ファイルの存在チェックとかしないでやってると、存在しない場合
見た目ではわからないが内部ではエラーが出てて次の関係ないメソッドがちゃんと実行されなかったりする

エラーぐらい出してよM$
866デフォルトの名無しさん:2006/06/01(木) 10:49:38
>>864
C#のネイティブコンパイラ作ってくれ
たのんだぞ
867デフォルトの名無しさん:2006/06/01(木) 22:04:16
http://www.uploda.org/uporg406060.jpg
ぶっ壊れた。キーボードが効かない。
868デフォルトの名無しさん:2006/06/01(木) 22:19:44
\\yakisoba\shared などのパスが存在するかどうかは
Directory.Exists() で調べられますが、
\\yakisoba のようなパスを調べるにはどうすればよいでしょうか?
869デフォルトの名無しさん:2006/06/01(木) 22:22:53
お前の日本語が理解できない
870868:2006/06/01(木) 22:30:39

\\yakisoba というパスが存在するかどうかということです。
Directory.Exists() では調べられなかったので。
871デフォルトの名無しさん:2006/06/01(木) 22:31:14
872868:2006/06/01(木) 22:35:33
>>871
Σ
こんな近くに答えがあったとは気づきませんでした。
スレ汚しすみません。
873デフォルトの名無しさん:2006/06/02(金) 16:34:36
ボタンのデザインって四角しかできないんですかね?
楕円の画像貼り付けても選択すると四角い枠が浮かんで格好が悪い
あとflatにすると押したときの灰色がでるんだがこれ消せないかな?
874デフォルトの名無しさん:2006/06/02(金) 16:41:30
875デフォルトの名無しさん:2006/06/02(金) 16:47:07
エミュレータ上のファイルエリアにアクセスするにはどうしたら出来ますか?
やりたいのは、エミュレーター上への(から)ファイルのコピーです。
876デフォルトの名無しさん:2006/06/02(金) 17:14:39
そのエミュレータがどんなのかは知らんが、普通は共有フォルダを使うんじゃないかね
877デフォルトの名無しさん:2006/06/02(金) 17:19:46
dataGridView.DataSource = dataSet; としたんですが
http://www.atmarkit.co.jp/fdotnet/basics/adonet04/adonet04_03.html
にあるようなテーブルを選択するツリーがでてきません。
直接テーブルを指定(.DataSource = dataSet.Tables[0];)
すると正常に表示されます。
どうすれば、DataSetをDataGirdViewにバインドしたときに、
DataTableの選択ができるようになりますか?
878デフォルトの名無しさん:2006/06/02(金) 17:23:33
DataGridView だとできない。
MSDN の「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」参照。
879デフォルトの名無しさん:2006/06/02(金) 17:25:03
ちなみに、DataSet を DataSource にした時には DataMember に表示するテーブル名を設定する。
880デフォルトの名無しさん:2006/06/02(金) 17:34:04
>>876
.Net 標準のエミュです。共有が出来ないみたいなのよ・・・やり方悪いのかもしれんけど
881デフォルトの名無しさん:2006/06/02(金) 17:35:31
ありがとうございます。
少し調べてみたのですが、このような(テーブルの選択をしたい)場合は
BindingSourceを使うのが一般的なのでしょうか?
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/cursor/cs.aspx
そうならば、カーソルを操作するUIが必要になるようですが、
最初から用意されていたりはしないのでしょうか?
882デフォルトの名無しさん:2006/06/02(金) 17:39:59
うわ、はずい。上のはテーブル内のレコードの移動っぽいですね。
勘違いすみません。
883デフォルトの名無しさん:2006/06/02(金) 17:43:43
>>880
.NET標準のエミュって何?
つか何のエミュレータ?
そもそもC#とどのようなご関係が?
まずは正しい製品名もしくはファイルのパスを書いてみ
884デフォルトの名無しさん:2006/06/02(金) 17:51:19
>>880
.NET にはエミュなんて無いはずだが、それは VS が持ってるスマートデバイスのエミュレータか?
ttp://www.microsoft.com/japan/msdn/vs/general/grfUsingEmulatorInSmartDeviceProjects.asp
885デフォルトの名無しさん:2006/06/02(金) 18:26:11
>>883
すまん。 VS.Netのです。
>>884 それです。
886デフォルトの名無しさん:2006/06/02(金) 18:28:06
>>884
そこに、やりかた書いてありますね、ありがとう。
887デフォルトの名無しさん:2006/06/02(金) 19:26:33
サテライトアセンブリ のコンパイルをしていて、ちょっと分からないことがあるので質問させてくださいませ。

用意してある : hogehoge.en.resx
VS で resx をコンパイル ( ビルド ) →dll サイズ 32K
resgen + al でコンパイルするので→ dll サイズ 20K
生成される dll のサイズが違います。で、サイズが小さい方で exe を実行させると resgen + al コンパイルした方の
VS で作成したほうは正常なのですが、サテライトアセンブリは読み込めません。
サテライトアセンブリのコンパイルの方法で、何か違うんでしょうか?
888デフォルトの名無しさん:2006/06/02(金) 19:52:27
resgen と al につけたコンパイルオプションを書いてみろ。
あと読み込めないってのは具体的にどうなるんだ?
889デフォルトの名無しさん:2006/06/02(金) 20:02:40
>>888
どもです。環境は VS2005 Std、.NETCF1.0 で作ってます。

C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools\resgen.exe /compile hogehoge.en.resx
al.exe /t:lib /embed:hogehoge.en.resources /out:hogehoge.en.resources.dll

読み込めないと言うのは、英語環境で表示しても英語リソース ( hogehoge.en.resources.dll ) を読み込まず、
日本語が表示されていて文字が化けてしまうことです。
890デフォルトの名無しさん:2006/06/02(金) 20:14:55
・resgen リソースファイル [リソース名].[カルチャ名].resources   で.resourcesファイルを作る
・リソース名は、検索対象の既定は対象型の完全限定名(例:HongliangSoft.Samples.Localization)
・al /out:[対象のアセンブリ名].resources.dll /c:[カルチャ名] /embed:[.resourcesファイル名]
  でリソースdllを作る。リソース以外(コードとか)を入れる事はできない
メモに書いてあったこの辺
891デフォルトの名無しさん:2006/06/02(金) 20:24:09
>>890
どもです。メモ通りやってみましたが結果は同じでした。
また調べてやってみます。
結果はご報告しますね。
892デフォルトの名無しさん:2006/06/02(金) 21:03:04
サテライトアセンブリにカルチャ名付けちゃ駄目だぞ。
× Hoge.en.resources.dll
○ Hoge.resources.dll

あとはリソースを読み込む部分がどうなってるかも問題だが……。
893デフォルトの名無しさん:2006/06/02(金) 23:22:03
>>829
イベントに=演算子は使えないな。
やるんだったら-=でデリゲート削除。
894デフォルトの名無しさん:2006/06/03(土) 02:19:41
ある型のnullオブジェクトを動的に生成する方法で
(ある型の抽象メソッドは全てvirtualで仮実装する。
戻り値が必要なものはdefault(T)の値を返す。)

1.System.Reflection.Emitを使用する。
2.CodeDomを使用する。
という方法以外に簡単な方法はないでしょうか?
895デフォルトの名無しさん:2006/06/03(土) 02:20:48
>>864
何のためにパースしたいのかわからんけど、
すでに.NET2がうごいている環境なら、
Microsoft.CSharp.CSharpCodeProvider.Parse(TextReader codeStream)
を使えば勝手にやってくれるのでは?

別の言語で一からコンパイラを作りたいとかだったら、
がんがってくれ。応援している。
896895:2006/06/03(土) 02:30:46
追記。
パーサじゃないけど、シリアライズフォーマッタを自作したことはあるよ。
速度重視なアプリでネットワークに流すのには、
BinaryFormatterはアセンブリ名のフルネームとかをひたすらstringで入れようとするので、
そのへんを短く出来るのを作ったことがあった。
ジェネリクス関連のリフレクションとか非常に面倒だったね。
VBで作れる、0以外から開始する配列とかはサポートしなかったな…
897デフォルトの名無しさん:2006/06/03(土) 03:24:17
VBでは出来たのにForm1.Text = "タイトル";ができないのは何故?
898デフォルトの名無しさん:2006/06/03(土) 03:36:24
this.Text = "タイトル";
899最凶VB厨房:2006/06/03(土) 06:24:48
>>894
ある型を動的に作成するのか、
ある型が既にあってそのインスタンスを動的に作成するのか、
どっち?
900デフォルトの名無しさん:2006/06/03(土) 09:12:43
C#で省略可能な引数を指定することはできますか?
VBのOptionalみたいなやつ。
901デフォルトの名無しさん:2006/06/03(土) 09:22:38
C# からメソッドに省略可能な引数を渡す方法
http://support.microsoft.com/default.aspx?scid=kb;ja;305814
902デフォルトの名無しさん:2006/06/03(土) 09:42:40
>>892
どもです。ご指摘通りサテライトアセンブリにカルチャ名を付けてしまっていたので
つけないようにしました。
それでも駄目でしたね。

それとリソースを読み込む部分はこのようにしてあります。
リソース周りはデザイナで作ったのではないので、手動で作りました。

System.Globalization.CultureInfo culture;
System.Resources.ResourceManager resMan;

culture = System.Globalization.CultureInfo.CurrentCulture;
resMan = new System.Resources.ResourceManager("Hoge.satteliteassemblyname", this.GetType().Assembly);

this.Text = resMan.GetString("Dialog_Text", culture);

で、使用しているリソースは resx ( XML です。 )

読み込む部分が何か違いますか?
903デフォルトの名無しさん:2006/06/03(土) 09:57:46
>>902
> "Hoge.satteliteassemblyname", this.GetType().Assembly

これだと、リソースファイルの名前は
Hoge.satteliteassemblyname.[カルチャ名].resources
でなければならないけどそれは大丈夫?
904デフォルトの名無しさん:2006/06/03(土) 11:30:33
>>903
もうちょっと正確に書きます。

1. hogehoge.en.resx → VS2005 でビルド → hogehoge.resources.dll に変換される
2. hoge.resx → VS2005 でビルド → 本体 DLL に埋め込み。
3. resMan = new System.Resources.ResourceManager("Project1.hogehoge", this.GetType().Assembly);
これで読み込み実行。

4. 日本語環境時、正しく文字列が表示される。( 埋め込んだリソースを読んでいる )
5. 英語環境時、正しく文字列が表示される。( ./en/hogehoge.resources.dll を読んでいる )

ここまでは問題ありません。しかし、
hogehoge.en.resx を >>889 に書いたように、resgen + al でコンパイルした hogehoge.resources.dll を
読み込ませようとすると、英語環境で正しく文字列が表示されません。
( 文字が化けてしまっているので、./en/hogehoge.resources.dll を読まず埋め込まれている日本語
リソースを読み込んでいるようです。)

で、分かっていることは、hogehoge.resources.dll のサイズです。
1. VS2005 で変換 → 28KB
2. resgen + al で変換 → 16KB

resgen+al で変換した場合と、VS2005 で変換した場合で何か異なるんですかね?
905デフォルトの名無しさん:2006/06/03(土) 11:57:16
で、.resources の名前は Project1.hogehoge.en.resources にしてるの?
906デフォルトの名無しさん:2006/06/03(土) 12:02:46
>>905
Project1.hogehoge.resources
Project1.hogehoge.en.resources
./en/Project1.hogehoge.resources
./en/Project1.hogehoge.en.resources
の4種類を試してみましたが、resgen+al 変換では読み込まれませんでした。
907デフォルトの名無しさん:2006/06/03(土) 13:35:46
ん〜……。

・Windows Application プロジェクトを作成(プロジェクト名 WindowsApplication1)
・Form1 の Localizable を true に、Language プロパティを日本語に
・Text プロパティを フォーム1 に
・一旦ビルド(デバッグビルド)
・プロジェクトのフォルダ(WindowsApplication1.csproj のあるフォルダ)を開く
・.NET 2.0 SDK のコマンドプロンプトを開いてカレントディレクトリをプロジェクトのフォルダに移動する
・コマンドプロンプトで以下のコマンドを実行
 resgen Form1.ja.resx WindowsApplication1.Form1.ja.resources
 al /out:bin/Debug/ja/WindowsApplication1.resources.dll /c:ja /embed:WindowsApplication1.Form1.ja.resources
・bin/Debug の WindowsApplication1.exe を(日本語環境で)起動するとフォームのタイトルが フォーム1 になる
・bin/Debug/ja/WindowsApplication1.resources.dll を削除してから exe を起動するとタイトルは Form1 のまま

ということなんだが……。
908894:2006/06/03(土) 13:46:46
>ある型を動的に作成するのか、
>ある型が既にあってそのインスタンスを動的に作成するのか、
>どっち?
型はすでにあって、 object GetNullObject(Type baseClassType, Type[] interfaceTypes);
ってなってるのが理想かな
909デフォルトの名無しさん:2006/06/03(土) 14:17:45
>>907
わざわざありがとうございます。同じようにして実行してみました。
違いはこちらはデバイスアプリケーション .NETCF1.0 というところです。

907さんのようにしてみると、907さんが掛かれたように再現しますが。
resgen+al をした DLL だけはやっぱりだめです。
違いは DLL のサイズ。
VSで生成した DLL のプロパティをみるとバージョン番号などが入っていますが、
resgen+al にはバージョン番号などは入っていませんでした。
もちろんファイルサイズも違っています。
910デフォルトの名無しさん:2006/06/03(土) 14:20:09
ちなみに resgen は、
c:\Program files\Visual Studio 8\SmartDevices\SDK\SDKTools\regen.exe
c:\Windows\Microsoft.NET\Framework\v1.1〜\al.exe
c:\Windows\Microsoft.NET\Framework\v2.0〜\al.exe
などを使いました。
911デフォルトの名無しさん:2006/06/03(土) 14:29:31
バージョン情報とかは al のオプションで与えるもんだから。

> 907さんのようにしてみると、907さんが掛かれたように再現しますが。
> resgen+al をした DLL だけはやっぱりだめです。

結局、907 で書いたのは問題なかったの? これも resgen + al した DLL なんだが。
912デフォルトの名無しさん:2006/06/03(土) 14:50:15
>>911
どうもです。
で、結局のところ 907 で書いた方法ですが、resgen+al すると駄目でした。
VSビルドの DLL なら OK でしたが。
どうしてこういうことになってしまうのか不明ですが、VS2005 のビルドと
resgen+al の変換の過程が違うようです。
( VS2003 の時は .NETCF 用に cfresgen というものがあったようです。)

バージョン情報の件、al のオプションで確認しました。

913デフォルトの名無しさん:2006/06/03(土) 16:43:54
ん〜、後の問題を思いつかね。
/template オプションなんかどうだろ……。
914デフォルトの名無しさん:2006/06/03(土) 17:20:16
>>895 Parse実装されてないとおもったんだけど。
915デフォルトの名無しさん:2006/06/03(土) 20:43:30
>>913
あ、あ〜〜。できました〜〜!!!
913 さんネ申!俺のネ申!!

al に、/template:bin\Release\Hoge.dll
と指定したら出来ました!
サテライトアセンブリのサイズも VS が変換するのと同じサイズになりました。

ありがとうございました m(__)m
916最凶VB厨房:2006/06/03(土) 21:31:32
>>908
実装が空のvirtualメソッドだけのnullオブジェクトクラスを継承させる手はダメか?
(クラス継承)
nullobj<-abstract<-concrete

abstractA(or interface)
 nullobj
 abstractB
  concreteA
  concreteB
  ・・・
理想とはほど遠いかもしれんが・・・。
917894:2006/06/03(土) 23:57:46
それをどうやって実装するのが楽かなぁと思って質問した次第です。
指定したinterfaceのvirtualメンバを動的に実装する。
IL書くのが一番楽そうでした。(ソースコードアプローチだと明示的実装とか.NetのVersionとかで大変そう)
ILに手を出すと誰も保守できなそうなのがいやなんですけど。
918デフォルトの名無しさん:2006/06/04(日) 00:06:41
ある変数が変化したら発生するイベントってありますか?
919デフォルトの名無しさん:2006/06/04(日) 00:08:40
>>918
ない。
920・∀・)っ-○◎● ◆toBASh.... :2006/06/04(日) 00:13:22
何がやりたいのかは知らないが変数の書き換えをメソッドにしてそれをオーバーライドするとか、
OnTimerで変数値をチェックするとかやればいいと思うよ
921デフォルトの名無しさん:2006/06/04(日) 00:21:07
おにいちゃんおーばーらいどってなあに?
922デフォルトの名無しさん:2006/06/04(日) 00:25:23
>>918
INotifyPropertyChanged.PropertyChanged
923デフォルトの名無しさん:2006/06/04(日) 00:28:52
>>921
同じ名前だけど引数の違う関数のことだよぉ
924デフォルトの名無しさん:2006/06/04(日) 00:40:44
ちげぇ
925デフォルトの名無しさん:2006/06/04(日) 02:13:19
どうでもいいけどComponentModelでググルと変なのが4番目に出てくるの何とかならないんだろうか。
死んだっちゅうのはいいすぎだろ。
926デフォルトの名無しさん:2006/06/04(日) 02:36:02
Componentってなんのためにあるの?
927デフォルトの名無しさん:2006/06/04(日) 02:47:42
>>925
俺が検索したら4番目はMSDNだけど

1 www.urbanpotato.net/Default.aspx/document/1757
2 weblogs.asp.net/ahoffman/archive/2004/11/25/270189.aspx
3 www.dotnet247.com/247reference/ System/ComponentModel/System.ComponentModel.aspx
4 msdn2.microsoft.com/en-us/system.componentmodel.aspx
928デフォルトの名無しさん:2006/06/04(日) 03:24:55
菊池ならしょうがない
929デフォルトの名無しさん:2006/06/04(日) 04:59:56
C#の組み込みに使う言語を探しています
・Lua
・Ruby
・C#
など、ある中で、C#を簡単そうなので選んで見ました。

C#でC#のソースを利用できないかと思い知らべたところ、
とりあえずコンパイルはできました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/100compile/compile.html

しかし、そこからの組み込むためのつながりがよくわかりません。
ホスト言語からスクリプト言語へのオブジェクトの提供、
スクリプト言語からの動作トリガー、などがいまいちわかっていません。
その辺のつっこんだ資料はありませんでしょうか。
930デフォルトの名無しさん:2006/06/04(日) 05:15:19
65 :デフォルトの名無しさん :sage :2006/05/24(水) 00:29:22
poderosaってマクロ機能で、アプリケーションからJScript.NETを動かしてて
しかもpoderosa自身のオブジェクトを公開してるけど、どうやってるの?

ソース見てもわからんかった。

poderosa見てみる
931デフォルトの名無しさん:2006/06/04(日) 09:44:59
InternetExplorerをオートメーションで動かしたいんですけど、どこか解説してるとこ
ありませんかね?
VBAとかだとあるようですが、自分読めませんし、できれば.NETでうごかしたいんで
そこらへんでお勧め教えてください。
本でもいいです。英語でもがんばってみます。
932デフォルトの名無しさん:2006/06/04(日) 11:35:48
ClickOnceで起動されたProcessを直接的に取得する方法って無いよね…
933デフォルトの名無しさん:2006/06/04(日) 11:43:06
>>929
コンパイルしたらアセンブリ読み込んでロード
けど、組み込み目的で CodeDom 使うのって、SandBox 無いと危険なような希ガス
934デフォルトの名無しさん:2006/06/04(日) 15:45:55
pictureboxの上にマウスを乗せたら、pictureboxの画像が変わるようにしたいんですが、
デザイナで設定する方法しかしらないので、ちょっと戸惑っています。
動的(?)に画像を参照するようにしないといけないっぽいんですが、
exeがあるディレクトリにimageディレクトリのようなものを作ってそこから読み込むようにしないといけないんでしょうか?
935デフォルトの名無しさん:2006/06/04(日) 15:50:57
知らんがな
どこから画像ファイルを読み込むかなんて自分で考えろと
936デフォルトの名無しさん:2006/06/04(日) 15:54:59
経験が少ないので、よくあるやり方みたいなのを教えていただけたら嬉しいです。
imagelistっていうのがありますが、それに使いたい画像を全部設定すると、最初から画像を読み込んでくれるのかな??
937デフォルトの名無しさん:2006/06/04(日) 15:57:50
プロジェクトにリソース追加してその中に好きな画像つっこめ
imagelistでもいいけど、今度はどこからimagelistに画像をもってくるんだよって話
938デフォルトの名無しさん:2006/06/04(日) 16:05:08
>>937
ありがとうございます!うまくできそうです。
939デフォルトの名無しさん:2006/06/05(月) 14:25:44
VC#2005Expressのヘルプで
System.Drawing名前空間を引いてみると


System.Drawing名前空間内のクラスをWindowsサービス
またはASP.NETサービスで使用することはサポートされて
いません。使用した場合、サービスのパフォーマンス低下
や実行時の例外発生など、予期しない問題が発生する場合
があります。


とありました
WindowsサービスってWindowsに起動時から常駐するような
デーモンのようなタイプのものを言っているの?
それとも通常のWindowsApplicationのことなの?
940デフォルトの名無しさん:2006/06/05(月) 15:07:37
単に、System.Drawing名前空間内のクラスのオブジェクトを
シリアライズしてネット上を移動させることは推奨されないってことでそ?(・∀・)
941デフォルトの名無しさん:2006/06/05(月) 15:25:41
winアプリでDrawing使えなかったら泣くねwwwwwwwwwwwwwwwwwwwww
942デフォルトの名無しさん:2006/06/05(月) 15:30:59
>>939
Windows NT/2000/XP/2003 でサービスというと、普通こういう奴。
http://www.google.co.jp/search?hl=ja&q=Windows%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9&lr=
943939:2006/06/05(月) 16:01:22
.NETではバリバリGDI+使ってると聞いたが
具体的にはどういう場面で使っているの?
944デフォルトの名無しさん:2006/06/05(月) 16:04:35
描画
945デフォルトの名無しさん:2006/06/05(月) 21:59:06
>>941
Sizeとかあるしな。
946デフォルトの名無しさん:2006/06/06(火) 18:41:11
MenuクラスのHandleプロパティでメニューハンドルが取得できますが、
Strip関係、例えばContexMenuStripからHMENUを取得する方法ってないんでしょうか。
947デフォルトの名無しさん:2006/06/06(火) 19:17:33
あれは HMENU 使ってない。
948デフォルトの名無しさん:2006/06/06(火) 21:38:31
//リストの重複削除
public static ArrayList OverlapToSingle(ArrayList list)
{
list.Sort();
ArrayList newList = new ArrayList();
object tmpObj = null;
foreach(object obj in list)
{
if(obj.Equals(tmpObj)==false)
{
newList.Add(obj);
tmpObj = obj;
}
}
return newList;

}

これをジェネリック対応にするにはどうしたらいいの?
書き方がわからねぇ・・・orz
949デフォルトの名無しさん:2006/06/06(火) 21:44:07
無理してジェネリックにしなくても、ArrayListをIListにすればOK
950949:2006/06/06(火) 21:45:01
と思ったが、SortはIListにはなかった
951デフォルトの名無しさん:2006/06/06(火) 21:47:21
List<T> にすれば OK なんだな
952デフォルトの名無しさん:2006/06/06(火) 21:58:44
public static List<T> OverlapToSingle<T>( List<T> list )
{
 List<T> newList = new List<T>;

 foreach( T t in list)
 {
  if( !newList.Contains( t ) )
   newList.Add( t );
 }

 return newList;
}
953デフォルトの名無しさん:2006/06/06(火) 22:09:07
>>952
O(N^2) だお
クローンしてからソートしてリストぶち込んだ方がいくね
954デフォルトの名無しさん:2006/06/06(火) 22:18:10
出力結果がソート済みなのが難点になりうるな
955948:2006/06/06(火) 22:38:31
public static List<T> OverlapToSingle<T>( List<T> list )
{
List<T> tmpList = new List<T>(list);
tmpList.Sort();

List<T> newList = new List<T>();

T tmpT = default(T);
foreach (T t in tmpList)
{
if (t.Equals(tmpT) == false)
{
newList.Add(t);
tmpT = t;
}
}

return newList;
}

sortを組み込むとこんな感じになるのか。
ソート済みになってしまうことはとりあえず問題にならないので大丈夫ですね。
ジェネリックを使う気力が沸いてきた。THX!
956デフォルトの名無しさん:2006/06/06(火) 22:44:00
>>955
入力の list が List<int> で中身が 0,1,2 だとしたら
出力は 1,2 になる予感
957デフォルトの名無しさん:2006/06/06(火) 23:20:01
T が参照型なら参照型で、null が入っていたときに例外の予感
958948:2006/06/07(水) 12:55:41
確かにそうだな'`,、('∀`) '`,、 
959デフォルトの名無しさん:2006/06/08(木) 16:47:43
C#とJavaなどの他言語との連携方法がわかりません。
Javaで出力したテキストファイルをC#でよみこませたいのですが・・・・
よろしくおねがいします。
960デフォルトの名無しさん:2006/06/08(木) 16:50:16
いや、テキストファイルなら何で出力しようがテキストファイルだろ。
せいぜいエンコーディングに気を配る程度だ。
961デフォルトの名無しさん:2006/06/08(木) 16:55:34
>>960
私書き方が悪かったかもしれません。
一度にそれらの処理をやりたいのですが、バッチ処理しか無いのでしょうか?
JavaとC#のプログラムが常に起動していて、処理に必要な機能をそれぞれの言語で
分担して行うという複雑なものなんですが。
バッチ処理で対応しきれるのかどうか不安です。
962デフォルトの名無しさん:2006/06/08(木) 17:17:17
>>961
.net java間だとまともに使えるのはソケットくらいかな。Web Serviceでもいいが互換性がどうだろう。
あとはJ#(笑)を使う。
963デフォルトの名無しさん:2006/06/08(木) 17:17:40
どっちかでファイル監視するか
964デフォルトの名無しさん:2006/06/08(木) 17:26:50
メッセージでやれるんじゃない?
965デフォルトの名無しさん:2006/06/08(木) 17:27:27
Java Language Conversion AssistantでJavaをC#に変換する
966デフォルトの名無しさん:2006/06/08(木) 18:02:59
DDEは?
967デフォルトの名無しさん:2006/06/08(木) 18:06:35
>>961 とりあえず、バッチ処理であるか否かと通信方法は分けて考えたほうがよろしいんではないかと
968デフォルトの名無しさん:2006/06/08(木) 18:34:00
>>961
ファイル経由でのテキストの受け渡しなんて簡単なこともわからないのに、
そんなに「複雑なもの」がよく設計できたなぁ・・・・
データの受け渡しのとこも設計したんだろうから、ちゃんとそれに従えば?
969デフォルトの名無しさん:2006/06/08(木) 21:41:43
ちゃんと設計出来てたら
こんな質問しないだろ。
970デフォルトの名無しさん:2006/06/09(金) 00:32:56
メモリマップドファイルとかはどうだろう
Java で使えるかは知らないが
971デフォルトの名無しさん:2006/06/09(金) 00:43:27
JNIってなくなったの?APIつかえりゃいけるでしょ
972デフォルトの名無しさん:2006/06/09(金) 00:53:14
スプリットコンテナーのパネルの上にグループボックスはっつけて
そのうえテキストボックスなどのコントロールがある というリサイズ可能なフォームでの質問です

したいことは
ユーザがフォームを小さくしたとき、グループボックス上のコントロールが
隠れてしまう大きさにされたらパネルにスクロールバーを表示する

ということなんですが、グループボックスのDockプロパティをfillにすると
パネルのAutoScrollがTrueでもスクロールバーが出てこないのですが
コントロールの配置方法等が間違っているのでしょうか?
お願いします
973デフォルトの名無しさん:2006/06/09(金) 10:49:13
HashTableの初期化を、現在
HashTable hash = new HashTable();
hash.Add("Key1", 1);
hash.Add("Key1", 1);
      ・
      ・
のように書いていますが、 Perlのように
HashTable hash = {
  "Key1" -> 1,
  "Key2" -> 2,
};
のように、スマートに書けないでしょうか?
974デフォルトの名無しさん:2006/06/09(金) 10:55:03
hash["Key1"]=1
とかってかけないんだっけ?
975デフォルトの名無しさん:2006/06/09(金) 10:58:29
コレクションの構築初期化子は C#3.0 からだねー
976デフォルトの名無しさん:2006/06/09(金) 11:12:09
っていうか、static で作成したいんです。
977デフォルトの名無しさん:2006/06/09(金) 11:12:59
>>975
あー、でつか・・・ どうもでした。
978デフォルトの名無しさん:2006/06/09(金) 11:22:20
少なくとも今はstaticなコンストラクタでやるしかないかな。
979デフォルトの名無しさん:2006/06/09(金) 16:12:07
すんません。
今クラスのシェイプアップをしてるんですけれども、
インスタンスにしたときの占有メモリサイズを計る方法って
ありますか?
980デフォルトの名無しさん:2006/06/09(金) 16:23:16
そのクラスのインスタンス何万個作るつもりだ……
パフォーマンスカウンタ使えば?
981デフォルトの名無しさん:2006/06/09(金) 19:19:18
それは意外に難しい。
982デフォルトの名無しさん:2006/06/09(金) 20:38:09
stringの文字列中の特定の文字列を置き換える動作は
string.Replace

Regex.Replace
だったらstring.Replaceの方が速くておすすめですか?
それともstring.Replaceは内部でRegexしてたりしますか?
983デフォルトの名無しさん:2006/06/10(土) 01:57:47
どういう発想でそう思うんだよ。
984デフォルトの名無しさん:2006/06/10(土) 02:02:27
わたしはおすすめです。
985デフォルトの名無しさん:2006/06/10(土) 07:33:00
>>973
どうしてもというのならば。

private class HashtablePrivate : Hashtable {
 public HashtablePrivate(object[][] values) {
  foreach(object[] value in values)this.Add(value[0], value[1]);
 }
}

private static Hashtable values = new HashtablePrivate(new object[][] {
 new object[]{ "1", "value1" },
 ...
});

あまりお勧めはしない。
986デフォルトの名無しさん:2006/06/10(土) 08:53:26
BeginInvoke/EndInvokeメソッドを持つ最も抽象的なクラスか
インターフェースは何?
Delegate型がもっていないからわけわかんね。
object AsyncResult.AsyncDelegateからEndInvokeを呼びたいんだけど
固有の型でキャストしたくない。リフレクション使うのがベスト?
987デフォルトの名無しさん:2006/06/10(土) 09:07:47
ISynchronizedInvoke?
988デフォルトの名無しさん:2006/06/10(土) 09:22:29
デリゲートをそいつでキャストすることはできないっぽいです。
>ISynchronizedInvoke
989デフォルトの名無しさん:2006/06/10(土) 10:36:52
コンパイラが自動的につくるんじゃなかったっけ?
BeginInvoke/EndInvoke
990デフォルトの名無しさん:2006/06/10(土) 10:54:27
これうんこな仕様だよね。
ちがうデリゲート型、ジェネリックの中で実行したいのにこのせいでやりにくいし。
もうあぼかど。
991デフォルトの名無しさん:2006/06/10(土) 11:02:02
デリゲートの実行は DynamicInvoke 使えばいいんだからどうでも良いが、型制約に使えないのが痛すぎる。
992デフォルトの名無しさん:2006/06/10(土) 13:29:46
共通のシグネチャには出来ないんだから
まあ仕方ないんじゃないの?
DynamicInvokeの非同期版があるに越したことはないが。

むしろ普通にリフレクションで実行するときの
糞仕様をなんとかしてほしい。
993デフォルトの名無しさん:2006/06/10(土) 13:37:12
> むしろ普通にリフレクションで実行するときの
> 糞仕様をなんとかしてほしい。

どんな仕様をお望みだね
994デフォルトの名無しさん:2006/06/10(土) 17:07:01
何も贅沢は言わんよ。
勝手に例外をラップしたりとか、
要らんことをしなければそれでいい。
995デフォルトの名無しさん:2006/06/10(土) 17:13:10
ああ、例外ラップはうざいねー
デバッグやりづれぇ
んで結局、EndInvokeするにはリフレクションしかないってことで
いいでしょか?
996デフォルトの名無しさん:2006/06/10(土) 17:36:03
byteの配列をstringに変換する方法を教えてください
997デフォルトの名無しさん:2006/06/10(土) 17:38:59
Encoding.GetString だったか
998996:2006/06/10(土) 17:51:32
ありがとうございます。さっそく探します。
999デフォルトの名無しさん:2006/06/10(土) 18:52:27
フレームワークがあること以外での
C++とC#の違いって何ですか?
1000デフォルトの名無しさん:2006/06/10(土) 18:54:58
時間切れですにゃ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。