ふらっとC♯, C#(初心者用) Part11

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
2デフォルトの名無しさん:2006/12/16(土) 12:41:43
2Get
3デフォルトの名無しさん:2006/12/16(土) 12:42:12
前スレ
ふらっとC♯, C#(初心者用) Part10
http://pc8.2ch.net/test/read.cgi/tech/1162193452/

関連スレ
C♯, C#相談室 Part36
http://pc8.2ch.net/test/read.cgi/tech/1165656839/
4デフォルトの名無しさん:2006/12/16(土) 12:42:29
Visual C# Express Edition (無料)ダウンロード
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx

MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
5デフォルトの名無しさん:2006/12/16(土) 12:42:46
6デフォルトの名無しさん:2006/12/16(土) 12:56:41
>>1
7デフォルトの名無しさん:2006/12/16(土) 17:03:01
>>1
8デフォルトの名無しさん:2006/12/16(土) 17:55:05
>>1
9デフォルトの名無しさん:2006/12/16(土) 18:09:25
>>1
10デフォルトの名無しさん:2006/12/16(土) 18:36:00
>>1
11デフォルトの名無しさん:2006/12/16(土) 18:50:10
>>1
12デフォルトの名無しさん:2006/12/16(土) 18:51:54

  ( ⌒ ) ポッポー
   l | /

⊂(#・∀・)    おつおつうるせーんだよ!!
 /   ノ∪         
 し―-J |l| |
         人ペシッ!!
      (_)
     )(__)(_
    ⌒)   (⌒
      ⌒Y⌒
13デフォルトの名無しさん:2006/12/16(土) 19:25:34
>>12

フォームの背景だけを半透明にしてその上に文字をクッキリ表示させたいと思い、
フォームのOpacitを50%にし、そのフォームにLabelを配置したのですが
Labelの文字まで半透明になってしまいます。
何か良い解決方法はないでしょうか?
14デフォルトの名無しさん:2006/12/16(土) 19:41:04
>>6-11の流れを止めやがって。
答えてやるもんか。
15デフォルトの名無しさん:2006/12/16(土) 19:53:04
('A`)誰かがいつか止めなきゃならんのよ…
16デフォルトの名無しさん:2006/12/16(土) 20:14:04
Explorer のようなファイルビュアーを練習で作ってます。
ファイルを開く際には System.Diagnostics.Process#Start を UseShellExecute = true で使おうと考えたのですが、
Start に若干時間がかかるようなので、ThreadPool を使って非同期実行を……と考えたところ、
ThreadPool のような MTAThread からでは Start が使えないってことが分かりました。

そのため、現在は STAThread から Start するように書いてあるんですけど、
単発の Thread を立て続けに作ることに微妙に抵抗あるんですが、何か代替案はありますか?
……というより、もしかして Start 呼び出しを非同期で実行するオプションって用意されてますか?
17デフォルトの名無しさん:2006/12/16(土) 21:08:03
>>13
>>12に謝れ!!
18デフォルトの名無しさん:2006/12/16(土) 21:19:26
>>13
Opacityを使わないことです。

半透明描画は自前で書くしかありません。
19デフォルトの名無しさん:2006/12/17(日) 00:59:48
>>16
直接APIのShellExecuteを呼んだら早くなったりしない?
20デフォルトの名無しさん:2006/12/17(日) 04:05:40
C#をビジュアルC#で学ぼうと考えているものです。
プログラミングについてはスーパー初心者です(昔に大学のコンピュータ授業でVisual Basicをいじった程度)。

おすすめの入門書がございましたら教えていただけないでしょうか。

日経ソフトウェアの『ずばりわかる!VB&C#』は他の言語もカバーしているので、C#だけが
目的なら避けたほうが良いのでしょうか・・・
2120:2006/12/17(日) 04:14:43
勢いで質問してしまいました。過去レスもあたってみます。
22デフォルトの名無しさん:2006/12/17(日) 12:59:02
他スレにて質問したのですが誰も分からなかったので
このスレにて質問させてください。

ブックマークのショートカットに関する質問です。
コードエディタ内部にて行移動をする際に使用する
ブックマークがありますが、

VS2003では

@ Ctrl + K + K マーク    
A Ctrl + K + P 上に移動
B Ctrl + K + N 下に移動
C Ctrl + K + L マークの全削除

が使用出来ていたのですが、VS2005になってから
@Bのみしか使えないのですが、ACのコマンドは変更
(もしくは削除)になってしまったのでしょうか?
23デフォルトの名無しさん:2006/12/17(日) 13:46:31
オプション→キーボードで、
コマンドを「ブックマーク」で検索しろ
24デフォルトの名無しさん:2006/12/17(日) 15:38:06
VC#2005ExpressEditionを使っています。
よろしかったら教えてください。

「参照の追加」でdllを登録すると、HRESULT型のメソッドは
void型になります。
それらのvoid型のメソッドを使用したとき、メソッドがエラーをしても
void型のためエラーを返しません。
COM.ExceptionでHRESULTの値を取得できるとのことですが、
できませんでした。どうやらエラーとなるときのHRESULTの値が
「Com.Exceptionがエラーと判定する値」とはならないためとのことです。

こうなったら、どうしてもHRESULTの値を取得する必要があると思うの
ですが、どうすればいいでしょうか?もしくはHRESULTの値を取得
できないにしても、上記の場合でエラーを返すようにはできない
でしょうか?
25デフォルトの名無しさん:2006/12/17(日) 16:24:05
[PreserveSig]
2622:2006/12/17(日) 16:40:28

>>23
ツール⇒オプションでしょうか?
尚、ツール⇒オプションと指定してみたところ
キボードに該当する物はありませんでした。


27デフォルトの名無しさん:2006/12/17(日) 17:35:28
え?StartってMTAから使えないの?
28デフォルトの名無しさん:2006/12/17(日) 17:50:32
ヘルプにショートカットの説明出るじゃん…
Edit.ToggleBookmark
Ctrl + K、Ctrl + K
現在の行のブックマークを設定または削除します。

これじゃねえの?
2922:2006/12/17(日) 18:32:25
>>28
Ctrl + K 、 Ctrl + K
でブックマークの追加(削除)が出来る事は確認済みなのですあg
肝心の既に作成したブックマーク間の移動を行うショートカットが
VS2003では出来ていたのに、VS2005では出来ないのです。

なぜVS2003で出来ていたコマンドがVS2005では使えなくなってしまった
のでしょうか?
30デフォルトの名無しさん:2006/12/17(日) 18:48:33
>>29
そういうことはMSFTの中の人に訊いてこいよ。
31デフォルトの名無しさん:2006/12/17(日) 19:01:18
ツール→オプション→環境→キーボードってあるじゃん…
Ctrl+B,N Ctrl+B,P これのことか?
3222:2006/12/17(日) 22:44:07
>>31
出来ました!!!
マジでありがとうございます!!!!


>>30
次回からそうします。
33デフォルトの名無しさん:2006/12/17(日) 22:48:01
>>32
>>31で書いてあるのは自分で好きなように設定編集可能だぞ?
34デフォルトの名無しさん:2006/12/17(日) 22:51:08
MSはキーボードショートカットたまに変えるからなあ

OSの終了ショートカットも変えやがったしな。
3522:2006/12/17(日) 23:16:23
>>33
自分で編集することも出来るのですね。
調べてみます。

尚、Ctrl + L (VS203ではブックマークの全削除)
こちらのショートカットについてはご存知でしょうか?
36デフォルトの名無しさん:2006/12/17(日) 23:18:51
>>35
>>30,33を読め
3722:2006/12/17(日) 23:26:45


>>36
調べましてブックマーク削除方法も分かりました。
どうもありがとうございました^^;

38デフォルトの名無しさん:2006/12/18(月) 15:39:12
DataAdapterでDatasetを取得する際に進行状況を確認することはできますか?
プログレスバーを作りたく思っているのですが...。
39デフォルトの名無しさん:2006/12/18(月) 18:56:25
ASP.NETでC#で使っているのですが
フラグ処理をするのに

if( A&B ) {
}

とすると〜〜型をBoolに暗黙的に変換できません とごねられます。
お手軽に if( A&B ) で文句を言われないようにする
方法はありませんでしょうか?

40デフォルトの名無しさん:2006/12/18(月) 19:02:36
>>39
無い
41デフォルトの名無しさん:2006/12/18(月) 19:05:55
if((A&B)!=0)じゃだめなの?
42デフォルトの名無しさん:2006/12/18(月) 19:14:13
>>41
その != 0 を書きたくないのです・・・

boolに変換する暗黙の型変換も試してみましたが
フラグが出てくるたびに定義するのもあほらしく・・・

素直に!=0でやってみます。
43デフォルトの名無しさん:2006/12/18(月) 19:59:35
static bool IsTrue(int frag)
{
return flag != 0;
}

if (IsTrue(A&B))
とか
44デフォルトの名無しさん:2006/12/18(月) 20:12:48
なんで書きたくないの?
45デフォルトの名無しさん:2006/12/18(月) 20:21:08
C#使ったことない通りすがりなんだけど
if(!!(A&B))
ってのは駄目?
46デフォルトの名無しさん:2006/12/18(月) 20:23:54
>>45
意味不明
47デフォルトの名無しさん:2006/12/18(月) 20:30:48
よくわからんけど
intと暗黙で変換とれて
各種ビット演算とtrueとfalseがオーバーライドしてある
構造体でも作ればいいんじゃねーの?
だめか?
48デフォルトの名無しさん:2006/12/18(月) 20:42:33
>>47
ifの中ではboolに暗黙変換しようとするから、
if ((IntBool)(A&B)) { }
みたいにしないといかんのじゃね?
49デフォルトの名無しさん:2006/12/18(月) 20:54:21
お前ら本当にC#使いなのか?
50デフォルトの名無しさん:2006/12/18(月) 21:07:59
if( A&B ) {
}

A、Bの型は結局何なんだ?
モデリング失敗したのか。
51デフォルトの名無しさん:2006/12/18(月) 21:17:45
C#初心者へ
if( )の中はちゃんとboolにしろよ。

if-else (C# リファレンス)
if ステートメントは、Boolean 型の式の値に基づいて、実行するステートメントを選択します。
52デフォルトの名無しさん:2006/12/18(月) 21:20:37
お前らのソースを後輩がメンテナンスするとき見て笑うぞ。
53デフォルトの名無しさん:2006/12/18(月) 21:35:10
>>52
このレベルに後輩いないだろwww
あっ!化石が必死に食いつこうとしてんのかwww
54デフォルトの名無しさん:2006/12/18(月) 21:39:54
if (A==B) と if (A=B) の間違いでのバグ混入を避けるために明確にboolとintは分けてある。
Cでもコンパイル時の最適化で(A&B) と (A&B) != 0の違いはなくなるので後者で書くことも多いよ。
あえてやるなら >>47のいってる方法だが、激しくめんどくさい。

struct boolbits {
  public boolbits(int i) { bits = i; }
  public int bits;
  public static bool operator true(boolbits b) { return b.bits != 0; }
  public static bool operator false(boolbits b) { return b.bits == 0; }
  public static boolbits operator&(boolbits b1, boolbits b2) { b1.bits &= b2.bits; return b1;}
  public static boolbits operator|(boolbits b1, boolbits b2) { b1.bits |= b2.bits; return b1;}
  public static boolbits operator~(boolbits b) { b.bits = ~(b.bits); return b; }
  // 他にもキャスト演算子とかetc実装汁
}
55デフォルトの名無しさん:2006/12/18(月) 21:45:14
>>54も化石だな。お疲れ様。

if文の論理判定がCの負の遺産から解き放たれようとしているのに…

フラグがboolじゃ無い時点でおかしいと思わないの???
プロパティでもなんでも使え!
56デフォルトの名無しさん:2006/12/18(月) 21:52:05
>if;(A==B) と if(A=B) の間違いでのバグ混入を避けるために
>明確にboolとintは分けてある。

違うんじゃない?
今までCのインチキ論理型から脱却するためだろ。
57デフォルトの名無しさん:2006/12/18(月) 21:58:08
あえて言うとフラグ判定で、
if((A&B)!=0)みたいに書かせないためにBoolになってるんだと思う。
直感的に分かりくいところはバグの温床だからね。
58デフォルトの名無しさん:2006/12/18(月) 22:03:06
フラグの種類にも夜とおもふ。
59デフォルトの名無しさん:2006/12/18(月) 22:07:22
むしろifを使わない

delegate void Statement();
static void If(int expression, Statement onTrue, Statement onFalse){
if (expression != 0) onTrue(); else onFalse();
}

If(A&B, delegate(){...}, delegate(){...});
60デフォルトの名無しさん:2006/12/18(月) 22:12:52
>>59
余計に判りにくいなwww
61デフォルトの名無しさん:2006/12/18(月) 22:41:05
[Flags]付きenumとかはどーなるんだ
やっぱ現代では行き場の無い肩身の狭い子なのか
62デフォルトの名無しさん:2006/12/18(月) 23:06:54
ttp://msdn2.microsoft.com/ja-jp/library/c8f5xwh7(VS.80).aspx
より…

>C++ では、bool 型の値を int 型の値に変換できます。
>つまり、false は 0 と等価であり、true は 0 以外の値と等価です。
>C# では、bool 型とその他の型は変換できません。

2行目の部分はそのうち一部の人(化石)にしか通じなくなるよ。
63デフォルトの名無しさん:2006/12/18(月) 23:28:39
やっぱJAVAスレのほうが活気があるな。
なんとかこっちも盛り上がらんかなあ。
64デフォルトの名無しさん:2006/12/18(月) 23:29:56
でもどうせ[Flags]付きenumなんかあるんだったら
ビットの上がり下がりを判定する汎用メソッドが欲しかった。
intとbool分けたんだったらさ。

if( ( enumHage & EnumHAGE.HOGE ) == EnumHAGE.HOGE ) {...

とかって美しくない……

if( enumHage.NanikaMethod( EnumHAGE.HOGE ) ) {...

みたいなかんじで
65デフォルトの名無しさん:2006/12/18(月) 23:37:13
have演算子(何だそりゃ)のほうが面白いと思うw

if( enumHage have EnumHAGE.HOGE ) {...
66デフォルトの名無しさん:2006/12/18(月) 23:38:16
C#3.0のextension methodsでできるんじゃないの?
67デフォルトの名無しさん:2006/12/18(月) 23:40:07
化石ってまだ腐乱死体くらいのつもりだったのだが・・・
[Flags]付きenumでも != 0を使うことになりまする。
FlagsAttributeはC#ではToString以外に何か影響することはあるのかいな。

>>54 に追加
  public static explicit operator int(boolbits b) { return b.bits; }
  public static implicit operator boolbits(int i) { return new boolbits(i); }
intからの変換は暗黙で、逆はバグ呼びそうなので明示キャストにしてみました。
68デフォルトの名無しさん:2006/12/18(月) 23:41:26
msdnのFlagsAttribute クラスの説明で
>場合によっては、フラグを結合するために使用されるビットごとの OR 演算は、
>単純なタスクには必要のない高度な概念と見なされます。
微妙だな。
なんなんだろう。


でも元の話ってこういうパターンなのかな。
69デフォルトの名無しさん:2006/12/18(月) 23:44:19
if( EnumHAGE.HOGE in enumHage ) {...
でどうだあああ
70デフォルトの名無しさん:2006/12/18(月) 23:46:37
もうif(フラグの配列.Contains(Hage.Hoge))でいいやん
71デフォルトの名無しさん:2006/12/18(月) 23:49:05
まだやってたんすか…
先輩…

ビット演算&の結果がboolになることが気持ち悪いと思うようにならないとダメっすよ。
72デフォルトの名無しさん:2006/12/18(月) 23:50:40


&&
73デフォルトの名無しさん:2006/12/19(火) 00:02:18
>>66
迷惑だと思うよ。
extension methods自体最悪だという噂が。
74デフォルトの名無しさん:2006/12/19(火) 00:16:30
>>59
Excelかよ。
75デフォルトの名無しさん:2006/12/19(火) 00:34:12
>>68
なんかなぁ。
設定とかで、一つの項目にbool割り当てると罪悪感かんじるんだよなぁ
byteで8個持ったほうが気持ちいいんだよぉ
そいでREG_BINARYで保存。これ。
76デフォルトの名無しさん:2006/12/19(火) 00:41:30
びんぼうしょう。
77デフォルトの名無しさん:2006/12/19(火) 00:59:04
>>75
ご老人
78デフォルトの名無しさん:2006/12/19(火) 01:36:59
今byteサイズとかmethod呼び出しのパフォーマンスとか
抜かしてくる奴とやってるからマジムかつくわ・・・

Cに篭っててください、ほんとお願いします。
79デフォルトの名無しさん:2006/12/19(火) 07:36:11
それにしても[Flags]enumもつかいにくいよな。
ビット演算つかわなきゃならんなんて旧世代のにおいがする。

delegateみたいに、+とか-で結合できるような仕組みを用意してくれればよかったのに。
80デフォルトの名無しさん:2006/12/19(火) 12:15:51
>>78
逆に効きたいんだけど、状態をフラグで定義しないで
状態全部Boolにしたりするの?

81デフォルトの名無しさん:2006/12/19(火) 13:49:53
そうだよ。それがC#流。
別にメモリや速度の効率を求めてC#使ってるわけじゃないんだろ?
82デフォルトの名無しさん:2006/12/19(火) 16:26:34
バカが沸いてるな
83デフォルトの名無しさん:2006/12/19(火) 16:29:41
いまだにフラグに数値使ってるやつとかいるわけ?
84デフォルトの名無しさん:2006/12/19(火) 16:29:50
大量にインスタンス生成するならまだしも普通はフラグ使わんな。
85デフォルトの名無しさん:2006/12/19(火) 17:06:29
使うよ
86デフォルトの名無しさん:2006/12/19(火) 17:08:01
P/Invokeするときくらいだろ?
87デフォルトの名無しさん:2006/12/19(火) 17:10:57
ちょっと疑問に思ったのですが、getだけのプロパティとメソッドってなにか違いはありますか?
88デフォルトの名無しさん:2006/12/19(火) 17:18:59
機能の上ではほとんど違いはない。

目的が値の取得か処理かで使い分ければいい。
89デフォルトの名無しさん:2006/12/19(火) 17:30:24
引数必要なければあまり変わらない。
90デフォルトの名無しさん:2006/12/19(火) 17:32:24
×バカが沸いてるな
○バカが湧いてるな
91デフォルトの名無しさん:2006/12/19(火) 17:41:01

public int DoSomething[int arg] {
    get{ Console.Write(arg); return 0; };
}

DoSomething[774];
92デフォルトの名無しさん:2006/12/19(火) 17:41:50
>>87
プロパティのgetアクセサはコンパイルでインライン展開されるらしい
93デフォルトの名無しさん:2006/12/19(火) 17:42:13
以前クラスライブラリでTextRendererのところを見てたらフラグを使うメソッドがあった。
こういう設計してるとこもあるんだなぁと印象的だった。
こういうのってWin32APIをラップでもしてるの?
94デフォルトの名無しさん:2006/12/19(火) 17:50:32
>>93
yes.
95デフォルトの名無しさん:2006/12/19(火) 18:04:41
Bool値でもフラグなんですけど。。。
96デフォルトの名無しさん:2006/12/19(火) 22:11:53
質問させてください。

int とInt16、Int32、Int64ってどんなときに使い分ければいいのですか?
違いがよく分からないので今はintを使ってるのですが・・・
97デフォルトの名無しさん:2006/12/19(火) 22:20:34
>>96
必要がある時に使えばいいんですよ
まだあなたには必要が無いんです
98デフォルトの名無しさん:2006/12/19(火) 22:21:37
>>96
intはInt32の別名。

簡単に述べると格納できる数値の最大値がちがう。
9996:2006/12/19(火) 22:44:09
なるほど単なる別名だったんですね、てことはInt64はlongの別名ってことですね。

ありがとうございます
100デフォルトの名無しさん:2006/12/19(火) 23:07:06
>>99
101デフォルトの名無しさん:2006/12/20(水) 00:42:59
C/C++経験はあって、XNAのためにC#を勉強中です。
メモリの開放がいまいちよくわからないので教えてください。

class Foo; があったとして、
public Foo hogehoge;
と書けば、Foo型のポインタができますよね。

そこで、実体を作るために、newします。
hogehoge = new Foo();
hogehogeにメモリが割り当てられます。

このとき、割り当てられたメモリを破棄し、新しくメモリを確保したいとします。
その場合、
・hogehoge = new Foo();
を行えば、元々hogehogeが持ってたメモリの参照回数がゼロになり、開放扱いになるのでしょうか?
もしくは、
if ( hogehoge != null ) hogehoge.Dispose();
みたいな処理がいるのでしょうか?

お願い致します。
102デフォルトの名無しさん:2006/12/20(水) 00:46:05
>>101
C#ではアンセーフな文脈以外ではポインタという言葉は使わない。

メモリはガーベジコレクタが管理してるから、プログラマが明示的に開放することはできない。
スコープから外れたオブジェクトは勝手に消されていく。
103デフォルトの名無しさん:2006/12/20(水) 00:46:10
>>101
ほっとけばいつかはメモリが開放される
開放されるタイミングを知ることはできないし知る必要もない
104デフォルトの名無しさん:2006/12/20(水) 00:48:25
>>101
IDisposableなオブジェクトはusingとか使ってちゃんとDisposeしといてね

他は適当に放っておけばそのうち開放されてる
105101:2006/12/20(水) 01:10:14
ありがとうございます。

class Foo の場合メモリ廃棄は自動、
class Foo : IDisposableの場合は、 hogehoge.Dispose()を呼ぶ

ということですね。
早速やってみます・・・
106デフォルトの名無しさん:2006/12/20(水) 01:13:28
一般にIDisposable.Disposeで開放されるのはファイルポインタとかのアンマネージドリソースね。
オブジェクト自体は他と同じようにガベッジコレクションで消される。
107デフォルトの名無しさん:2006/12/20(水) 01:17:12
>>105
ファイルとかのシステムリソースは、そのうち開放される、じゃ困るから。
要らなくなったらDispose()を呼んで明示的に開放する。
108デフォルトの名無しさん:2006/12/20(水) 01:51:48
>>105
注意しなきゃいけないのは、IDisposable であってもメモリ破棄は自動であることと、
Dispose() を呼ばなくても、大抵の場合(いつかは)アンマネージドリソースが破棄される(であろう)ということ。

他の人の回答と合わせて読んでくれ。
109デフォルトの名無しさん:2006/12/20(水) 02:16:55
>>101
ちなみに、.NET Framework のガベコレは参照カウンタじゃないよ。
110デフォルトの名無しさん:2006/12/20(水) 02:19:35
ここは個々のレスはワンポイントアドバイスのような細切れだが、
あわせて読むとどこぞの解説サイトよりずっとよくわかるな。

いつもありがたく勉強させてもらってます。
111101:2006/12/20(水) 02:26:21
ありがとうございます。

.Dispose()はアンマネージドなリソースの開放。
クラス領域は自動開放っていうことですね。

まとめ?

class First : IDisposable

class Second
{

}
112101:2006/12/20(水) 02:26:51
やべ、間違えて送信してしまった・・・
113101:2006/12/20(水) 02:27:37
まとめ?

class First : IDisposable

class Second
{

}
114デフォルトの名無しさん:2006/12/20(水) 02:37:48
>>101落ち着け
115101:2006/12/20(水) 02:41:04
なんか、キーバインドがぶっ壊れてるw

まとめ?

---- 要点 ----
・C#ではメモリの開放は自動(マネージド)
・Disposeはアンマネージド部分の開放用

---- 使用例 ----
・class First : IDisposable
を書く場合。(アンマネージドリソースを直接使用する場合)
public void Dispose()を用意する。その中でアンマネージドリソースを開放。

・class Second : First
を書く場合。(アンマネージドリソースを継承元のみで使用する場合)
そのままでOK。(Dispose()が継承されるので、それを呼び出してもらう)


class Third
{
First Foo;
Third() { Foo = new First(); }
~Third() { Foo.Dispose(); }
}
メンバとして、IDisposableクラスを利用したい場合、
自分が、IDisposableである必要はない(Disposeも用意しない。)
デストラクタに書いておけば、Thirdオブジェクト終了時に、同時にDispose()される。

こんな感じでしょうか・・・・
116デフォルトの名無しさん:2006/12/20(水) 02:42:52
IDisposable を実装する場合では
protected virtual void Dispose(bool disposing)
も用意するのが定石
117デフォルトの名無しさん:2006/12/20(水) 02:45:12
Dispose メソッドの実装
ttp://msdn2.microsoft.com/ja-jp/library/fs2xkftw(VS.80).aspx
118101:2006/12/20(水) 02:54:49
ありがとうございます。
朝までがんばるぞー!


119デフォルトの名無しさん:2006/12/20(水) 02:55:44
>>115
FooをファイナライザでDisposeしてちゃだめでしょ。
ThirdもIDisposableを実装して、IDisposable.DisposeでFoo.Dispose()を呼ばないと。
120デフォルトの名無しさん:2006/12/20(水) 03:02:16
121デフォルトの名無しさん:2006/12/20(水) 09:37:47
ぶっちゃけC#の利点って何ですか?なんか吐き出したプログラムから
ソース辿られちゃうみたいだし、VBなんかに比べた時の優位性がよくわかりません
VBやろうかC#やろうか迷ってるんで教えてください
122デフォルトの名無しさん:2006/12/20(水) 09:49:51
あいのこの VB.NET にしとけば
123デフォルトの名無しさん:2006/12/20(水) 10:07:17
a
124デフォルトの名無しさん:2006/12/20(水) 11:03:41
クマー
125デフォルトの名無しさん:2006/12/20(水) 11:09:48
>>121
J#すごいよ。
126デフォルトの名無しさん:2006/12/20(水) 11:15:10
C#m7(b5)
127デフォルトの名無しさん:2006/12/20(水) 11:38:17
>>121
まあ、後から作られてる分きれいなくらい?
基本的に VB.NET とできること一緒だし。
128デフォルトの名無しさん:2006/12/20(水) 11:39:16
ぶっちゃけVB.NETの利点って何ですか?なんか吐き出したプログラムから
ソース辿られちゃうみたいだし、C#なんかに比べた時の優位性がよくわかりません
C#やろうかVB.NETやろうか迷ってるんで教えてください
129デフォルトの名無しさん:2006/12/20(水) 11:39:58
やはり今日日VBというとVB.NETのことなのか?
130デフォルトの名無しさん:2006/12/20(水) 13:31:19
この手の議論はこっちで。

つ【VB.NET】VS2005 選ぶならどっち?【C♯】
131デフォルトの名無しさん:2006/12/20(水) 16:11:13
>>121>>128
VB.NETにしてもソースを辿られるのはC#と同じ。
.NetやるならC#がベスト。
132デフォルトの名無しさん:2006/12/20(水) 17:21:35
System.Diagnostics.Process.Start()使って
メディアプレイヤー開いてファイルパス入れようとすると
スペースで途切れちゃって駄目なんだけど、
これ何とかする方法ないすかね?
たとえばデスクトップのmp3開こうとすると
C:\Documentsで止まっちゃって読めない。
133デフォルトの名無しさん:2006/12/20(水) 18:21:54
@"""C:\Documents and Settings\hoge\デスクトップ\hage.mp3""";
134132:2006/12/20(水) 19:38:52
>>133
サンクス!
135デフォルトの名無しさん:2006/12/21(木) 22:29:44
txtファイルをexeファイルに埋め込みたいのですが、
やり方がいまいち分かりません。
C# リソース 埋め込み
でもググって見ました。
やり方もしくは参考になるサイトがありましたら教えてください
136デフォルトの名無しさん:2006/12/21(木) 23:00:40
137デフォルトの名無しさん:2006/12/21(木) 23:40:29
>>135
釣ですか。
同じキーワードでググって見たけど…
138デフォルトの名無しさん:2006/12/21(木) 23:43:56
なんでtxtファイルを埋め込みたいの?
static stringとか,設定ファイルじゃダメなの?
139デフォルトの名無しさん:2006/12/21(木) 23:44:31
C# text リソース 埋め込み
140デフォルトの名無しさん:2006/12/21(木) 23:49:12
141デフォルトの名無しさん:2006/12/21(木) 23:53:31
142デフォルトの名無しさん:2006/12/21(木) 23:57:46
>>141
ちょwwwそのタイトルwww
143デフォルトの名無しさん:2006/12/21(木) 23:58:56
機械はすばらしいいいいい!
144デフォルトの名無しさん:2006/12/21(木) 23:59:48
How to embed and access resources by using Visual C#
Visual C#を使用すると、どのように埋め込んで、アクセス リソースには

どこが「には」になるんだろうな
145デフォルトの名無しさん:2006/12/22(金) 00:01:10
>このため、有効な埋め込まれたリソースとしてアプリケーションの期間の間、
>変更されないファイルを含みますのみ。
146デフォルトの名無しさん:2006/12/22(金) 00:03:18
どこの会社のソフトを使ってるんだろうな。

MSって機械翻訳の技術もってたっけ?
147デフォルトの名無しさん:2006/12/22(金) 00:05:02
yahoo Japan翻訳。

Visual C#を用いて資源に埋め込んで、アクセスする方法
148デフォルトの名無しさん:2006/12/22(金) 01:36:52
>>144
toだろ
149デフォルトの名無しさん:2006/12/22(金) 06:32:49
こんな自動翻訳なら、やらない方がましな気がする
150デフォルトの名無しさん:2006/12/22(金) 09:50:37
C#でActiveXコントロール作れますか?
151デフォルトの名無しさん:2006/12/22(金) 10:06:51
>>149
超同意
152デフォルトの名無しさん:2006/12/22(金) 10:52:54
タイトルはひどいが本文はそうでもないな。
153デフォルトの名無しさん:2006/12/22(金) 10:56:26
>>150
はい。
154デフォルトの名無しさん:2006/12/22(金) 12:23:45
こんなレベルでも(といっても本文は割りとまともだけど)、
日本語文書がないよりはあった方がいいって意見が多いからやってるみたいよ。
MS の文書は量多すぎて、人手による翻訳は無理みたい。
訳すよりも新しい文書が出てくるペースの方が速い。

まあ、Google への日本語インデックス登録にもなるしね。
日本語検索 → この怪しい機械翻訳ページに到着
 → 見れた代物じゃないから原文の英語を読む。

タイトルだけ変なのは、この手の記事見出しって普通と文法違うからね。
述語がないとか冠詞は省略するとか。
「ここは見出しです」って感じのメタデータ持って、
翻訳エンジンに渡すとかしないとまともな翻訳難しいかも。
155デフォルトの名無しさん:2006/12/22(金) 12:28:08
世界のマイクロソフトがあの程度の技術しか持っていないのはどうなんだって気もするが。


Amikaiでも買収してください。
156デフォルトの名無しさん:2006/12/22(金) 12:29:01
>>154
> まあ、Google への日本語インデックス登録にもなるしね。

原文と見比べないと意味がわからないことも多いけど、
確かに検索で見つけやすくなる効果はあるね。
なるほどとオモタ。
157デフォルトの名無しさん:2006/12/22(金) 13:18:31
本文は機械でも,せめてタイトルくらいは人間が確認すればいいのに
158デフォルトの名無しさん:2006/12/22(金) 13:37:24
>>101からの流れがいまいちつかみきれないので、質問します。
詳細は、おいおい勉強していこうと思いますが、
勘違いしている点だけでも、指摘して頂ければありがたいです。

【質問】
Dispose()の呼び出しは必須ですか?

【自分の理解】
例えば、Penオブジェクトを使用する場合、
「Dispose()メソッドは出来るだけ呼べ、但し、必須では無い。」
と考えてました。

必須でない理由として、
・Penオブジェクトを保持するクラスであれば、そのクラスの参照が無くなった時点で、
 GCが自動解放をする。
・Penオブジェクトを保持するのが、メソッドであれば、メソッドから抜けた段階で、
 GCが自動解放する。
159デフォルトの名無しさん:2006/12/22(金) 13:52:27
ほっといてもGCが「そのうち」解放してくれるんだけど,それがいつになるかはわからない。
だから,メソッドを抜けた時点とも,参照がなくなった時点とも限らない。
普通はそれで問題ないんだけど,Penオブジェクトはアンマネージリソースを
外部に確保してるから,それがメモリを圧迫しててもGCが気づいてくれない。
最悪,ほっといてもファイナライザで解放されるんだけど,基本的にDisposeは必須。
160158:2006/12/22(金) 14:05:01
>>159
ありがとうございます。

 「解放」がいつ行われるか不明
 「リソース量」の把握が困難

以上より、「基本的にDisposeは必須。」ということですね。
業務では無いため、結構Disposeを軽視していました。 ^^;)

   >>158の質問は終了ということで
161デフォルトの名無しさん:2006/12/22(金) 16:38:16
>>154
ま、俺も英語できない方だけど、
なんかのナレッジベースだったか
発狂しそうなほど無茶苦茶な日本語だったよ。
先のサイトは、ましな部類に入るんじゃないかな。
162デフォルトの名無しさん:2006/12/22(金) 19:35:23
>>160
Penは不具合??が起こる可能性があるからDisposeが必要。
MSDN(Help)に書いてあるよ。

あとはほとんど気にしなくていいと思う。
163デフォルトの名無しさん:2006/12/22(金) 20:05:21
>>162
ホントだ Thx!
Graphics関係は要注意ぽいですね。

今気づいたんだけど、
 Stream系はCloseとDispose(プロテクトメソッドのケースも)の2つがあるんだ。
 Closeは必須だと思ってやってたんだけど…

う〜ん、奥がふかい。やっぱ、優先順位あげて勉強します。
164デフォルトの名無しさん:2006/12/22(金) 20:07:59
ごめん
BrushとかもDisposeいるな。
Graphicsはいらないみたい。
165デフォルトの名無しさん:2006/12/22(金) 20:11:24
C#のGCはあんまり積極的には動いてくれないから、
Disposeできるもんは使い終わったらDisposeしとけ。
usingブロックを使うと楽。
166デフォルトの名無しさん:2006/12/22(金) 20:15:40
そうかなあ。
あんまり気にする必要ないとおもうよ。

usingブロック多用は逆に良くないと思うが。
167デフォルトの名無しさん:2006/12/22(金) 20:19:16
ならそうすれば
168デフォルトの名無しさん:2006/12/22(金) 20:57:19
プログラミング .NETFramework中のP484に、

重要:
GCがよくできてるから、それに任せた方がいいので、
一般論として、DisposeまたはCloseメソッドの呼び出しを
強制するのは勧めない

と書いてありました。

初、中級者は、ヘルプに明記されている場合を除いて、
あまり気にしなくていいというところですかね。
169デフォルトの名無しさん:2006/12/22(金) 21:08:59
気にしなくていいならIDisposableを実装していないんじゃないの?
170デフォルトの名無しさん:2006/12/22(金) 21:14:28
cのfree論争みたいだなw
171デフォルトの名無しさん:2006/12/22(金) 21:20:12
ファイルハンドルのCloseだけはすぐにやってもらわないと困るだろ。
172デフォルトの名無しさん:2006/12/22(金) 21:20:57
・CGはメモリがきつくなるまでは動かない。
・IDisposableを実装しているということはアンマネージリソースを抱えている可能性が高い。
・なので、Disposeできるものは使い終わったら速やかにDisposeするべき。
・例外でDisposeの呼び出しがスキップされてしまうのを防げるので使える場面ではusingを使うとすっきり。
173デフォルトの名無しさん:2006/12/22(金) 21:23:21
Disposeを実施するメリットがある場合もあるのかと
メリット、デメリットは処理内容にもよるし

安全方向に振れば、実装するんじゃない
174デフォルトの名無しさん:2006/12/22(金) 21:37:51
>>164
自分でDCから作ったGraphicsはちゃんとDisposeしないとDCハンドル溜まっていくよ。
175デフォルトの名無しさん:2006/12/22(金) 21:54:42
176デフォルトの名無しさん:2006/12/22(金) 22:41:06
ところで,~MyClass(){this.Dispose(false);}以外の
ファイナライザの使い道はあるの?
177デフォルトの名無しさん:2006/12/22(金) 23:05:11
エクスプローラに表示される、ファイルの説明見たいのを変えるにはどうしたらいいのでしょうか?
これです↓
http://lkjoe.hp.infoseek.co.jp/cgi-bin/file/1166796250.jpg
178デフォルトの名無しさん:2006/12/22(金) 23:15:47
スレ違いだが

レジストリの
HKEY_CLASSES_ROOT\.拡張子 の既定の値
→その名前のHKEY_CLASSES_ROOT\直下のキーの既定の値
179デフォルトの名無しさん:2006/12/22(金) 23:18:18
どれが表示されるか、というのなら
QuickTipとかInfoTipとかDetailsで検索
180177:2006/12/22(金) 23:20:13
例が不適切でした。
アプリごとに自由に変えられますよね?↓
http://lkjoe.hp.infoseek.co.jp/cgi-bin/file/1166797172.jpg
181デフォルトの名無しさん:2006/12/22(金) 23:24:47
例が不適切というか、
おまえの理解力が不適切だ
182デフォルトの名無しさん:2006/12/22(金) 23:27:17
やっと意味が分かった
ソリューションのPropertiesからアセンブリ情報を編集
あるいはAssemblyInfo.csを手書きで編集

どうでもいいけど、ファイルの拡張子は表示した方がいいよ
183デフォルトの名無しさん:2006/12/22(金) 23:42:59
>>177
[assembly: AssemblyDescription("ここに説明")]
184デフォルトの名無しさん:2006/12/22(金) 23:51:12
Form1とForm2があります。
Form1
185184:2006/12/23(土) 00:02:07
184は間違いです・・・

Form1とForm2があります。
Form1とForm2には↓のようにコントロールを置いてあります。
ずれているかもしれませんが・・

┌Form1───   ┌Form2───
|     |   |     |
|comboBox1 |   |textBox1 |
|     |   |button1  |
└─────┘   └─────┘

ここで、Form2のbutton1が押されたら、Form2のtextBox1の内容を
Form1のcomboBox1に追加したいのですが、
下記のコードでは追加できません。

Form1 f1 = new Form1();
f1.comboBox1.Items.Add(textBox1.Text);

どうしたら追加できるでしょうか?お願いします。

186184:2006/12/23(土) 00:03:46
やはり激しくずれていました・・
逝ってきますorz
187デフォルトの名無しさん:2006/12/23(土) 00:12:34
>>185
>Form1 f1 = new Form1();
>f1.comboBox1.Items.Add(textBox1.Text);

このコードで作ってるf1と、実際表示してるForm1のインスタンス(実体)とは
これっぱかりも関係がない。

どこかで、表示してるForm1のインスタンスへの参照を
Form2のインスタンスに渡してやって、それに対して操作すればおけ。

「クラス」と「インスタンス」について学ばれたし。
188デフォルトの名無しさん:2006/12/23(土) 00:18:01
//Form1.cs
public void AddString( string str )
{
 this.comboBox1.Items.Add( str );
}
--------------------------------------------
//Form2.cs
public Form1 fom1; // これにForm1へのインスタンスへの参照をどこかで入れる

...
this.form1.AddString( this.textBox1.Text );
...


189184:2006/12/23(土) 00:24:19
>>187
>>188
早速ありがとうございました!インスタンスへの参照についてぐぐってみます。
190184:2006/12/23(土) 03:28:55
戻ってきました。
参考になりそうなページを見つけたのですが、>>188さんの作ってくれた
コードと照らし合わせてもどこに何を書けばいいか分からなくて・・

参考にしたのは下記のページです。
http://dobon.net/vb/dotnet/form/accessanotherformdata.html

便宜上Form2と言いましたが実はForm3なのでForm2とForm3を置き換えて
読んで頂けると幸いです。

Form3に書くForm1へのインスタンスへの参照はこれであってますか?
(コピペですが)

public Form1 f1;

//Form1オブジェクトを保持するためのフィールド
private static Form3 _form3Instance;

//Form1オブジェクトを取得、設定するためのプロパティ
public static Form3 Form3Instance
{
get
{
return _form3Instance;
}
set
{
_form3Instance = value;
}
}
191184:2006/12/23(土) 03:29:51
つづきです



で、これがあっているか分かりませんが、呼び出し方が分からなくて・・。
何度か試してもオブジェクト参照がオブジェクトインスタンスに設定されてません
って出るので・・
すみませんが、もう少し具体的に教えてほしいです。
お願いします。
192184:2006/12/23(土) 04:05:00
すみません。事故解決しました。

Form1に

Form3 f3 = new Form3();
f3.f1 = this; ←ココを足した
~~~~~~~~~~~~~ 
f3.Show();

Form3に

public Form1 f1;

で出来ました。

難しく考えすぎていたみたいです。
ありがとうございました。
193デフォルトの名無しさん:2006/12/23(土) 16:59:09
最近の宿題はC#なんだろうか・・・いい迷惑だ
194デフォルトの名無しさん:2006/12/23(土) 17:22:03
ググレば例はいくらでもあるのでそっちにまかせる。
まずはインスタンスについて理解しよう。
195デフォルトの名無しさん:2006/12/23(土) 17:23:34
すまぬ、最新見てなかった…
196デフォルトの名無しさん:2006/12/23(土) 19:01:49
>public static Form3 Form3Instance

前もこんな書き方する奴がいたが同一人物ですか?

個人的にはこの書き方は非常に気持ち悪いし、
内容を理解しているのか気になる。
197デフォルトの名無しさん:2006/12/23(土) 19:11:09
フォームがシングルトンであるなら別に問題ないんじゃね
プロパティ名はどうにかしてほしいが。
198デフォルトの名無しさん:2006/12/23(土) 19:11:38
199デフォルトの名無しさん:2006/12/23(土) 19:15:38
犯人はDOBON.NET
200デフォルトの名無しさん:2006/12/23(土) 19:20:01
シングルトン?
201デフォルトの名無しさん:2006/12/23(土) 19:23:43
いまさらだけど
http://dobon.net/vb/dotnet/form/accessanotherformdata.html
のやり方へんじゃないか?
202デフォルトの名無しさん:2006/12/23(土) 19:23:43
ジョン・シングルトン
203デフォルトの名無しさん:2006/12/23(土) 19:28:17
美しくないのは確か
204デフォルトの名無しさん:2006/12/23(土) 19:31:13
どちらかと言うとkitanai
205デフォルトの名無しさん:2006/12/23(土) 19:39:58
初心者の方、あれはシングルトンじゃないですよ。
目的のインスタンス参照をstaticに参照できるようにしただけ。

global変数の復活だ!
Gofもシングルトン広めて有罪扱いされてたよね。
206デフォルトの名無しさん:2006/12/23(土) 19:44:04
所謂パターンじゃなくて単に1個ないっていう意味で使ったんじゃないの?
一応普通の英単語だし。

つか、それなら関数型言語使っとけよ。
207デフォルトの名無しさん:2006/12/23(土) 19:46:01
なんかやたらと変な脱字が多い。脳が溶けてるのかしらw
1個「しか」ね。
208デフォルトの名無しさん:2006/12/23(土) 19:51:43
>Form1.Form1Instance.TextBoxText = "こんにちは。";

身近にこんなコードかいてる奴したら確実にシバク。
209デフォルトの名無しさん:2006/12/23(土) 20:18:40
VB出身のやつでそういうコード書きたがる奴なら腐るほど
210デフォルトの名無しさん:2006/12/23(土) 20:28:14
>>201
そこ書いてる奴もVB屋じゃね?
211デフォルトの名無しさん:2006/12/23(土) 20:30:53
IDEがとりあえず名前を付けてくれるにしても、もっとすごい名前を付けたほうが良いと思う。
AutoGeneratedName1 とかさw
212デフォルトの名無しさん:2006/12/23(土) 20:32:56
>>208
ちゃんと動くのになんの問題が?
213デフォルトの名無しさん:2006/12/23(土) 20:36:18
>>212
その発想が既に化石
214デフォルトの名無しさん:2006/12/23(土) 20:37:02
>>211
FormFoo
FormBar
FormBaz
FormQux
 :
215デフォルトの名無しさん:2006/12/23(土) 20:37:33
>>213
化石はこんなコード書きません。
216デフォルトの名無しさん:2006/12/23(土) 20:44:19
>>213
化石じゃない発想はどういうのよ。
そのまま使っても誰も文句言わないような素敵な名前を付けてくれるとか?
217デフォルトの名無しさん:2006/12/23(土) 20:44:41
クラス名の後に数字はつけないほうがいいよ。
ideがインスタンスに変な名前付けるから。

Form1 → form11
UserControl1 → UserControl11
218デフォルトの名無しさん:2006/12/23(土) 20:45:54
>>216
化石って、命名についていってるわけじゃないと思うが
219デフォルトの名無しさん:2006/12/23(土) 20:47:45
>>218
そうなのか。ぜんぜんわからん。どうやら化石らしいorz
220デフォルトの名無しさん:2006/12/23(土) 20:53:54
>>217
Form1_ → form1_1
UserControl1_ → UserControl1_1

解決。
221デフォルトの名無しさん:2006/12/23(土) 21:06:20
5種類の仕事と5人の人がいて、5種類の仕事を行うコストが個人で異なる。
この様な場合、誰にどの仕事を行わせることがもっとも低コストで仕事が
行えるか求めるフローチャートを作成しなさい、計算方法は、全ての組み合わせ(順列)を求める。その中から最も低コストとなる仕事の割り当てを得る(腕ずく法;Brute Force Method)。なお、最低コストが複数ある場合は、最後に判明した組み合わせのみを表示すればよい。
人1人2人3人4人5
仕事A10、5、7、12、8
仕事B14、20、15、10、15
仕事C18、30、20、25、22
仕事D35、8、18、20、12
仕事E20、13、8、10、17

初めて、プログラムに触ったので バカです。
できる方、教えてください
222デフォルトの名無しさん:2006/12/23(土) 21:07:43
>>221
だから宿題スレ池屑
223デフォルトの名無しさん:2006/12/23(土) 21:08:02
>>221
そういうことは友達か先輩に聞け!

もうプログラム板にすら来るな。
不愉快だ!
半年ROMってろカス!!!!
224デフォルトの名無しさん:2006/12/23(土) 21:09:58
手当たり次第にマルチだし
>初めて、プログラムに触ったので バカです。
知らないだけのバカじゃなくて正真正銘池沼だろうな・・・
225デフォルトの名無しさん:2006/12/23(土) 21:10:38
いいことを教えてやろう。

ここはC#スレで C#はCではありません。
226デフォルトの名無しさん:2006/12/23(土) 21:11:04
Cすら関係なくね?
227デフォルトの名無しさん:2006/12/23(土) 21:14:15
多分宿題だろ。

c#で課題は出ないとおもう。
多分CかJAVAあたりのはず。
228デフォルトの名無しさん:2006/12/23(土) 21:16:22
他人のなりすましかも?
この板IDでないし。

俺もどこかに貼ってこようか♪
229デフォルトの名無しさん:2006/12/23(土) 21:17:15
>>227
おもう、多分
230デフォルトの名無しさん:2006/12/23(土) 21:28:05
>>220
レビューで読み上げたら思いっきり馬鹿にされそうだなw
231デフォルトの名無しさん:2006/12/23(土) 23:20:24
C#で作ったライブラリをCOMとして呼び出したいのですが
Visual C# 2005 Express Edition で "COM相互運用機能の登録"をチェック、ビルドし、
他のプロジェクトから参照しようとすると

'ClassLibrary'への参照を追加できませんでした。
ActiveXタイプライブラリ'〜〜\ClassLibrary.tlb'が.NETアセンブリからエクスポートされましたが、参照として追加できませんでした。
.NETアセンブリへの参照を追加してください。

と出ます。
いじめですか?
どうすれば解決しますか?
232デフォルトの名無しさん:2006/12/23(土) 23:23:14
いじめです。
233デフォルトの名無しさん:2006/12/23(土) 23:25:55
>>231
そんなんならんけど。
234デフォルトの名無しさん:2006/12/23(土) 23:26:34
最近おなじのをどっかの掲示板で見たな
そいつは返答もらってたのに放置してたが
235デフォルトの名無しさん:2006/12/23(土) 23:28:51
>>231
いじめです。止めてくださいって言えば止めてくれるでしょう
236デフォルトの名無しさん:2006/12/23(土) 23:30:49
ゲイシにいじめを止めないと自殺するって手紙送るとか
237231:2006/12/23(土) 23:34:04
もう何度もやめてくれと言いました。
Google先生に相談したけどダメでした。
238デフォルトの名無しさん:2006/12/23(土) 23:44:27
プロパティー
Application
アセンブリ情報
アセンブリをCOM参照可能にする

で逝けない?
239デフォルトの名無しさん:2006/12/24(日) 00:03:19
>238
"アセンブリをCOM参照可能にする"のチェック、非チェックどちらでもダメでした。
240デフォルトの名無しさん:2006/12/24(日) 00:12:09
つーかC#で作ったライブラリなら
ふつうにCOMじゃなくて.Netとして参照に追加
241231:2006/12/24(日) 00:21:20
>240
最終的にActiveXコントロールとしてIE上で動かしたいので
.NETじゃなくCOMでいきたいのです

仕方ないので、手作業で登録しようとしたのですが
Visual C# インストールディレクトリ下に regasm.exe が見当たりません
これが何か関係しているでしょうか?
242デフォルトの名無しさん:2006/12/24(日) 00:24:02
それはシステムディレクトリの方にあるような
243デフォルトの名無しさん:2006/12/24(日) 00:24:30
,NET のアセンブリを COM 参照はできない。

はい次。
244デフォルトの名無しさん:2006/12/24(日) 00:35:40
そのライブラリは.NETとして参照して、
本体をCOMとして登録すればいいだけの話だろ
245231:2006/12/24(日) 00:44:45
>244
そんなことできるんですか!
.NET、COMでの開発経験がないので分かりませんでした
どのようにすればできますか?
246デフォルトの名無しさん:2006/12/24(日) 00:50:09
そのライブラリは.NETとして参照して、
本体をCOMとして登録すればいい

としか。

そもそも本体はCOMとして登録できてんの?
ComRegisterFunctionAttributeとかで自前でやるんだけども
247231:2006/12/24(日) 00:58:36
>>246
ありがとうございます
もう訳が分からなくなりました
"本体"が何をさしているのか
ComRegisterFunctionAttributeとか
統合環境任せにはできないのですかね。。
勉強して出直してきます・゚・(ノД`)・゚・。。
248デフォルトの名無しさん :2006/12/24(日) 03:58:59
c#をvisualstudioを使って勉強しています。
テキストボックスはあったんですが、swingにあるようなテキストエリア
が見つからなくて、名前を教えて下さい。
249デフォルトの名無しさん:2006/12/24(日) 04:57:32
250デフォルトの名無しさん :2006/12/24(日) 08:54:42
>>249さん、ありがとうございます。
助かりました。
251デフォルトの名無しさん:2006/12/24(日) 18:35:41
Dictionaryで文字列探す場合は定数でないとヒットしないですか?
252デフォルトの名無しさん:2006/12/24(日) 18:41:42
>>251
質問文の意図がわかりかねる
253デフォルトの名無しさん:2006/12/24(日) 18:43:00
正規表現などは使えないよ。
254デフォルトの名無しさん:2006/12/25(月) 00:14:49
質問です。

インテリセンス上に「使用しないでください」て表示された場合は
やっぱり使用しないほうがいいのかな?
皆さんはどうしてます?
255デフォルトの名無しさん:2006/12/25(月) 00:22:56
こういうやつがプロジェクト内にいると困る
256デフォルトの名無しさん:2006/12/25(月) 00:28:33
>>254
使用しないでください
257デフォルトの名無しさん:2006/12/25(月) 00:33:54
>>254
おまえはフランス人か。
258デフォルトの名無しさん :2006/12/25(月) 01:15:03
Main関数内でフォームを作ったあと、
そのフォーム内のhogeという名前のコントロール
(C#だとハンドルとは言わないんですかね?)を取得したいのですが
どうしたらよいですか?
WinAPIでいうところのGetDlgItem()みたいなやつです。
お願いします。

Form1 form = new Form1();
form.Show();

//CHooクラスのコンストラクタにControlを渡したい
CHoo hoo = new CHoo(名前"hoge"のコントロール);
259デフォルトの名無しさん:2006/12/25(月) 01:23:08
Handleプロパティ
260デフォルトの名無しさん :2006/12/25(月) 01:39:48
>>259
すいません、
メインのフォーム内に配置された
hogeという名前のコントロールのハンドルを取得したいわけですが、
つまりはどう書いたらよいのでしょうか?
261デフォルトの名無しさん:2006/12/25(月) 01:56:44
CHoo のインスタンスが存在すべきなのはきっとそこじゃないんだよ。
262デフォルトの名無しさん :2006/12/25(月) 01:57:58
ちなみに、ググったところ
「form.controlsでフォーム内のコントロールを全部取得し
名前を一つずつ比較して一致したらそのコントロールを返す」
みたいな関数を作る方法を見つけたのですが、
わざわざそんな事をしないといけないのでしょうか?
GetDlgItemみたいにシンプルに一発で名前で取得するようなことは
できないのでしょうか?
263デフォルトの名無しさん :2006/12/25(月) 02:00:31
>>261
Main内でインスタンスを使いたいんです。
264デフォルトの名無しさん:2006/12/25(月) 02:41:19
Form継承してプロパティ作るなり
フィールドにhogeのインスタンス持つなり
なんなり好きにすれ
265デフォルトの名無しさん:2006/12/25(月) 06:02:12
DLLファイルからある関数を使う場合、その関数の引数がポインター渡しの場合
C#だと使えないんでしょうか?


using System.Runtime.InteropServices;

namespace なんだか
{
class なんたらClass
{
[DllImport("AAA.dll")]
public static extern bool bbb(int *val);←こんな宣言はできない
266デフォルトの名無しさん:2006/12/25(月) 06:19:42
refとかout
267デフォルトの名無しさん:2006/12/25(月) 06:38:10
>>266
ありゃ、それで勝手にポインターの変換やってくれるんでつか、へぇ〜
268デフォルトの名無しさん:2006/12/25(月) 06:41:43
>>258
> CHoo hoo = new CHoo(名前"hoge"のコントロール);

C#では、GetDlgItemみたいなことすら、する必要が無い。
名前がhogeなら、そのまま hoge でアクセス出来る。
例えば、
Form1 form = new Form1();
form.Show();
hoo.Text = "はげ"
269デフォルトの名無しさん:2006/12/25(月) 08:28:16
そのコードじゃ分からんだろ
270デフォルトの名無しさん:2006/12/25(月) 08:53:57
つーかC++でもそんなことする必要ないけど?
271デフォルトの名無しさん:2006/12/25(月) 10:24:40
>>265
IntPtr型で受けるのもアリ
272デフォルトの名無しさん:2006/12/25(月) 13:58:40
最近C#をはじめました、、、入門本読んでちょっと面白いなと思ったところで
クラスって概念のところがわかりにくく頓挫してます

入門本の説明がイマイチなのか、作例にするプログラムに
そんな大層なものが必要ないからわかりにくいのか、概念が掴みにくい

変数を用意して、それを処理するための関数を書いてひとまとめにしたもの?
と捉えてるんですが、それならその処理を直接書けばいいわけで、
何で面倒なクラスの宣言が必要なのかがよくわかりません

C#に準拠した形でこの辺を平易に解説してる書籍とかないでしょうか?
273デフォルトの名無しさん :2006/12/25(月) 14:01:01
>>268
Form1 form = new Form1();
form.Show();
CHoo hoo = new CHoo(hoge);

と書いたら
エラー CS0103: 名前 'hoge' は現在のコンテキスト内に存在しません。

と怒られました。
274デフォルトの名無しさん:2006/12/25(月) 14:13:41
釣られませんよw
275デフォルトの名無しさん :2006/12/25(月) 14:14:45
ウィザードが勝手に書いてくれた
Form1.Designer.cs内のhogeのアクセス制御を
publicにしてみたら、
CHoo hoo = new CHoo(form.hoge);
でアクセスできるようになりました。
でもなんかpublicにするのは気持ち悪いです。

要するに、「GetDlgItemみたいなお手軽な命令はC#にはない」
ってことでいいですか?
276デフォルトの名無しさん:2006/12/25(月) 14:21:51
GetDlgItemのどこがお手軽なのかと小一時間問い詰めたい
277デフォルトの名無しさん:2006/12/25(月) 14:22:18
外部からhogeに直接アクセスするんじゃなくて、
CHooを返すようなプロパティなりメソッドなりを定義すべきなんじゃないの?
278デフォルトの名無しさん:2006/12/25(月) 14:22:58
>>275
リードオンリーなプロパティにしとけ。
279258:2006/12/25(月) 14:51:08
getのアクセサ書いたらprivateにしたまま取得できました。
でも取りたいコントロールに全部書くのって面倒ですね。

なんでform.controlsとかいってコントロールの配列は取れるくせに
名前指定して一つ取り出してくれるようなことができないんですかね。
めんどくさいですね。

いまのところ、form.controlsで取り出したコントロール配列から名前で検索して
返してくれる関数を書くのが気持ち的には一番すっきりしてていい感じですが。
280デフォルトの名無しさん:2006/12/25(月) 14:55:58
Control.Nameなんてデザイナが変数名に使う以上の意味は無いから。
281デフォルトの名無しさん:2006/12/25(月) 14:58:05
コントロールの名前ってVBじゃあるまいし
282258:2006/12/25(月) 15:02:28
別に名前が欲しいわけじゃないです。
名前からコントロールを拾いたいんです。
なんかよく分からない的外れな回答ばかり帰ってきてるきがするのですが、
質問の意味、伝わってますか?
283デフォルトの名無しさん:2006/12/25(月) 15:05:23
だから、名前なんて使わないんだって。
284デフォルトの名無しさん:2006/12/25(月) 15:05:27
>>282
んだから、外部からコントロールを直接さわってフォームの外に機能を実装するんじゃなくて、
そのフォーム内に機能を実装して機能毎に外に見せろって言ってんだよハゲ。
285デフォルトの名無しさん:2006/12/25(月) 15:07:50
2.0ならControls["hoge"]で取れる。
ただし名前が間違っているときにコンパイルエラーにならないのでお勧め出来ない。
286258:2006/12/25(月) 15:16:41
>>283
あの、では何を使うのでしょう??
今回の目的は具体的にいうと、
DirectXを使用するためその初期化の際に
フォームに配置されたピクチャーボックスのハンドルを渡したいんです。
なので、とにかく名前を使わずともそれを渡すことが可能であればいいんですが、
ではどうすれば渡せるのでしょうか?
これまではC++をちょっとかじってたのですが、
C++だと「親のハンドル」と「目的のコントロールのID」が分かってれば
GetDlgItemとかで一発でハンドルを取得して渡せたのですが。

>>284
はい、ですから今回はフォームの中にgetのアクセサを書いたらとりあえず
取得できましたし(これが最も正攻法だとは思いますが)、
更にフォームの外部から
Form.controlsで一覧を取得して.Nameプロパティを検索し一致したら返してくれる関数
を書いて取得することもできました。

でもGetDlgItemみたいな命令が用意されてれば一番簡単でいいじゃないですか。
287デフォルトの名無しさん:2006/12/25(月) 15:18:47
外から取りに行くのは美しくないって言われてるんだよ。

まともなプログラマはマジックストリングなんて使いたくないし。
288デフォルトの名無しさん:2006/12/25(月) 15:21:05
>>286
フォームの外から触って欲しいコントロールはプロパティとして公開する。
そうじゃないコントロールはできるだけ外からアクセスできないようにする。

バグの少ないプログラムの基本。
289デフォルトの名無しさん:2006/12/25(月) 15:28:52
今日の結論:
GetDlgItem 最強。
290258:2006/12/25(月) 15:30:45
>>289
そう思いました。
291デフォルトの名無しさん:2006/12/25(月) 15:32:47
わかんないなあ。

そんなバラバラにコードを書くなんて気持ち悪くてやってられないと思うんだが。
ピクチャーボックスを含むフォームに初期化関数を定義すりゃいいじゃない。
292デフォルトの名無しさん:2006/12/25(月) 15:32:54
もうひとつの結論:
>>258にはCが最適。
293258:2006/12/25(月) 15:33:27
>>292
そう思いました。
294デフォルトの名無しさん:2006/12/25(月) 15:35:53
追加:
>>258はソースを誰にも見せないプログラムを常にひとりだけで書くべし。
295デフォルトの名無しさん:2006/12/25(月) 15:37:47
だったら
public static class Global
{
public static Dictionary<object> AllObjects{get;}
}
みたいにして全部ぶち込んどけ
296258:2006/12/25(月) 15:48:25
>>291
Main関数内で
DirectX関係のクラスのインスタンスを生成して
そこでずっと使う必要があるのです。

フォームのコードの中でDXのインスタンスを生成してもいいのですが、
そうすると今度はそっちをやり取りしないといけなくなるので
どっちもどっちな気がします。

だからGetDlgItemが最強だと思います。
297258:2006/12/25(月) 15:50:46
でもやっぱりアクセサを書いて
必要なものだけ触れるようにするのが衛生上は良さそうですね。
ありがとうございました。
298258:2006/12/25(月) 16:01:25
>>285
すいません、見落としました。
これはいいですね。こういう感じのものを求めていたのですが、
コンパイルは通るものの実行したら落ちました。
バージョンは2.0を使ってるようですが、
どこが悪いかちょっと調べます。
299デフォルトの名無しさん:2006/12/25(月) 16:03:31
オマエは冥王星へでも行け
300デフォルトの名無しさん:2006/12/25(月) 16:05:32
ずいぶん昔のクラスなんて無かった時代の話だが、Cでコボラと組んだことがあってさ、全部main関数に書きやがんの。
俺は失禁しそうなくらい驚いたんだが、そいつは便座に座って排便しているような落ち着いた顔で、これが普通だと言い張るわけよ。
それで俺が書き直して見せてやるわけだが、関数なんてどこから呼ばれてるかわかりゃしない、とか尤もらしい抗弁をするのね。

結局、まあ、俺は説得に成功することはなかったんだが、一瞬それを思い出した。
301デフォルトの名無しさん:2006/12/25(月) 16:08:45
>>296
名前を使えば、フォーム内の都合で名前が変わったらフォームの外まで影響が出るだろ。
だから、例えば(超例えばね) GetTargetControl() とかいう関数を定義して、
DirectXで使うコントロールを返すようにすればいいのだ。
それなら外に影響を与えずにフォーム内を好きに変更できるし、
後から誰かがソースを読んでも意味を把握しやすい。

ていうことを>>284で書いたんだよハゲ。
302デフォルトの名無しさん:2006/12/25(月) 16:25:05
化石のような人と言われるわけだ
CからC++に移行していくときに、新しいやり方に行く人と前からのままの人に分かれたな
303デフォルトの名無しさん:2006/12/25(月) 16:28:22
>>296
それならstaticにしろ
それも良くないけど名前で探すよりはまだマシ
304258:2006/12/25(月) 16:28:39
>>301
そうですね。一人で作ってるもんで、
どこまでやるかの問題だとは思いますけど勉強になりました。

ところでControls["hoge"]としたら落ちましたが、
Controls[1]みたいにindexで指定したら落ちませんでした。
名前で指定した場合にデバッグをしてみたら
コントロールが帰ってきてないみたいなんですが、
どう見ても名前は間違えてませんし
indexで指定した場合は動くのですから他の部分の間違いでもないと思います。

コード入力時にちゃんとindexで指定する場合と
string keyで指定する場合の説明みたいなのもでてきてるので、
バージョン的にはサポートされてるみたいですが
何か考えられる原因はありますでしょうか?
305デフォルトの名無しさん:2006/12/25(月) 16:30:58
UNICODEとか
306デフォルトの名無しさん:2006/12/25(月) 16:37:52
>>304
Controls[string]はコントロールのNameプロパティが一致するものを返す。
無いときはnullを返す。
307258:2006/12/25(月) 16:38:23
>>305
ありがとうございます。
さっきまでControls[〜]みたいに指定できるのを知らなかったもので、
form.Controlsで収集したコレクションから.Nameプロパティを
一つずつ比較・検索して返す関数を作りまして、
それを使った場合はきちんと動くんです。
なので文字コードの問題ではないような気がしています。
308258:2006/12/25(月) 16:40:45
>>306
nullが帰ってきてるっぽいのですが、
今書きましたとおり、自前の関数の方ではNameプロパティを使って
検索をかけて帰ってきてますので、
名前の打ち間違いとか
文字コードの問題とか
そんな名前のコントロールが存在しないとか
そういう問題ではないと思うんですけど、どうなのでしょうか。
309デフォルトの名無しさん:2006/12/25(月) 16:43:14
思想の問題だな
310デフォルトの名無しさん:2006/12/25(月) 16:51:49
>>308
CLRのバグじゃなければそんな名前のコントロールは存在してない。
311デフォルトの名無しさん:2006/12/25(月) 16:52:26
>>308
仕事のついでに試してみたけどうちでもControls[string]は動かないよ。
そんな事したことないから知らんかったけど、
派生クラスによっては使えるのもあるって事じゃないの?
312デフォルトの名無しさん:2006/12/25(月) 17:00:00
どうせコントロール初期化するまえにやってんじゃないの?
313デフォルトの名無しさん:2006/12/25(月) 17:03:30
>>311
フォームで試してみたがちゃんと取得できたぞ?

Control+ControlCollectionは親コントロールには依存してないから、他でも問題ないと思うけど。
314デフォルトの名無しさん:2006/12/25(月) 17:04:23
ハゲを擁護するつもりはないけど、直前に触ってるコントロールを対象に
Controls[string]とControls.IndexOfKey()を試してますよ。
名前はデザイナからコピペしてる。
315デフォルトの名無しさん:2006/12/25(月) 17:06:27
>>313
そうなのか。オレオワタw
316デフォルトの名無しさん:2006/12/25(月) 17:09:05
インデックスでとれるなら、そいつのTextと比較してみそ
317デフォルトの名無しさん:2006/12/25(月) 17:10:17
Controls.Findとかもあるべや

自分も、継承ですますので、使ったこと無い。
318デフォルトの名無しさん:2006/12/25(月) 17:11:40
一応報告。
動かなかったのはUserControlでやってたからで、Formでは動いた。
Controlのそれと、Formのそれは違う型なのね。勉強になった。
319デフォルトの名無しさん:2006/12/25(月) 17:16:22
>>318
UserControlのControlsもControl+ControlCollectionじゃないか?
ちゃんと初期化で、this.Controls.Add(control)ってやってるかい?
320デフォルトの名無しさん:2006/12/25(月) 17:18:09
>>319
258もそれっぽいな w
321デフォルトの名無しさん:2006/12/25(月) 17:20:04
流石にAddしてなかったら表示されないから分かるだろw
322デフォルトの名無しさん:2006/12/25(月) 17:22:25
>>319
どっちもデザイナで貼り付けたやつだよ。

ControlsのはSystem.Windows.Forms.Control.ControlCollection、
FormのはSystem.Windows.Forms.Form.ControlCollectionで、AddとRemoveがオーバーライドされてる。
323デフォルトの名無しさん:2006/12/25(月) 17:22:25
いや、ワークでやってたとか

なんか、いまいちつづつまが合わないような
324デフォルトの名無しさん:2006/12/25(月) 17:28:09
>>13
おもっきし、遅レスだけど

該当の件、C#相談室に持ち込んでみた。
回答になるかどうか分からないけど、見てみるといいとおもう。
325デフォルトの名無しさん:2006/12/25(月) 17:28:12
>>322
おお、ほんとだ。

しかし、Reflectorで見た感じじゃ特殊なコントロールを除いて親のAdd/Removeを呼んでるだけで、
それだけでItems[String]が使えなくなるってのはおかしい気もするんだがなー
326デフォルトの名無しさん:2006/12/25(月) 17:31:23
インデックスだと取れた、というのは?
全然別のもん、、つーかUserControlあたりもってきたのか
327デフォルトの名無しさん:2006/12/25(月) 17:37:33
UserControlにデザイナでListView貼り付けてみたけどちゃんと取得できたよ。

MessageBox.Show(this.userControl1.Controls["listView1"].ToString());
328デフォルトの名無しさん:2006/12/25(月) 17:42:02
Nameプロパティに値が設定されてないんじゃないの
329258:2006/12/25(月) 17:46:02
目的のコントロールはPictureBoxなんですが、
なぜかこれだけうまくいかないような感じです。
他ならツールバーなんかでも適当に名前をつけて取得できているようです。

どれもフォームのデザイナーで配置し、名前をつけてます。
330デフォルトの名無しさん:2006/12/25(月) 17:49:02
>>329
とりあえず、Controls[pictureBox.Name] とでもしてみろよ。
331デフォルトの名無しさん:2006/12/25(月) 17:49:32
>>318だけど
自分のUserControlは実行時にAddしたりRemoveして切り替えてるやつでついでにやってたんで、
なんか状況が違うのかもしれん。とりあえず自分は困ってないし時間もないんで今回はもうパスw
332デフォルトの名無しさん:2006/12/25(月) 17:49:40
もうソース晒せ
333デフォルトの名無しさん:2006/12/25(月) 17:50:49
コンテナの中に配置してるってオチじゃね?
334デフォルトの名無しさん:2006/12/25(月) 17:51:52
>>333
それだ!!
335デフォルトの名無しさん:2006/12/25(月) 17:53:46
>>318だけど
超それだったwお騒がせしますた。
336258:2006/12/25(月) 17:55:14
>>333
Panelの上に置いてますけど、もしかしてそういうことですか?
だとすると、そういう場合はどうやって書いたらいいでしょうか?
337デフォルトの名無しさん:2006/12/25(月) 17:58:25
form.Controls["panel1"].Controls["pictureBox1"]k
338デフォルトの名無しさん:2006/12/25(月) 17:58:34
>>336
パネルのControlsから探すんじゃね?
どんどん余計なものに依存するコードになるね。
339258:2006/12/25(月) 18:04:15
>>337>>338
わかりました。ありがとうございました。
ちなみにさっきインデックスだと取れたと言ったのは
適当に5とか入れたらツールバーとかにDirectXの画面が表示されたんで、
まぁとりあえずはControls[index]の形でなら取れるんだな、と思ったからです。
お騒がせしました。
340デフォルトの名無しさん:2006/12/25(月) 18:08:10
結論は、GetDlgItem()最強
341デフォルトの名無しさん:2006/12/25(月) 18:09:21
つーか、GetDlgItemも親のhWndいるしな・・・
342デフォルトの名無しさん:2006/12/25(月) 18:12:30
>>258-342
ああ、なんと不毛な議論なんだ
343318:2006/12/25(月) 18:14:32
スマソ。半分は漏れのせいm(_ _)m
344258:2006/12/25(月) 18:19:08
>>342
すっきり納得できるあなたの分かりやすい回答が欲しかったです。
345342:2006/12/25(月) 18:20:26
>>344
>>333を書いたのは俺だが、これですっきり納得できなかったらプログラマ辞めてください
346デフォルトの名無しさん:2006/12/25(月) 18:24:57
>>344
ControlsからControl引っ張ってくるのはあくまで邪道
つまりあなたは邪道プログラマ
347258:2006/12/25(月) 18:27:18
結論は、GetDlgItem()最強ということです。
348デフォルトの名無しさん:2006/12/25(月) 18:28:10
マジレスするが、GetDlgItemでもコンテナの中に入ってたら取得できんだろ…
349デフォルトの名無しさん:2006/12/25(月) 18:32:33
[DllImport("user32.dll", EntryPoint="GetDlgItem", SetLastError=true)]
public static extern IntPtr GetDlgItem(IntPtr hDlg, Int32 nIDDlgItem);

ご自由におとりください。
350デフォルトの名無しさん:2006/12/25(月) 18:36:07
なんでMSはControls[string]なんて付けたんだろ
258みたいなのを救済するため?
リフレクションのため?
351デフォルトの名無しさん:2006/12/25(月) 18:37:08
動的な処理のためでは
352デフォルトの名無しさん:2006/12/25(月) 18:41:43
人に見せるなら到底できないが、使い捨てプログラムなら textBoxN とかできると便利かもしれん。
353デフォルトの名無しさん:2006/12/25(月) 18:59:06
>>350
お手軽プログラミングにはシンボリックリファレンスみたいなのは必須でしょ
VB移行組とかから要望があったんじゃないかな。
354デフォルトの名無しさん:2006/12/25(月) 19:02:13
お前らいい加減にネタに気づけよ。

>>258
おもしろかったか?
355258:2006/12/25(月) 19:05:35
いずれにせよGetDlgItem最強という結論に変わりはありません
356354:2006/12/25(月) 19:08:05
>>355
GetDlgItemがどのように実装されているかなんて考えたっこと無いのか?
化石か、ゆとり世代どっちだ?
357デフォルトの名無しさん:2006/12/25(月) 19:09:10
ネタにマジレスカッコイイ
358258:2006/12/25(月) 19:11:11
別にプログラムなんかに一生懸命になりたくないので
簡単にできる方法があればそれでいいです。
みんなが御宅さんのようにヲタクだとは思わないで下さい。
359354:2006/12/25(月) 19:12:56
うひょー俺かっこいい
かっこいいいいいいいいい
360デフォルトの名無しさん:2006/12/25(月) 19:13:51
秋田
361デフォルトの名無しさん:2006/12/25(月) 19:18:08
そういえばMFC最強論者がいなくなったな
彼も秋田のか
362デフォルトの名無しさん:2006/12/25(月) 19:18:59
プログラムなんかに一生懸命になりたくないので、
C++でDirectX使うのだ。
363デフォルトの名無しさん:2006/12/25(月) 19:19:41
((((;゜Д゜)))
364デフォルトの名無しさん:2006/12/25(月) 19:20:11
なにこの流れ
365デフォルトの名無しさん:2006/12/25(月) 19:21:00
歳末大討論会です
366258:2006/12/25(月) 19:21:21
C#の方が簡単で便利だろうと思い、
手を出してみたらこのような有様でした。
でも、外からやたらに触れないようにした方が正しいとは思います。
367258:2006/12/25(月) 19:22:38
>自分も、継承ですますので、使ったこと無い。

ところで、継承ですますとはどういうことでしょうか。
例えばどうやって書きますか?
今後の参考のために教えてください。
368デフォルトの名無しさん:2006/12/25(月) 19:26:50
C#でも同じような機能はあったけど
見付けられなくて、教えてもらっても使いこなせませんでした。
所詮はC#ですね。
おたくじゃないので、C++は簡単ですがC#なんておたく言語は
使えません。
369デフォルトの名無しさん:2006/12/25(月) 19:27:19
>>368
名前欄埋め忘れてるぞw
370デフォルトの名無しさん:2006/12/25(月) 19:28:58
しまった。
371デフォルトの名無しさん:2006/12/25(月) 19:31:15
既存の知識を使うのはできるけど
新しい事を覚えるのは難しい年頃らしい
372デフォルトの名無しさん:2006/12/25(月) 19:33:03
DBの接続文字列はどうやって決めるんですか?
現状はIDEで作ったものをコピペしています。
373デフォルトの名無しさん:2006/12/25(月) 19:37:28
374デフォルトの名無しさん:2006/12/25(月) 19:46:20
375258:2006/12/25(月) 19:51:07
>>371
目的のレベルと学習コストを秤にかけるのは当然だと思います。
使い捨てのプログラムを組むだけなので簡単に済めばそれでいいのです。

そんなことは置いておいて、ご存知でしたら質問の件を教えてください。
376デフォルトの名無しさん:2006/12/25(月) 19:52:25
だからもう秋田って
377デフォルトの名無しさん:2006/12/25(月) 19:54:05
あの内容でハンドルって言ってる段階で…
378258:2006/12/25(月) 19:58:06
>>377
昨日始めたばかりでまだ良く分かってないことがおおいですが
間違いがあれば改めたいので具体的に指摘していただけませんか?

ちなみにハンドルはハンドルとしてメンバに持ってるんですね。
なのでコントロールのインスタンスって言ったら良かったんですかね?
どういったらよかったですか?
379デフォルトの名無しさん:2006/12/25(月) 19:58:55
>>377
なんか低級な方法でDirectXさわってるんじゃね?
380258:2006/12/25(月) 20:00:56
>>379
低級か高級か分かりませんけど、
ManagedDirectXで最初にデバイス作るときに
描画したいコントロールのハンドルを渡す必要があっただけです。
何かまずいでしょうか?
381デフォルトの名無しさん:2006/12/25(月) 20:02:54
いいかげん、スルーしろ
382デフォルトの名無しさん:2006/12/25(月) 20:03:09
おのおのがたスルーでござる。
383258:2006/12/25(月) 20:03:20
一言ずつぼそぼそ言う陰湿な人は迷惑ですね。
何の参考にもなりませんし関係ない人にとっても邪魔なだけだと思います。
言いたいことがあったらはっきり言えばいいのに、自信がないんですか?
教える気がなくていちいち嫌味ったらしく書くなら
最初から書かないでくれた方がいいです。
384デフォルトの名無しさん:2006/12/25(月) 20:17:07
なんだよネタだったのかよ真面目に試したりして損した・・・

       \|\_\  ∠ /|/
          |○|  |○|
  _| ̄|○   _     _   ○| ̄|_
        / /|)  (|\ \
        | ̄|        | ̄|
      / /        \ \

385デフォルトの名無しさん:2006/12/25(月) 20:20:08
古いのでためにならないかもしれませんが、
http://www.microsoft.com/japan/msdn/directx/japan/dx9/default.aspx
386デフォルトの名無しさん:2006/12/25(月) 21:20:06
GCされちゃえばいいのに…
387デフォルトの名無しさん:2006/12/25(月) 21:56:19
GCですら触りたくないだろうに……
かわいそうなGC
ゴミばかり相手にして
388デフォルトの名無しさん:2006/12/25(月) 22:06:35
ここは質問スレだよな?
役に立たないゴミはお前だよ。
質問に答えろよ。
389デフォルトの名無しさん:2006/12/25(月) 22:10:24
GCされちゃえばいいのに…
390デフォルトの名無しさん:2006/12/25(月) 22:20:14
ここは質問スレだよな?
役に立たないゴミはお前だよ。
質問に答えろよ。
391デフォルトの名無しさん:2006/12/25(月) 22:21:49
googleのトップページに何故カンガルーが描かれているのでしょうか。
とすれ違い。
392デフォルトの名無しさん:2006/12/25(月) 22:29:26
>>391
クリトリスだからだよ!
393デフォルトの名無しさん:2006/12/25(月) 22:30:50
ここは質問スレではありません。
初心者の質問に対し自称上級者が偉そうに小言交じりの中途半端なレスを返し
どういうことか突っ込まれると詳しく知らないがゆえに口ごもって
逆切れしながら逃げまわるスレです。
394デフォルトの名無しさん:2006/12/25(月) 22:30:59
あらあら粘着されちゃってるよw
お前等これ読んでみろ・・・

   ス   ル   ー
395デフォルトの名無しさん:2006/12/25(月) 22:32:58
普通に質問してるだけじゃん。
何か間違った事を言ったか?
396デフォルトの名無しさん:2006/12/25(月) 22:44:42
雑談はスルー
仕切りなおし。

質問受け付けます
397デフォルトの名無しさん:2006/12/25(月) 22:44:53
秋田
398デフォルトの名無しさん:2006/12/25(月) 22:54:07
>>379
低級か高級か分かりませんけど、
ManagedDirectXで最初にデバイス作るときに
描画したいコントロールのハンドルを渡す必要があっただけです。
何かまずいでしょうか?
399デフォルトの名無しさん:2006/12/25(月) 22:54:23
なんか面白いな C++から入ってC#をC++風に固執して使いたい香具師とか
C++もC#もそれぞれ利点・欠点があるから、どんなアプリを組むかで
ターゲットを変えりゃいいのに、無理矢理へんなプログラム組むものではないと思う
400デフォルトの名無しさん:2006/12/25(月) 22:58:41
別に無理やりでもなんでもないと思うが。
401デフォルトの名無しさん:2006/12/25(月) 22:59:18
>>377
昨日始めたばかりでまだ良く分かってないことがおおいですが
間違いがあれば改めたいので具体的に指摘していただけませんか?

ちなみにハンドルはハンドルとしてメンバに持ってるんですね。
なのでコントロールのインスタンスって言ったら良かったんですかね?
どういったらよかったですか?
402デフォルトの名無しさん:2006/12/25(月) 23:00:00
>>317
>自分も、継承ですますので、使ったこと無い。

ところで、継承ですますとはどういうことでしょうか。
例えばどうやって書きますか?
今後の参考のために教えてください。
403デフォルトの名無しさん:2006/12/25(月) 23:01:24
以上、積み残しの初心者の普通の質問。
雑談はスルー。回答お願いします。
404デフォルトの名無しさん:2006/12/25(月) 23:05:04
S2.NET使った人居る?
感想をおながいします
405デフォルトの名無しさん:2006/12/25(月) 23:07:18
ここは質問スレではありません。
初心者の質問に対し自称上級者が偉そうに小言交じりの中途半端なレスを返し
どういうことか突っ込まれると詳しく知らないがゆえに口ごもって
逆切れしながら逃げまわるスレです。
406385:2006/12/25(月) 23:14:26
役に立ちませんでしたか。

directX C#でググって探したら結構情報が集まりますよ。
407258:2006/12/25(月) 23:18:06
---------------------------------------------------
なりすまし終了
408デフォルトの名無しさん:2006/12/26(火) 00:09:19
??
409デフォルトの名無しさん:2006/12/26(火) 09:22:32
プログラムをデーモン化したいのですが。
ウィンドウを持たずバックグラウンドで動き続けるプログラムを作るには、
どうしたらいいですか?
410デフォルトの名無しさん:2006/12/26(火) 09:23:35
ウィンドウ作らなければいい。
411デフォルトの名無しさん:2006/12/26(火) 09:31:34
Consoleアプリケーションにすればいいんじゃない?
412デフォルトの名無しさん:2006/12/26(火) 10:00:56
サービス作る
413デフォルトの名無しさん:2006/12/26(火) 14:11:26
byte [] aaa = new byte[2];
ushort bbb;

をCで言うunionみたいな使い方したいんですけど
どやってやるのでしょう?
414デフォルトの名無しさん:2006/12/26(火) 14:12:11
>>410
詳しくお願いします。
>>411
コンソールでもウィンドウは出ますよね?
415デフォルトの名無しさん:2006/12/26(火) 14:15:29
>>413
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Explicit)]
public unsafe struct UNION
{
 [FieldOffset(0)] public fixed byte aaa[2];
 [FieldOffset(0)] public ushort bbb;
}
416デフォルトの名無しさん:2006/12/26(火) 14:18:05
C#的にはobject型を使っとけ
417デフォルトの名無しさん:2006/12/26(火) 14:30:36
>>415
ありがとうございます
418デフォルトの名無しさん:2006/12/26(火) 14:30:37
>>416
それは Variant の代用にはなるけど、Union の代用にはならないよ。
419デフォルトの名無しさん:2006/12/26(火) 14:32:39
メニューから別のフォームを呼び出すようにしたいんだが。
420デフォルトの名無しさん:2006/12/26(火) 14:35:37

           i::::::::/'" ̄ ̄ヾi
           |:::::::| ,,,,,_  ,,,,,,|
           |r-==( 。);( 。)
           ( ヽ  :::__)..:: }
        ,____/ヽ  ー== ;  ほほう それでそれで?
     r'"ヽ   t、   \___ !
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /
    |      "'ー‐‐---''
421デフォルトの名無しさん:2006/12/26(火) 14:42:54
抽象的すぎたかな。。。
たとえば[ツール]→[フォルダオプション]で
新しいウィンドウが出てくるけど、そんな感じで。
422デフォルトの名無しさん:2006/12/26(火) 14:44:43
private void toolStripMenuItem1_Click(object sender, EventArgs e){
  Form2 form2 = new Form2();
  form2.ShowDialog();
}
423デフォルトの名無しさん:2006/12/26(火) 14:48:12
>>414
コンソールウィンドウはCSRSSが勝手に作ってるだけ。
424デフォルトの名無しさん:2006/12/26(火) 14:52:42
デザイナーでデザインした後、
プログラム側で

textbox1.Font = new Font("MSゴシック",15);

なんて、する場合

textbox1.Font.Dispose(); //<---  これ、必須??
textbox1.Font = new Font("MSゴシック",15);

リソースの開放漏れ、起こしそうな気もするし、
気にしすぎのような気もするし。。。

425デフォルトの名無しさん:2006/12/26(火) 14:57:21
デザイナでデフォルトのままにしといたら親のFontと同じオブジェクト指してるぞ。
426デフォルトの名無しさん:2006/12/26(火) 15:00:11
>>422
Thanx!
427デフォルトの名無しさん:2006/12/26(火) 15:08:01
>>424
バグの素になるから、自分で作ったオブジェクト以外はDisposeしちゃいかん
同じFontオブジェクトを参照している箇所があればそこでアボン
428デフォルトの名無しさん:2006/12/26(火) 15:18:43
>>425
>>427

さんくす

なんか、別のフォームのインスタンス作るたんびに、フォントがらみで
例外出てたんで、これかなぁ〜、だったんですけど
ビンゴっぽいですなぁ
さっそく、Dispose()消しますです....

429デフォルトの名無しさん:2006/12/26(火) 15:23:37
>>415
すみません
UNION ccc;

とした場合
ccc.aaa[0] = 0x12;

fixedなんやらunsafeがなんやらってコンパイラーに怒られてしまうんですけど・・・・
430デフォルトの名無しさん:2006/12/26(火) 15:28:48
>>429
プロジェクトのプロパティ→ビルド→アンセーフコードの許可
意味は別途しらべておくれ。
431デフォルトの名無しさん:2006/12/26(火) 15:30:41
>>429
ちゃんとunsafeで囲ってるかい?

unsafe
{
    UNION ccc;
    ccc.aaa[0] = 0x12;
}
432デフォルトの名無しさん:2006/12/26(火) 15:31:01
>>430
それはやりました
433デフォルトの名無しさん:2006/12/26(火) 15:31:56
>>431
お手数かけます
ありがとうございます
434デフォルトの名無しさん:2006/12/26(火) 15:45:15
fixed ステートメントを使用してくださいってコンパイラーにまだ怒られる・・・

C#でunionみたいな使い方は初心者はやっちゃいけないんですね・・・
435デフォルトの名無しさん:2006/12/26(火) 15:54:55
そもそも何のためにunionを使うんだ?
436デフォルトの名無しさん:2006/12/26(火) 15:54:58
初心者がやっちゃならんことはないが、自分で何とかできないなら使うべきじゃないだろうな
437デフォルトの名無しさん:2006/12/26(火) 16:00:35
通信パケットとかデバイスのメモリみたいな、データのレイアウトが
あらかじめ決まってる物を表現する以外は、だいたい間違った使い方だよ<union
438デフォルトの名無しさん:2006/12/26(火) 16:20:07
あるところからデータをもらうのにフォーマットがbyte単位でしかもらえないので
unionを使いたかったのですが、C#だとやたら怒られてかなり異例な処理みたいなので
変換したほうがいいんでしょうね


byte[] aaa = new byte[2];
ushort bbb;

private void byte_word()
{
bbb = (ushort )aaa[0];
bbb <<= 8;
bbb |= (ushort )aaa[1];
}
private void wrod_byte()
{
aaa[0] = (byte)(bbb >> 8);
aaa[1] = (byte)bbb;
}
439デフォルトの名無しさん:2006/12/26(火) 16:24:54
怒られるとこ全部 unsafe {} でくくってみ
固定長の配列とか、ポインタとかは unsafe ブロック内でしか使えないよ
440デフォルトの名無しさん:2006/12/26(火) 16:26:48
>>438
それをstructのプロパティにしてしまえば?
441デフォルトの名無しさん:2006/12/26(火) 16:28:35
>>438
アンマネージな世界から貰うんならMarshalを使う手もある。
442デフォルトの名無しさん:2006/12/26(火) 16:29:17
>>439
見捨てず面倒みてくれてありがとうございます。

ccc.aaa[0] = 0x12; をやったとき
unsafe{....}で囲んでいますので

unsafeでなくてfixedで怒られているみたいだんですよ
443デフォルトの名無しさん:2006/12/26(火) 16:34:26
何をやったらなんて怒られたのかわからんと何もわからん
444デフォルトの名無しさん:2006/12/26(火) 16:36:03
cccの宣言をunsafeモードにしてないとかいうオチか?
445デフォルトの名無しさん:2006/12/26(火) 16:48:50
using System.Runtime.InteropServices;
全部書くとこんな感じです

namespace DeviceApplication1
{
public partial class Form1 : Form
{
[StructLayout(LayoutKind.Explicit)]
public unsafe struct UNION {
[FieldOffset(0)] public fixed byte aaa[2];
[FieldOffset(0)] public ushort bbb;
    };
unsafe UNION ccc;

private void Form1_Load(object sender, EventArgs e)
{
unsafe
{
ccc.aaa[0] = 0x12;
}
    }
446デフォルトの名無しさん:2006/12/26(火) 16:55:54
>>445
unsafe
{
    fixed (byte* p = ccc.aaa)
    {
        p[0] = 0x12;
    }
}

インスタンス変数はヒープに割り当てられるからfixedする必要がある。
447デフォルトの名無しさん:2006/12/26(火) 17:06:37
>>446
ありがとうございます ようやく全解決です。
ccc.aaa[0] = 0x12;
ccc.aaa[1] = 0x34;
を応用すると

unsafe
{
   fixed (byte* p = ccc.aaa)
{
     *(p+0) = 0x12;
     *(p+1) = 0x34;
}
}
となりますね

付き合ってくれた皆さん本当にありがとうございます。
勉強になりました。
448デフォルトの名無しさん:2006/12/26(火) 19:06:58
unionはどこいった?
449デフォルトの名無しさん:2006/12/26(火) 19:09:47
何が言いたい?
450デフォルトの名無しさん:2006/12/26(火) 19:16:06
BitConverter.ToUInt16じゃ駄目なんかね
451デフォルトの名無しさん:2006/12/26(火) 19:22:04
そういやそんなのあったね。すっかり失念してた。
悪いことしたもんだ
452とら男:2006/12/26(火) 23:32:20
すみませんが、C#上級者の技を教えて下さい。
上司をギャフンと言わせてやりたいです。

(多分、このスレだと相当な上級者がいらっしゃいそうなので)

453デフォルトの名無しさん:2006/12/26(火) 23:42:09
System.Reflection.Emit名前空間を使いこなせたら何でもできる
454デフォルトの名無しさん:2006/12/26(火) 23:42:55
「ギャフン」なんて言葉を使えるあなたは十分上級者です
455デフォルトの名無しさん:2006/12/26(火) 23:49:52
unionです。
BitConverter.ToUInt16
とても便利なものがあるんですね。

今回教えていただいたunionのやり方はunsafeなのでC#としては、
必要で無い限り避けた方が良い気がしますが
unsafeとか静的領域の使い方がわかり、とても勉強になりました。
C#ってあまり使っちゃいけないと思いますが、ポインター使えるんですね、驚きでした
456 452:2006/12/27(水) 02:16:16
>>453
ちょっと勉強してみます。
457デフォルトの名無しさん:2006/12/27(水) 17:16:14
起動時にFormをHideで隠したいのですがLoadイベントでは無理でした。
起動時以外ではHide()でいけたのですが色々試してみても無理でした。

よろしければ解決法ご教授下さい。
458デフォルトの名無しさん:2006/12/27(水) 18:15:30
デザイナでFormのWindowStateをMinimizedにしつつ、お好みでShowInTaskBarをfalseにする。
459デフォルトの名無しさん:2006/12/27(水) 18:38:27
Form のインスタンスを作成したら、Visible = false にして Application.Run


だったかな?
460デフォルトの名無しさん:2006/12/27(水) 18:41:17
失礼。Application.Run は引数なしで実行させてくださいな。


……あと、その場合はコンストラクタの最後で
  IntPtr ptr = this.Handle;
なんてやっておくと幸せになるかもしれない。
461デフォルトの名無しさん:2006/12/27(水) 22:16:39
あるいは
ShownイベントでVisible = false;
462デフォルトの名無しさん:2006/12/28(木) 02:43:00
プロジェクトで新たに作成した hoge.resx というファイル(埋め込み)から
文字列 message01 を取得する方法を教えて下さい。

検索で引っかかった物は hoge.resource ファイルのものばっかりで、
hoge.resource ファイルが見つかりませんというエラーが出てしまい困っています。

ちなみに、SharpDevelopを使っています。
463462:2006/12/28(木) 04:59:27
自己解決しますた。dクス
464デフォルトの名無しさん:2006/12/28(木) 13:04:38
タコな質問な事は判っているのですが、ずばりな回答を見付けられなかったので
教えてください。
フォームに貼り付けたボタンの背景を透明化して、フォームが透けて見える様に
したいと思っています。
どうすれば良いでしょうか?
465デフォルトの名無しさん:2006/12/28(木) 13:40:53
>>464
13の質問した人だろ。

C#相談室で代わりに質問しといたので、
そっちを見るがよろし。

2つの解決法があるようだ。
466デフォルトの名無しさん:2006/12/28(木) 13:56:56
>>464
失礼
302-336までを参考にしてね。
http://pc8.2ch.net/test/read.cgi/tech/1165656839/

Form2枚重ねと、レイヤードウィンドウを使用する2つの案が出てた。
最終的に俺も試してないから、ここから先は自助努力で。
467デフォルトの名無しさん:2006/12/28(木) 13:59:13
Graphicsで自前描画でもいけるはず
468デフォルトの名無しさん:2006/12/28(木) 14:06:15
>>467
どうやって?

デスクトップのキャプチャ(Win32使用)はCode Projectで見つけた。
ただ、Formも重なって取得するため、その方法は出来ないモンだとおもってた。
469464:2006/12/28(木) 18:40:31
レスさんきゅー。でも俺は13じゃないよ。
向こうも眺めて来たけどコピペで出来そうな解じゃなさそうね。
話理解するのはちょっと時間が掛かりそうだけど読んでみる。

以下ちらしの裏。
テーマ切って開発してたらbuttonは透けてたんだけどTrackBarが透けない。
透けてるTrackBar手に入れたらテーマ上げなくちゃならなくなって、Button
が透けなくなった…orz。
で、今ココ。
470デフォルトの名無しさん:2006/12/28(木) 21:30:19
Form1に貼ってあるtextBoxのサイズを新しく作ったクラスから弄るにはどうしたらいいんですか?
サイズの変更をしたいんですが

型または名前空間名 ***** が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。
とでます。
ディレクティブっていうのはusing ***とかいうのかな?とか思ってますが全然わかっていません。
よろしくお願いします
471デフォルトの名無しさん:2006/12/28(木) 21:47:47
そのクラスにも、
using System.Windows.Forms;
を追加汁ってことかな
472デフォルトの名無しさん:2006/12/28(木) 23:33:51
そのtextBoxのインスタンスへの参照を新しいクラスに渡しといて,
それを通してサイズを変更する
473デフォルトの名無しさん:2006/12/29(金) 01:34:20
ごみ箱の中のファイル/フォルダ名と削除した日時を取得し、
必要に応じて削除する方法探しています。
何かいい方法はありませんか?
474デフォルトの名無しさん:2006/12/29(金) 01:54:43
ない
475デフォルトの名無しさん:2006/12/29(金) 02:07:07
できんでもない。
各ドライブのルートにRECYCLERってフォルダがあるのがゴミ箱の実体。
RECYCLERのサブフォルダの中にINFO2ってファイルがあるから、それを見ればいつ捨てられたどんなファイルか分かる。
476デフォルトの名無しさん:2006/12/29(金) 02:13:00
Shell APIで出来るならそれをP/Invokeなどで呼ぶべきだろうな。
RECYCLERを直接いじるのは最後の手段。
477デフォルトの名無しさん:2006/12/29(金) 03:16:55
ごみ箱を弄るならシェル名前空間の知識が要るね
ShellAPI使うとめんどいのでShell32.dllをCOM参照して、

const Int32 RECYCLE_BIN = 0xA;
Folder rb = new ShellClass().NameSpace(RECYCLE_BIN);
foreach (FolderItem fi in rb.Items())
{
    Console.WriteLine(fi.Name);
    for (Int32 i = 0; i <= 10; i++)
    {
        Console.WriteLine("\t" + rb.GetDetailsOf(fi, i));
    }
    fi.InvokeVerb("delete");
}
478デフォルトの名無しさん:2006/12/29(金) 07:52:42
youtubeの動画をflvやmpeg、wav、mp3ファイルなどに落としたいのですが
どうすればいいでしょう?

既にそういうソフトなどがあるのは知ってるんですけど、
自作したいので、やり方が乗っているサイトなどありましたら
教えていただきたいです。お願いします。
479デフォルトの名無しさん:2006/12/29(金) 07:59:15
>>478
その前になぜこのスレでその質問をするのか理由を述べよ。
480478:2006/12/29(金) 08:13:56
>>479
C#でyoutubeの動画を落とすソフトを作りたいと思ったのですが、
検索してもソフトは出てくるけど変換するやり方が書いてないので、
聞いてみました。

えっ・・?スレ違いじゃないよね?
481デフォルトの名無しさん:2006/12/29(金) 08:44:33
スレ違い

つ 正規表現
482デフォルトの名無しさん:2006/12/29(金) 11:03:27
C#で作りたいってだけで作り方を教えろってのはスレ違い
483デフォルトの名無しさん:2006/12/29(金) 12:55:33
難しい質問が来ると決まって「スレ違い」




おきまりの文句だよねw
484デフォルトの名無しさん:2006/12/29(金) 12:56:06
難しい質問が来ると決まって質問者を煽る




おきまりだよねw

485デフォルトの名無しさん:2006/12/29(金) 13:55:16
次の質問どうぞ
486デフォルトの名無しさん:2006/12/29(金) 13:59:18
特に無いな
487デフォルトの名無しさん:2006/12/29(金) 14:02:53
言葉に詰まると次の人どうぞとかいって逃げる


お決まりだよねw
488デフォルトの名無しさん:2006/12/29(金) 14:04:18
>>484
ここは簡単な質問すら格言で終わらすからわけわからんし、
質問者もシロートレベルで質問するからわけわからん
489デフォルトの名無しさん:2006/12/29(金) 14:06:43
そういってる香具師らも大したレベルじゃ(ry
490デフォルトの名無しさん:2006/12/29(金) 14:07:30
次の質問が来るまで駄レスどうぞ
491デフォルトの名無しさん:2006/12/29(金) 14:08:59
>>488
ヒント:スレタイ
492デフォルトの名無しさん:2006/12/29(金) 14:17:50
>>480の質問は
「やり方が乗っているサイトがあったら教えろ」

答えのひとつとしては
 「ないと思うので教えられない。そもそもないことを証明するのは難しい」

493デフォルトの名無しさん:2006/12/29(金) 14:28:08
ようつべの仕組みなんて知らないけど
視聴URLから動画のURLに変換して、それをHTTPでダウンロードすればいいんじゃないのか
494デフォルトの名無しさん:2006/12/29(金) 14:42:34
質問スレなのに俺みたいに質問も回答もしないやつ多いよね。
495473:2006/12/29(金) 15:25:26
>>477
dクス!! 大変参考になりました
496デフォルトの名無しさん:2006/12/29(金) 17:06:42
誰かが公開しているようなフリーソフトに勝手にプラグインのように追加機能を足したりってできますか?
たとえば2chの専ブラとかで勝手に右クリック項目増やせたりとか。
作者さんとは連絡は取れるんですが開発自体終了して改良する予定が無いそうなんでできればやってみようかと思ってます。

C#でやろうと思っていますができるかできないか、あとヒントがあればお願いします。
497デフォルトの名無しさん:2006/12/29(金) 17:17:41
力技でどうにかできんことはないが、お前さんが考えてるよりはずっと難しいよ。

CLRの恩恵はほとんど受けられないから、C#使う意味はないしね。
498デフォルトの名無しさん:2006/12/29(金) 17:30:34
第一,元のソフトがプラグインで拡張できるように作られてないとどうしようもないよ
499デフォルトの名無しさん:2006/12/29(金) 17:32:19
コンテキストメニューを拡張するくらいなら強引に割り込めばなんとかなる
500デフォルトの名無しさん:2006/12/29(金) 17:42:17
初心者に変なことを教えるなよ
501デフォルトの名無しさん:2006/12/29(金) 17:54:55
C#でやることじゃないだろ
502デフォルトの名無しさん:2006/12/29(金) 18:27:17
文字列のサイズ(バイト数)の求め方は?
例えば、
string str = "日本語の表示"; // str に sizeof が使えない
str.Length ではバイト数ではなく、文字数6が入ってしまう
503デフォルトの名無しさん:2006/12/29(金) 18:31:56
>>502
str.Length * sizeof(Char)
504デフォルトの名無しさん:2006/12/29(金) 18:34:43
>>502
UTF-16文字列は1コードポイントあたり一律2バイト
何も考えずにLength(=コードポイント数)を二倍しとけばいい
505デフォルトの名無しさん:2006/12/29(金) 18:38:30
はっはっは、嘘つけ。
まSJIS範囲ならそうだが。
半角含まれてないならまあそれもありか…
506デフォルトの名無しさん:2006/12/29(金) 18:41:37
UTF-16では一文字は1or2コードポイントで、1コードポイントは16bits
Lengthは文字数ではなくコードポイントの数を返すから、単純に2倍すればいい

なんでSJISとか言い出すのかさっぱり分からんね。
507デフォルトの名無しさん:2006/12/29(金) 18:41:53
>>502
Encodingクラス
GetByteCount
508デフォルトの名無しさん:2006/12/29(金) 18:45:53
さっそく、みなさんどうもありがとう。
今すぐ、試してみます。
509デフォルトの名無しさん:2006/12/29(金) 18:48:22
>>502
Convertクラス
でバイト列変換も有りかな
510デフォルトの名無しさん:2006/12/29(金) 19:54:32
502,508です
いろいろやって見ましたが、Encoding.GetByteCount の使用法が分かりません。
using System.Text; で、Encoding.GetByteCount(str) とすると、
静的でないフィールド、メソッド、またはプロパティ 'System.Text.Encoding.GetByteCount(string)' で、オブジェクト参照が必要です。
とのエラーが出ます。

MSDN によると
Encoding.GetByteCount メソッド (String)
派生クラスでオーバーライドされた場合、指定した String に含まれる文字をエンコードすることによって生成されるバイト数を計算します。
とあって、なにやら専用のメソッドを用意しなければならないようです。

なので、単純に文字数の2倍で良しとします。
511デフォルトの名無しさん:2006/12/29(金) 20:01:47
クラスとかインスタンスとか理解しな。
Encodingはクラス。
GetByteCountはstaicがついてないんだからインスタンスメソッド。
Encodingはいろんなエンコードを表す基底クラス。
たとえばShift_JISエンコードでいろいろしたいなら、
具象クラスのインスタンスをまず取得する必要がある。
EncodingでGetByteCountって、何のエンコーディングでのバイト数かわからんだろ?
512デフォルトの名無しさん:2006/12/29(金) 20:22:37
GetByteCount でググればそれこそ
ぼろぼろ使用方法が出てくるのに
こういうやからはなぜそういうことをしない。
513デフォルトの名無しさん:2006/12/29(金) 20:33:57
>>502のような訳の分からん質問をしている時点でMSDNの読み込みが足らんのは明白だろ。
514デフォルトの名無しさん:2006/12/29(金) 20:40:03
俺の勘違いだったら悪いんだが、

C#のデフォルト文字コードってUTF-8じゃないの?
515デフォルトの名無しさん:2006/12/29(金) 20:43:20
516デフォルトの名無しさん:2006/12/29(金) 20:45:40
C#のデフォルト文字コード
ってどういう意味なの?
517デフォルトの名無しさん:2006/12/29(金) 20:47:03
エスパーすると、CLRがUnicode文字の表現に使っている内部エンコーディング、のことじゃね?
518デフォルトの名無しさん:2006/12/29(金) 20:55:29
502です
あるサイトから、Encodingの使い方は分かりました。
Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
string str = "こんにちわ";
int num = sjisEnc.GetByteCount(str);
しかし、これは、Shift_JIS に変換した後のバイト数です。
知りたかったのは、Unicode のままでのバイト数で、現在メモリ上に占めるサイズです。
519デフォルトの名無しさん:2006/12/29(金) 21:01:11
釣りですか?
520デフォルトの名無しさん:2006/12/29(金) 21:02:11
>>515
Thx

ファイル関係はUTF-8 ?
http://msdn2.microsoft.com/ja-jp/library/system.io.streamwriter(VS.80).aspx

で、Encoding.DefaultはShift-JIS
ややこしいなぁ
521デフォルトの名無しさん:2006/12/29(金) 21:08:54
>>520
Encoding.Defaultはシステム規定の符号化方式。

お前さんがWindows日本語版を使っているから、
たまたまCP932(Shift_JISのマイクロソフト拡張)になっているだけ。
522デフォルトの名無しさん:2006/12/29(金) 21:27:34
>>518
残念ながら参照型がどれだけのメモリを占有しているかを測る方法は存在しない。

というか、それを知って何がしたいん?
523デフォルトの名無しさん:2006/12/29(金) 22:03:04
"Shift_JIS"って文字列で指定してるからそこを"Unicode"に
すればUnicodeでのバイト数がでるってすぐに想像つかないのか?
>>518の思考能力がすげー低いってことがわかった。
524デフォルトの名無しさん:2006/12/29(金) 22:05:13
まあもうLength * 2でいいけど、
結局何がしたいんかさっぱり分からん。
525デフォルトの名無しさん:2006/12/29(金) 22:15:05
アプリ稼働中のメモリ使用量を求めたかったのでは?
526デフォルトの名無しさん:2006/12/29(金) 23:05:17
メモリ使用量って?
527デフォルトの名無しさん:2006/12/29(金) 23:09:21
そのアプリが最大どれだけのメモリを必要とするか
それ知らんと、メモリをどれだけ積めばいいのか見積もれんのでは?
528デフォルトの名無しさん:2006/12/29(金) 23:10:05
Unicodeにこだわってるからそれは無いのかな?w
529デフォルトの名無しさん:2006/12/29(金) 23:15:07
ガーベジコレクタに訊けば教えてくれるんじゃね?
530デフォルトの名無しさん:2006/12/29(金) 23:22:09
>>529
そうなんだ
C#知らんからおれw
スマソ
531デフォルトの名無しさん:2006/12/29(金) 23:29:01
質問です。
埋め込むリソースに"hoge.bin"が存在するとして、
その"hoge.bin"をファイルとして保存する手順というか方法がわかりません。

一応、そのリソースをResourceManagerに読み込ませる所まではできています。
よろしくお願いします。
532デフォルトの名無しさん:2006/12/29(金) 23:29:46
そんな理由で文字列のバイト数調べてどうする。
533デフォルトの名無しさん:2006/12/29(金) 23:36:59
>>531
何がしたいのかさっぱりわからんが、ファイル開いて書き込めばいいんじゃないの?
534デフォルトの名無しさん:2006/12/29(金) 23:37:26
>496
2chの専ブラってdelphiのものが多いよな。
delphiでやれば?
535531:2006/12/30(土) 00:51:35
>>533
できました。dクス。
536478:2006/12/30(土) 07:56:29
>>481>>482>>492>>493

ありがとう。
youtubeの動画ページのソース見たら動画のURLあった。
それを勝手に拡張子付けて保存すればいいのかな。

でもそれじゃまずいので正規表現すればいいってことだろうか。
よく調べてみます。ありがとうございました。
537デフォルトの名無しさん:2006/12/30(土) 09:13:34
>>536
用津辺板いって聞いてくれば?
ここよりは求めてる回答得られそうな希ガス
538デフォルトの名無しさん:2007/01/02(火) 18:53:20
明けましておめでとうございます。

あのぅ、C#のメソッド名って、1文字目が大文字なのは習慣的?
C#の勉強始めたんだが、基本Javaしかわからんから。

見てる講座がたまたまそうなのかな。
539デフォルトの名無しさん:2007/01/02(火) 18:57:16
>>538
CLRがそうなってるからみんなそうしてる。

大体、privateフィールドとローカル変数がcamelCaseで、それ以外の識別子がCamelCase
540デフォルトの名無しさん:2007/01/02(火) 19:00:07
>>538
名前に関するガイドライン
http://msdn2.microsoft.com/ja-jp/library/ms229002(VS.80).aspx
黙って従え
541デフォルトの名無しさん:2007/01/02(火) 19:07:54
>>539-540
早レスありがとう。
そんなのがあったのね。
面白いから熟読してみる。

まだ買ってもいないxboxゲー個人開発に挑戦してみようと思って勉強始めてみたの。
きっと挫折するに決まっているが、得るものは沢山あると思うので、
できるとこまで勉強してみるよ。

とりあえずビール飲んで餃子食うわ。
542デフォルトの名無しさん:2007/01/02(火) 22:03:42
>>540
このガイドラインは全部読んどくべきだよね。
俺もこれ初めに知ってれば作り直すこともなかったんだがorz
543デフォルトの名無しさん:2007/01/02(火) 23:37:33
>>542
どんな名前をつけていたん?
544デフォルトの名無しさん:2007/01/02(火) 23:39:12
>>543
名前というかクラスの構造というか。
今は上手く思い出せない。
545デフォルトの名無しさん:2007/01/02(火) 23:45:48
>イベント ハンドラではないデリゲートの名前には、サフィックス Callback を追加します。
これ.NET Frameworkでも守ってないの多いな
546デフォルトの名無しさん:2007/01/02(火) 23:59:14
ThreadStart はコールバックじゃないしなあ
547デフォルトの名無しさん:2007/01/03(水) 02:22:39
ネストクラスをリフレクションで取得できないのですが
なにか間違ってますか?

ClassUtil.ForName("Name.Space.OuterClass.NestedClass",asms);
548デフォルトの名無しさん:2007/01/03(水) 02:30:14
ClassUtil.ForName とやらが何なのか一切説明無しか。

完全限定型名で調べれ。あと Type.GetType とか。
549デフォルトの名無しさん:2007/01/03(水) 02:53:14
すみません
ClassUtil.ForNameは、Seasarに定義されてるメソッドでした。
Javaとそっくりだなと思いつつよく見ればFCLじゃなかったのか…
完全限定型名で調べてみたいと思います。
ありがとうございました。
550547:2007/01/03(水) 03:11:24
完全限定型名というのは
Namespace.ClassName,AssenblyName
でよいのでしょうか?
Type.GetTypeで
Namespace.ClassName,AssenblyName
だとClassNameを取得可能でしたが
Namespace.ClassName.NestedClass,AssenblyName
だと
NestedClassを取得することはできませんでした。
551デフォルトの名無しさん:2007/01/03(水) 03:18:14
もうちょっと良く読め
552547:2007/01/03(水) 03:21:30
>>551
すみません。わかりましたw
おさわがせしました。
553デフォルトの名無しさん:2007/01/03(水) 05:06:14
>>547
Seasar.NET触った感じどうよ?
554デフォルトの名無しさん:2007/01/03(水) 12:11:04
>>553
Seaserというより、DIコンテナ自体使い慣れてないのでなんともいえないけど
単純にファクトリクラスライブラリと考えるだけでも結構便利。
AjaxPro経由で呼び出したときはWebフォームインジェクション
されないので一貫性のないコードになっちゃってちょっと嫌かも。
そもそもAjaxとASP.NETの相性が悪すぎ。
クライアントコールバックは煩雑だし、かといってAjaxPro使うとコントロールを参照できないし。
Atlasは、
555デフォルトの名無しさん:2007/01/03(水) 16:05:47
>>554
なんとなくやってる事とやれる事は理解できた d
556デフォルトの名無しさん:2007/01/04(木) 02:53:34
Microsoft Visual C# 2005 Express Edition
ってユーザーコントロール作れないんですか?
557デフォルトの名無しさん:2007/01/04(木) 03:05:37
558デフォルトの名無しさん:2007/01/04(木) 03:09:12
おろ酔ってるみたい。よく見ればVB貼っちゃった。
でも同じようにすればできると思うよ。
559556:2007/01/04(木) 03:13:37
>>557
おぉ、まさにこれですヾ(*´∀`*)ノ
ありがとうございます!!
560デフォルトの名無しさん:2007/01/04(木) 20:23:43
そろそろスレタイを全角じゃなくて半角で立ててくれないか?
561デフォルトの名無しさん:2007/01/04(木) 20:27:18
やってみれば分かると思うが消える
562デフォルトの名無しさん:2007/01/04(木) 20:33:35
そしてC言語のスレになる。
563デフォルトの名無しさん:2007/01/04(木) 20:41:30
C# しーいげた
C♯ しーしゃーぷ
564デフォルトの名無しさん:2007/01/04(木) 20:45:42
C#とかいて"C Sharp"と発音するんだと、ECMA-334に書いてある。
下駄とか言ってるやつは忠誠心が不足しているようだな。
565デフォルトの名無しさん:2007/01/04(木) 21:04:29
>>549
Seasarのメソッドか…
おいなんだこりゃ、こりゃうかつに使うとはまるぞ。
566デフォルトの名無しさん:2007/01/04(木) 21:05:49
Seasarはどうも発想がJavaだな、当たり前だろうけど。
Javaでのやり方を.NET環境でどうやるかって発想になってるので、
いろいろ問題ありそうな気がして使うのは怖いな…
567デフォルトの名無しさん:2007/01/04(木) 21:06:46
>>565
javaでもxxxUtil系はSeaser用意してくれてるおw

    使  え  な  い  け  ど
568デフォルトの名無しさん:2007/01/04(木) 21:50:09
#だってシャープって読むだろ普通
569デフォルトの名無しさん:2007/01/04(木) 21:57:53
普通はナンバーじゃね?
570デフォルトの名無しさん:2007/01/04(木) 22:07:39
名塚はシャープって読んでたよ
571デフォルトの名無しさん:2007/01/04(木) 22:32:31
C++の「ぷらぷら」みたいな、語感の良い呼び方はないものか。
572デフォルトの名無しさん:2007/01/04(木) 22:36:19

「ぷらぷら
 ぷらぷら」
573デフォルトの名無しさん:2007/01/04(木) 22:43:11
普通シャープだろ
574デフォルトの名無しさん:2007/01/04(木) 23:20:18
ナンバーで変換すると#が出てきて、シャープで変換すると♯が出てくる
575デフォルトの名無しさん:2007/01/04(木) 23:20:48
はぁ? 普通、クロスハッチだろ。
576デフォルトの名無しさん:2007/01/04(木) 23:32:12
なるほど
総合するとシャープってことだな
577デフォルトの名無しさん:2007/01/04(木) 23:40:20
c#のソースファイル拡張子を見れ
578デフォルトの名無しさん:2007/01/04(木) 23:44:56
つーかPresenting C#にだってC charpって書いてあるだろハゲ
579デフォルトの名無しさん:2007/01/05(金) 01:54:08
#  半角だとナンバーか井げた
♯ 全角だとシャープ

普通は。
580デフォルトの名無しさん:2007/01/05(金) 01:56:48
じゃあCナンバーとかC井げたと読んでなさい
581デフォルトの名無しさん:2007/01/05(金) 02:23:29
っていうか、半角だとシャープとナンバーの区別が付かないから、
# で ♯ を代用してるって公言されてた気が。
582デフォルトの名無しさん:2007/01/05(金) 11:27:58
>規格によると、C#は「C Sharp」と発音し、
>「C#」(LATIN CAPITAL LETTER C (U+0043) の後に
> NUMBER SIGN # (U+0023))と書く。
>音楽のシャープ(♯,MUSIC SHARP SIGN (U+266F))ではなく
>ナンバーサイン(#)を採用したのは、フォントやブラウザなどの
>技術的な制約に加え、標準的キーボードには前者の記号が存在し
>ないためである。

http://ja.wikipedia.org/wiki/C_Sharp
583デフォルトの名無しさん:2007/01/05(金) 11:57:46
Cから半音上がった状態か
584デフォルトの名無しさん:2007/01/05(金) 13:23:29
CとDの間だから
C#
585デフォルトの名無しさん:2007/01/05(金) 13:43:47
C++ はDになっちゃうか
586デフォルトの名無しさん:2007/01/05(金) 14:19:27
Cの次はPなんだがな。
587デフォルトの名無しさん:2007/01/05(金) 15:13:45
C++++
588デフォルトの名無しさん:2007/01/05(金) 16:03:42
C#よりC++の方が低級言語でしょう
おなじCのコードでもメモリー構造が全然違うみたいね
589デフォルトの名無しさん:2007/01/05(金) 16:06:15
おなじCのコードってそれはネタで言ってるんだよな
590デフォルトの名無しさん:2007/01/05(金) 16:14:23
同じCのコード、、、、両者からCを取ったら残るのは # と ++
591デフォルトの名無しさん:2007/01/05(金) 16:56:03
http://ja.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/winforms/Samples/ControlReference/ButtonCtl/ButtonCtl.src&file=CS\ButtonCtl.cs&font=3
これを.NET2.0のcsc.exeでコンパイルすると、

ButtonCtl.cs(49,34): error CS0246: The type or namespace name 'StringIntObject' could not be found
(are you missing a using directive or an assembly reference?)

こういうエラーが出ます。StringIntObjectというのは2.0以降、消滅してしまったクラスなんでしょうか?
592デフォルトの名無しさん:2007/01/05(金) 16:58:59
593デフォルトの名無しさん:2007/01/05(金) 17:01:26
>>592
あ、どうもすいません。
ところで、このサンプルを2.0でコンパイルして実行しようとすると
ランタイム内でエラーが発生しますね。
594デフォルトの名無しさん:2007/01/05(金) 17:04:32
きっと
内容も理解せずコピペするだけじゃ何の意味もねーだろボケ
と言う事を遠回しに教えてくれてるんだよ
595デフォルトの名無しさん:2007/01/05(金) 17:09:34
なるほど。でもこれどっか修正すれば動くようになるの?
596デフォルトの名無しさん:2007/01/05(金) 17:19:49
ButtonCtrl.csをデザイナで開いてbutton1のImageプロパティの右側[...]ボタンをクリック
プロジェクトリソースファイルを選んで[インポート]ボタンをクリックし,適当な画像を選ぶ
でも>>594
597デフォルトの名無しさん:2007/01/05(金) 17:33:11
>>596
デザイナってのはSDKについてますか?
教えていただけるのであればソースを書き換える方法でおながいします…
598デフォルトの名無しさん:2007/01/05(金) 17:37:01
Visual C# Express Edition(無料でMicrosoftのサイトから落とせる)
だいたいそのソースもほとんどデザイナが自動生成したもの
599デフォルトの名無しさん:2007/01/05(金) 18:55:30
全角英数字と空白のみ半角に変換したいのだけど、便利なメソッドってある?
Microsoft.VisuakBasic.String.StrConv だとカタカナまで半角になっちゃう。
600デフォルトの名無しさん:2007/01/05(金) 19:00:40
String.NormalizeでNFKCに正規化するとか。副作用もあるけど
601デフォルトの名無しさん:2007/01/05(金) 19:02:23
forでループまわして一文字づつやれば
602デフォルトの名無しさん:2007/01/05(金) 19:18:15
普通それしかないわな。
603599:2007/01/05(金) 19:26:22
>>600
さんくす。とりあえず
String.Normalize(NormalizationFrom.FromKC)
で、全角英数空白記号が半角になった。FromKDとの違いがワカラン...
副作用ってどんなことか気になるが、とりあえずOK?。

>>601
今回は数字のみだったので、ループで済ましてたが、
英字や記号までとなると、なんか馬鹿らしくなる。

だれかPHPのmb_convert_kana関数を移植してくれんだろうか?
604デフォルトの名無しさん:2007/01/05(金) 19:29:13
Regex.Replace / MatchEvaluator / StrConv 組み合わせる
605デフォルトの名無しさん:2007/01/05(金) 19:34:28
Regex.Replace だけじゃダメなのか…
606デフォルトの名無しさん:2007/01/05(金) 19:41:10
あるクラスAを継承したクラスA'があるとします。
クラスAにデータが格納されているとして
そのデータをそのままクラスA'に一括して渡したい場合に良い方法は
ありますでしょうか?

やりたいのはこのような以下の様なイメージです。
A' A'のインスタンス = (A')Aのインスタンス;

よろしくお願い致します。
607デフォルトの名無しさん:2007/01/05(金) 19:44:28
SeaserはS2DAOの存在意義がわからん。
ADO.NETのがいいし。
608デフォルトの名無しさん:2007/01/05(金) 19:45:43
A.CopyTo(A')
609デフォルトの名無しさん:2007/01/05(金) 19:48:06
>>606
Aを引数にもつA'のコンストラクタつくっておけばいいんじゃない?
610デフォルトの名無しさん:2007/01/05(金) 19:52:13
System.Drawing.Bitmap が System.Drawing.Image を引数に取るコンストラクタ持ってるな。
ついでに A から A' への明示的変換演算をオーバーロードしとくとかどうか。
611デフォルトの名無しさん:2007/01/05(金) 19:58:30
>>606です。

>>608
>>609
有難う御座います。無事解決いたしました。
612C ◆rtRndw2G.I :2007/01/05(金) 20:15:22
DLL(アセンブリ)のバージョンを調べるにはどうすれば良いでしょうか?

例えば、下記の様にAサーバに『hoge.dll』というDLLがあった場合に
このDLLのバージョン(1.1.1.4)を調べるにはどうすれば良いでしょうか?

Aサーバ
 hoge.dll  (1.1.1.4)

また、上記は通常のクラスライブラリとして作成されたアセンブリ
の場合ですが、例えばActiveReport等のベンダー製のDLL
(ActiveReport.dll / ActiveReportViewer.dll ) 
のバージョンを取得する事は出切るのでしょうか?



613C ◆rtRndw2G.I :2007/01/05(金) 20:18:11
あともう一つご質問をさせて下さい。

例えば、
 A_hoge.dll  @
B_hoge.dll  A

と2つのDLLがあった場合にそれらのDLLをマージして

 C_hoge.dll  B

と1つに纏める方法はありますでしょうか?

(ソース自体を C_hoge という namespace に入れる以外の
方法で)


614デフォルトの名無しさん:2007/01/05(金) 20:24:08
>>612
それで何をしたいのか、が問題だな

>>613
ILMerge ってのが提供されてはいる
わざわざ一つに纏める意義が分からんが
615デフォルトの名無しさん:2007/01/05(金) 20:59:01
>>612
Assemblyクラスに読み込んでメタデータ確認すればいいんじゃね?
616C ◆rtRndw2G.I :2007/01/05(金) 21:01:07
>>614
どうもありがとうございます。
早速 ILMerge をダウンロードし試してみます。

>>612
の件なのですがサーバ上のDLLとクライアントのDLLのバージョン
比較を行い、バージョンの新しい方をローカルに取得し参照利用
予定です。
617C ◆rtRndw2G.I :2007/01/05(金) 22:05:12


>>615
>Assemblyクラスに読み込んでメタデータ確認すればいいんじゃね
Asemblyクラスに読み込む!?
そんな事出来るんですか?もし宜しければご伝授いただけないでしょうか?
618デフォルトの名無しさん:2007/01/05(金) 22:16:17
619デフォルトの名無しさん:2007/01/05(金) 22:22:55
微妙だな、LoadFromやReflectionOnlyLoadFrom等で読み込めば確認できるが、
クライアントで読み込んだものが同じアセンブリとみなされるか違うアセンブリとみなされるか等、
いろいろトラブりそうな気がする。
AppDomain作ってその中で閉じてやってしまうのが一番確実だが、
この方法はちとだけ敷居が高い。
620デフォルトの名無しさん:2007/01/05(金) 22:25:15
そういうときこそSxSじゃないかな。
621デフォルトの名無しさん:2007/01/05(金) 22:26:48
アセンブリを勝手にバージョンアップするのはご法度だからなあ
622デフォルトの名無しさん:2007/01/05(金) 22:31:08
>>619
LoadFileのほうがキャッシュとかの影響を避けられそう
623デフォルトの名無しさん:2007/01/05(金) 22:33:18
C#をJavaに変換するにはどうしたら良いのでしょうか?
それとC#をC++に変換する方法は無いとは思いますが聞かせて頂きます
624デフォルトの名無しさん:2007/01/05(金) 22:35:16
同じ挙動をすればいいだけなら、JavaにせよC++にせよ普通に書き換えてゆけばいいじゃない。
625デフォルトの名無しさん:2007/01/05(金) 22:36:42
>>623
自力で何とかする。
626623:2007/01/05(金) 22:37:54
あれ、Java→C#に変換できるものなんかはあった気がするんですが
627デフォルトの名無しさん:2007/01/05(金) 22:38:59
そりゃMSがJava厨を取り込みたいから作るだろうが、C#からJavaはなかろう
知らんけど
628デフォルトの名無しさん:2007/01/05(金) 22:40:21
ヒント:上位互換性
629デフォルトの名無しさん:2007/01/05(金) 22:40:50
ReflectorでJ#化
意味ねー
630デフォルトの名無しさん:2007/01/05(金) 22:42:13
ってJ#対応してねーじゃねーかw
631デフォルトの名無しさん:2007/01/05(金) 22:42:55
>そういうときこそSxSじゃないかな。
意味不明
632デフォルトの名無しさん:2007/01/05(金) 22:47:21
CodeProviderつかえば、C#<->VJ# / C# <-> C++/CLI の変換は可能だと思うよ。

JavaやC++に変換するのは無理だけど。
633C ◆rtRndw2G.I :2007/01/05(金) 22:49:50
>>618,619,620,622
どうもありがとうございます。
ちょっとLoadFielを利用してアセンブリのバージョンを読めるか試して
みます。
634デフォルトの名無しさん:2007/01/05(金) 23:01:56
念のために注意しとく。
読み込んでバージョン確認は普通簡単にできる。

問題は、その後例えば最新のアセンブリをローカルに持ってきてロードとか、
あるいはビルド時の参照設定や、逆シリアル化操作などでアセンブリが
自動ロードされたりする際に、トラぶらないようにしとくこと。
635633:2007/01/05(金) 23:15:35
>>634
どうもありがとうございます。

ところでなぜ>>634さんはそこまで詳しいのでしょうか?
VS自体の開発に携わっていたりとか?

636デフォルトの名無しさん:2007/01/05(金) 23:22:21
お前が無知なだけ
637デフォルトの名無しさん:2007/01/05(金) 23:49:41

>>636
だまれ
638デフォルトの名無しさん:2007/01/05(金) 23:51:15
プッ
639デフォルトの名無しさん:2007/01/05(金) 23:52:37
ごめん。
うんこ漏らしちゃった。
640デフォルトの名無しさん:2007/01/06(土) 00:03:51
プリッ
641デフォルトの名無しさん:2007/01/06(土) 03:15:12
質問です。
.pmファイルがあります。このファイルの文字コード(?)は日本語EUCです。
これをコマンドプロンプトで実行すると文字化けします。

それで、このコマンドプロンプトの出力をtextBoxに渡したいのですが、
文字化けせずに表示するにはどうすればいいでしょうか?
お願いします。
642デフォルトの名無しさん:2007/01/06(土) 03:29:37
EUCのままじゅ無理。コード変換が必要。
以下参照。
http://www.google.co.jp/
C# EUC
643641:2007/01/06(土) 04:11:04
>>642

ありがとう。Google先生に聞いてみたけど分からなかった。
コマンドプロンプトで実行した時点で化けてるのですが
いつコード変換すればいいのでしょうか?
化けてるのを変換しても戻らないと思ったのですが・・
コマンドプロンプトのコードページは関係ないですか?
すみませんが、もっと詳しく教えて頂けると助かります。
644デフォルトの名無しさん:2007/01/06(土) 09:33:34
>>643
.pm というのはperlのモジュールファイルのこと?
すれ違いな気もするが、WindowsのコンソールはANSIコードセット、日本語環境ではShift-JIS(MS932)専用。
極限られた条件でUNICODEを使うことも出来るが切り替えて使えるというレベルではない。
漢字変換のフィルターを前後にかますか、
処理の内容にもよるが.pl .pmのスクリプト自体をShift-JISに変えてしまうのがおすすめ。
C#でなにかやりたいなら、System.Diagnostics.Processでperlを子プロセスで起動するときに
標準入出力をフックしてコード変換をすると出来るがスキル的に無理だろう。
645デフォルトの名無しさん:2007/01/06(土) 10:42:53
現在ASP.NET2.0でWebサイトを構築しているのですが、
TreeViewコントロールで親ノードの文字をクリックして子ノードを展開するようにするにはどうすればいいのでしょうか?

既定では小さい画像なのでいまいち使いにくいです。
Menuコントロールも試してみたのですが、ノードが多いためか展開がかなり遅くなってしまいました。

どなたかご教授願います。
646デフォルトの名無しさん:2007/01/06(土) 14:23:41
>>644
なにもそんな難しいことをする必要はない。

Process p = new Process();
p.StartInfo.FileName = "perl";
p.StartInfo.Arguments = "foo.pl";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.StandardOutputEncoding = Encoding.GetEncoding("EUC-JP");
p.StartInfo.UseShellExecute = false;
p.Start();
p.WaitForExit();
textBox1.Text = p.StandardOutput.ReadToEnd();
647デフォルトの名無しさん:2007/01/06(土) 15:11:33
プログラミング始めた頃は目的のアプリをどう作るかってのに悩んでたけど
いろいろ関数を覚えてきてマニュアルみなくても記述できるようになってくると
アプリを作ることより、いかに、わかり易く、バグが起きにくいソースを書くか?ってことに時間を費やすようになったけど
こういうのって自然なこと?
648デフォルトの名無しさん:2007/01/06(土) 15:14:13
>>647
それに仕様変更を想定して書ければプロだよ
649デフォルトの名無しさん:2007/01/06(土) 15:17:40
>>647
EAとかeclipseのUML2使ってみ
650デフォルトの名無しさん:2007/01/06(土) 15:38:57
どうして人間は16進数やらないの?
651デフォルトの名無しさん:2007/01/06(土) 15:43:38
8進法を使う民族ならあるらしいけどな
指の股を数えるんだとか
652デフォルトの名無しさん:2007/01/06(土) 15:44:29
両手の指の合計が16だったなら16進数が標準だったかもな
653デフォルトの名無しさん:2007/01/06(土) 15:47:15
12進法や60進法使ってた(る?)民族もいたんじゃなかったっけ?
世界的に10進法に標準化されちゃっただけで。
654デフォルトの名無しさん:2007/01/06(土) 15:49:02
2進法なら手だけで1000数えられるのに。
655デフォルトの名無しさん:2007/01/06(土) 15:53:52
それ俺の隠し芸……
2^5まではみんなにこやかに見てくれてるのに、
2^6+2^5あたりから険しい表情になり、
2^7+2^6あたりでこっちを向いてる人が少なくなり、
2^8から2^10-1までは俺一人で黙々と数えることになる。
656デフォルトの名無しさん:2007/01/06(土) 15:54:05
60進法は普通に時間で使ってるだろ
657デフォルトの名無しさん:2007/01/06(土) 15:56:02
地球の公転を早くさせることができたら、仕事する時間も少なくて済むな
658デフォルトの名無しさん:2007/01/06(土) 15:57:14
変わらないだろ
正月休みや盆休みもその分短くなる
659デフォルトの名無しさん:2007/01/06(土) 15:57:38
>>651
指と股を数えると、片手だけで9になるんだが?
660デフォルトの名無しさん:2007/01/06(土) 15:58:36
>>659
両手の指の股だよ
661デフォルトの名無しさん:2007/01/06(土) 16:00:00
www
662デフォルトの名無しさん:2007/01/06(土) 16:05:39
角度とかでも使ってるな、60進法。
しかし0〜59と数えるのは邪道だ。
60進法とは認められない。
663デフォルトの名無しさん:2007/01/06(土) 16:06:19
>>659
ワロス
664デフォルトの名無しさん:2007/01/06(土) 16:07:23
.net寄りの質問なのですが、.net板で返答が得られなかったため、
こちらの板で質問させていただきます。板違いですいません。
どなたかお答えしていただけますでしょうか?

.netC# で開発を行っています。

現在、IEのWindowからテキストをドラッグ&ドロップしてFormに
入力したいと思っています。
その時に、ドラッグ&ドロップしたテキストが元々IEのWindowのどの位置
(x,y座標で)に有ったかという情報を受け取ることは可能でしょうか?

もし可能ならばどの様な実現方法が有るのでしょうか?
お教え下さい。
665デフォルトの名無しさん:2007/01/06(土) 16:30:48
>>664
そりゃ無理だね
ファイルパスを取得したあと、それを元に
APIを使ってやればできるけど
666デフォルトの名無しさん:2007/01/06(土) 16:32:55
>>664
COMやMSHTMLの深い知識があればできんこともないかもしれんな。
667デフォルトの名無しさん:2007/01/06(土) 16:35:45
マウスのグローバルフックでD&D操作をモニタすりゃいんじゃね?
668デフォルトの名無しさん:2007/01/06(土) 16:37:40
そんなアプリいやだ。
669デフォルトの名無しさん:2007/01/06(土) 16:37:42
グローバルフックを登録するにはDLLつくんないといけないから、>>664には荷が重そうだな。
670デフォルトの名無しさん:2007/01/06(土) 17:37:05
.net 板ってどこよ
671デフォルトの名無しさん:2007/01/06(土) 17:45:11
.NET総合スレのことだろ。過疎ってるとこ
672641:2007/01/06(土) 17:50:04
>>644
>>646
ありがとう。

>>644
>子プロセスで起動するときに標準入出力をフックしてコード変換を
>すると出来るがスキル的に無理だろう。

はい、さっぱりです・・・。

>>646
それ2.0ですよね?多分・・。1.1なので出来ませんでした。

あ〜難しい!!
673デフォルトの名無しさん:2007/01/06(土) 17:54:49
1.1ならStandardOutput.BaseStreamを新しいStreamReaderに食わせればいいんじゃないか
674デフォルトの名無しさん:2007/01/06(土) 17:59:20
FreameworkについてるProcessって使えないよな
子プロセスとして自前で起動しないと操作できないんだから
そりゃ他のプロセスに勝手に割り込むのはメモリ違反だから仕方がないけどな
どうにかしてよ
675デフォルトの名無しさん:2007/01/06(土) 18:05:54
むちゃいうな
676デフォルトの名無しさん:2007/01/06(土) 18:17:56
何言ってんだか分からない。
Processは探せるだろ。
メモリ違反て何しようとしてる?
677641:2007/01/06(土) 18:28:39
>>673

できた〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!!
まじでうれしい!!!!!!!!!!!!!!!!!
あなたは神です!!ありがとう!!!!!!!

StreamReader output = new StreamReader(p.StandardOutput.BaseStream,Encoding.GetEncoding("EUC-JP")) ; // 出力を取得(参照の宣言のみ)
textBox1.Text = output.ReadToEnd(); // 表示(出力を実際に取得)
output.Close();
678デフォルトの名無しさん:2007/01/06(土) 19:14:59
>>674
Window操作ならapi使って出来るが?
679デフォルトの名無しさん:2007/01/06(土) 21:13:10
>>674
Process#GetProcesses
680デフォルトの名無しさん:2007/01/06(土) 21:20:23
JAVA使い襲来。
681デフォルトの名無しさん:2007/01/07(日) 14:45:53
staticだからProcess.GetProcessesだろ
682デフォルトの名無しさん:2007/01/07(日) 15:54:59
質問です。
現在、GPL の C のソースコードを C# に移植しています。

で、そのソースコード中に、
extern int sig[100][100]; //これは適当
int pn, idx;
pn = sig[c][b] <= 0;
idx = (sig[c][b] - pn) ^ -pn;

とあったのですが、これをC#になおした場合、

pn = (sig[c][b] <= 0) ? 1 : 0;

とする以外、idx への代入する式は C と同じで良いのでしょうか?
idx は絶対値を取ってるだけのような気もするのだけど・・・確証が持てません。
683デフォルトの名無しさん:2007/01/07(日) 16:26:37
演算子は同じだからそのままで大丈夫だよ。

符号ビットを0にしてるだけだから絶対値であってるね。
684デフォルトの名無しさん:2007/01/07(日) 16:55:51
ありがとです。




うーむ、まだ結果が違う・・・。
685デフォルトの名無しさん:2007/01/07(日) 17:43:37
Webサービスを用いたコードを書いているのですが、サーバからクライアントに
オブジェクトを送信するとArrayListがObject[]になってしまい、困っています。

これを解決する良い方法は有りませんでしょうか?
686デフォルトの名無しさん:2007/01/07(日) 18:38:37
>>685
そういやArrayListはシリアライズ不可だな。
.NET同士ならDataSetを使う。他からも使いたいならArrayを直に使うのかな。
687デフォルトの名無しさん:2007/01/07(日) 19:36:02
これからプログラミング始めようと思っているんですが
3000円ぐらいする入門書みたいなのは買う必要ありますか?
オンラインヘルプのMSDNで十分でしょうか?
688デフォルトの名無しさん:2007/01/07(日) 19:43:43
>>687
ガタガタ言ってねえで手を動かせボケ
689デフォルトの名無しさん:2007/01/07(日) 19:44:36
これまでのプログラミング経験は?
690デフォルトの名無しさん:2007/01/07(日) 19:45:35
>>687
ほんとに初心者の初心者なら本の方がいい。それも名著と呼ばれてる奴ではなくて、
はじめてのXX系の後からは絶対読み返さないようなのが役に立ったりする。
ある程度下地があるならMSDNからでもウェブをあさってもいいし本なら名著が役に立つ。
691デフォルトの名無しさん:2007/01/07(日) 19:58:47
>>689
F-BASIC386
QUICK C
ぐらいしかありません
692デフォルトの名無しさん:2007/01/07(日) 20:00:52
>>691
ガタガタ言ってねえで手を動かせボケ
693デフォルトの名無しさん:2007/01/07(日) 20:21:26
そこでC#を始めてしまうと碌なプログラマにはなれん気がするな。
694デフォルトの名無しさん:2007/01/07(日) 20:30:14
はいはい、VBVB
695デフォルトの名無しさん:2007/01/07(日) 21:10:10
まあ本はあったほうがよさげ
696デフォルトの名無しさん:2007/01/07(日) 21:13:14
本が必要かどうか自分でわからないようなら、必要ってことだろうね。
697デフォルトの名無しさん:2007/01/07(日) 22:13:05
>>691
初オブジェクト指向か。
最初は大変だろうけどそのうち体で覚えるよ。

オレなんか本に書いてあることが理解できたのは
動くプログラムが作れるようになってからだぞ。



698デフォルトの名無しさん:2007/01/07(日) 23:14:54
>>697
インスタンスとオブジェクトの違いを述べよ
699デフォルトの名無しさん:2007/01/07(日) 23:20:38
インスタンスの影
700デフォルトの名無しさん:2007/01/07(日) 23:26:46
言葉の使われる場合が微妙に違うだけで具体的には一緒
701デフォルトの名無しさん:2007/01/07(日) 23:28:17
質問です。

class Hoge : Object {}
class HogeCollection : Collection<Hoge> {}
class HogeColleCollection : Collection<HogeCollection> {}

な感じのデータがあるのですが、あまりに件数が多すぎて、
メモリからあふれてしまうようになりました。

なので、メモリに保存する替わりにファイルをメモリ代わりにすることで代用したいのですが、
伸びたり縮んだり、部分的に伸びたりするデータをどのようにしたらファイルで代用できるのでしょうか・・・。
702デフォルトの名無しさん:2007/01/07(日) 23:30:00
素直にデータベース使えよ
703697:2007/01/07(日) 23:33:17
>>698
ええー汗w
インスタンスはわかるけど、オブジェクトって言葉はいろんな使われ方してない?

オレ的にはインスタンス=オブジェクトなんだけど・・・
704デフォルトの名無しさん:2007/01/07(日) 23:33:21
はや^^;

データベースというと、DataSet クラスとかですよね。

あれもメモリで保存するものと思っていました。
ちょっと調べてみます。
705デフォルトの名無しさん:2007/01/07(日) 23:35:56
オブジェクトは概念
インスタンスは実体。
706デフォルトの名無しさん:2007/01/07(日) 23:36:00
インタフェースのときはちょっと違う
IDisposableインスタンスとは言わない
だからって深い意味は無い
707デフォルトの名無しさん:2007/01/07(日) 23:37:18
>>704
DataSet はデータベースから引っ張ってきたデータをプログラムで利用するために一時的にメモリに保存するもの。

SQL Server Express とか使えという事。
708デフォルトの名無しさん:2007/01/07(日) 23:43:18
>>706
言わないっていうかインターフェイスはインターフェイスだろ。
初心者混乱させてどうすんだ。

だからって深い意味はない
709デフォルトの名無しさん:2007/01/07(日) 23:45:02
>>706
インターフェイスは実体化できんだろうが
710デフォルトの名無しさん:2007/01/07(日) 23:46:22
インスタンスつうたらまあオブジェクト指向の話だろうけど、
オブジェクトって言われたらオブジェクト指向の話じゃないかも。

クラスは実体化するもの
インターフェイスは実装するもの
711706:2007/01/07(日) 23:51:58
>>709
誰もそんなこと言ってないのにわざわざ出すことが混乱すると言ってるんだが。
712デフォルトの名無しさん:2007/01/07(日) 23:57:28
何をムキになってるんだか
713デフォルトの名無しさん:2007/01/07(日) 23:57:42
>>701
DBいやならXML
714デフォルトの名無しさん:2007/01/07(日) 23:59:05
おれがわかり易く言ってやろう

オブジェクトとは子供が描いた家の絵(クラス)
子供に建築学インタフェースを接続するとちゃんとした設計図(クラス)になる
それらの設計図を元に作ったのがインスタンス
715デフォルトの名無しさん:2007/01/07(日) 23:59:20
objectクラス
objectインスタンス
objectオブジェクト
716デフォルトの名無しさん:2007/01/08(月) 00:00:17
オブジェクト≠クラス
717デフォルトの名無しさん:2007/01/08(月) 00:07:22
クラス -> 集合
インスタンス -> 集合の要素
とか
718デフォルトの名無しさん:2007/01/08(月) 00:09:44
構造体も忘れないでください。。。
719デフォルトの名無しさん:2007/01/08(月) 00:10:46
構造体のインスタンスはオブジェクト
720697:2007/01/08(月) 00:13:37
>>711はオレじゃないぞw

>>714
またオブジェクトの使い方が怪しいのが出てきたよー
子供が書いた家の絵と設計図に(クラス)と書いたら意味わからん
721デフォルトの名無しさん:2007/01/08(月) 00:16:08
714がわかってないことがわかったw
722デフォルトの名無しさん:2007/01/08(月) 00:18:14
オブジェクト指向の概念って頭で分かってても言葉で説明するの難しいよね。

下手に喩えをつかうと余計にぐじゃぐじゃになる。
723701:2007/01/08(月) 00:18:37
ちょっと調べてみました。

SQL Server Express を使って開発しながら、だんだんとファイル?を使った方法
へと移行していく感じでいいのでしょうか。
724デフォルトの名無しさん:2007/01/08(月) 00:19:08
インスタンスとオブジェクトの違いの話をしてるんだよな?

725701:2007/01/08(月) 00:20:05
あぁ、リロードすれば良かった。
XML でのやり方を調べてみます。
726デフォルトの名無しさん:2007/01/08(月) 00:20:31
716が流れを理解していないこともわかった
727デフォルトの名無しさん:2007/01/08(月) 00:25:19
>>723 725
XML は状態を保存するのには悪くないが、頻繁に書き換えするには向かない。
ファイルはこの際関係ない。
728デフォルトの名無しさん:2007/01/08(月) 00:25:36
XMLの場合は部分更新がマジできついって
729デフォルトの名無しさん:2007/01/08(月) 00:36:15
.Netの場合Objectには特別な意味があるよね
730デフォルトの名無しさん:2007/01/08(月) 00:39:27
は?
731デフォルトの名無しさん:2007/01/08(月) 00:41:26
こりゃオブジェクト・インスタンスの話はもうやめたほうがよさそうだw
732デフォルトの名無しさん:2007/01/08(月) 00:41:29
どういう意味か説明してくれ。
733デフォルトの名無しさん:2007/01/08(月) 00:41:46
オブジェクト=宇宙
インターフェース=数学
クラス=神
インスタンス=人
734デフォルトの名無しさん:2007/01/08(月) 00:43:35
>>733
それじゃあ人は神の実体化になるから違…


はっ!
735デフォルトの名無しさん:2007/01/08(月) 00:44:56
オブジェクトっていう概念はオブジェクト指向の外にあると思う
736デフォルトの名無しさん:2007/01/08(月) 00:45:24
クラスとはそれ以上微分化できない非線形系、抽象的なもの
インスタンスとは・・
737デフォルトの名無しさん:2007/01/08(月) 00:47:12
ギリシャ神話第13章節

人は神が神に似せてたもうた存在であり・・・
738デフォルトの名無しさん:2007/01/08(月) 00:48:24
恋の呪文はスキトキメキトキス
739デフォルトの名無しさん:2007/01/08(月) 00:49:42
クラスはデュナミスであり、インスタンスはエネルゲイアである。
オブジェクトはエンテレケイアだと言えるであろう。
740701:2007/01/08(月) 02:50:19
701です。

MS SQL Server とかのデータベースを利用する場合、
ユーザーにもそれをインストールして貰う必要があるようです。

でもフリーソフトを目標に作っているので、
それをしてしまうと避けられてしまうかも〜
とかおもいながら、MS SQL Server Express の情報を探してたら
SQLite というのを見つけました。
http://ja.wikipedia.org/wiki/SQLite


これって、C ライブラリでプログラムにリンクできて
プログラム以外に利用しなければ行けないものも無いみたいなので
これが良いみたいです。

難しそうですが、これを使って頑張ってみます。
どもでした。
741デフォルトの名無しさん:2007/01/08(月) 03:28:01
>>740
まて慌てるなw
そもそもメモリが溢れるってどういう意味よ?

例えばアドレス帳のようなアプリの場合、普通データ管理にDataSetを使う。
DataSetは別にデータベース(OracleとかSQLServertとか)がなくても使える。
ついでに言うと DetaSet はXMLでファイル保存・読込が出来てお手軽。

ここまで聞いてピンとこなければオレの勘違いだスマン。
742デフォルトの名無しさん:2007/01/08(月) 03:40:37
>>740
>>741の云うとおりだと思うんだぜ?
XML知ってるならDataSet XSD.exe DataBindingあたり調べて見れ
743デフォルトの名無しさん:2007/01/08(月) 03:45:25
SQLiteの利点はSQLが使えることだから
クエリーでどうしてもSQL使いたいってんでなけりゃDataSetでいいっしょ
744741:2007/01/08(月) 05:28:16
>>701 を見ると配列の配列でテーブルを表現したいのかと。
DataSet、DataTable、DataRow あたりを勉強すればOK。

たぶんSQLも知らないだろうから、データベースまで手を伸ばさないほうがいい。
745デフォルトの名無しさん:2007/01/08(月) 07:07:54
なあ、C#やってたら他の言語出来なくならないか?
746デフォルトの名無しさん:2007/01/08(月) 07:14:59
他のを使うのが億劫にはなるが使えなくなるまでには達しないな
747デフォルトの名無しさん:2007/01/08(月) 07:30:13
>>745
お ま え だ け
748デフォルトの名無しさん:2007/01/08(月) 12:51:14
言語そのものはかなり普通
VisualC#と.NET Frameworkが楽すぎるだけ
749デフォルトの名無しさん:2007/01/08(月) 12:52:11
問題が解決できる限り、楽すぎるに越した事はないな
750デフォルトの名無しさん:2007/01/08(月) 13:31:25
以下のようにエクスプローラの全てのプロセスIDを取得するのは
websiteから拾ってきて分かったのですが、
そのプロセスIDが何個あるかというのを、
変数qtyに格納するにはどうすればよいのでしょうか?
-----------------------------------------------------------
//名前のプロセスをすべて取得する
Process[] hProcesses = Process.GetProcessesByName("Exploler");
string stPrompt = string.Empty;

public GetProcessID() {
// 取得できたプロセスからプロセス ID を取得する
foreach (System.Diagnostics.Process hProcess in hProcesses) {
stPrompt += hProcess.Id + System.Environment.NewLine;
}
}
751デフォルトの名無しさん:2007/01/08(月) 13:36:16
にたような言語としては Java のほうが便利。
開発環境も eclipse のほうが便利。
でも.NET Framework のほうが Windows という OS に
親和性が高いので、それを優先してるだけ。

使ってる環境が Linux で Mono と Javaランタイムだったら
Java ランタイムの勝ちじゃないか?

というか、C# を始めた後でも C や Perl は手放せない。
752デフォルトの名無しさん:2007/01/08(月) 13:40:22
>>750
まあ hProcess の数と一致するんじゃね?
// System Idle Process とかはどうなるんだったっけ。
753デフォルトの名無しさん:2007/01/08(月) 13:41:01
あ。hProcess の数っていうと分かりにくいか。
hProcesses の要素数。
754デフォルトの名無しさん:2007/01/08(月) 13:44:43
要素数ってことは分かるのですが、
それをどう表現するかが分からなくて。
もう少し調べてみます。
755デフォルトの名無しさん:2007/01/08(月) 13:46:49
hProcesses.Lengthプロパティ
Tips回る前に基礎
756デフォルトの名無しさん:2007/01/08(月) 13:50:08
C言語なんて問題外だろ
757デフォルトの名無しさん:2007/01/08(月) 13:58:48
unsafeブロック内で健在
758デフォルトの名無しさん:2007/01/08(月) 14:00:48
実はunsafeブロックばかり(ry
759デフォルトの名無しさん:2007/01/08(月) 14:01:08
プラットフォーム跨いだ移植性を追及したら最終的にはCに落ち着くんだよ
760701:2007/01/08(月) 14:01:10
>741
対象のデータ件数が60万件とかあるからです。
現在のうちの環境では22万件までいったところで
OutOfMemoryException が出てしまいます。

しかも、でる位置がたとえば

private static readonly byte[] buffer = new byte[1024];

private static int func(FileStream target) {
 int readsize = 0;
 readsize = target.Read(buffer, 0, 1024); <-- ここでOutOfMemoryException
 target.Position -= readsize;
 
 ・・・
}

みたいな位置で出てしまうのでどう対処していいのやらなのです。
なのでメモリじゃなくてファイルに保存したらどうかなと考えました。

こんな感じでもDataSetとかで良いのでしょうか?
761デフォルトの名無しさん:2007/01/08(月) 14:09:28
>>759
Javaだろ普通
762デフォルトの名無しさん:2007/01/08(月) 14:10:27
VMないと動かないじゃない
763デフォルトの名無しさん:2007/01/08(月) 14:11:47
結局,頭のいい人間の耳に吹き込む,が最強?
764デフォルトの名無しさん:2007/01/08(月) 14:13:18
>>762
コンパイルしないと(ry
765デフォルトの名無しさん:2007/01/08(月) 14:17:19
>>761
Cで書いてあればどっからでも呼べんだよ。
766デフォルトの名無しさん:2007/01/08(月) 14:24:01
つかCなんて生産性悪い言語つかわねーだろ普通
C#使ってるいみねーじゃん
移植性考えるならJava使うだろ普通
767デフォルトの名無しさん:2007/01/08(月) 14:27:19
Jで満足に食っていけるってんなら世話ねえよな
768デフォルトの名無しさん:2007/01/08(月) 14:31:08
スレ違い
769デフォルトの名無しさん:2007/01/08(月) 14:46:04
移植とかマルチプラットフォームとか言ってる人ってなに作ってんの?
770デフォルトの名無しさん:2007/01/08(月) 14:48:09
組み込みの人じゃね?
771デフォルトの名無しさん:2007/01/08(月) 14:51:22
AppサーバーをUnix系OSにしてるところは、開発はWindowsでやって結合テストから
Unix系OSにしたりするからなー
772デフォルトの名無しさん:2007/01/08(月) 14:54:54
Javaはすっかり現代のCOBOLだし、C#もそっち方向へまっしぐらですね
773デフォルトの名無しさん:2007/01/08(月) 14:57:09
>>772
馬鹿とハサミは使いよう
ハサミが悪いわけではない
774デフォルトの名無しさん:2007/01/08(月) 15:27:11
C#のプログラムを腕利きのSEでVB使い(腕は良いと仮定)に
C/C++への書き換えを依頼するんですが出来ますでしょうか?
因みにそのSEの使用可能言語はC,Java,C++,ASP,VB,Perl,Ruby,PHPです
775デフォルトの名無しさん:2007/01/08(月) 15:29:38
ここじゃなくて、そいつに相談しろ
776デフォルトの名無しさん:2007/01/08(月) 15:32:17
でも気持ちはわからんではないw
きっとSEは「出来る」というに決まってるだろうからなぁw
777デフォルトの名無しさん:2007/01/08(月) 15:39:34
まずやめとけ >774
C# -> C/C++ は。。。逆なら大丈夫だと思うが
778デフォルトの名無しさん:2007/01/08(月) 15:41:38
.NET Frameworkをバリバリ使ってたら事実上無理だろ
779デフォルトの名無しさん:2007/01/08(月) 15:41:57
>>760
DataSetで問題ないと思う
まあSQLも覚えると楽しいので反対はしないが
DataSetはもともと組み込まれてるものだし、ちょっと試してみては
780デフォルトの名無しさん:2007/01/08(月) 15:42:37
VB使いにC++をやらせんなよ
781デフォルトの名無しさん:2007/01/08(月) 15:42:43
でもC#の実装がコボルだったら大丈夫かもw
782デフォルトの名無しさん:2007/01/08(月) 15:42:58
>778
え゛、.NET FrameworkのC++ぢゃねの?
783デフォルトの名無しさん:2007/01/08(月) 15:49:09
C# のコードをわざわざ C++/CLI or Managed C++ に書き換える意義は皆無だろ
784デフォルトの名無しさん:2007/01/08(月) 15:49:28
C#をC++/CLIに変換するだけならCodeParser->CodeGeneratorで十分だろ。

人間にやらせる必要なんてねえ。
785774:2007/01/08(月) 15:54:14
>>776
そうなんですよ。それが一番恐いんですよねw
今思いついたんですが、Code ProviderでC#<->C++/CLIに変換し
C++/CLIをC++に変換したら読めますでしょうか?
そもそもVB,C#,C++/CLIから、それぞれC++に書き換えるとしたら
言語の構造からしてどれが一番やり易いのでしょうかね?
どうしてもC++に書き換えねばいけないので、聞かせて頂きます
786デフォルトの名無しさん:2007/01/08(月) 15:56:24
>784
それだ!
787774:2007/01/08(月) 15:56:52
.NET Framework使ってる部分は置いておくとします
788デフォルトの名無しさん:2007/01/08(月) 15:57:44
ネイティブで動かしたいんじゃね?
速度もそんな変わらないし、.net入るPCなら環境依存もせず
使えるのにな
実際ネイティブC++にやろうとしたら、GCに任せっぱなしの
糞ソースにメモリ開放ロジックを大量に追加してやることになるだろうなw
腕利きって言ってるんだからやらしてやれw
789デフォルトの名無しさん:2007/01/08(月) 15:58:00
>>785
わからんではないがお前は間違ってるな
自分のスキルの無さを置いておいて目の前にいる人間を信用できないん
だったら、お前に人を使う資格なんてない
790デフォルトの名無しさん:2007/01/08(月) 15:58:05
>>787
そこ置いちゃったら話になんねーだろオイ
791デフォルトの名無しさん:2007/01/08(月) 15:58:27
>>787
CLR使っていいなら人間が変換する必要ないって
792デフォルトの名無しさん:2007/01/08(月) 15:58:44
>>787
じゃあC#orC++/CLIでdllを書いてC++からはそれを呼び出して終わり
793デフォルトの名無しさん:2007/01/08(月) 16:01:00
CLRホスティングで解決?
794774:2007/01/08(月) 16:03:37
失礼しました。ネイティブに変換したいわけなんですよ
C#orC++/CLIで製作するとC++に比べて、Vistaでも初回起動や画面描画が遅いし、メモリは少し多めに食うし
新しく開くコントロールの初期化が鈍いし、GUI周りは極端に遅い等、VM上で動かすデメリットやライブラリの悪さ等のデメリットがあり
速度が格段に落ちるようなのでネイティブに変換したいのですが、どうでしょうかね?
795デフォルトの名無しさん:2007/01/08(月) 16:07:33
それなら変換云々の話じゃない
1から作れ
796デフォルトの名無しさん:2007/01/08(月) 16:13:04
>>745
割とその感覚に同意
C# に慣れてきた状態で
いきなり Perl の古典的スクリプト読むの辛い
797デフォルトの名無しさん:2007/01/08(月) 16:20:39
たしかにVSのC#IDEが賢すぎて、慣れると他の言語がかったるくなるな
798デフォルトの名無しさん:2007/01/08(月) 16:41:47
>>794
お前は本気で言ってんのか?
お前はあほか?
799デフォルトの名無しさん:2007/01/08(月) 16:48:24
極端に遅いのは作りが悪いからw
作りが悪いままC++に置き換えてもやっぱり遅いww
800デフォルトの名無しさん:2007/01/08(月) 17:10:03
こいつに使われるやつがかわいそうだw
801デフォルトの名無しさん:2007/01/08(月) 17:10:08
bool checked=false;

自前のクラスのcheckedが別のフォームとかでtrueになった時点で処理をする
ようなプログラムがしたいんですけど
これはどういうことを調べればいいですか?
キーワードだけでも教えてください
よろしくです
802デフォルトの名無しさん:2007/01/08(月) 17:11:52
その「別のフォーム」で「チェックがtrueになった」イベントを発生させる
803デフォルトの名無しさん:2007/01/08(月) 17:12:12
別のフォームとやらでそのフィールドを直接いじらせずに
プロパティとして公開して、そのsetterでお好きな処理を。
804デフォルトの名無しさん:2007/01/08(月) 17:17:09
>>799
同意
初期起動や描画が遅いってのは完全に作りが悪い
GUIの表示自体は今のPCじゃ肉眼では判断できないぐらい差はない
文字列処理やcollectionなどに追加するロジックに問題があるんだろうな
805デフォルトの名無しさん:2007/01/08(月) 17:22:23
>>802
そのイベントを発生させるのに必要なクラスというか命令文というか
そのキーワードを教えてくださいませ

>>803
set
{
  checked=value;
  if(value)
    checkedEvents();


}

こんな感じですか?
806デフォルトの名無しさん:2007/01/08(月) 17:25:28
イベントがキーワードだろ
event
807デフォルトの名無しさん:2007/01/08(月) 17:32:43
808デフォルトの名無しさん:2007/01/08(月) 18:57:20
初心者的な質問ではないかも知れないんだけど
C#でP2P実装って出来んのかな?C++とかJavaならメジャーだが、.NETって聞かないよね
809デフォルトの名無しさん:2007/01/08(月) 19:02:00
十分初心者的な質問です。
出来ないと思った理由を聞かせてくれますか?
810デフォルトの名無しさん:2007/01/08(月) 19:02:43
>>808
おまえ・・・あれか?
811デフォルトの名無しさん:2007/01/08(月) 19:09:43
前にも似たような質問があったような。

Javaだとフリーのライブラリがあるから楽。
言語の優劣じゃなくてそういうこと。
812デフォルトの名無しさん:2007/01/08(月) 19:09:45
webサイトのソースを取得する際、初回の WebRequest.GetResponse() が異様に遅いんです。
なんで?
813デフォルトの名無しさん:2007/01/08(月) 19:14:36
>>808
おそらく今の808にはどんな言語でも実装不可能
814デフォルトの名無しさん:2007/01/08(月) 19:16:09
回線のResponseが悪いんだろ?
815デフォルトの名無しさん:2007/01/08(月) 19:21:56
Java→C#ってどうやって変換すれば良いんでしょうか?
816デフォルトの名無しさん:2007/01/08(月) 19:22:14
>>808
日本だけで2、3個出たけどね。
817デフォルトの名無しさん:2007/01/08(月) 19:22:42
>>812
初回だけってことは名前解決に時間がかかってんじゃねぇのか?
DNSまわりをチェックしれ。
818812:2007/01/08(月) 19:32:41
>>817
それがさ、ブラウザでは即効レスポンスなのよ。

実はインターネット回線でVPNもしてるんだけどコレを切ると解決する。
ちなみにVPNの方に問い合わせに行かない設定にはしてある。

ボスケテ
819デフォルトの名無しさん:2007/01/08(月) 19:34:50
>>760
それを見る限りDataSetとかそういう問題じゃないような。
その60万件のデータっていうのは、全てが同時に必要なデータなのかな?
必要なときだけメモリに読み込むようにすればいいのでは?
820デフォルトの名無しさん:2007/01/08(月) 19:36:12
>>818
1.1? 2.0?
821デフォルトの名無しさん:2007/01/08(月) 19:37:01
鯖側でブラウザじゃないアクセスの場合、レスポンス遅くしてるんじゃないのか?

鯖への攻撃防御とか。
822デフォルトの名無しさん:2007/01/08(月) 19:38:47
>>819
記述的には一度に全部読み込んだほうが楽だけど
普通は必要な分だけメモリに割り当てるよな
823デフォルトの名無しさん:2007/01/08(月) 19:39:39
JavaとC#ってVM上か否か以外に何処が違うのか分からない俺が居るw

>>815
多分機械では変換できないと思うよん
824デフォルトの名無しさん:2007/01/08(月) 19:40:40
>>823
インスタンスとオブジェクトの違いを述べよ
825デフォルトの名無しさん:2007/01/08(月) 19:44:36
また お ま え か
826812:2007/01/08(月) 19:45:20
>>820
2.0です。

>>821
それがVPN切ると問題ないので…

あぁ
827デフォルトの名無しさん:2007/01/08(月) 19:48:54
VPN越えてパケットが回ってるだけじゃないのか?
828デフォルトの名無しさん:2007/01/08(月) 19:56:50
>>827
「リモートネットワークでデフォルトゲートウェイを使う」はチェックしていません。
829デフォルトの名無しさん:2007/01/08(月) 20:02:27
デフォルトゲートウェイ
830812:2007/01/08(月) 20:06:54
Route Print してみました。

http://bbs.freedeai.com/src/up0060.jpg

192.168.1.1 ローカルのゲートウェイ
192.168.1.101 実行PC(ローカル側)
192.168.11.1 仮想ネットワークのゲートウェイ
192.168.11.50 実行PC(仮想ネットワーク側)

赤色で消してあるのはVPNサーバーです。

ブラウザでは問題無いので、なんとか出来ると思っているのですが・・・

831820:2007/01/08(月) 20:09:59
>>830
2.0 で GetResponse が低速になる現象、こっちでも確認したことがある。
んで、俺が取った解決策なんだが……



   1.1 を使った(*ノ∀`)



すまね orz
832デフォルトの名無しさん:2007/01/08(月) 20:12:39
……あ、あれ? 今作ってる奴、2.0 でも低速じゃないぞ……?

>>830
試しに、HTTP 1.0 を使ってみてください。もしかしたらもしかするんで。
833デフォルトの名無しさん:2007/01/08(月) 20:14:59
最近のマイクロソフトのゲームは何言語で作られてるの?
まさか自分たちが勧めてるC#使っていないわけないよね?
834デフォルトの名無しさん:2007/01/08(月) 20:16:44
ビルがそんな野暮な事するわけあるまい
835デフォルトの名無しさん:2007/01/08(月) 20:17:10
C#の配列って何かのクラスのインスタンスになっているそうですが、
C言語の配列と同じ感覚でアクセスしたら負荷が酷いことになったりしないでしょうか?心配です。
836デフォルトの名無しさん:2007/01/08(月) 20:17:12
ゲームは主にVC++
837デフォルトの名無しさん:2007/01/08(月) 20:18:06
>>835
酷いことにはならんが、どうしても速度を稼ぐ必要があるならポインタ使えばいい。
838デフォルトの名無しさん:2007/01/08(月) 20:19:46
心配するより、やってみて問題になるくらい遅かったら考えればいんじゃね?
839デフォルトの名無しさん:2007/01/08(月) 20:21:21
心配だったらVC++のアンマネージドの方を使ったらいいよ。
840デフォルトの名無しさん:2007/01/08(月) 20:23:18
>>837-839
ありがとうございます。
まずは素直に配列を使って、駄目だったら他の方法を試してみます。
841デフォルトの名無しさん:2007/01/08(月) 20:34:40
>>836
ネイティブ?
マネージドだと中間コードだからソース覗けるよね?
842デフォルトの名無しさん:2007/01/08(月) 20:35:49
/CLIでもMC++でもないVC++
843デフォルトの名無しさん:2007/01/08(月) 20:58:10
なんで一般ユーザーにはマネージド勧めて
自分たちはネイティブでやってるの?
せこいね
社内専用VC++12.0みたいなのあるのかな?
それくれよ
844デフォルトの名無しさん:2007/01/08(月) 21:02:23
>>843
ここまで冬を感じるレスは初めてだ
845デフォルトの名無しさん:2007/01/08(月) 21:04:15
>>843
ここだけの秘密だよ
VC++8なら手に入る
846デフォルトの名無しさん:2007/01/08(月) 21:12:59
遅い & ソース書き換えたくない & 大量のc++PGが無駄に。
847デフォルトの名無しさん:2007/01/08(月) 21:34:01
ゲーム作るやつは最初からC++でやれ。常識だろ。
業務アプリでC#が遅いってやつはソース晒せ。ボコボコにされるから。
趣味でプログラムしてて開発効率に無関心なやつは黙ってろ。お前に評価できるわけ無い。

大抵このうちのどれかでおk
848812:2007/01/08(月) 21:38:12
>>832
残念ながらダメでした・・・
req.ProtocolVersion = HttpVersion.Version10;
849デフォルトの名無しさん:2007/01/08(月) 22:06:34
tracert
850デフォルトの名無しさん:2007/01/08(月) 22:09:55
く、串は?串は刺さってないの?
851820:2007/01/08(月) 22:20:44
>>848
ごめん。こっちも起動直後の GetResponse で遅くなってた (´・ω・`)
それ以降は全く普通にレスポンス取れるんだけど…… orz
852デフォルトの名無しさん:2007/01/08(月) 22:34:32
もうわかんねえ…

手当たり次第に出すよ。
これじゃないか
http://msdn2.microsoft.com/ja-jp/library/fze2ytx2(VS.80).aspx
853デフォルトの名無しさん:2007/01/08(月) 22:38:29
イベントとデリゲートの違いを述べよ
854820:2007/01/08(月) 22:41:46
>>852
それだ!

WebRequest#Proxy に WebProxy.GetDefaultProxy() を設定すると遅いんだけど、
GlobalProxySelection.GetEmptyWebProxy() にしたら早くなったっぽい。
855デフォルトの名無しさん:2007/01/08(月) 22:41:50
いい加減自分で勉強しろよ。

その質問は、レベル低い。

パンと菓子パンの違いを述べよ。
856デフォルトの名無しさん:2007/01/08(月) 22:43:54
>>855
外人さんは他所に言ってね
857852:2007/01/08(月) 22:44:03
これでよかったのか?

vpn GetResponseでぐぐっただけだけど。
858855:2007/01/08(月) 22:45:45
>>855
>>853あてです。
859デフォルトの名無しさん:2007/01/08(月) 22:47:44
>>855
訳の分からん独り言にいちいちレスすんなよ
860デフォルトの名無しさん:2007/01/08(月) 23:11:40
>>807
これだと解決しないんですけど
イベント発生させるにはデリゲートを呼ばなければいけないわけで
デリゲート内でcheckをtrueにしてイベント処理(チェックがtrueの場合の処理)を
やればいいってことなんでしょうけど
これはすぐにtrueにならなければ、Trueの場合の処理が行えないことになりませんか?
Trueにいつなるかはユーザーのタイミング次第であり、チェックされるまで次の処理をやらないで待機するようにしたいんです
イベントだと、デリゲートが呼ばれた瞬間、イベント処理が始まるので、falseをイベントハンドラに渡してしまう可能性があります
861デフォルトの名無しさん:2007/01/08(月) 23:17:46
言ってることの意味が分からん。
もう少し平易な日本語で喋ってくれ。
862デフォルトの名無しさん:2007/01/08(月) 23:25:19
>>802
つまり、「trueになった」ってことを知りたいんです
trueになるまでは、次の処理をしないようにしたいんです
その後イベントでもメソッドでも何でもいいですけど



Checked=true//←ここでtrueになる

//Trueにならなければここで、待機

MessageBox("Trueになったよ")
863デフォルトの名無しさん:2007/01/08(月) 23:30:38
>>862
true になるのかならないのか、はっきりしてください。
864デフォルトの名無しさん:2007/01/08(月) 23:34:20
>>863
trueには必ずなるけど、いつなるかはわかりませんので
その間入力待ちしたいわけです
865デフォルトの名無しさん:2007/01/08(月) 23:36:31
今時のイベントドリブンな世界で何言っとるだに?
866デフォルトの名無しさん:2007/01/08(月) 23:42:16
>>862
>>つまり、「trueになった」ってことを知りたいんです
trueになった時点でデリヘルに知らせてやればOK
発想を切り替えろ
867デフォルトの名無しさん:2007/01/08(月) 23:45:00
つるーになったらリスナーでも呼びだすようにすりゃエーがニ
868デフォルトの名無しさん:2007/01/08(月) 23:46:59
>>862
while(!checked)Application.DoEvents();
869デフォルトの名無しさん:2007/01/08(月) 23:48:22
>>862
おまえはプログラムに向いてない。

おまえヘイポー?
870デフォルトの名無しさん:2007/01/08(月) 23:49:38
>>866
そのTrueになったってことを知りたいんです
なった後にどうすればいいかじゃないです
871デフォルトの名無しさん:2007/01/08(月) 23:51:29
プロパティでいいじゃないか。ボケ
872デフォルトの名無しさん:2007/01/08(月) 23:51:44
>>870
だからCheckedにセッターでも作ったって、それが呼ばれたら
リスナーよびゃ―インだろがハゲええええええええええええ
873デフォルトの名無しさん:2007/01/08(月) 23:54:04
別スレッドで待機したいならManualResetEventでも使え。
同じスレッドならイベントで出来るだろ。
まあ単なるプロパティにしてもいいけど
ていうか、何がしたいのか分かりやすいようにかいてくれ
874デフォルトの名無しさん:2007/01/08(月) 23:57:44
>>868
それは無理です。
処理が終わる終わらないというわけではないので

>>872
セッターとかカタカナじゃなくて英語で教えてください


Trueになったら処理をしたいわけです
Trueにいつなるかはわかりません
その間は処理はしたくないわけです
Trueになったらデリゲートを呼び出せばいいといいますけど
どういう記述をしろといっているわけですか?
Trueかfalseかに関わらず次の処理が行われるので、デリゲートもfalseのまま呼び出されて
True処理がされないことになります。
875デフォルトの名無しさん:2007/01/08(月) 23:58:50
プロパティだっていってるだろ。
さてはつりだな
つりだ。
876デフォルトの名無しさん:2007/01/09(火) 00:00:03
何がしたいのかさっぱり分かんねーんだよ。
今のコードをさらせ
877デフォルトの名無しさん:2007/01/09(火) 00:00:33
878デフォルトの名無しさん:2007/01/09(火) 00:01:18
>>874
わしゃC#よく知らんが

 SetChecked(boolean checked){

   Checked=true;

   でリゲート呼び出し

 }

って書きゃいんじゃねーの?

んでCheckedをセットするとこで↑のメソッドでセットするように素りゃインだろ?
879デフォルトの名無しさん:2007/01/09(火) 00:02:20
頭が固い人はプログラム書かないほうがいいと思う
まあ自分だけで完結するならいいけど、質問して他人を巻き込まんでこれ
880デフォルトの名無しさん:2007/01/09(火) 00:02:20
久しぶりに大型新人登場だな
881デフォルトの名無しさん:2007/01/09(火) 00:02:22
>>874
主語を書いてくれ。
まず誰と誰と誰(?)が居て。
処理をしたいのは誰で、Trueになったことを知りたいのは誰でとか。
それを省略しているから意味が全く分からんのだよ。
882デフォルトの名無しさん:2007/01/09(火) 00:02:50
SetChecked(true)//←ここでtrueになる

//Trueにならなければここで、待機

MessageBox("Trueになったよ")
883デフォルトの名無しさん:2007/01/09(火) 00:02:54
たとえば、Aさんが歩いてきました
A「おはよう」
と言って来たので
B「おはよう」
と言い返します

しかし、Aさんはいつ来るかもわかりませんし
Aさんがおはようと言うかもわかりません。
言うか言わないか、来るか来ないかしばらくまって
どうしても来なさそうなら、家に帰ろうとします


>言うか言わないか、来るか来ないかしばらくまって
この部分を実現したいんです
884デフォルトの名無しさん:2007/01/09(火) 00:03:12
馬鹿の壁出現。
プロパティ使いなよ。

ところでセッターって言ってる人ってJAVAの人?
885デフォルトの名無しさん:2007/01/09(火) 00:04:04
Java屋さんです
886デフォルトの名無しさん:2007/01/09(火) 00:04:09
デリゲート使って何がしたいのか延べよ
プログレスバーとか、あるだろいろいろ
887デフォルトの名無しさん:2007/01/09(火) 00:05:07
>>878
>>882
それだと自分でTrueしてるじゃないですか?
そうじゃありません。
いつtrueになるかはわからないんです
888デフォルトの名無しさん:2007/01/09(火) 00:05:37
デリゲート使いたいわけじゃなさそうだが。。。
set でいいよ。。。
889デフォルトの名無しさん:2007/01/09(火) 00:06:17
>>886
いや、デリゲートやりたいと一言も言ってません
誰かが、イベントを使えばできると言ったから
そういう話の流れになっただけで
別にデリゲートとかイベントとかはどうでもいいんです
890デフォルトの名無しさん:2007/01/09(火) 00:06:30
>>884
プロパティとてセッターと表現しても伝わるだろ
そんなところにこだわる奴の方が(ry
891デフォルトの名無しさん:2007/01/09(火) 00:07:47
>>887
誰がどうやってtrueにすんのよ?
892デフォルトの名無しさん:2007/01/09(火) 00:07:54
>>887
やっぱ釣氏?
893デフォルトの名無しさん:2007/01/09(火) 00:08:32
>>887
 無 理 諦 め ろ
894デフォルトの名無しさん:2007/01/09(火) 00:08:34
>>887
SetCheckedメソッドがよばれるときがTrueになる時だろがw
今現在Checkedにtrueをセットしてるところを直接セットするんじゃなく
SetCheckedメソッドを介してセットするようにすれば、そのメソッドが
呼ばれたときがTrueがセットされた時とわかるだろうが
ちなみに>>878のコードは

this.Checked=checked;
(C#でthisの表現しラン)

ですたw
895デフォルトの名無しさん:2007/01/09(火) 00:08:35
お前が何がしたいのか分かるように説明しないからだろ。
AさんBさんてのは、別のスレッドなのか?
そうなら>>873
896デフォルトの名無しさん:2007/01/09(火) 00:10:02
>>888
setってプロパティですか?
その中に大量のコードを書くんでしょうか?

setで「Trueになったよ」と知らせるコードだけを書いたとしても
受け取る側はtrueになるまでの間待機しなければなりません
待機している間、たとえばwhileだとwhileの中の処理だけをして
Trueにしてくれないんじゃないでしょうか?
trueになる処理は別スレッドでやりたいんです
897デフォルトの名無しさん:2007/01/09(火) 00:10:11
>>890
セッター書けというと setXXX( )メソッド書く奴がいるんだよ。。。
898デフォルトの名無しさん:2007/01/09(火) 00:10:40
こいつのネタで白ご飯3杯は食べれそうだなww
まずこいつがプログラマには向いて無いことはだけは、はっきり分かった

899デフォルトの名無しさん:2007/01/09(火) 00:11:24
>>896
お前は何を言っているんだ
true にしてから知らせればいいじゃないか
900デフォルトの名無しさん:2007/01/09(火) 00:11:26
>>896
待機してない。
動作は関数とかわらん。
901デフォルトの名無しさん:2007/01/09(火) 00:12:18
そうか、C#ってプロパティはSetXXXとかのメソッドになるわけじゃなかったんだねw
902デフォルトの名無しさん:2007/01/09(火) 00:13:26
新しい釣氏発見。
903デフォルトの名無しさん:2007/01/09(火) 00:13:31
>>896
待ってるんじゃなくてコールバックだろ
904デフォルトの名無しさん:2007/01/09(火) 00:13:40
>>894
いえ、それだと無理です。
それを呼び出すにはどうするんですか?
trueになったら呼び出されるといいますけど
trueにいつなるかはわからないので
setCheckedを呼び出さずに、falseのまま次の処理をしてしまうかもしれません
次の処理をしてしまってからではだめなんです
905デフォルトの名無しさん:2007/01/09(火) 00:15:00
2つのスレッド間で同期をとりたいっていう話なんだろうか?
906デフォルトの名無しさん:2007/01/09(火) 00:15:47
玉石混交w
907デフォルトの名無しさん:2007/01/09(火) 00:15:47
お客様のなかにエスパーのかたはいらっしゃいませんかー?
908デフォルトの名無しさん:2007/01/09(火) 00:16:16
> 受け取る側はtrueになるまでの間待機しなければなりません

ちょwwwww待機wwwww
うけるんですけどwwwwwマジで

それなんていう組み込みwwwww

909デフォルトの名無しさん:2007/01/09(火) 00:16:23
>>899
Trueにいつなるかわからないのに呼び出せないじゃないですか
呼び出す処理をしている部分をfalseのまま飛び越えてしまうかもしれません
それではだめなんです

>>900
それだと、trueになったというイベントが発生しないと
拾えないということですね。もしwhileに入るときにfalseならfolseのまま
ずっとループするわけで
910デフォルトの名無しさん:2007/01/09(火) 00:16:56
>>896
873でいってるけどEvent使えばいいんじゃね?
で、Eventをセットするのをプロパティのsetのとこでやると(日本語わかりづらいが
マルチスレッドのコード書いたことあるなら理解できるはず
911デフォルトの名無しさん:2007/01/09(火) 00:17:33
どうも、コレというレスを意識的に無視してるような気がする
912デフォルトの名無しさん:2007/01/09(火) 00:18:05
>>904
現在のコード

  Checked=True

  なんか処理


修正後のコード

  SetChecked(True)

  なんか処理



SetChecked(boolean checked)

  this.Checked=True;

  if (checked==True){
    OtherThreadObj.callBackMethod();
  }

}
913デフォルトの名無しさん:2007/01/09(火) 00:18:28
だから別スレッドならManualResetEventとか。
AutoReset〜でもいいけど
914デフォルトの名無しさん:2007/01/09(火) 00:18:33
マルチおつwwwww
915デフォルトの名無しさん:2007/01/09(火) 00:19:24
>>912
また間違えた

SetChecked(boolean checked)

  this.Checked=checked)

  if (checked==True){
    OtherThreadObj.callBackMethod();
  }

}
916デフォルトの名無しさん:2007/01/09(火) 00:19:41
エスパーじゃないが、
form1とform2があって、form1の内の自作クラスのcheckedがtrueになったとき
form2でメッセージボックスを開きたいのか?
917801:2007/01/09(火) 00:20:14
修正後のコード

  SetChecked(True)

  なんか処理

これだと、Checkedの初期値はfalseなので
呼び出されるけど処理もしないで、「なんか処理」
することになります
918デフォルトの名無しさん:2007/01/09(火) 00:20:32
>>913
コード書いてやれよ
そうすりゃ収まるんだから
919デフォルトの名無しさん:2007/01/09(火) 00:21:34
>>917
いやだから、プログラム全体の内のどこかではTrueをセットしてるところがあるんでしょ?
そこを修正するんだよ
920デフォルトの名無しさん:2007/01/09(火) 00:22:03
具体的に何がしたいのか分からんからコードなんて書けん。
あといまアク禁で携帯なの…
921デフォルトの名無しさん:2007/01/09(火) 00:22:10
> 呼び出されるけど

誰から?
Checkedをtrueにした時だけ呼ばれるように汁、って話ぢゃねの?
922デフォルトの名無しさん:2007/01/09(火) 00:22:17
まじで何がしたいのか分からん。
まず内容を簡潔にケチらずにすべて書け。
923デフォルトの名無しさん:2007/01/09(火) 00:22:51
つーか今時、逐次実行型のプログラムなんて組もうとするなよ
924デフォルトの名無しさん:2007/01/09(火) 00:23:14
>>922
CheckedがTrueになったタイミングが知りたいんだろ?
お前らも相当アホだなw
925デフォルトの名無しさん:2007/01/09(火) 00:24:02
>>923
お前も何が言いたいのか分からんぞ…
926デフォルトの名無しさん:2007/01/09(火) 00:24:14
>>924
その書き方もあいまい。
主語がないよ。

>>916であってるのか?
927デフォルトの名無しさん:2007/01/09(火) 00:24:25
>>924
後は任せた。
928デフォルトの名無しさん:2007/01/09(火) 00:24:50
こういう話じゃないの?

スレッドその1
{
  :
 Checked が True になるまでブロックして待つ;
 なんか処理;
  :
}

スレッドその2
{
  :
 スレッドその1が見張っている Checked を True にする;
  :
}
929デフォルトの名無しさん:2007/01/09(火) 00:25:06
>>924
俺の分もがんばって!
930デフォルトの名無しさん:2007/01/09(火) 00:25:21
>924
だkら、誰かが CheckedをTrue にするんだろ?
その時、動かしたい処理を呼び出せよw
931デフォルトの名無しさん:2007/01/09(火) 00:25:42
>>928
そういうレベルじゃなさそうw
932デフォルトの名無しさん:2007/01/09(火) 00:25:58
>>924
だから誰がタイミングをしりたいんだ?て話だろ。
パターン別に答えも出とる
933801:2007/01/09(火) 00:26:03
>>921
もし、falseならどうなりますか?
「なんか処理」してしまうでしょ?
なんか処理は、trueにならない限りしたくないんです。

かといって、ずっと足踏みもできませんから、時間がたてば
その処理自体をキャンセルしたいんです

>>919
trueするところはありません。trueになるかならないかは
相手次第です
934デフォルトの名無しさん:2007/01/09(火) 00:26:08
っていうか、この程度の問題を聞き分けられないようじゃSEとしてつとまらねーだろ
客に向かって主語が無いとかユーのかよw
935デフォルトの名無しさん:2007/01/09(火) 00:26:11
>>930
拒否します
936デフォルトの名無しさん:2007/01/09(火) 00:26:25
やばいなwwwwww
次スレよろ!
937デフォルトの名無しさん:2007/01/09(火) 00:26:50
>>933
あいてって誰だよ
trueにするところが無いならtrueになる事がないって事じゃねーかw
938デフォルトの名無しさん:2007/01/09(火) 00:27:18
>>933
「相手」って誰?何者?
939デフォルトの名無しさん:2007/01/09(火) 00:27:41
>>933
if else
940デフォルトの名無しさん:2007/01/09(火) 00:27:48
>>933
DateTime limit = DateTime.Now + TimeSpan.FromSecond(1);
while(!checked && limit < DateTime.Now) Application.DoEvents();
941801:2007/01/09(火) 00:27:58
あー、たくさん釣れましたね。。
明日仕事が早いんでもう寝ます。。
付き合ってくれた方はご苦労さんでした
942デフォルトの名無しさん:2007/01/09(火) 00:28:20
わざとスルーしてるな?
質問にこたえろよwww
943デフォルトの名無しさん:2007/01/09(火) 00:28:30
なぁこれ以上スレの無駄遣いは止めないか?
944デフォルトの名無しさん:2007/01/09(火) 00:29:05
ちょっと楽しいのにw
945デフォルトの名無しさん:2007/01/09(火) 00:29:17
>>801
別のフォームとからしい。w
946デフォルトの名無しさん:2007/01/09(火) 00:29:32
自演もいっぱい入ってるな。
IDがないからわかんねw
947801:2007/01/09(火) 00:29:39
>>928
そうです!!

スレッド2は並列に動いているわけです
そのタイミングをスレッド1で同期させたいわけです

>>930
trueになってからって、なったことを知る方法があるなら
教えてください
948801:2007/01/09(火) 00:30:07
>>941は偽物です

早く回答くれませんか?
>>941じゃないですけど明日早いんですよね
949デフォルトの名無しさん:2007/01/09(火) 00:30:15
本気だろ?
950デフォルトの名無しさん:2007/01/09(火) 00:31:13
なぁ・・・このスレ200レスも無駄にしてるよ?
951801:2007/01/09(火) 00:31:15
>>939
falseの処理はできるだけしたくないんです
ある程度待ちたいんです
952デフォルトの名無しさん:2007/01/09(火) 00:31:24
お前もニセモンだろが
953デフォルトの名無しさん:2007/01/09(火) 00:31:44
>>947
スレッドの前に制御構文勉強しろ。
まずはそこからだ。
954デフォルトの名無しさん:2007/01/09(火) 00:32:17
>>947
だからさっきから言ってるように>>928の例で言うと

スレッド2でCheckedにtrueをセットするところをメソッドかなんかに置き換えればいいんだろ


   Thread2


     Thread1.setChecked(true)



   Trhead1

     setChecked(booean checked){
      ・・・・
     }
955デフォルトの名無しさん:2007/01/09(火) 00:32:37
もう放置して ね な い か ?
956デフォルトの名無しさん:2007/01/09(火) 00:33:07
>947
> trueになったことを知る方法

いヴぇんと、とか
957デフォルトの名無しさん:2007/01/09(火) 00:33:22
922 名前:デフォルトの名無しさん[sage] 投稿日:2007/01/09(火) 00:22:17
まじで何がしたいのか分からん。
まず内容を簡潔にケチらずにすべて書け。
958デフォルトの名無しさん:2007/01/09(火) 00:33:54
>>873
>>895
>>910
>>913
どうせ理解できないんだろ
959801:2007/01/09(火) 00:34:14
>>954
それもだめです。スレッド2は書き換えできません。
thread1だけでなんとかしたいんです
960デフォルトの名無しさん:2007/01/09(火) 00:35:20
>>959
OK。そういう用途なら AspectC# 使え。全部解決する。
961デフォルトの名無しさん:2007/01/09(火) 00:35:47
10ms間隔でtrueかfalseか判定しろ
962デフォルトの名無しさん:2007/01/09(火) 00:35:40
あほか
そんなのポーリングしかないにきまってるだろ
963デフォルトの名無しさん:2007/01/09(火) 00:35:52
>>959
   Thread2

      Thread1.check()




   Thread1

      check(){
       Checked=True;
      }


     
964デフォルトの名無しさん:2007/01/09(火) 00:36:30
Monitorクラスを使えばいいんじゃね?
965デフォルトの名無しさん:2007/01/09(火) 00:37:05
可能なら>>960みたいな反則わざ
それ以外は確実には不可能
966デフォルトの名無しさん:2007/01/09(火) 00:38:12
>>801
以下にキーワードが書いてあるからそれをぐぐれ
>>958

回答してるやつらが釣りかレベル低すぎ
967デフォルトの名無しさん:2007/01/09(火) 00:39:11
やっぱり釣りのテクニックってのもあるんだな。

意味ありげな情報を小出しにしつつ、
もっともらしい仕様をこねくりだして、
煽らず真面目を装い、
レスを読まず、
つねにとんちんかんな方向へ向かって回答者の母性愛を誘い……
968デフォルトの名無しさん:2007/01/09(火) 00:39:49
つーかも前らがちゃんと答えてやってねーから
よくわかんないけどきっと同じようなもんだろうってことでこたえてやってんじゃねーかー
969デフォルトの名無しさん:2007/01/09(火) 00:39:56
>>966
セットする側が変更不可だとよ
970デフォルトの名無しさん:2007/01/09(火) 00:39:58
俺もしょしんしゃ
適当

bool frag=false;
while()
{
while(!isChecked)
{
Thread.Sleep( 適当 )
}

if(frag==false)処理
frag=true;
}
971デフォルトの名無しさん:2007/01/09(火) 00:41:37
ねもい。
972デフォルトの名無しさん:2007/01/09(火) 00:43:02
終わったか
973812:2007/01/09(火) 00:44:11
>>850 >>852 >>854
サンクス!!
それらをヒントに調べたら

WebRequest.Proxy = null;

でOKだったよ!
プロキシを使う・使わないで

WebRequest.Proxy = WebRequest.DefaultWebProxy;

と切り替えることにします。
感謝。
974デフォルトの名無しさん:2007/01/09(火) 00:44:46
終わったところでスレ立て失敗?
ここでスレ立てできないとは。
何故だ
975852:2007/01/09(火) 00:45:53
そいつは良かった。
でも奴にはてこずっている。
976デフォルトの名無しさん:2007/01/09(火) 00:46:37
それって構成ファイル設定可?
977デフォルトの名無しさん:2007/01/09(火) 00:50:57
>>969
変更不可なのかw
.NETでJavassistみたいなのがあるんだったらそれ使うとか。
AspectC#で済むんであればそれでもいいと思うけど
978801:2007/01/09(火) 00:53:58
>>963
falseだった場合はどうなりますか?

>>970
一番外側のwhileはどうなってますか?
あと、繰り返し処理はだめです
1回だけtrueかfalseかの判定を受け取るので
何度もやるとオーバーヒートします
979デフォルトの名無しさん:2007/01/09(火) 00:54:48
オーバーヒート
980デフォルトの名無しさん:2007/01/09(火) 00:55:02
次スレを立てたとさ

ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/
981デフォルトの名無しさん:2007/01/09(火) 00:55:49
>>978
falseならThread1はまってるんだろ?
982801:2007/01/09(火) 00:56:14
1回だけの判定をもらうタイミングがわからないわけで
そのタイミングがくるまで何度も処理するのはダメなんです
1回だけだから、すぐ処理すると初期値のfalseになってしまいます
983801:2007/01/09(火) 00:58:02
>>981
    check(){
       Checked=True;
      }

これがよくわからないです。
ただのメソッドですか?

trueだった場合の処理は、判定をもらうところの
直後でないとだめなんです。

trueならいつ実行してもいいってわけではありません。
だから、変更したときが知りたいんです
984デフォルトの名無しさん:2007/01/09(火) 00:59:14
とりあえず 801 は設計をやり直せ
985デフォルトの名無しさん:2007/01/09(火) 00:59:26
処理ってなんだ。
初期値に戻るてどういうことだ
986801:2007/01/09(火) 01:00:08
>>963
これだと、thread2は、Check()を実行したあとに
次の処理をしてしまいます。
それはダメなんです。
どのthreadも値をもらうまでは待機していなければなりません
987デフォルトの名無しさん:2007/01/09(火) 01:00:54
だから反則わざなしならポーリングしかない
確実には不可能なんだよ
988801:2007/01/09(火) 01:01:14
>>984
設計も何も、値を受け取るだけなので
どんな設計しても値を受けないとだめなんです
その受ける部分の処理だけが知りたいんです。
989デフォルトの名無しさん:2007/01/09(火) 01:01:23
>>986
ttp://msdn2.microsoft.com/ja-jp/library/ms173179(VS.80).aspx
ここの AutoResetEvent とか使えば。
990デフォルトの名無しさん:2007/01/09(火) 01:01:51
おまいら、もうねろよ。

991デフォルトの名無しさん:2007/01/09(火) 01:02:00
それはダメなんです

あとからあとから細かい条件つけんなよ
先に全部出せ
992デフォルトの名無しさん:2007/01/09(火) 01:03:18
おいおい、変更不可の方も待機が必要だぁ?
反則わざ以外不可能
別スレッドじゃなくて変更可能ならプロパティで十分なのに
993デフォルトの名無しさん:2007/01/09(火) 01:03:38
>>982
>そのタイミングがくるまで何度も処理するのはダメなんです
ナニを何度も処理すると思っているのかわからん

   whle(Checked==false);

   Trueになったらする処理

でいんじゃねーの?

まー一度処理シーケンスをちゃんと洗い出して整理した方がいいだろう。
994デフォルトの名無しさん:2007/01/09(火) 01:04:44
>>801
1000まで踊れ
995デフォルトの名無しさん:2007/01/09(火) 01:06:31
変更可ならMonitorでもいい
996デフォルトの名無しさん:2007/01/09(火) 01:06:35
同期イベントでいんでしょ?
どうやるか知らんけど
997デフォルトの名無しさん:2007/01/09(火) 01:08:20
>変更可ならMonitorでもいい
あいや駄目かな?
998デフォルトの名無しさん:2007/01/09(火) 01:08:35
>>993
whle(Checked==false);
こんなコード実際にかいたらどうなるかやってみろやw
999801:2007/01/09(火) 01:08:40
>>992
いや、変更不可のほうは待機しなくていいです
そうでないと、値を返してくれないので
間違ってました

>>993
whle(Checked==false);

↑これしている間も、checkedをtrueにする別のthreadの値を受け付けますか?
1000801:2007/01/09(火) 01:10:04
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。