トップページ⇒tech
1001コメント319KB

C♯相談室 Part25

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯2005/07/26(火) 13:37:30

(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。


過去スレは>>2-5あたり。


関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯2005/07/26(火) 13:38:04
過去スレ その1
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
0003名無しさん♯2005/07/26(火) 13:38:44
過去スレ その2
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0004デフォルトの名無しさん2005/07/26(火) 13:43:39
4 Catch!
0005デフォルトの名無しさん2005/07/26(火) 14:12:08
public Catch(Exception ex) {
 if(ex is NewThreadException)
  ((NewThreadException)ex).Thread.Post("新スレ乙","sage");
}
0006デフォルトの名無しさん2005/07/26(火) 14:29:04
Catchネタはやめれw
0007デフォルトの名無しさん2005/07/26(火) 14:36:45
>>5
どんな例外だそれは。
0008デフォルトの名無しさん2005/07/26(火) 14:48:25
何で新スレ立つのが例外なんだw
……ああひょっとしてこういう違和感があれの違和感なのか……
0009デフォルトの名無しさん2005/07/26(火) 14:50:28
>>8
レス数が1000を超えたら例外が飛ぶはず
0010デフォルトの名無しさん2005/07/26(火) 14:55:49
例外は飛ばない。いずれ1000を超えることは分かり切ったことなんだから。
代わりに1000超えたイベントが発生する。
0011デフォルトの名無しさん2005/07/26(火) 15:00:17
そういうネタは前スレでやれ
0012デフォルトの名無しさん2005/07/26(火) 19:38:40
Excelを動かそうとしているのですが、
Microsoft Excel xx.x Object Libraryへの参照を追加して
Excel.Application app = new Excel.Application();
とすると、「抽象クラスまたはインターフェイスのインスタンスを作成出来ません」とエラーがでます。
なぜでしょうか??
0013デフォルトの名無しさん2005/07/26(火) 19:47:33
>>12
バージョン依存か?

Microsoft Excel 11.0 Object Library

では、問題なし。
0014デフォルトの名無しさん2005/07/26(火) 19:57:46
>>12
new Excel.ApplicationClass(); ではうまく行くというオチ?
0015デフォルトの名無しさん2005/07/26(火) 20:20:42
>>14
Excel._ExcelApplicationClass app = new Excel._ExcelApplicationClass();
だとうまくいきました。しかし、_ExcelApplicationClassにはVisibleプロパティが
ないみたいで、app.Visible = true;
でエラーが出てしまいます。

>>13
ちなみにversionは10.0でした。
0016122005/07/26(火) 20:40:54
なんとか自己解決しました。ソリューションから作り直したらうまくいきました。
どうやら、フォルダにコピーされた
Microsoft Excel 10.0 Object Library(Interop.Excel.dll)が
壊れていたか、リンクがうまくいって無かったのだと思われます。

>>13 >>14
ありがとうございました
0017デフォルトの名無しさん2005/07/27(水) 21:35:59
1乙
0018デフォルトの名無しさん2005/07/28(木) 18:27:43
タブコントロールへ、Windows.Forms で作成した Form をはりつけたい
と思っています。

Form f = new ABCForm.FormMain();
this.TabPage1.Controls.Add(f);
f.Show();

のように、行なうと「トップレベルのコントロールをコントロールに追加できません。」
とエラーになります。

これを


Form f = new ABCForm.FormMain();
f.Toplevel = false;
this.TabPage1.Controls.Add(f);
f.Show();

とするとタブページの中にフォームは表示されますが、Windows の
ボーダー枠(閉じるボタンなど)も表示され、タブページの中を
フォームが移動できてしまいます。

そうではなくて、タブページに、フォーム自体をはりつけて表示
させたいのですが、タブコントロールではそのような事はできません
でしょうか?

実現させる方法がありましたらアドバイスよろしくお願いします。
0019デフォルトの名無しさん2005/07/28(木) 18:48:48
>>18

Form f = new ABCForm.FormMain();
f.Toplevel = false;
f.FormBorderStyle = FormBorderStyle.None;
this.TabPage1.Controls.Add(f);
f.Show();
0020182005/07/28(木) 20:04:19
>>19
ありがとうございました。できました。

もう1つ教えてください。

Windows XP で、画面のプロパティ内のフォントサイズを
標準から大、特大に変更した時に、 C# で作成した自前の
アプリケーションのラベルなども変化させたいのですが、
何かの設定で、行なう事はできますでしょうか?

方法がありましたら教えてください。よろしくお願いします。
0021デフォルトの名無しさん2005/07/29(金) 09:53:33
Windows Forms 2.0 を待つのがいいんじゃね?
0022デフォルトの名無しさん2005/07/29(金) 11:47:16
C♯相談室 Part24
http://pc8.2ch.net/test/read.cgi/tech/1117631000/

前スレ先に埋めろ。
0023デフォルトの名無しさん2005/07/29(金) 11:48:13
埋め開始
0024デフォルトの名無しさん2005/07/29(金) 11:49:08
あ、間違った
埋めるの('A`)マンドクセ
0025デフォルトの名無しさん2005/07/29(金) 11:59:03
残り20レスをどう埋めるか、それが問題だ。
0026デフォルトの名無しさん2005/07/29(金) 16:41:29
EventHandler<T> があるのに EventHandler<TSender, TArgs> がないのはなぜですか
0027デフォルトの名無しさん2005/07/29(金) 18:21:21
senderは常に特定の型とは限らないから。
0028デフォルトの名無しさん2005/07/29(金) 19:04:20
やっと前スレ終わったか
0029デフォルトの名無しさん2005/07/30(土) 00:26:31
こんばんは。
計算式を現す文字列から結果を出す為にJScriptに投げて取得してるのですが、
文字列の中に変数があるので、変数の値は自分で解析したいのですが
うまい方法(変数の切り出し方?)はありませんか?
0030デフォルトの名無しさん2005/07/30(土) 00:42:21
var の後ろが変数じゃね?
宣言せずとも変数が使える言語だから var だけを頼りにしちゃだめだろうけど
0031デフォルトの名無しさん2005/07/30(土) 00:48:25
>>30
というか
3 * a + 2
の文字列からC#側でaに5を代入した上でEvalさせたいと言うことではない? よくわからんけど
0032デフォルトの名無しさん2005/07/30(土) 01:41:54
そんなこと何に使うんだ?
0033デフォルトの名無しさん2005/07/30(土) 01:53:18
再帰下降パーザでも書けば
0034最凶VB厨房2005/07/30(土) 02:06:38
文字列置換でいいんではないかと思われ。
0035292005/07/30(土) 08:17:05
なんか単純に文字列置換で良い感じですね。
あと再帰下降パーザはググって見ました。
自前で構文解析して見たいので勉強します。
どうもでした。
0036デフォルトの名無しさん2005/07/30(土) 09:17:27
2a + 4
とか書かれたらどうするつもりなんだろう。
0037デフォルトの名無しさん2005/07/30(土) 11:30:57
>>36
正規表現の事前チェックで文法エラーははじくでしょ。たぶん。
0038デフォルトの名無しさん2005/07/30(土) 18:13:23
>>36
むしろそれをも包含した文法で。
0039デフォルトの名無しさん2005/07/31(日) 19:01:24
IEコンポーネントで表示したページ内のテキストボックスに文字入力したり
ボタンを押したりするのってどうするんでしょうか?

具体的にはOperaの認証管理みたいな感じなんですが。
0040デフォルトの名無しさん2005/07/31(日) 20:26:51
>>39
HTMLElement にたいして SetAttrubute でいくね?
0041デフォルトの名無しさん2005/07/31(日) 21:03:31
>>40
ぐぐったらJavaScript関連の物ばっかり出てきたんですが・・・
もう少し調べてみます。
0042デフォルトの名無しさん2005/07/31(日) 21:25:35
>>39
The Code Project - Microsoft Web Browser Automation using C# - C# Programming
http://www.codeproject.com/csharp/mshtml_automation.asp
0043デフォルトの名無しさん2005/07/31(日) 22:24:03
>>42
CodeProjectにあったんすか・・・
さすがにないと思って今回だけは見てなかったです。
0044デフォルトの名無しさん2005/07/31(日) 22:54:14
System.Collections 名前空間内の
CollectionBase, DictionaryBase, HashTable の実装の違いが
いまいちよく掴めないのですが、実際何が違うのでしょうか?
0045デフォルトの名無しさん2005/07/31(日) 23:02:36
CollectionBase : 特定の型に対応する値を格納する独自コレクションを作成するための基本抽象クラス
DirctionaryBase : 特定の型に対応するキーと値のペアを格納する独自コレクションを作成するための基本抽象クラス
Hashtable : キーと値にobject型を使用することで任意の型を格納できるキーと値のペアを格納するコレクションの実装クラス
0046デフォルトの名無しさん2005/07/31(日) 23:21:15
>>45
理解できました。
分かりやすい説明をしていただきありがとうございました。
0047デフォルトの名無しさん2005/07/31(日) 23:27:31
いや45本人だが改めて見直しても分かりやすいとは言いづらいよな。
分かったんならいいけど。
0048デフォルトの名無しさん2005/07/31(日) 23:56:35
質問です。
ttp://example.com/h.html
にアクセスしてHTTPのヘッダを取得したいのですが、
どのクラスを使えばよいですか?
0049442005/07/31(日) 23:57:25
CollectionBase
  キー・値の概念を持たない純粋なコレクション
DictionaryBase
  DictionaryEntry(key, value) で固定された (厳密に型指定された) コレクション
  コレクションの延長線上?
Hashtable
  キー(key, value), 値(キーのhash) のコレクション

自分はこんな感じで解釈しましたが…
たぶん大筋では間違っていないような気がしますが。
0050デフォルトの名無しさん2005/08/01(月) 00:07:52
>>48
HttpWebRequest/HttpWebResponse

>>49
> CollectionBase
>   キー・値の概念を持たない純粋なコレクション
いやそれぞれの要素に格納されるのが"値"な。

> DictionaryBase
>   DictionaryEntry(key, value) で固定された (厳密に型指定された) コレクション
>   コレクションの延長線上?
延長というかなんというか。別物?
まあ要素へのアクセスにインデックスの代わりにキーを使うコレクションといった感じ?

> Hashtable
>   キー(key, value), 値(キーのhash) のコレクション
前述の通り要素に格納されているのが値。英語でvalue。
それにアクセスするのに使うのがキー。
キーの同一性チェックにハッシュを使う。

DictionaryBaseの一つの実装としてHashtableが存在すると考えれば。
//いや本当は順番は逆なんだけど。
CollectionBaseの一つの実装がArrayListとか。
//いやこれも順番が逆だけど。
0051デフォルトの名無しさん2005/08/01(月) 00:36:44
>>50
ありがとうございます。
やはり奥が深いです… しっかり頭の中を整理して考え直してみます。
0052442005/08/01(月) 00:55:42
>>50
愛してる!今度夕食でもご一緒しませんか?
0053デフォルトの名無しさん2005/08/01(月) 20:05:14
string mail; のmailをJISコードからshift-JISに変換したいのですが

ぐぐって検索してみたところ
string str = System.Text.Encoding.GetEncoding(932).GetString(bytesData);
と、GetString()の中身がbyteデータなものばかりです。

string str = System.Text.Encoding.GetEncoding(932).GetString(mail);
このように変えましたが、byteデータじゃないとエラーがでます。

mailをいったんbyteデータ型に変換してからGetStringの引数に入れるしかないのでしょうか。
stringのmailを、shift-JISに変換して、stringのstrに入れるというもっとスマートな変換方法はないのでしょうか。
どなたか助言いただけるとうれしいです。
0054デフォルトの名無しさん2005/08/01(月) 20:08:32
>>53
C♯のstringがどういうエンコーディングで文字列データを
持っているか知っているかい?
0055532005/08/01(月) 20:17:03
>>54
助言ありがとうございます。
ぱっとぐぐってみましたが、ずばりのページが見つからなかったので。
なんとなく勘で、.NETだからUnicodeでしょうか?

でも、Unicodeだとして、それがどのように解決に向かうのか思いつきません。
しかしこれはヒントなのですよね。もうちょっと調べて考えて見ます。
0056デフォルトの名無しさん2005/08/01(月) 20:33:27
考えることは大切だよ
0057532005/08/01(月) 20:34:38
string mail; のmailの中身はJISコードだと思うんですよね。

メール受信のコードをそのままはりつけて使ったのですが、そのメール受信コードは、メール1通分のstring mailを返すんです。
メールの世界ではJISコードだから、きっとmailの中身はJISコードに違いないと思ったのですが。

そのコードを改めてよく見てみたところ
ReceiveData(stream, multiLines, bufferSize, Encoding.GetEncoding(50220))
の記述から、やっぱりJISに変換してると思うんですよね。

なので、string型の変数(オブジェクト?)に入っているのはJISコードの文字列だと思うのですが
なにかものすごい勘違いをしているでしょうか。
0058532005/08/01(月) 20:39:02
これはもともとメールのチェック機能をつけようとしたのですが
タイトルに○○が含まれているメールが到着したら知らせるというような。

英文字ならひっかったり引っかからなかったりで、日本語を○○に指定するとひっかからない
ことから、どうもstring mailの中身はJISで、C#のコードがshift-JISだから、それでひっかからないのだな
と思い。
mailの中身はJISコードだろうと思ったのです。
なのでmailをshift-JISに変換しちゃえば、ちゃんとチェックにひっかかるだろうなと思ったわけです。
0059デフォルトの名無しさん2005/08/01(月) 20:39:49
してる。

単純に考えてさ、フレームワークが文字列型を処理するときに一々エンコードを考えて処理しなきゃならないってのは効率悪いと思わない?
0060532005/08/01(月) 21:05:01
>>59
ヒントをくれまして、ありがとうございます。

やっぱり勘違いしてるのですね。
なるほど、このstringの中身は、JISコードだからとかshiftJISだからとかいちいち判別しながら処理しないといけないとなると面倒ですね。

http://www.atmarkit.co.jp/fdotnet/csharptips/010string/010string.html
の最初のほうに、オブジェクト内部では、文字列はUnicode文字として扱われる。 

と、書かれているので、stringに入っている文字列のコードは全部、Unicodeと。

で、C#のコードもUnicodeが扱えるから、特に文字コード変換する必要など最初からなかった。が解でしょうか。

メール受信コードも、もう一度よく見てみると、JISに変換しているというよりも、byteデータを文字列に変換しているように
みえます。

しかし、じゃあなぜメールチェック機能にひっかかってくれないのか。
特に、英文字がひっかかったりひっかからなかったりするのが気になります。
単にコードの書き方が悪いだけなのか。

ということは、stringに入れるとUnicodeになるから、JISやshift-JISはbyteデータに入れてたのですかね。
なぜ、ひっかからないのかに関しても、もうちょっと考えてみようと思います。

0061デフォルトの名無しさん2005/08/01(月) 22:34:08
自作ライブラリを配布したいんですが、
その際本体のdllやタイプライブラリをインポートしたアセンブリとか
どういう形態で配布したものでしょうか。

ユーザにgacutilやregasmさせるわけにはいきませんよね……
0062デフォルトの名無しさん2005/08/01(月) 22:47:09
.exeと同じ位置に配置させる。
0063デフォルトの名無しさん2005/08/01(月) 22:48:23
>>61
なにを迷っているのかいまいち分からんが…
自作ライブラリ配布ならDLL群をそのままzipにでも圧縮すればいいだろ
どうせ使うのDeveloperなんだし。
っていうかよっぽどのもの以外GACに入れるな。うざい
0064デフォルトの名無しさん2005/08/02(火) 00:44:29
GACには、地球上の80%以上の人間が使うかもしれないとき以外、使ってはならない。

exeと同じところにDLLがいっぱいあるとうざいから、フォルダ切ってそこに入れればすっきりするよ。

推奨はされてないが、.configファイルに
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="bin" />
        </assemblyBinding>
    </runtime>
とか書いとけばよし。
0065デフォルトの名無しさん2005/08/02(火) 01:03:23
GACはもはやMSが作ったライブラリ専用
0066612005/08/02(火) 01:06:59
>>63
>>64
>>65
ありがとうございます。
最近始めたんでGACに入れる重大さとか分かってませんでした。

聞かぬは一生の恥と思ってお訊ねしますが
http://mobiquitous.com/programming/ietoolbar.html
http://www.codeproject.com/csharp/dotnetbandobjects.asp
ここで見て自作ツールバーをつくったんです。
自作.dll、BandObjectLib.dll、Interop.SHDocVw.dll、Interop.Shell32.dll

以上のファイルを配布してインストールしてもらう場合、
どうしたらいいんでしょうか?
regasm /codebase....とバッチにでもするんでしょうか……
0067デフォルトの名無しさん2005/08/02(火) 01:11:08
GACに入れてくれてかつ複数バージョンのSXSをサポートしないという
とってもありがたい大手のライブラリもあったりするが
0068デフォルトの名無しさん2005/08/02(火) 02:35:32
まあいいじゃないの
おまえらのsystem32にもへんなDLLとかいっぱい入ってない?
0069デフォルトの名無しさん2005/08/02(火) 06:40:37
>>66
なに?配布対象はEndユーザー?
それならインストーラーつくるのが普通。VSでもWiXでも好きにどうぞ
0070デフォルトの名無しさん2005/08/02(火) 07:39:39
ファイルバージョンは違うのに、アセンブリバージョンが同じ、厳密名も同じ、
でもインターフェースが変わっててまるで互換性がないなんてdllがあったなぁ。
0071デフォルトの名無しさん2005/08/02(火) 07:41:52
.NETになってもDLL HELLは続きそうですね
0072デフォルトの名無しさん2005/08/02(火) 11:01:11
[STAThread] をつけると動作しなくなる ActiveX に対して
どういう対処をすればええ?
0073デフォルトの名無しさん2005/08/02(火) 11:08:18
MTAThreadのスレッド作ってそれにアクセスさせるとか?
0074デフォルトの名無しさん2005/08/02(火) 13:08:36
Subject: あいうえお
で、メールを送ったんです。そしてそれを受信したら

Subject: =?iso-2022-jp?B?GyRCJCIkJCQmJCgkKhsoQg==?=
と、このように文字化けしていました。
iso-2022-jpを調べてみると、JISコードの一種だということがわかりました。

C#はUnicodeだから、JISなのにUnicodeで変換したため文字化けしたものと思われます。

これをJISで変換してやって、stringに入れなおしてやれば
Subject: あいうえお
に戻るだろうと思い、下記のようにコードを書きましたが、相変わらず

Subject: =?iso-2022-jp?B?GyRCJCIkJCQmJCgkKhsoQg==?=

と表示され、まったく、あいうえおになってくれません。化けてしまったものを、元に戻そうと思ったら
こんな単純な変換だけじゃだめということなのでしょうか。

public Form1()
{
   string str = "Subject: =?iso-2022-jp?B?GyRCJCIkJCQmJCgkKhsoQg==?=";
   byte[] byteArray = Encoding.ASCII.GetBytes(str);

   string str2 = System.Text.Encoding.GetEncoding(50220).GetString(byteArray);

   MessageBox.Show(str2, "test32");
}
0075デフォルトの名無しさん2005/08/02(火) 13:17:31
>>74
お前はまずRFCを読め。
親切にヒントをやるが、それがメールのフォーマットなんだよ。
文字化けなどしていない。
0076デフォルトの名無しさん2005/08/02(火) 13:17:39
GyRCJCIkJCQmJCgkKhsoQg==

いかにもたこにもどう見てもBase64でエンコードされてるな。

そもそもどういうやり方でメールを受信してるのさ。
0077デフォルトの名無しさん2005/08/02(火) 13:20:25
あなたがメールの仕様を調べる必要がある。
そしてこのスレはC#相談室であるから、メールの仕様に関しての話題はふさわしくない。
0078742005/08/02(火) 13:36:44
皆さんアドバイスありがとうございます。

>>75
http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
ここ長いのですが、iso-2022-jpとタイトル打ってるとこだけ読んでみます。
文字化けではないのですね。またなにか勘違いをしていたようです。

>>76
ということはBase64をデコードすればいいのかな。

string str = "Subject: =?iso-2022-jp?B?GyRCJCIkJCQmJCgkKhsoQg==?=";
byte[] byteArray = Encoding.ASCII.GetBytes(str);

string str2 = System.Convert.ToBase64String(byteArray);

MessageBox.Show(str2, "test32");

このように書いてデコードしてみましたが、あいうえおには戻りませんでした(T T)

メールの受信は、.NETでは標準でライブラリが提供されてないということで、ネットでいろいろ検索した
メール受信のコードをそのまま引用しました。

string msg = Encoding.GetEncoding(50220).GetString(ms.ToArray());

の記述から、JISにエンコードして、stringに入れて返してるんだろうなと思われます。

>>78
メールの仕様をまず勉強したほうがいいのですね。
調べてそれでもわからないときは、ふさわしそうなスレで相談しようかと思います。
0079デフォルトの名無しさん2005/08/02(火) 13:51:39
どぼんか。そうか。
0080デフォルトの名無しさん2005/08/02(火) 14:05:02
>>78
めんどくさいやつだな。よめ
ttp://www.y-adagio.com/public/standards/tr_mime-p3_2047/mime2047toc.htm

それとDecodeMailのサンプル。ぶっちゃけ即興で書いたのでバグってるだろうが。

private static readonly Regex regex = new Regex(@"=\?(?<Encoding>[^?]*)\?[B|Q]\?(?<EncodedText>.*?)\?=");
public static string DecodeMail(string value) {
 return regex.Replace(value, new MatchEvalator(OnMatch));
}
private static string OnMatch(Match m) {
 string encName = m.Result("${Encoding}");
 string encText = m.Result("${EncodedText}");
 return Encoding.GetEncoding(encName).GetString( Convert.FromBase64String(encText) );
}
0081782005/08/02(火) 14:17:32
>>80
親切な方、どうもありがとうございます。
正直メールのどこから手をつけていいのかといったかんじだったので大変助かります。
読む範囲を限定していただいたので、紹介サイトを集中して読むことにします。

サンプルまで書いていただいて本当に親切にありがとうございます。
解読してよく勉強しようと思います。
0082デフォルトの名無しさん2005/08/02(火) 15:27:41
礼儀正しいのになんかイライラする奴だな(´д`)
0083782005/08/02(火) 17:05:46
>>80
紹介サイト読みました。まだ5割ぐらいしか消化しきれてませんが、メーラーなんか作るとき困ると思うので
がんばって理解しようと思います。

サンプルをいろいろいじって動かしたところ、Subject: あいうえお が出力されましたヾ(*´∀`*)ノ
こちらも消化しきれてないので、解析して理解できるようにがんばろうと思います。

大変たすかりました。どうもありがとうございました。
0084デフォルトの名無しさん2005/08/02(火) 17:13:19
>>82
慇懃無礼な奴だからだよ。
言葉の端々から、「早く教えろヴォケ」という雰囲気がにじみ出てる。
0085デフォルトの名無しさん2005/08/02(火) 21:47:36
>>84
というか、突っ込みどころがありすぎるから。
レスもらった後理解&むかう方向が毎回間違ってるから、
「だから違うだろこのやろう」って突っ込みたくなるのです
0086デフォルトの名無しさん2005/08/02(火) 22:45:45
ム板の質問スレはそういう人には向かない
0087デフォルトの名無しさん2005/08/03(水) 11:46:49
データベースですがたとえば商品マスタテーブルに種別の列があって、
1が果物、2が野菜だとします。
これを普通にADO.NETでDataTableに読み込んで、DataViewを
そのままDataGridとかにバインドすると、種別の列には当然
1と2が表示されますが、これを果物とか野菜とか表示させるには
どういう方法がよいでしょうか。
C#のコード内では種別のenumを作ったので、GatName()で
名前が取れるんですが。
いまんとこ、
(1)種別名マスタを別テーブルで作ってLEFT JOIN
(2)DataTableに種別名のColumnを追加して、Fill後に1行ずつ埋める
くらいしか思いつきません。
0088デフォルトの名無しさん2005/08/03(水) 12:05:29
データベース板のADO.NETスレ向きのネタだな。
0089デフォルトの名無しさん2005/08/03(水) 13:13:03
多少面倒だが、
PropertyDescriptorを継承したクラスを作ってGetValueのオーバーライドで列挙体の値を返すようにする。
該当するカラムのDataGridColumnStyleのPropertyDescriptorプロパティに上記のクラスのインスタンスを設定。
で一応いける。
0090デフォルトの名無しさん2005/08/03(水) 14:47:36
あるコントロールを継承して新しくコントロールを作成します。

特定のプロパティを非公開にしたい場合
どうすれば?

0091デフォルトの名無しさん2005/08/03(水) 15:08:56
>>90
無理。派生クラスは「完全に」基底クラスとして振舞うことが出来る必要がある。
というか派生クラス⊂基底クラスの関係理解してる?
virtualプロパティなら上書きしてNotSupportedExceptionあたり投げることも出来るが、
あまり推奨しない。

ただしデザイナで表示させないことやエディタ(インテリセンス)で表示させないように
指定することなら出来る。前者がBrowsableAttribute、後者がEditorBrowsableAttribute。
指定しても普通にアクセスは出来るからあまり意味はないんだが。
0092デフォルトの名無しさん2005/08/03(水) 15:19:32
>>91
> ただしデザイナで表示させないことやエディタ(インテリセンス)で表示させないように
> 指定することなら出来る。前者がBrowsableAttribute、後者がEditorBrowsableAttribute。

こいつは派生クラスでいじるにはnewで隠蔽する必要があるんじゃないか?
0093デフォルトの名無しさん2005/08/03(水) 15:26:44
>>92
もちろん。でもその際のnew隠蔽はbaseそのまま呼ぶべきっていうか。

((Control)this.myControl).Visible = true;
((MyControl)this.myControl).Visible = true;

で結果が違うのでしゃれにならんというか、この例だとあからさまに変だけど

void myControl_Click(object sender, EventArgs e) {
 Control ctrl = sender as Control;
 if(ctrl!=null) {
  ctrl.Visible = true;
 }
}

とかもあるので・・・。
0094932005/08/03(水) 15:35:09
追記。
そもそもControlクラス内で
this.Visible = true;
の一行があるだけでもアウトだわな。
0095902005/08/03(水) 17:07:29
継承ではなく包含にします。
>>91-94 ありがとうございました。

参考までに
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17197&forum=7
0096デフォルトの名無しさん2005/08/04(木) 01:03:12
log4netでローカルアプリケーションのログをとり、リアルタイムでログを閲覧するには
どのようにするのがベターでしょうか?

RollingFileAppenderを使ってファイルに書き込みつつ、ファイルを定期的にリロードしてみせるアプリ作るとか、
TraceAppenderを使って、GUIにログを吐き出すTraceListenerをアプリケーション側に実装するとか考えたんですけど。
0097デフォルトの名無しさん2005/08/04(木) 11:07:44
Visual Studioは11月17日発表
ttp://www.atmarkit.co.jp/news/200508/04/ms.html
0098デフォルトの名無しさん2005/08/04(木) 14:53:59
http://pc.watch.impress.co.jp/docs/2005/0804/mobile301.htm

マイクロソフトOBでWindows 1.xの時代からWindowsの開発に関わっていた方(2000年に退職)から
コメントをいただいた。引用させていただくと、
    
“私の住むシアトル近辺のマイクロソフトOBの間では、2004年の前半に「Longhornがキャンセルに
なったらしい」という噂がさかんに交わされ、その後次々と「OFSはLonghornとは別」、
「Managed APIは採用しない」とのアナウンスがありました。結局の所、もともと計画していた
Longhorn は出せなくなったけれども、いまさらキャンセルになったとは言えないので、出せるもの
だけかき集めてLonghornと呼ぶことにした、という見方がこちらでは一般的です”
0099デフォルトの名無しさん2005/08/04(木) 17:10:09
http://page10.auctions.yahoo.co.jp/jp/auction/m17962065
Visual C# .NETによる
0100デフォルトの名無しさん2005/08/04(木) 17:11:56
C#ばかり最近使ってたけど、久しぶりにC++使ってみた。うむむ・・やっぱり速い。
C#は、小さなプログラムだと結構速いんだけど、少し大きなプログラムになると、
再トランスレート処理が途端に増えるのか、ものすごく重くなる。
0101デフォルトの名無しさん2005/08/04(木) 17:57:03
再トランスレート処理って何?
0102デフォルトの名無しさん2005/08/04(木) 20:49:15
http://www.google.com/search?num=50&lr=lang_ja&q=%8D%C4%83%67%83%89%83%93%83%58%83%8C%81%5B%83%67%8F%88%97%9D&ie=ShiftJIS&oe=ShiftJIS
0103デフォルトの名無しさん2005/08/04(木) 21:02:18
で、検索結果が無いんだが。
01041022005/08/04(木) 21:04:37
>>103
つまりそういうことを言いたかったわけだ。
0105デフォルトの名無しさん2005/08/04(木) 21:17:09
なるほど、漏れも検索した、で>>100には是非、説明をして欲しい。
0106デフォルトの名無しさん2005/08/04(木) 21:17:10
再トランスレート でググレよ
0107デフォルトの名無しさん2005/08/04(木) 21:18:33
ファイルのパス or フォルダのパス が入っている文字列から
それがファイルなのかフォルダなのかを判断するにはどうしたらいいのでしょうか?

調べていて考え付いたのは
System.IO.File.ExistsとSystem.IO.Directory.Existsを使ってtrueな方
という方法なのですが,ほかによいやり方があったら教えてください.
0108デフォルトの名無しさん2005/08/04(木) 21:21:44
>>106
↓とC#がどう関係があるのか、説明してくれないか?
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=DVXA,DVXA:2005-19,DVXA:ja&q=%E5%86%8D%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%AC%E3%83%BC%E3%83%88
0109デフォルトの名無しさん2005/08/04(木) 21:21:45
それでいいんじゃない。
0110デフォルトの名無しさん2005/08/04(木) 21:22:06
それじゃできんだろ
0111デフォルトの名無しさん2005/08/05(金) 15:58:09
テキストファイルをexeに埋め込んで、「読み込む」は、ぐぐるといくつかヒットするのですが
「書き込む」が見当たりません。

exeに埋め込んだテキストファイルに書き込みといったことはできないのでしょうか。
0112デフォルトの名無しさん2005/08/05(金) 16:02:12
実行中の.exeをバイナリファイルで開いて、
どこか適当なリソース部分1バイト書き換えて保存してみたらどうなるか分かるか?
0113デフォルトの名無しさん2005/08/05(金) 16:14:41
windowsサービスは起動や停止が可能ですよね。
でもWebサービスの場合は、デプロイしたら自動的に起動して、
停止することができません。
IISごと停止することは可能ですが。

Webサービスを、一時的に停止できる方法って、特に無いですよね?
無理やり、エラーを返す状態にするしかないですよね?
01141112005/08/05(金) 16:14:52
>>112
助言をありがとうございます。
想像ですが、固まってエラーはいて落ちちゃうんじゃないかなと思われるのですが

道理で書き込みの方法を解説した記述が見つからないなと思ったのですが
読み込みはできるけど書き込みはできないが解なのですね。

メールのパスワードを外部のテキストファイルに平文で書き込んでは、まずいかなと思い。
そのテキストファイルをexeに埋め込んじゃえば、セキュリティも保たれるし、簡単なんじゃと思いついたのですが
甘かったようです。

しょうがないので、パスワード部分を暗号化して、外部テキストファイルに保存しようと思うのですが
大体皆さん、ユーザが入力したパスワードを保存する場合、暗号化といった手法を使うのでしょうか。
パスワードをまずくないように保存しようと思えば、後は暗号化しか思いつかないのですが
0115デフォルトの名無しさん2005/08/05(金) 16:57:32
byte[] test;の中身を見たいのですが、どのようにすれば数値を見れるのでしょうか。

textBox1.Text = Encoding.Unicode.GetString(test);
このように書いて、textBoxに表示させましたが、stringに変換したため、筰・XッSィy|メー%A・,o桎r�香E のような感じに出力され

BinaryWriterで、txtに保存すれば数値が見れるかもと思ったのですが、開いてみると、\り?ュ・%[オワ;ッシ=gツH・ハ( のような感じで
出力されます。

byte配列に入っている数値を見たいのですが、どのように書けばstringに変換せずに見ることができるでしょうか。
0116デフォルトの名無しさん2005/08/05(金) 17:02:46
中身ってなによって話。

まあ2桁16進表記なんだろうけど。
foreachでToString("X2")していくとか、
BitConverter.ToStringするとか。
01171152005/08/05(金) 17:05:43
>>116
BitConverter.ToStringという便利なものがあるのですね。
それ使ってみます。どうもありがとうございました。
0118デフォルトの名無しさん2005/08/05(金) 17:24:14
ToStringの書式の質問です。
5桁の表示で110を ” 110"の文字列、前にスペース2個あるを取り出したいです。
D5も駄目だし,#####も駄目でした。何か書式ありますか?
0119デフォルトの名無しさん2005/08/05(金) 17:27:05
PadLeftすれば良いじゃない
0120デフォルトの名無しさん2005/08/05(金) 17:44:23
できました、有難うございます。
0121最凶VB厨房2005/08/05(金) 22:02:17
一方向関数
0122デフォルトの名無しさん2005/08/06(土) 00:59:06
すいません、ビューステイトにコレクションクラスを入れると怒られちゃうのですが
どうしたらいいんでしょうか?
データセットとかデータテーブルとかストリングクラスなんかは入るのですが・・・・
0123デフォルトの名無しさん2005/08/06(土) 01:25:57
stringまでカナ表記なのは珍しいな。
0124デフォルトの名無しさん2005/08/06(土) 01:30:22
中途半端に「クラス」だけ半角なのがもどかしい。
0125デフォルトの名無しさん2005/08/06(土) 01:40:22
いや、もどかしいの狙ったところもあるんで、あの、ビューステイと・・・
0126デフォルトの名無しさん2005/08/06(土) 02:48:55
>>122
シリアライゼーション&デシリアライゼーション出来ないから。
ちなみにセッションにも同じコレクションクラス入れてたりしないよな?そんなことすると
InProc以外で動かないアプリの出来上がりですよ?
0127デフォルトの名無しさん2005/08/06(土) 08:38:28
>>114
exe に埋め込んでもセキュリティは保たれない。
暗号化はここ参照。
http://dobon.net/vb/dotnet/string/encryptstring.html
01281142005/08/06(土) 11:03:20
>>127
アドバイスをありがとうございます。
そうですか。埋め込んじゃえば見えなくなるからセキュリティも保たれて簡単なんじゃと思ったのですが。
セキュリティが保たれないのですか。解析なんかされると見えてしまう。ということなんでしょうかね。
埋め込んでも書き込めないし、最初からパスワードを保存する方法としてはふさわしくなかったのですね。

とりあえず、DESで暗号化してファイルに保存は実装成功しました。
保存したtxtファイルを開いたら、わけのわからない文字記号の羅列になってるし、保存したファイルから
復号も成功してるので、ちょっと不安要素もないわけでもないのですが、とりあえずこれでいいだろうと
思うことにしました。
0129デフォルトの名無しさん2005/08/06(土) 11:41:46
>>128
まぁそれ以上しようがないのです、ローカルに保存する限り。
最もセキュリティを保つには「復元できないもの」なわけですが、
当然「参照も出来ない」わけで処理を複雑にしたりして「誤魔化す」
しかないんですよ。解析されればどうしようと見ることができます。
01301282005/08/06(土) 11:55:26
>>129
アドバイスありがとうございます。
ということはパスワードのセキュリティを保つ方法として、DESで暗号化して保存。でOKということですね。
もっと解析が難しい暗号技術を使うという手もあるかもしれませんが。
DESの方がC#で実装が簡単だし、とりあえずはこれでよしということで済まそうと思います。
0131最凶VB厨房2005/08/06(土) 12:07:39
です^3=3です
3です^3=6です
6です^3=9です
なんです。
0132デフォルトの名無しさん2005/08/06(土) 12:35:40
MailMessage mm = new MailMessage();
mm.To = "aaa@***.ne.jp; bbb@***.ne.jp";

このように書いて送信すると

To: <aaa@***.ne.jp>, <bbb@***.ne.jp>
上のように、To:に複数のメールアドレスが載ったものを受け取ることになりますよね。

ところが、プロバイダなどの大量に一気にメールを送信したであろうメールのToが
To: <aaa@***.ne.jp>

なんです。こういった大量送信されたメールは皆Bccに書いて送ってるものだと思っていたのです。
mm.Bcc = "aaa@***.ne.jp; bbb@***.ne.jp";

このように書いて送信すると

To:
Cc:

のように、ToにもCcにも何も書き込まれずに送られてきますよね。

大量送信されたであろうメールが、なぜTo: <aaa@***.ne.jp> で送られてくるのか不思議なのですが
一通ずつToにアドレスを入れて送ってるのか?とも思うのですが、そんな効率の悪いことするだろうか
という疑問がわきます。
大量送信されたメールが使っているメーラーでそういったふうになるようにしているのでしょうか。

0133デフォルトの名無しさん2005/08/06(土) 15:54:31
>132
スレ違い。
C#とは関係ないし。
UNIX板かLINUX板のメル鯖スレで聞け。
01341322005/08/06(土) 17:11:56
>>133
誘導ありがとうございます。
メールサーバのスレが的確なのですね。
そちらで聞いてみようと思います。
0135デフォルトの名無しさん2005/08/06(土) 19:49:23
ウェブページのソースからリンクを抽出したいんですが
例外が出たり、リンク以外の物を抽出してたりします
どうすればうまくいくでしょうか

//リンク抽出
string link = "";
int s = 0;
int e;
while (true)
{
s = this.source.IndexOf("<a href=",s)+9;
e = this.source.IndexOf("target", s)-2;
link += this.source.Substring(s, e - s) + "\n";

if (this.source.IndexOf("<a href=") == 0)
break;
}

this.sourceにはウェブページのソースが入ってます
0136デフォルトの名無しさん2005/08/06(土) 19:52:59
>>135
正規表現にチャレンジ
0137デフォルトの名無しさん2005/08/06(土) 19:58:42
正規表現使え。
厳密に取るのは結構難しいが、
@"<a .*?href=(?:""(?<url>.*?)""|'(?<url>.*?)'|(?<url>.*?)[ >])"
こんな感じで。
0138デフォルトの名無しさん2005/08/06(土) 20:00:51
MSHTMLなら完璧に取ってこれね?
0139デフォルトの名無しさん2005/08/06(土) 20:04:31
正規表現ですか
難しそうなので避けてたんですがやるしかないみたいですね
ありがとうございました
0140デフォルトの名無しさん2005/08/06(土) 20:53:42
VS2003でソリューションを作って、中にC#のWinプロジェクトと
C++のDLLプロジェクトを作って、C#からDLL起動等、問題なく動作しているが。
C#内でブレークやデバックが出来るが、C++のDLL内でブレークが動作せず。
デバックが出来ない。何か設定ミスをしている?
それとも、出来ないのが正しいですか?
0141デフォルトの名無しさん2005/08/06(土) 21:20:56
MSHTMLで思い出した。
AxWebBrowserを介さずに直接MSHTMLでhtmlをパースすることってできるのかな?
HTMLDocumentをnewしたあとopenはずっとloadingのままになるしwriteでhtmlを書き込もうにもCOMException"種類が一致しません"。
HTMLWindow2はnewできない……。
0142デフォルトの名無しさん2005/08/06(土) 21:39:55
>>141
クラスを直接使うんじゃなくて変なおまじないが必要だった希ガス
たしか親ドキュメントに空のHTMLを書き込んでからなんかするような
01431402005/08/06(土) 22:53:23
いろいろいじっていたら止まるようになった・・・・・・・・・・
0144デフォルトの名無しさん2005/08/07(日) 02:58:54
>>143
なにがいいたいのかわからん。
唯一わかってるのは、「いじってたら」でイジリー岡田を思い出したと言うことだ。
01451222005/08/08(月) 00:18:07
>>126
01461222005/08/08(月) 00:19:12
>>126
えー!そうなんですか?
でもdatasetとかdatatableはできますよね?

結局配列っぽいコレクション型をセッションやビューステイとにほうりこみたいなら
datatableの形式にしないとダメって事ですか?

uza−
0147デフォルトの名無しさん2005/08/08(月) 00:24:02
おまえがうざい
0148デフォルトの名無しさん2005/08/08(月) 00:32:03
代弁どうも
0149デフォルトの名無しさん2005/08/08(月) 01:09:35
>>146
基礎知識の足りないやつだな
「お前が必要なコードを書いていないから動きません」って話なんだが?
コードもかかんと動くわけがなかろう。そんな当たり前の話も分からないのか
01501222005/08/08(月) 02:40:56
必要なコードって、
じゃあビューステイとにコレクションクラスを格納することも可能なんですか?
何かコードかけば。
0151デフォルトの名無しさん2005/08/08(月) 20:54:06
ビューステイ
0152デフォルトの名無しさん2005/08/08(月) 23:39:42
ていうかよ、コレクションて具体的に何よ?
コレクションクラスじゃなくて、中に格納してるもんが
シリアライズ出来るようになってないだけじゃないのか?
0153デフォルトの名無しさん2005/08/08(月) 23:53:55
>>130
DESのキーはどこに…
0154デフォルトの名無しさん2005/08/08(月) 23:54:01
もっと分かりやすく書け。
01551542005/08/08(月) 23:54:32
>>152な。
01561522005/08/08(月) 23:59:30
>>155
??
0157デフォルトの名無しさん2005/08/09(火) 02:53:45
DataGridのセルを編集できる状態にして、
そのテキストの一番右側までいくと勝手に
次のセルが選ばれてしまう。これを簡単に辞めさせる
方法はないのでしょうか?うっかり右キー押したら
編集ENDとか虚しすぎます
0158デフォルトの名無しさん2005/08/09(火) 04:40:39
環境:VS.NET2003pro

抽象クラスつくって、それを継承するクラスを書いているんだけど…
この抽象メソッドの実装を書くときに、自分でコピペしないとダメですか?
自動で継承もとからメソッドの概要copyしてくれる機能とかないでしょうか。

イベントハンドラのTAB押下での自動追加は便利だったんで、
そんな追加方法があるなら知りたいなぁ。
0159デフォルトの名無しさん2005/08/09(火) 07:08:05
継承してTAB押す
0160デフォルトの名無しさん2005/08/09(火) 07:39:52
2005最強と
0161デフォルトの名無しさん2005/08/09(火) 12:22:27
あの展開機能は萌える。
0162デフォルトの名無しさん2005/08/09(火) 13:36:11
自動スケルトン機能は確かに便利だがたまに発動しないことがあってむかつく
0163デフォルトの名無しさん2005/08/09(火) 15:06:18
言語習得と、パケット抜き(pop等の暗号化がされてないパス程度の)のソフト作成をあわせて2週間で
終わらせるということになったのですが、どれくらいのペースで進めたら良さそうかということと
お勧めの入門書などがあったら教えていただけないでしょうか?
0164デフォルトの名無しさん2005/08/09(火) 15:31:16
推薦図書/必読書のためのスレッド PART25
http://pc8.2ch.net/test/read.cgi/tech/1119115838/
0165デフォルトの名無しさん2005/08/09(火) 16:28:39
ピクチャーボックスを2つ重ねて
手前のイメージの背景を透明にしました。(MakeTransparent使用)


しかし手前のイメージの透明背景部分には
フォームの背景が見えます。

奧のイメージを見せるにはどうしたら?
0166デフォルトの名無しさん2005/08/09(火) 16:36:16
どぼんに書いてある
0167デフォルトの名無しさん2005/08/10(水) 17:22:38
VS.NET2002、ASP.NETで質問です
1列目:TemplateColumn 2列目:EditCommandColumn(編集、更新、キャンセル)
というDataGridがあるんですが、DataBindする前に、ソースの中でEditCommandColumn列の前に
↓のように連結列を動的に挿入してます。
dataGrid.Columns.AddAt(1,col1);
そうすると、編集とキャンセルは正常に動作するんですが、
更新をクリックすると何故かキャンセルのイベントハンドラに飛んでしまいます。
どなたかお助けを・・・。
//編集
private void EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  dg.EditItemIndex = e.Item.ItemIndex;
  ListDataBind();
}
//更新
private void UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  //アップデート処理
}
//キャンセル
private void CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  dg.EditItemIndex = -1;
  ListDataBind();
}
private void ListDataBind()
{
  dg.Columns.AddAt(1,col1);
  dg.Columns.AddAt(2,col2);
  dg.Columns.AddAt(3,col3);
  dg.DataBind();
}
0168デフォルトの名無しさん2005/08/12(金) 00:11:15
更新リンクボタンのコマンド名がキャンセルになっていないか
0169デフォルトの名無しさん2005/08/12(金) 18:07:08
フォーム上のコントロールの重なり(ZOrder)を調べるにはどうしたらいいですか
0170デフォルトの名無しさん2005/08/12(金) 18:17:13
Controls.GetChildIndex
0171デフォルトの名無しさん2005/08/12(金) 18:19:22
ListViewの列の幅を、アプリを閉じても保存してくれるようなプロパティってないでしょうか。
一応、プロパティの説明を全部読んでみましたがそれらしいものはありませんでした。
しかし、もしあったら悔しいので、自分で各列の幅を記録するコードを書く前に聞いてみようと思い質問しました。
0172デフォルトの名無しさん2005/08/12(金) 18:23:43
質問です

dllというものを知り、フリーで公開されているのを使ってみようと思ったのですが、どのメソッドを使って読み込み、呼び出すかわかりません。
MSDNでもdllに関する記述はたくさんあるものの、関係のないものしか見つかりませんでした。
基礎的なサンプルソースをいただけませんか?
0173デフォルトの名無しさん2005/08/12(金) 18:30:51
>>172
DllImport
http://wisdom.sakura.ne.jp/programming/cs/cs65.html とか
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html とかどうだろう。
0174デフォルトの名無しさん2005/08/12(金) 18:40:33
>>171
> ListViewの列の幅を、アプリを閉じても保存してくれるようなプロパティってないでしょうか。

フォームの位置とか保存してくれるプロパティも無いだろ?
ていうか"保存"は動作だからプロパティにはならないんじゃね?

>>172
ちなみにそれが.NETで書かれたDLLなら参照設定に追加するだけで自由に扱えるぞ。
01751712005/08/12(金) 18:42:22
>>174
回答ありがとうございます。
やっぱりないのね。これで心置きなくコードが書けます。
0176デフォルトの名無しさん2005/08/12(金) 20:34:45

漏れはC++/Win32だとオーナーデータにしてタブ区切りのテキストファイルに吐いてたな。
結局、レジストリなりINIファイルなりに保存するのがセオリーかと。
0177デフォルトの名無しさん2005/08/12(金) 21:09:55
>>173-174
なるほど!こんなに簡単に使えるんですね
これは便利です、助かりました
ありがとうございました
01781712005/08/12(金) 21:50:11
>>176
アドバイスありがとうございます。

列幅は、テキストファイルに吐き出さそうかと思ってました。
それはできるだけレジストリを使わずに、フォルダごとゴミ箱へとか、フォルダごとバックアップできるようにと考えたからですが。
そのため、テキストファイルが18個もできてしまい、更に、ユーザに簡単に開いていじれるようになってるっていうのはどうなの?という
疑問もわいてきて、どうしようか迷っていたところでした。

既存のメーラーがどのように設定を保存してるのか、フォルダを開いて探しましたがそれらしいファイルが見あたらないので
そういったソフトはやはりレジストリに保存してるのでしょうかね。フォルダの中のファイル数が少ないのですっきり見えます。

とりあえずは、テキストで作ってみて、フォルダの中のファイル数の具合や使い勝手なども考えて、どちらに保存するか
決めようかと思います。
0179デフォルトの名無しさん2005/08/12(金) 22:11:33
設定情報の扱い
http://ukamen.hp.infoseek.co.jp/Programming/ConfigFile/
0180デフォルトの名無しさん2005/08/12(金) 22:19:54
ひょっとしてListViewのカラム幅だけでファイル一つ使ってるのか……?
0181デフォルトの名無しさん2005/08/12(金) 22:23:33
いくらなんでもそれはINIファイル使おうな
0182デフォルトの名無しさん2005/08/12(金) 22:29:45
>>178
素直にxml使えばいいのに……
01831712005/08/12(金) 22:38:12
皆さんアドバイスありがとうございます。

>>179
参考サイトどうもありがとうございます。

>>180
そうですが、なんだかどんどん設定ファイルが増えるなと不安になってたんです。
現在設定ファイルが、5個。今回のカラム幅は、ListViewが3つあるので、更に3つファイルを作ろうかと思ってました。

>>181
やはりtxtはまずかったでしょうかね。

>>182
xml使えば設定の管理が楽になるのでしょうか。それならぜひ使いたいです。

今のところは
http://dobon.net/vb/dotnet/programing/storeappsettings.html
にある、設定をクラスで管理して、XMLファイルに保存という方法にしようかと傾いています。

この方法で、いくつもある設定ファイルを1つにできたらうれしいなと思います。

NETはXMLを扱う機能が充実しているそうで、サンプルコードが短かったので扱いやすそうなので、一度この
方法でやってみようかと思います。
0184デフォルトの名無しさん2005/08/12(金) 22:44:45
べつにINIファイルでも扱いには困らないけどな

[ListView1]
Column0Width=AAA
Column1Width=BBB
[ListView2]
Column0Width=CCC
Column1Width=DDD
[ListView3]
Column0Width=EEE
Column1Width=FFF

INIファイルを呼ぶのは一般的にはAPIコールになるけど
ググればそれなりにサンプルが出てくると思う

まあXMLベースのほうがいいだろうけど。
01851712005/08/12(金) 22:51:21
>>184
アドバイスありがとうございます。
iniファイルの中身はそのように記述するのですね。

XMLのほうを推奨ということなので、とりあえず、XMLでいってみようと思います。
外部に書き出しとなると、txtかcsvしか扱ったことがないので、何もかもtxtで書き出してしまってました。
とにかく、ファイルが多くて不恰好なのでXMLの方法で1つにまとめられるようにやってみようかと思います。
0186デフォルトの名無しさん2005/08/12(金) 23:12:09
> 何もかもtxtで書き出して

それはそれでありな気が
01871712005/08/12(金) 23:19:57
>>186
それでいいなら修正しなくていいから楽でいいんですけど。
設定ファイルのクラスの設計と、書き直す箇所とか考えると、txtで書き出しまくるのが標準だったらと思うこともないですね。
フォルダ開いたらファイルだらけってどうかなと、ファイルが増えるたびにちょっぴり不安な心持になってたので。
ありならありでそのまんまにしちゃおうかなという気持ちも半分あるし、XML扱う方法やっといた方がいいかなという気持ちも半分です。
0188デフォルトの名無しさん2005/08/12(金) 23:23:25
とりあえずSettingsフォルダとか作ってそこにいれちゃえば?
0189デフォルトの名無しさん2005/08/12(金) 23:26:56
Settingsフォルダ作るならSpecialFolder.LocalApplicationDataのほうがよくね?
01901712005/08/12(金) 23:35:00
>>188-189
皆さん、アドバイスありがとうございます。

>>188
フォルダに入れちゃえば、ごちゃごちゃファイルが多い件は解決ですね。
そうしちゃおうかな。この方法ならすっきりするし、苦労もしなくてすみますね。
今夜は横になりながら考えて明日決断しようかと思います。

>>189
SpecialFolder.LocalApplicationData をざっとぐぐったところ。
どうやら隠しフォルダなのですかね。
見えないのならよけいに好都合ですね。
フォルダの中身がすっきりする上に、表示させる設定にすれば見えちゃうのかもしれませんが
ファイルの中身をいじられにくいのもいいですね。
0191デフォルトの名無しさん2005/08/12(金) 23:35:51
コピペで他の環境に移せないじゃないか

ところでXmlSerializerのインスタンス作るのって何であんなに重いんだろうね?
0192デフォルトの名無しさん2005/08/13(土) 00:43:55
ttp://msdn2.microsoft.com/library/7htf0516(en-us,vs.80).aspx

ListView(詳細)のオーナードローのサンプル↑をコンパイルしてみたのですが
マウスカーソルをListViewの上に持ってくると、マウスカーソルの指す領域の
ItemのSubItemが消えてしまいます。(消えるのははじめ一回だけで再描画後は消えない)
どこがおかしいのでしょうか?
01931712005/08/13(土) 14:23:18
>>191
アドバイスありがとうございます。
なるほど、ユーザにフォルダの存在が見えなかったら、バックアップがしやすいメリットがなくなってしまいますね。
とりあえず、カラム幅の記録のみをXMLで保存してみようということにしました。
XML保存への変更が面倒だったら、Settingsフォルダを作ってそこにまとめてファイルを入れとこうと思います。
0194デフォルトの名無しさん2005/08/13(土) 18:59:41
System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
mm.From = "[email protected]";

mm.Fromは、送信者のメールアドレスを入れますが、では送信者の名前はどのように書けばいいのでしょうか。
なんとなく、mm.From = "名前 <[email protected]>"; かなと思ったのですが
使っているメーラーの差出人のところが、名前 <[email protected]> のような記述なので。
01951942005/08/13(土) 19:13:04
試しに、mm.From = "名前 <[email protected]>";  で送ってみたところ。
今度はOutlook Expressで確認したら、ちゃんと名前の欄に、名前 と載っていました。

mm.Name = "名前";

と書ければわかりやすいのに。と思います。
とりあえず
mm.From = "[email protected]";  の部分を、mm.From = "名前 <[email protected]>";
に書き換えようと思います。

何か、勘違いしていることなどありましたらご指摘いただけるとうれしいです。
どうもお騒がせいたしました。
0196デフォルトの名無しさん2005/08/13(土) 19:42:19
>>195
System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
// 送信者
mm.From = "送信者のコメント <[email protected]>";
で合ってるよ。
e-mailのタグをベースにプロパティ名称を付与しているから、仕方がない。
01971942005/08/13(土) 20:07:57
>>196
回答ありがとうございます。
あってるのですね。これですっきりしました。
0198デフォルトの名無しさん2005/08/15(月) 18:57:22
Form1(){} の中で、menuItem1_Click(Object sender, System.EventArgs e){} を呼びたいのですが

引数eに何を入れればいいのかわからず困ってます。

menuItem1_Click("基本設定", e); のように書いて呼び出そうとすると、ビルド時に

'e' は クラスまたは名前空間 'test41.Form1' に存在しません。 と、エラーが出るので

"基本設定"の部分はこれで大丈夫なのかなと思うのですが、eの部分に何を書いたらいけるでしょうか。
ちなみに"基本設定"は、メニューの[設定&S]-[基本設定&K] のテキスト部分です。
0199デフォルトの名無しさん2005/08/15(月) 19:02:34
>>198
それ以前に、普通のメソッド呼び出しすら分かってないような予感たっぷり


面倒だし、menuItem1_Click(null, null) で良いよ
0200デフォルトの名無しさん2005/08/15(月) 19:03:23
EventArgs.Empty
02011982005/08/15(月) 19:11:47
>>199-200
皆さんアドバイスありがとうございます。

menuItem1_Click(null, null);
menuItem1_Click(null, EventArgs.Empty);
menuItem1_Click("基本設定", EventArgs.Empty);

どれも試しましたが、どれも成功しました。
正直いって、なんで全部いけるのか、さっぱり理解できてませんが、今度から、既存のイベント発生のメソッドを呼び出すときは
面倒なので、null, null でいこうと思います。
0202デフォルトの名無しさん2005/08/15(月) 19:14:49
>>201
いや、199 の身でなんだが、(this, EventArgs.Empty) を薦めるよ
もしくは、menuItem1_Click の処理を別なメソッドに分けて、分けた方のメソッドを呼び出すんだ
0203デフォルトの名無しさん2005/08/15(月) 19:16:19
PerformClick メソッドってなかったっけ?
02041982005/08/15(月) 19:23:50
>>202
ご親切にどうもありがとうございます。
お勧めの、menuItem1_Click(this,EventArgs.Empty);
に書き換えました。
0205デフォルトの名無しさん2005/08/15(月) 20:10:07
原則論を言えば、イベントはマルチキャストなんだから
ハンドラ直接呼出しよりPerformClickの方がいいと思われ。
0206デフォルトの名無しさん2005/08/15(月) 20:12:48
>>198 に 「menuItem1_Click を直接予備隊」 って書いてあるんだが
0207デフォルトの名無しさん2005/08/15(月) 20:15:07
言われたことを何も考えずに従うだけのコーダー根性というやつか
0208デフォルトの名無しさん2005/08/15(月) 20:59:10
質問されたから素直に答えたのに、なんでケチつけられなきゃあかんねん
0209デフォルトの名無しさん2005/08/15(月) 21:03:34
2chだから
02101982005/08/15(月) 21:10:46
>>205
アドバイスありがとうございます。
menuItem1.PerformClick();
でも呼び出せました。こちらに書き換えようと思います。
0211デフォルトの名無しさん2005/08/15(月) 23:04:27
いいなりだな
0212デフォルトの名無しさん2005/08/15(月) 23:52:24
log4netの使い方がいまいちわからないのですが教えてもらえませんか?
0213デフォルトの名無しさん2005/08/16(火) 09:37:48
ちょっとすいません。C++の
public:
virtual void func() = 0;
こういうのC#でどう書くんでしたっけ

public abstract void func();
にしたら抽象クラスに非抽象関数入れられないって蹴られたよ…
徹夜明けで参考書調べる余裕ないんだわ。頼む…
0214デフォルトの名無しさん2005/08/16(火) 09:49:56
>>213
> 抽象クラスに非抽象関数入れられない

こんなエラーメッセージをcsc.exeは吐かないので、スレが間違ってるんじゃないか?
0215デフォルトの名無しさん2005/08/16(火) 09:59:23
ぶっちゃけ「非抽象クラスに抽象メソッドは入れられない」ジャマイカ
逆
0216デフォルトの名無しさん2005/08/16(火) 13:02:31
それなら class の前に abstract が入っていないだけだな
クラスを抽象クラスにすれば解決
0217デフォルトの名無しさん2005/08/16(火) 13:38:27
メインフォームが生成された直後に、メッセージボックスを表示させたいのですがうまくいきません。

public Form1()
{
   InitializeComponent();
   MessageBox.Show("てすと");
}
これだと、メインフォーム生成前に表示されてしまいます。

static void Main()
{
   Application.Run(new Form1());
   MessageBox.Show("てすと");
}
これだと、メインフォームを閉じた後に表示されてしまいます。

protected override void WndProc(ref Message m)
{
   if(m.Msg == 0x0001) //WM_CREATE
   {
      MessageBox.Show("てすと");
   }
}
ウィンドウプロシージャで、フォームが生成されたのをキャッチして表示させようと思ったのですが
これも、メインフォーム生成前に表示されてしまいます。
WM_SHOWWINDOW(0x0018)にもしてみましたが、こちらは生成前と生成後の2回も表示されてしまいます。

どのように書いたらメインフォーム生成後にひょうじさせることができるでしょうか。
0218デフォルトの名無しさん2005/08/16(火) 13:45:19
一つ確認したいが、"生成"じゃなくて"表示"だよな?

Application.Idleイベントにハンドラ追加して、
そのイベントハンドラで追加したハンドラ削除&したい処理をする。
0219デフォルトの名無しさん2005/08/16(火) 13:49:30
Form.Activatedの方がいいかも
02202172005/08/16(火) 13:59:30
>>218-219
アドバイスありがとうございます。

>一つ確認したいが、"生成"じゃなくて"表示"だよな?
すみません、表現が正確じゃなかったですね。表示です。

無事メインフォーム表示後に表示させることができました。
0221デフォルトの名無しさん2005/08/17(水) 12:39:14
[やりたいこと]
ダイアログ A を表示した時点で
スクリーンセーバが起動中であっても解除し、
Aが表示されている間はスクリーンセーバを起動させない。
Aが表示されていない間は、時間経過後(画面のプロパティで設定する分)
スクリーンセーバを起動する。(ほうっておけば起動される)

[やってみたこと1]
ダイアログA表示中、タイマー(100ms周期)で座標0,0にマウス移動し、直後に移動前座標に戻る。

Point oldPos = new Point(System.Windows.Forms.Control.MousePosition.X,System.Windows.Forms.Control.MousePosition.Y);
System.Windows.Forms.Cursor.Position = new Point(0,0);
System.Windows.Forms.Cursor.Position = oldPos;

↑だと、画面のプロパティのプレビューを解除することは出来ましたが、
時間経過後(画面のプロパティで設定する分)に表示される、本当(?)の
スクリーンセーバでは解除ができません。

[やってみたこと2]
座標(0.0)から座標(100.100)にループにて順に移動させるも、やはりダメ。

うまいことやる方法、ありますでしょうか?
0222デフォルトの名無しさん2005/08/17(水) 13:07:38
ttp://www.google.com/search?num=100&hl=ja&c2coff=1&q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%BB%E3%83%BC%E3%83%90%E3%83%BC+%E6%8A%91%E5%88%B6+API&lr=lang_ja
0223デフォルトの名無しさん2005/08/17(水) 20:46:47
XMLでノードを追加したいんですが、任意の位置に追加できないもんでしょうか?
例えば、以下のような場合に、<Name>の次に<Age>を入れたいのです。
<Address>
<Name/>
<Tel/>
</Adress>

<Tel>の次に入れるなら、SelectSingleNodeで<Address>を取得し、
AppendChildすれば、自動的に最後である<Tel>の後に入ります。
でも、<Name>の次に入れるには、どのようにしたら良いのでしょうか?
そもそも、Xmlでこのようなことを求めること自体、間違ってます?
0224デフォルトの名無しさん2005/08/17(水) 21:04:07
XmlNode.InsertAfter/InsertBefore
02252232005/08/17(水) 21:09:13
>>224
MSDNにおける以下の引数の意味が理解できなくて使えなかったのですが、

newChild 挿入する XmlNode 。
refChild 参照ノードである XmlNode 。 newNode は、 refNode の後に配置されます。

ここに書いてありました〜
http://dotnetjunkies.com/WebLog/sayadhashim/archive/2004/08/17/22287.aspx
0226デフォルトの名無しさん2005/08/17(水) 21:40:42
すみません、アドバイスお願いします。

COM化したDLLをIEのOBJECTタグを使って自動インストールさせ、
DLLのメソッドを使えるようにしたいと思っています。

色々テストしてみたのですが、
作成したインストーラを別のローカルマシンで実行したところ、
きちんとインストール・DLLのメソッドも実行できました。
しかし、OBJECTタグを使ってDL→インストールしようとすると、
「インストールしますか?」というメッセージはでるのですが、
まるで何もインストールされてないように、そのDLLのメソッドを使うことができません。
レジストリのClassID登録がローカルでインストールしたときと違っているようです。
(NameSpaceとClassが登録されていません)

イメージ的にはC++のOCXみたいに使いたいのですが…
0227デフォルトの名無しさん2005/08/17(水) 21:57:51
>>226
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=31966
これかな?
0228デフォルトの名無しさん2005/08/18(木) 20:55:28
アイコンを作成しました。
フォームの左上にあるアイコン、タスクバーに表示されるアイコンの設定はできたのですが。
アプリケーションのアイコンの設定がわからず困ってます。

参考書に、リソースビューを表示して設定する方法が書いてあるのですが、肝心のリソースビューを表示してみても
中身はまったくの空でどうしようもありません。
この参考書はC++.NETの参考書だからだめなのでしょうか。
C#でアプリケーションのアイコンの設定はどのようにすればできるでしょうか。
0229デフォルトの名無しさん2005/08/18(木) 21:04:42
/win32icon
VSだとプロジェクトのプロパティにあるだろ

ちなみにこのアイコンリソースをプログラム上から利用するにはWin32APIが必要になる
//あれ、/win32resが必要だったっけ? >プログラムから利用
02302282005/08/18(木) 21:08:20
>>229
できました。どこいじったらいいかわからず困ってたので大変助かりました。
0231デフォルトの名無しさん2005/08/18(木) 22:35:42
エンコーディングが何かは分かっていないhtmlのソースを、ネットから
stringに読み込むにはどうしたら良いでしょうか?
0232デフォルトの名無しさん2005/08/18(木) 22:45:02
ヘッダにContent-Typeがあるならそれを使う
無ければデータの初めにBOMが無いかどうかチェック
見つからなければmeta要素でContent-Typeが定義されていないかチェック
それで見つからなければ自前で判断

文字コード判別にはこことか
ttp://www.gprj.net/
0233デフォルトの名無しさん2005/08/18(木) 22:51:44
>>232
C#の標準でコンバータが用意されていたりはしないのですね。
ありがとうございました。Microsoft最悪ですね。
0234デフォルトの名無しさん2005/08/18(木) 23:06:51
いやコンバートはともかく自動判別なんて普通標準ではないだろ
0235デフォルトの名無しさん2005/08/18(木) 23:12:29
>>234
これだけ文字コードが乱立しているのだから、あってもおかしくないとオモタ。
0236デフォルトの名無しさん2005/08/19(金) 00:39:09
Perl、PHP
0237デフォルトの名無しさん2005/08/19(金) 00:51:34
PHP.NET使えば無問題
0238デフォルトの名無しさん2005/08/19(金) 01:46:58
Perlが文字コード判定を標準装備してたのならなんでjcode.plなんてのがあったんだ?
0239デフォルトの名無しさん2005/08/19(金) 02:11:43
いや、っていうか「無理」なんだが。
「日本語」って限定すれば結構高確率で出来るけど言語限定しないと難しいし。
UTF16とか完璧に判別無理なのあるし
何で未だに文字化けがあるのかと小一時間(ry
そんなん標準で用意されてもその、なんだ、困る
0240デフォルトの名無しさん2005/08/19(金) 03:41:03
>>238
今は組み込まれたけど以前はなかった。
0241デフォルトの名無しさん2005/08/19(金) 08:14:09
>>240
てかそれってまさか日本語だけとか言うなよ・・・
0242デフォルトの名無しさん2005/08/19(金) 08:49:54
リッチテキストボックスにコピペ以外の方法で画像を貼り付けるにはどうしたら良いですか?
メソッドとか探してみたのですが見つからなかったので困っております
(最悪、クリップボード経由で貼り付ける方法もあるのですが、できれば普通にやりたいです)
0243デフォルトの名無しさん2005/08/19(金) 10:29:06
タスクトレイに表示される吹き出しのポップアップはどうやったら出せるのでしょうか?
0244デフォルトの名無しさん2005/08/19(金) 12:43:08
できあがったアプリのアイコンにカーソルをあてると
ファイル バージョン・作成日時・サイズ がチップに表示されますが
ファイル バージョンが、1.0.2056.38066
と長々しいので、1.02にしたいのですが、そういった設定はどのようにすればいいのでしょうか。

後、皆さんバージョンはどのようにつけているのでしょうか。
これはだいぶ機能を追加したからバージョンを1アップしようとか、これはちょっとした改変だから0.5だけアップしとこうとか
そういったどんぶり勘定でバージョンの数字をアップしているのでしょうか。
0245デフォルトの名無しさん2005/08/19(金) 13:11:08
>>244
AssemblyInfo.csの[assembly: AssemblyVersion("1.0.*")]
02462442005/08/19(金) 13:15:05
>>245
任意のバージョンにすることができました。どうもありがとうございました。
0247デフォルトの名無しさんNGNG
文字コードの判別はIEのコンポーネントを呼び出す方法をどっかで見た記憶が
あるけど、探せなかった。
02482432005/08/19(金) 14:15:43
以下を参考にしてできました。

バルーンツールチップ
http://www.codeproject.com/cs/miscctrl/notifyiconex.asp
0249デフォルトの名無しさん2005/08/19(金) 15:52:43
>>247
つ[MLang]

Introduction to MLang
ttp://msdn.microsoft.com/workshop/misc/mlang/overview/overview.asp
ここの"Code Page Detection"あたりかな。
0250デフォルトの名無しさん2005/08/19(金) 16:10:59
C#で書いたアプリって、.NET Frameworkをダウンしてもらいさえすれば、95,98,Meなんかでも動くのでしょうか。
無難に2000,XPのみ対応を謳っておいたほうがいいでしょうか。
0251デフォルトの名無しさん2005/08/19(金) 16:16:13
2000,XPのみでいいと思う。
98でも動くが一部機能しない。
02522502005/08/19(金) 16:18:54
>>251
回答ありがとうございます。
Framworkさえインストールすれば、どのOSでも動いてくれれば便利なのに残念です。
0253デフォルトの名無しさん2005/08/19(金) 16:31:52
95,98なんてとっとときりすてましょう
0254デフォルトの名無しさん2005/08/19(金) 16:45:56
VS.NET 2003 で作ったアプリに対応した.NET Frameworkは1.1であってるでしょうか。

最新の.NET Framework2.0Beta版をダウンしたとしてももちろん動きますよね。
0255デフォルトの名無しさん2005/08/19(金) 16:50:18
あってる。

2.0で1.1のアプリも一応うごく
02562542005/08/19(金) 16:51:50
>>255
回答ありがとうございます。
Framworkがバージョンアップするたびに動かなくなったら大変だなと思ってたので安心しました。
0257デフォルトの名無しさん2005/08/19(金) 18:15:31
>>252
9xは動くかもしれないとだけでも書いておいてあげようよ。
まあ流石にWin95にFrameworkはインストールできないけど。
02582542005/08/19(金) 19:33:06
>>257
そのように書いておけば、98もカバーできたようなきにはなりますね。
そのうように書いとこうと思います。
どうもアドバイスありがとうございます。
0259デフォルトの名無しさん2005/08/20(土) 12:43:14
>>242
クリップボード経由か、そうでなきゃRtfを直に操作するしかないんじゃないかな
0260デフォルトの名無しさん2005/08/20(土) 16:13:07
Dateをパースするとき
Thu, 2 Jun 2005 18:22:12 +0900
のようなメールで使われている形式をパースするにはどうするのが簡単でしょうか?

+0900のような形式が書式指定に無いのですが。
入力文字列を変換して 「 Thu, 2 Jun 2005 18:22:12 +09:00 」< コロンを入れた
でParseするのって適当ですかね?
0261デフォルトの名無しさん2005/08/20(土) 18:31:50
そのままやればいけるじゃん……と思いきや.NET 2.0限定か。
秒まで(Thu, 2 Jun 2005 18:22:12)でParseしてから時差を手計算、ということになるかなぁ。
0262デフォルトの名無しさん2005/08/20(土) 18:39:38
「Thu, 2 Jun 2005 18:22:12 +09:00」
こういう表記考えた奴アホでしょ。

「2005/08/20 18:30:00」とかでいいじゃん
0263デフォルトの名無しさん2005/08/20(土) 19:02:50
RFCなんてあんま考えずに出してるから
0264デフォルトの名無しさん2005/08/20(土) 19:10:37
>>262
はげしく同意。字句解析する身にもなってみろ!!
0265デフォルトの名無しさん2005/08/20(土) 19:42:43
C#でオススメの参考書とかってありますか?

大体の事はMSDN見ながらやってれば何とかなるんですが、
イベント、マルチスレッド、マーシャリング辺りに重点を置いた書籍があるなら、
手元に置いておきたいんですが。
0266デフォルトの名無しさん2005/08/20(土) 22:21:14
C#には、C++で言えばboost::regex_replace()に相当するクラスは標準で
含まれていますか?もし含まれていなければ、これは自分で作るしか
ありませんか?
boost::regex_replace→ttp://www.boost.org/libs/regex/doc/regex_replace.html
0267デフォルトの名無しさん2005/08/20(土) 22:30:49
>>266
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtextregularexpressionsregexclassreplacetopic.asp
0268デフォルトの名無しさん2005/08/20(土) 22:33:18
正規表現が含まれてないフレームワークって今の時代存在するのかな?
0269デフォルトの名無しさん2005/08/20(土) 22:40:02
>>262
いや、それだと国によって解釈がまちまちになってしまうし…
0270デフォルトの名無しさん2005/08/20(土) 22:40:31
>>268
Del厨をいじめないように。
0271デフォルトの名無しさん2005/08/20(土) 22:40:48
MFC
0272デフォルトの名無しさん2005/08/20(土) 22:44:55
>>261 返答thx
.net 2.0だとそのままいけるのかぁ
.net 1.1だとコロン入れればzzzだかの書式に当てはまるので普通にパースできるようです。
02732662005/08/20(土) 22:50:46
>>267
ややこしくて申し訳ありませんが、boost::regex_replace()はreplaceと
言うよりもむしろformatterなのです。というわけで探していたものが
見つかりました。
System.Text.RegularExpressions.MatchのResultメソッドでした。
ご協力ありがとうございました。
0274デフォルトの名無しさん2005/08/20(土) 22:52:26
いや、多分それ取得時間狂ってるぞ。
DateTime.Parse("Thu, 2 Jun 2005 18:22:12 +09:00");
は.NET 1.0/1.1では
2005/06/02 9:00:12
と解釈されるはず。時間・分が後ろの+HH:mmに支配される。
0275デフォルトの名無しさん2005/08/20(土) 22:57:40
非同期デリゲートに関して、
EndInvokeの後に書いた処理と
AsyncCallbackで行わせる処理って実行順序は保障されない。でいいんですかね?

//...コード例
private void _processX(){
ThreadStart ts = new ThreadStart(_method);
ts.EndInvoke( ts.BeginInvoke(new AsyncCallback(_callback), null) );
Console.WriteLine("main thread");// A
}
//...
private void _method(){}
private void _callback(IAsyncResult r){
//...........
Console.WriteLine("thread pool thread");// B
}

とやると AとBの実行順序は保障されないのが仕様?
(自分で非同期処理関連実装しないといけなくてIAsyncResultを実装したクラスを作ろうとしてふと疑問に
0276デフォルトの名無しさん2005/08/20(土) 23:22:37
それであってる。
EndInvokeが待機するのはそれでいう_methodで実行される部分。
0277デフォルトの名無しさん2005/08/21(日) 01:44:14
>>259
回答ありがとうございます。
結局、

クリップボードの中身を変数(?)に退避
↓
クリップボードに画像ファイルを読み込み
↓
リッチテキストボックスにペースト
↓
変数(?)に退避した中身をクリップボードに戻す

という方法を採用することにしました。
0278デフォルトの名無しさん2005/08/21(日) 01:54:11
>>272
ちょうど同じことやってる人がいた(^^)
RSS2.0で普通に使われてるのに困ったもんだねぇ。ということで>>274の
内容を踏まえて書いてみた。間違ってたら指摘お願い。
date = System.DateTime.ParseExact(strdate, "ddd, d MMM yyyy HH:mm:ss zzz", System.Globalization.DateTimeFormatInfo.InvariantInfo);
0279デフォルトの名無しさん2005/08/21(日) 02:46:59
値型ってなんて読む?
0280デフォルトの名無しさん2005/08/21(日) 02:51:05
あたいがた
0281デフォルトの名無しさん2005/08/21(日) 02:55:42
Value Type
0282デフォルトの名無しさん2005/08/21(日) 03:01:14
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/118regget/regget.html
これを見てレジストリを読み書きしようとしたんですけれども
VS2005だとRegistryクラスのCurrentUserやLocalMachineメンバがヌルリです
VS2002では問題なく動いているので .NET 2.0 のバグなのでしょうか
0283デフォルトの名無しさん2005/08/21(日) 15:33:15
いや普通に取得できるが。
0284デフォルトの名無しさん2005/08/21(日) 20:58:41
RichTextBox内の現在のカーソルの位置に文字列を代入したいのですが、
AppendText()では常に最後に代入されてしまいます。

現在のカーソル位置に代入したい場合、どうすればよいのでしょうか?
0285デフォルトの名無しさん2005/08/21(日) 21:02:22
SelectedText?
0286デフォルトの名無しさん2005/08/21(日) 21:02:35
SelectとかSelectionStart/SelectionLengthで挿入したい位置にカーソルを動かしてSelectedText
0287デフォルトの名無しさん2005/08/21(日) 23:28:20
与えられたstringから改行を取り除いてその文字数を得たいのですが、
どうしたらよいでしょうか?
System.String replaced = System.Text.RegularExpressions.Regex.Replace(str, "[\\p{Zl}]", "", System.Text.RegularExpressions.RegexOptions.Multiline);
ではダメでした。
0288デフォルトの名無しさん2005/08/21(日) 23:45:47
String.Replace で充分じゃね?
0289デフォルトの名無しさん2005/08/22(月) 00:53:42
str.Replace("\r\n", "")で削除できました。System.Stringは\r\nで
改行を持ってたんですね…
0290デフォルトの名無しさん2005/08/22(月) 00:57:03
ちがうだろ。
たまたまStringに入ってた文字列の改行が\r\nだっただけだろ。
Windowsだと改行に\r\n使ってる場合が多いからな。

ただWebとかから拾ってきたファイルとかだと違う改行もありえる。
0291デフォルトの名無しさん2005/08/22(月) 01:05:09
>>290
と言う事は、一般的にSystem.Stringの改行を削除するには、改行と
解釈されうる全てのシーケンスを削除する必要があるということでしょうか。
0292デフォルトの名無しさん2005/08/22(月) 01:10:53
まあ\rと\nを全部取り除いてやればなんとかなりそうな気もする。
0293デフォルトの名無しさん2005/08/22(月) 01:14:18
>>292
ではstr.Replace("\n", "").Replace("\r", "")ですね。でもかっこ悪い…
0294デフォルトの名無しさん2005/08/22(月) 01:18:30
そこで正規表現だろ。
Regex.Replace(str, "[\r\n]", "");
0295デフォルトの名無しさん2005/08/22(月) 01:22:27
>>294
それでいきます。ありがとうございました。
0296デフォルトの名無しさん2005/08/22(月) 15:22:33
>>285-286
出来ました!
ありがとうございました!
0297デフォルトの名無しさん2005/08/22(月) 16:15:55
構造体をByte配列型でネットワークで送信して送信先で構造体に戻したいのですが
何か良い方法は無いでしょうか?
0298デフォルトの名無しさん2005/08/22(月) 16:26:50
ある程度制約があるが、
System.Runtime.InteropServices.Marshalクラスの
AllocHGlobal/FreeHGlobal/StructureToPtr/PtrToStructure/Copyメソッド。

素直なのは、その構造体にToBytesメソッドでも作って自前で実装。
0299デフォルトの名無しさん2005/08/22(月) 16:37:09
.NET同士ならBinaryFormatter辺りを使ってシリアライズ・デシリアライズというのも良いな。
03002972005/08/22(月) 16:58:58
>>298,299
素早いレス有難う御座います!
今から早速試してみます。
0301デフォルトの名無しさん2005/08/22(月) 22:44:28
Visual Studioスレが2005になってしまったようで、微妙に場違いですがお許しください。

MSDNのインストールウィザードが変なタイミングで出るようになってしまいました。
WebからMSDNのオンラインを参照したり、
Windowsサービスのインストーラプロジェクトを作ってビルドの際などに、
確実にダイアログが出て、プログレスバーが進行していきます。

どうせ、そのまま続けてもエラーが出るので、キャンセルするのですが、
キャンセルすると、何事も無かったように動作します。

何か、対処法があるでしょうか?よろしくお願いします。
0302デフォルトの名無しさん2005/08/22(月) 22:45:27
修復インストールかな
0303デフォルトの名無しさん2005/08/22(月) 22:55:38
il||li _| ̄|○ il||l
やっぱり、そうなりますよね……
0304デフォルトの名無しさん2005/08/22(月) 23:00:54
インストールしたファイルやレジストリを知ってか知らずかいじるとそうなる。
その部分だけの修復だからすぐ終わるはず。
>>301 は違うようだが、
VSなのにOfficeが暴走したりするのがわけわかんないんところ。
0305デフォルトの名無しさん2005/08/22(月) 23:33:05
C#って将来的に普及しますか?(将来性ありますか?)
0306デフォルトの名無しさん2005/08/22(月) 23:37:09
ぶっちゃけJavaのが有望だろ
0307デフォルトの名無しさん2005/08/22(月) 23:40:02
しないのでJavaスレにお帰りください
0308デフォルトの名無しさん2005/08/22(月) 23:45:52
てかC#かJavaの選択なんて馬鹿げてる
両方使えこなしたらええやん
0309デフォルトの名無しさん2005/08/22(月) 23:46:43
よし、両者の最大公約数だ。
0310デフォルトの名無しさん2005/08/22(月) 23:56:55
出来る人間は両方臨機応変に使える
廃れたら捨てればいいだけ
無能な人間は一言語しか出来ないのでそれが廃れると困る
0311デフォルトの名無しさん2005/08/22(月) 23:58:41
>>305
ほい。

C#: Is the Party Over?
ttp://jdj.sys-con.com/read/117741_p.htm
0312デフォルトの名無しさん2005/08/23(火) 00:18:10
>>301
もしかしてjv16 Power Toolsでレジストリを掃除しなかった?
俺は前にそれ2回やって、2回とも君と同じ症状が出るようになり、二度とjv16を
使わない決心をした。修復インストールをしても直らず、全部削除してからもう
一度最初から入れ直した。

多分一つか二つのレジストリキーの問題だろうと思うんだけど・・・
0313デフォルトの名無しさん2005/08/23(火) 00:26:41
C#で作ったプログラムって動作遅いのですか?
ゲームとか作るのには向いていないでしょうか?
0314デフォルトの名無しさん2005/08/23(火) 00:31:36
速度は問題ないが実行できる環境が少ないから向いてない
0315デフォルトの名無しさん2005/08/23(火) 00:36:52
GDI+はやっぱちょっと遅いと思うよ
DirectX使うならいいけど
ManagedDirectX使うならフツーのDirectX使った方が・・・

というわけであんまり向いてないと思うよ
0316デフォルトの名無しさん2005/08/23(火) 00:37:22
>>313
パフォーマンスは悪くない。ただし、初回起動が遅い。
ゲームの場合、Managed DirectX を利用する事になるが、
ユーザにインストール方法を説明するのが面倒かも。
ただ、こういった環境面を考慮しないなら生産性は高い。
0317デフォルトの名無しさん2005/08/23(火) 00:58:25
初回起動が遅いってのはネイティブコードに落としたのを
どっかテンポラリディレクトリに隠してあるのけ?
0318デフォルトの名無しさん2005/08/23(火) 01:02:52
>>317
違う。メモリに入れている。だからメモリも馬鹿食いする。
0319デフォルトの名無しさん2005/08/23(火) 01:03:34
なんでわざわざそんなことを。
.NET Frameworkの起動に費やしてるだけだ。
だいたいネイティブコードへのコンパイルは実行中に行われるんであって起動時のみに行われるんではない。
0320デフォルトの名無しさん2005/08/23(火) 01:09:58
HTTPWebRequestクラスを使用するときに、
プロパティが存在しないContext-Encording;gzip, deflateを
指定し、gzip圧縮をしていないリクエストデータをサーバに送ると
タイムアウトはするものの、CPUの使用率が異常に跳ね上がります。
同じ症状に悩まされたことある人いませんか?
0321デフォルトの名無しさん2005/08/23(火) 01:11:32
>>317
ランタイムが異常に肥大しているので、それの読み込みに時間がかかる。
二回目以降はDLL保持してたり、ディスクキャッシュが効いてたりで早い。
0322デフォルトの名無しさん2005/08/23(火) 01:11:40
悩まされるどうこう以前にそんなことすんなよw
0323デフォルトの名無しさん2005/08/23(火) 07:58:12
>>320
そもそもgzipとdeflateを両方同時に指定するのは間違ってないか
0324デフォルトの名無しさん2005/08/23(火) 11:02:28
.net2.0 beta2でSystem.Collections.Genericから
Collection<T> が消えているのですが、どこへ行ってしまったのでしょうか。
0325デフォルトの名無しさん2005/08/23(火) 11:11:51
System.Collections.ObjectModel名前空間
0326デフォルトの名無しさん2005/08/23(火) 11:15:56
>>325
ありがとう。発見しました。
System.Collections.ObjectModel.Collection<T>
03273132005/08/23(火) 13:13:36
やはり遅めですか・・・
大人しくC++にした方が無難ですかね?
0328デフォルトの名無しさん2005/08/23(火) 13:27:19
それで問題ないならそっちの方が良いな
ていうか上で言われてるのはインストールの面倒さが主だから。読んでる?
0329デフォルトの名無しさん2005/08/23(火) 14:11:40
静的コンストラクタというのはありますが、静的デストラクタというのはないのでしょうか。
0330デフォルトの名無しさん2005/08/23(火) 14:15:20
ない
0331デフォルトの名無しさん2005/08/23(火) 17:43:07
c#のswitch文は、intやchra,stringしか使えないそうですが、
実数を用いて条件分岐したい場合は、else ifしかないんですか?
というかcではそれがあたりまえなの?
0332デフォルトの名無しさん2005/08/23(火) 17:50:40
intだけじゃなくて整数型全部使える、あと列挙型も。
なんでfloat, double, decimalは駄目なんだろうな
0333デフォルトの名無しさん2005/08/23(火) 17:56:49
>>332
そうレスか
ということはひょっとしてVBよりショボチンってことかい
0334デフォルトの名無しさん2005/08/23(火) 18:07:33
いちいちbreakを書かなきゃいけないという点でも、VBより劣ってると思うよ。
フォールスルーの機能が無いのにいちいちbreakを書かされるのは、Cの流れを汲んでることの弊害だと思う。

話を戻して、

>というかcではそれがあたりまえなの?
これは俺にはわからんな
0335デフォルトの名無しさん2005/08/23(火) 18:12:27
>>334
漏れも、いちいちbreak;はめんどくさいのでgoto使ってみたが、
意外ときれいに書けた。 ここ以外goto使ってないがな。
0336デフォルトの名無しさん2005/08/23(火) 18:18:59
>>332
できるだけテーブルジャンプにしたいから、整数じゃないとまずい
むしろ string がなんで使えるのかが不思議

>>335
break を外に出る goto へ単純に置換するだけなら、それは違うんじゃないか?
0337デフォルトの名無しさん2005/08/23(火) 18:20:04
>>332
Cでの意図は整数・列挙型ならジャンプテーブルの最適化を狙うためだったんじゃないかと思う。
その仕様がC#にも引き継がれたってことでしょ。
0338デフォルトの名無しさん2005/08/23(火) 18:29:55
>>336
case:内の違う処理後に共通処理部分case:の一つに飛ぶんだが。
0339デフォルトの名無しさん2005/08/23(火) 18:31:28
VBがC#やJavaよりもさえている1つの事例 http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer03/vbcheer03.html
この記事には納得した
0340デフォルトの名無しさん2005/08/23(火) 19:15:18
こんな恥ずかしい記事は久しぶりに見た
0341デフォルトの名無しさん2005/08/23(火) 19:20:37
>>301と同じ現象が起こってしまいます。
インストールの途中でCPUがフル稼働して固まります。
修復しても同じでした。

他に考えられる原因はありますか?
0342デフォルトの名無しさん2005/08/23(火) 19:23:16
ないねー
0343デフォルトの名無しさん2005/08/23(火) 19:42:22
(´・ω・`)
0344デフォルトの名無しさん2005/08/23(火) 19:58:16
>>341
VSを削除してインストール、それでも駄目なら、HDD初期化してOSからインストール。
たまーにやるけど、HDDが綺麗になっていい。
VSでおかしくなった事は無いけどね。
0345デフォルトの名無しさん2005/08/23(火) 20:01:43
OS再インストール(リカバリ)したばかりのXPで、試しにC#で作ったアプリをダブルクリックして実行してみたのですが
ちゃんと立ち上がってフォームが表示され、ちゃんと動きました。

XPも2000も初期状態では皆、.NETFrameworkが入ってないと思っていたのですが
最近のPCは入れてくれているものもあるのですね。
こういったPCが増えてくれれば、ユーザに.NETFrameworkのインストールの案内とかの手間が省けて助かりますね。
0346デフォルトの名無しさん2005/08/23(火) 20:17:28
全部がそうならない限り説明の手間を省くことはできないさ。
03473452005/08/23(火) 20:25:06
>>346
それもそうだね。
.NETFrameworkのインストールという手間さえなければ、なかなか生産性も高くていい言語だと思うんだけどなあ。
0348デフォルトの名無しさん2005/08/23(火) 20:30:39
JREのインスコより簡単だろ
0349デフォルトの名無しさん2005/08/23(火) 20:35:54
まあ、Windows Updateで完了するだけましじゃないか。
MDXは再配布してやらにゃならん。
ここがC#でゲームを作る場合の鬼門なんだよな。作ってるけど。
0350デフォルトの名無しさん2005/08/23(火) 20:40:00
.NET をインストールしてから DirectX をインストールすれば
勝手に Managed DirectX もインストールされたと思ったんだけど
俺の記憶違い?
0351デフォルトの名無しさん2005/08/23(火) 20:40:57
漏れもC#で作ってる、できたらフリー公開予定。どんなアクションが起こってくるか不明だ。
MDXは添付していいものなのか?
0352デフォルトの名無しさん2005/08/23(火) 20:42:39
>>350
俺も昔そう思い込んでたのだが、残念ながら違う。
やっぱそう思うのが自然だよなあ。MSは変だよ。
03533512005/08/23(火) 20:42:56
>>350
そうなのか?、そうなら嬉しい。(色々インストールしたが、何処で入ったか覚えてない。
0354デフォルトの名無しさんNGNG
>>339
この人は、どうでもいいような事を非常に重要なことのように書いたり、
センセーショナルに煽ったりするのが芸風だね。
0355デフォルトの名無しさん2005/08/23(火) 20:47:06
それが川俣クオリティ。
いや結構好きな人だけどね。
0356デフォルトの名無しさん2005/08/23(火) 20:53:18
3年ほど前に作ったMDXを使うアプリの説明書に
.NET 1.0 を入れてから DX 9 を入れれば大丈夫
って書いたけれど特に不具合の報告なかったぞ
0357デフォルトの名無しさん2005/08/23(火) 20:54:49
・ダウンロード数0
・たまたま入っていた
・動かないのですぐゴミ箱へ
さあどれだ。
0358デフォルトの名無しさん2005/08/23(火) 21:03:46
気になり始めました、教えて下さい。
OSは2000、昔、DX8で、DX9にして今DX9の最新を入れているが、意識してMDXを
インストールした記憶が無い、しかし普通にMDXを使用している。 (知らずに入れたかもしれない・・
この場合、古いMDXを使用している可能性もあるのだろうか? VS.NET 2003を使用。
普通に使っていたので気にもしなかった。 MDXにバージョンがあるのだろうか?
0359デフォルトの名無しさん2005/08/23(火) 21:04:25
>>331-332
遅レスだけど…実数型で==なんて比較(caseで指定する方法ね)をそもそもしてはダメポ。
だからfloatやdoubleはだめ。
decimalはまだいいけど・・・それでも無理にサポートする必要もないな

>>336
stringはimmutableなので、比較が高速に出来る場合があるからじゃない?
最適化次第だけど
0360デフォルトの名無しさん2005/08/23(火) 21:06:27
MDX SDK入れただろ。

MDXを使った代表的アプリとしてNASA制作のWorld Windがある。
それのインストールプロセスを調べてみれば?
0361デフォルトの名無しさん2005/08/23(火) 21:07:43
どっちかっつーとこっちの話題だけどまあいいか。
http://pc8.2ch.net/test/read.cgi/tech/1103998649/l50

MDXについてはこのあたりを一応参考に。
ttp://www.dwahan.net/nyaruru/getreadyformdx/runtime.html
0362デフォルトの名無しさん2005/08/23(火) 21:26:52
>>361
参考になりました、有難うございます。
0363デフォルトの名無しさん2005/08/24(水) 01:07:47
RichText.Rtfプロパティに\f2とか色つきのRTF
直接流し込んだら遅いのなんのって酷過ぎだよ。
10kで1秒ちょっとうんまぁまぁ
3M読み込みやってみたら10分は無反応、どうなんてるんだ?
<\cf2 td\cf1 >\cf3 test\cf1 <\cf4 /\cf2 td\cf1 >\par
こんなので3Mだよ?それで、javaより読み込み速度遅いわ、
糞クラス多すぎて本当に困るよ。
 みんなRichTexeBoxは使わないの?困らないの?
0364デフォルトの名無しさん2005/08/24(水) 03:31:35
.NETプログラムの起動遅すぎてオワットル……
MSはこんなのをWinのデフォにしようとしているんでしょ?
0365デフォルトの名無しさん2005/08/24(水) 05:26:37
>>364
最初からJava並みだと分かってたから、期待はしてなかった。
Javaよりも当然Windowsとの相性はずっといいけどな。

こんなんデフォにされたら、CPUをいくら速くしてももっさりして
溜まらんわ。絶対反対。
0366デフォルトの名無しさん2005/08/24(水) 09:31:41
>>365
技術者なら技術的な話をしようか。
実行ファイルを読み込むほうが全体としては時間かかるので、実際のところ
大体においてJITは誤差程度のはずなんだが。ngenやってどの程度速くなるか
確かめてみ。
大規模なライブラリにおいては確かに結構きくけどな。でもngenがあるわけで
解決策があるのにこれでも問題だというのはなぜ?
あ、それと、WinFormで遅いっていってるのは別の理由であって、JITの責任では
ないが?

実際のところJITとネイティブコンパイルを比較すれば最適化がひっくり返る手前
まで来ている時代だと思う(プロファイル最適化がVS2005ででた段階でもうこれ
以上望めんし)し、それ以上に他の要求を実現するために妥当な処置だと思う
けどな>JIT化
0367デフォルトの名無しさん2005/08/24(水) 10:59:53
>>366
そうか。ま、2005のC#が出てから使ってみて考えるわ。
2003のC#はもっさりしてて、ちょっと大きなプログラムを組むと、ユーザーが
ストレスを感じる。CPUをダウングレードしたような感覚に襲われる。
0368デフォルトの名無しさん2005/08/24(水) 13:22:32
それはプログラムがヘタれているからでは
0369デフォルトの名無しさん2005/08/24(水) 21:04:57
2.0 で ToolStrip をフォームにはっつけただけで
起動速度が劇的に遅くなったよ
0370デフォルトの名無しさん2005/08/24(水) 21:08:03
私の所ではそんなことないなぁ。
まあWinFormが全体に遅いのは事実だけど。
0371デフォルトの名無しさん2005/08/24(水) 22:02:09
ToolStripはくそ
定説
0372デフォルトの名無しさん2005/08/24(水) 22:55:46
まだ正式版じゃないのに酷いなあ
0373デフォルトの名無しさん2005/08/24(水) 23:03:28
ArrayListが遅いなあ。これは常識ですか?
0374デフォルトの名無しさん2005/08/24(水) 23:10:03
>>373
使い方による
0375デフォルトの名無しさん2005/08/24(水) 23:11:03
キューをArrayListで実装していた馬鹿がいた
0376デフォルトの名無しさん2005/08/24(水) 23:12:28
>>375
ワロス
0377デフォルトの名無しさん2005/08/24(水) 23:16:16
LinkedList<T> が直感的に使いにくいのは何とかならんの?
Java のは ArrayList と同じ感覚で使えるのに
0378デフォルトの名無しさん2005/08/24(水) 23:20:13
どの辺が?
0379デフォルトの名無しさん2005/08/24(水) 23:45:33
お前の直感なぞしるか
0380デフォルトの名無しさん2005/08/25(木) 00:07:00
LinkedList<T> も IList<T> を実装して欲しいなと思ったことはある
0381デフォルトの名無しさん2005/08/25(木) 01:12:15
>>380
LinkedListがインデクサなんか実装したら、構造とか頭に入れてない
奴が使いまくって遅くなる可能性あり、というfail safe。ということで実装
するべきではないと思うが。
0382デフォルトの名無しさん2005/08/25(木) 01:34:08
QueueとStackがあるからLinkedListなんて使う場面がほとんど無いと思う俺は浅はかですか
0383デフォルトの名無しさん2005/08/25(木) 02:34:36
普通、先にLinkedLis作ってQueueとStackちがうのか
0384デフォルトの名無しさん2005/08/25(木) 07:21:19
.NETってバージョンによって実行速度とかが違うのですか?
自分は学生の頃に買った初期のVS.NETアカデミックで開発しております。
VS.NET2005を購入しようか検討しているので教えて下さい。
0385デフォルトの名無しさん2005/08/25(木) 07:53:28
MB作戦への参戦、臨時召集について
V.V.V. ------------- Vank V.s. Vipperからのお願い。

VIPPERは韓国政府公認のサイバーテロリストVANKと
「日本海呼称問題」を巡り、臨戦体制に入っております。

現在、VIPPERは連中のメールボムのような抗議メールを周到し、
山のような抗議メール(嫌がらせ)を送るために、
VANK関連サイトのメールアドレスを収集しております。
わずかな情報でも構いません、重複でも構いません。
調べて分かったものがあったら、どんどん情報を下さい。
http://yy16.kakiko.com/test/read.cgi/vippervsvanker/1124879949/

御協力、お願い致します。
0386デフォルトの名無しさん2005/08/25(木) 08:05:02
>>384
まあそりゃ多少差はあるだろうが。
それよりもライブラリの追加変更の方がよほど重要。
VS2005ベータを試してみれば。
.NET 2.0のパフォーマンスについては正式版がでてないんだから評価するのは意味無い。
0387デフォルトの名無しさん2005/08/25(木) 11:41:59
ファイル名を指定して保存する機能を実現したいのですが、
入力したファイル名が正常(使えない文字を使っていないか)かをチェックする方法が分かりません。
どうすればファイル名のチェックを行えますか?
メソッドを探したけど見つかりませんでした。
0388デフォルトの名無しさん2005/08/25(木) 11:51:02
>>387
フィールド定義されてるよ。

System.IO.Path.InvalidPathChars
0389デフォルトの名無しさん2005/08/25(木) 11:57:10
>>388
ありがとう御座います。
03903872005/08/25(木) 12:04:52
private bool checkFileName(string filename)
{
 char ch;

 for(int i = 0; i < filename.Length; i++)
 {
  ch = Convert.ToChar(filename.Substring(i, 1));

  for(int j = 0; j < Path.InvalidPathChars.GetLength(); j++)
  {
   if(ch == Path.InvalidPathChars[j])
   {
    return false;
   }
  }
 }

  return true;
}


こんな感じで使えば良いですかね?
0391デフォルトの名無しさん2005/08/25(木) 12:19:54
>>390
String.IndexOfAny 使えば?
あと
: * ? \ / もチェックしなきゃなんないよ。
InvalidPathCharsには含まれないがファイル名には使えない。
//GetInvalidFileNameCharsには含まれる。
0392デフォルトの名無しさんNGNG
>>390
Cのstrspn()に相当する関数ってないのかな?
0393デフォルトの名無しさん2005/08/25(木) 12:30:53
>>391
ありがとう御座います。
試してみます。
0394デフォルトの名無しさん2005/08/25(木) 12:37:56
>>391
> //GetInvalidFileNameCharsには含まれる。

それは2.0では・・・?
0395デフォルトの名無しさん2005/08/25(木) 12:38:22
>>394
だからコメントアウトw
0396デフォルトの名無しさん2005/08/26(金) 21:04:19
コンパイルしたPGとmdbを一緒に組み込んで配布することってできる?
ファイルをいくつか読み込んで吐き出す際SQL使いたいんだけど
クライアントにアクセス入ってない場合動くのかな
0397デフォルトの名無しさん2005/08/26(金) 21:17:57
>>396
Access入ってなくてもmdb操作できるよ。
03983962005/08/27(土) 02:49:46
>>397
ありがと
ウィザード使ってコネクション作ってソース見たら絶対パスで書いてあったんだけど
インストーラにして配布したら相対パスになる??
ぐぐってみたけど探し方が悪いのかそこらへん書いてる資料見つからない・・・
0399デフォルトの名無しさん2005/08/27(土) 08:58:44
たしかならなかったような。
// 直接関係ないけど、mdb内のリンクテーブルとかも絶対パスなのよね。。。
04003962005/08/27(土) 09:50:45
あー、確かにリンクテーブルも絶対パスか(;´Д`)
pgの下位フォルダ読んで探しに行くようにしなきゃ駄目かな・・・
0401C ◆.6Hqkk7dyk 2005/08/27(土) 14:03:49
メニューに印刷機能を追加したいのですが、
C#での印刷機能の実現方法が分かりません。
できればプレビューとページ設定も追加したいのですが……
どうやればC#で印刷機能などを実現できますか?
印刷の対象はリッチテキストボックスです。
開発環境はVisualStudio.NET2002です。
0402デフォルトの名無しさん2005/08/27(土) 14:23:51
>>401
まずはここを読もう。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconPrintSupport.asp
0403C ◆.6Hqkk7dyk 2005/08/27(土) 14:27:46
ありがとうございます。
0404デフォルトの名無しさん2005/08/28(日) 04:03:56
VC# 2005 Express Beta2で、複数のプロジェクトで共有したいソースファイル(*.cs)をコピーせずに共有するには
[既存の項目追加]で[リンクとして追加]を実行するしか方法がないのでしょうか?
0405デフォルトの名無しさん2005/08/28(日) 12:38:32
リフレクションを使って特定クラスのinternalなコンストラクタを呼び出したいと考えています。
引数なしの場合はこんなコードでうまくいきました。

Activator.CreateInstance(typeof(Klass), true);

引数がある場合はこんな感じかなあ、と思ったのですが

typeof(Klass).InvokeMember(null, BindingFlags.CreateInstance | BindingFlags.NonPublic, null, null, new object[] { 100 });

例外が出てしまいます。
System.MissingMethodException: 型 'Klass' にコンストラクタが見つかりませんでした。

ご存知の方おられましたらご教示ください。
0406デフォルトの名無しさん2005/08/28(日) 12:46:53
| BindingFlags.Instance

InvokeMemberよりも一旦GetConstructorでConstructorInfoを取得する方をお薦め。
0407デフォルトの名無しさん2005/08/28(日) 13:11:00
>>405
BindingFlags.CreateInstance | BindingFlags.NonPublic | BindingFlags.Instance じゃね?

でも>>406に同意。
0408デフォルトの名無しさん2005/08/28(日) 13:12:04
>>406にも
> | BindingFlags.Instance

って書いてあったか。スマソ
0409デフォルトの名無しさん2005/08/28(日) 13:52:35
>>406-408
回答ありがとうございます。
ひとまず BindingFlags.Instance を追加して動作することを確認しました。
ConstructorInfo についても試してみます。
0410デフォルトの名無しさん2005/08/28(日) 15:29:49
質問です。
タイトルバーをドラッグしてウィンドウを移動している間は、処理を止める、
というような事をしたいのですが、タイトルバーを押下するのに対応するイベントは在るのでしょうか?
非クライアント領域に対する操作に関するイベントを探しているのですが、見つかりません。
WM_ENTERSIZEMOVEメッセージを処理するコールバックメソッドを用意しないとだめなのでしょうか?
VC#.net2003を使ってます。よろしくお願いします。
0411デフォルトの名無しさん2005/08/28(日) 15:42:52
>>410
ウィンドウ移動はFormのMoveイベントで取れるよ。
0412デフォルトの名無しさん2005/08/28(日) 15:48:11
>>411
いや、Moveイベントでは移動開始/終了判定がめんどくさい。
WM_ENTERSIZEMOVE / WM_EXITSIZEMOVEを自前で捕らえた方が楽かと。
0413デフォルトの名無しさん2005/08/28(日) 18:41:01
ありがとうございます。
今試して見たところ、移動に関してはMoveイベントで取れるのがわかりました
しかしタイトルバー押下したあとマウスを動かさなければ、
イベントが発生せず望み通りの動きをしてくれません。
些細な事なのですが、ゲーム用途なので数フレームでも無駄に進んでしまうと都合が悪く、
>>412さんが仰られるように自前で捕らえるしかないようです。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasswndproctopic.asp
こんな感じでやればいいんですよね?
0414デフォルトの名無しさん2005/08/29(月) 01:50:39
メニュー上で右クリックを検知ってできませんよね?
0415デフォルトの名無しさん2005/08/29(月) 03:27:07
できる
0416デフォルトの名無しさん2005/08/29(月) 10:53:34
文字列が整数部何桁以内、小数部何桁以内の数値の形かどうか
("-12345.6789"とか、指数形式とかはムシ)判断したいのですが
double.TryParseや正規表現だと、書式は判断できるんですが
何桁以内か、というのを調べる方法が分かりません。
いまはとりあえず上記の書式チェックをした後ピリオドでSplit
して調べてますが、一発で出来る方法ってありますか?
0417デフォルトの名無しさん2005/08/29(月) 10:56:05
一発?
正規表現で()を巧く使えばできるだろ
0418デフォルトの名無しさん2005/08/29(月) 11:05:05
例えば整数部5桁以内、小数部4桁以内なら
[1-9][0-9]{0,4}\.[1-9][0-9]{0,3}
とすればできるはずだけど
0419デフォルトの名無しさん2005/08/29(月) 11:58:45
>>418
0.0434とか拾えないぜ
あと必ず小数点が含まれているのかどうかとか、>416は条件を出し切れてないね
0420デフォルトの名無しさん2005/08/29(月) 14:59:38
>>415
うそ?
04214142005/08/29(月) 15:18:16
>>415
方向性だけでも教えてくれませんか
0422デフォルトの名無しさん2005/08/29(月) 15:32:27
普通に、MouseDown MouseUpでできたが?
04234142005/08/29(月) 15:45:53
error CS0117: 'System.Windows.Forms.MenuItem' に 'MouseDown'
の定義がありません。

とでますが……
0424デフォルトの名無しさん2005/08/29(月) 16:09:14
2.0使ってくれ。1.1環境は手元にねーから知らね。
0425デフォルトの名無しさん2005/08/29(月) 16:18:33
2.0でもMenuItemにMouseDownイベントなんてないぞ。
0426デフォルトの名無しさん2005/08/29(月) 16:26:51
ToolStripItemにはあるからそっちかね。

で、メニューってのはMainMenu? MenuItem?
MainMenu、つまりタイトルバーの下部分なら、フォームのWndProcで、WM_NCRBUTTONDOWN/UP/DBLCLKでwParamがHTMENUの時。
MenuItem、開いた後のメニューテーブルなら、同じくフォームのWndProcで、WM_MENURBUTTONUP辺りかな。
04274142005/08/29(月) 16:47:01
>>426
右クリックでクリックの場所とハンドル取得できました。
ありがとうございました
0428デフォルトの名無しさん2005/08/29(月) 18:25:03
>>419
確かに・・・orz

[1-9][0-9]{0,4}(\.[0-9]{0.3}[1-9])?

これだとどうだろうか
0429デフォルトの名無しさん2005/08/29(月) 18:32:42
>>428
それだと0.なんとかが拾えない。
整数部を([1-9][0-9]{0,4}|0)にしないと。
あと1.0という表現を認めるとなると小数部も変わってくるな。まあ[1-9]の代わりに,の後ろを1増やすだけだが。
0430デフォルトの名無しさん2005/08/29(月) 18:42:35
>>367
C#の2005版でいつごろでるの?
0431デフォルトの名無しさん2005/08/29(月) 18:43:33
>>430
確か11月
0432デフォルトの名無しさん2005/08/29(月) 18:48:50
>>431
それじゃ今2003を買うのはハズレということか?
2003を安く買うのもありかな?
0433デフォルトの名無しさん2005/08/29(月) 19:34:58
リッチテキストボックスの内容を印刷する方法が分かりません。
ネットで検索とかしても分かりませんでした。
どうやれば印刷できるのですか?
0434デフォルトの名無しさん2005/08/29(月) 19:41:25
絶対調べてねーだろとしか思えないんだが……。
ttp://www.google.com/search?hl=ja&c2coff=1&q=richtextbox+%E5%8D%B0%E5%88%B7&lr=lang_ja
0435デフォルトの名無しさん2005/08/29(月) 19:54:26
HOWTOは読んでみたのですが、よく分からなかったのですよ
まだまだ初心者なもので・・・
0436デフォルトの名無しさん2005/08/29(月) 20:46:05
おいおまいら、コンストラクタ内で例外を発生させるのってどう思うよ?

個人的には気持ち悪いのだが。
0437デフォルトの名無しさん2005/08/29(月) 20:50:16
>>436
別にいい。。。
0438デフォルトの名無しさん2005/08/29(月) 21:02:57
>>436
そこで例外投げないとクラスができてしまうわけだが。
0439デフォルトの名無しさん2005/08/29(月) 21:05:35
クラスができちゃ駄目ー
0440デフォルトの名無しさん2005/08/29(月) 21:07:35
>>437-438
コンストラクタの中で例外発生させても安全なの?
C++だと御法度だったよね。
0441デフォルトの名無しさん2005/08/29(月) 21:13:02
>>440
俺もそう思ってなるべくやらないようにしてたが、
いかんせん、間違った引数渡されたおかげで
どうしても正常なクラスを作れない場合があるし。

それにMSのクラスの中にもコンストラクタから例外投げてるやつもいるし問題ないべ。
0442デフォルトの名無しさん2005/08/29(月) 21:22:37
>>440
Managedのありがたさを全身で受け取れ。
0443デフォルトの名無しさん2005/08/29(月) 21:23:05
>>441
ども、ありがとん。
0444デフォルトの名無しさん2005/08/29(月) 21:38:58
>>440
C++でデストラクタでは例外投げちゃ駄目ってのは、よく聞く話。
コンストラクタで例外投げるのはC++、C#、Java共にOK。
0445デフォルトの名無しさん2005/08/29(月) 21:47:21
>>440
最近はfunction-try-blockをちゃんとサポートしているコンパイラも増えてきているから、
ご法度と言うほどでもなくなっているように思う。
0446デフォルトの名無しさん2005/08/29(月) 23:06:08
画像の縮小について、
Graphics.ScaleTransform(float, float) ;
で縮小した画像が、イメージが劣化して醜くなってしまいます。

Windowsのペイントで同じ比率(50%)に縮小てみたところ、
ScaleTransformで縮小したものよりはきれいでした。
できるだけ綺麗なまま縮小したいのですが、
分かる方いらっしゃいますか?

0447デフォルトの名無しさん2005/08/29(月) 23:08:15
Grahpics.InterpolationMode
0448デフォルトの名無しさん2005/08/29(月) 23:38:12
>>447
ありがとうございます。
とりあえず
grf.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
とやって、なんとか綺麗な画像を得られました。
Modeにも色々あるのですね。これから試してみます。
0449デフォルトの名無しさん2005/08/30(火) 07:39:02
なあ、他人が書いたソースコード(ネットとか公開されてるやつ)をコピペして、
それをちょっと改造してプログラムを作った場合、
そのプログラムの著作権ってどうなるの?
アセンブリ情報のとこの著作権の欄に何て書こうか迷っているんだが
0450デフォルトの名無しさん2005/08/30(火) 07:45:53
>>449
気にしてるときりがないがw
向こうが要求してるところを除いて、特に書く必要はないと思ふ。
ヘルプとかリドミとかに参考サイトとしてURL挙げとけば良いんじゃないかな。
0451デフォルトの名無しさん2005/08/30(火) 11:31:35
9割方が他人のコードかのように読めちゃうんだけど
0452デフォルトの名無しさん2005/08/30(火) 14:31:50
>>449
コピペの量によるんじゃないか、APIの使い方程度のサンプルだったら問題ないと思う。
オリジナル性が認められる内容の引用なら著作権が発生するからそのサイトの方針しだい。
フリーウェアやオプソならその配布ルールに従う。
余談だけど、以前ソフトの著作権の裁判でここが類似していると指摘したところがSDK/DDKの
サンプルともそっくりだったって話があったのを思い出した。
0453デフォルトの名無しさん2005/08/30(火) 17:55:10
漢字入力を始めたときに飛んでくるWM_IME_STARTCOMPOSITIONなどを
監視して、以下のようなソフトを作りたいと思っています。
�@ワード文書内において、
�AIME入力、言い換えれば漢字入力を開始すると、
�B入力された文字が確定されるまで、
�C背景を薄いブルーにする、
というものです。

すでに私は、
ソリューションダイアログでWord.ObjectLibraryを参照するように設定することで、
�@ワード文書に例えば文字列をinsertしたり、選択範囲を変更したりできるようになりました。
また、
自分のフォームに、テキストボックスから派生させたMyテキストボックスを
貼り付けて、そのMyテキストボックスに文字が入力されはじめたことを
ウィンドウメッセージとして取得できるようになりました。
具体的には、派生させたクラス(Myテキストボックス)のWndProcをOverrideして
m.MsgがWM_IME_STARTCOMPOSITIONかどうかを判定する機能を追加しました。

【質問】
しかしながら、Myテキストボックスでは「文字が入力されはじめたことを検知」する
機能を搭載することに成功したのですが、
ワード文書ではうまくいきません。とうかどうやるのかよくわかりません。
テキストボックスから、上記の機能を搭載したクラスを派生させるように、
例えば、Word.ApplicationやWord.Documentから派生クラスを用意して適宜同じように
WndProcをoverrideすればうまくいくでしょうか。
もっとも、Word.Applicationは、インターフェース型(?)ですが。

【質問2】
思いっきりすれ違いな予感もしますが、当方VisualC#2.0 beta2 , WindowsXPsp2,Word2000です。
よろしくお願いします。
0454デフォルトの名無しさん2005/08/30(火) 17:59:56
同じ板の中でマルチポストとは良い度胸だ。
回答まで貰ってるのに。
0455デフォルトの名無しさん2005/08/30(火) 19:36:39
XmlSerializerでUriクラスがシリアライズできないんですが、仕様ですか?
BinaryFormatterなどでは出来るんですが。

> System.InvalidOperationException: System.Uri
> に既定のパブリック コンストラクタが含まれていないため、シリアル化できません。

でもUriクラスをMSのサイトで見ると、[Serializable]とISerializableって書かれてるのに。。
0456デフォルトの名無しさん2005/08/30(火) 20:08:47
仕様だよ。
理由は例外メッセージの通り。
0457デフォルトの名無しさん2005/08/30(火) 21:14:04
>>456
そうですか。
仕方ないのでBinaryFormatterで我慢します。
レスサンクスコ!
0458デフォルトの名無しさん2005/08/30(火) 22:36:58
Drawing.Color もXMLシリアライズできないのは不便だな
0459デフォルトの名無しさん2005/08/30(火) 23:21:09
ColorTranslator.FromHtml使ってるわ
0460デフォルトの名無しさん2005/08/31(水) 16:57:05
PictureBoxに表示されてる画像のクリック時に
別のフォームでオリジナルサイズ表示したいのですが

Form frm = new Form();
frm.Size = picture.Image.Size;
frm.BackgroundImage = picture.Image;
frm.ShowDialog();

と書いても落ちてしまうんですよね
すでに表示してる画像を別のフォームで表示しようとしてるのがいけないのでしょうか・・・
0461デフォルトの名無しさん2005/08/31(水) 16:58:41
例外も書かずに、独り言かい?
0462デフォルトの名無しさん2005/08/31(水) 17:03:44
>>461
失礼しました
例外はShowした先のフォームで出るのですが

'System.OutOfMemoryException' のハンドルされていない例外が system.windows.forms.dll で発生しました。
追加情報 : メモリが不足しています

です。
メモリは512ありますし、普通にフォームを開くことは可能なので、画像が原因じゃないのかなと思っています。
なにか情報ありませんでしょうか?
0463デフォルトの名無しさん2005/08/31(水) 17:32:14
さて困った。再現しない。
取りあえずこの辺とか。
ttp://66.102.7.104/search?q=cache:dobon.net/cgi-bin/vbbbs/cbbs.cgi%3Fmode%3Dal2%26namber%3D8405%26rev%3D%26no%3D0%26KLOG%3D2
04644162005/08/31(水) 17:36:21
>>416の正規表現の話です。詳しく説明します。
・先頭に+または-、または符号なし。
・符号は桁数に入れない。
・整数部または小数部のどちらかだけ省略可能。
・余分にゼロが入っていてもよし。
・10進表記。指数とかはなし。

たとえば4桁3桁なら以下の表現はセーフにしたいです。
-.123 / -1234. / -1234.000 / -0000.123

>>429だと、なんか桁数チェックが利いてないみたいです。
[0-9]{0,4}だと"12345"でもマッチしてしまいます。
あと"7F"みたいなのがOKになってしまいます。
0465デフォルトの名無しさん2005/08/31(水) 17:58:35
>>463
ありがとうございます
何がいけなかったのか良くわからないのですが
URLを参考に
Bitmap bmp = new Bitmap(picture.Image);
frm.Size = bmp.Size;
frm.BackgroundImage = bmp;
frm.ShowDialog();
で問題なく動きました

streamからpictureboxにimageをセットしてクローズしてたのですが
それが問題だったのでしょうか??
0466デフォルトの名無しさん2005/08/31(水) 18:08:37
>>464
小数点は入らない可能性もあるんだよな?
この場合整数部を持ってるかどうかで小数部の判定を分けるしかなさげだなー。
@"^[+-]?(?:[0-9]{1,4}(\.[0-9]{0,4})?|\.[0-9]{1,4})$"

無駄に複雑バージョン
@"^[+-]?(?<int>[0-9]{1,4})?(?(int)(\.[0-9]{0,4})?|\.[0-9]{1,4})$"
0467デフォルトの名無しさん2005/09/01(木) 21:35:36
IDE、というかMSDNのビューワーのことなんですが、どういう訳か
「.NET Framework クラス ライブラリ」のカテゴリ(検索結果のリストの「場所」の
列に「.NET Framework クラス ライブラリ」と表示されるグループ)のページが、
検索に一切引っかからなくなりました。

例えば、"form メンバ"で検索をかけると、以前はFormのメンバが乗っているページが
検索結果に出ていたのですが、これが出なくなりました。

もちろんフィルタ条件に(フィルタなし)を選択しても。

なにか解決法ご存知ないでしょうか?
MSDNのバージョンは2005 - Aprilです。
アンインストール/インストールは試しましたが変化なし。
0468デフォルトの名無しさん2005/09/02(金) 11:25:54
ブラウザコントロールでアドレスのファイルを読みに行くんじゃなくて
stringの変数を直接読むことってできないかな??
ページを生成して、保存する前にプレビューとかで使おうと思うんだけど
0469デフォルトの名無しさん2005/09/02(金) 11:30:10
そう言う場合は一旦about:blankにNavigateしてからDocument.writeを使うのが常道。
0470デフォルトの名無しさん2005/09/02(金) 12:37:03
>>469
ありがと、できたよ
一回保存するよりも楽だね
private void BrowserReload(){
//ブラウザコントロールに文字列から直接プレビュー表示
_previewData = CreatePreviewData();//プレビュー用HTMLを生成
object url = "about:blank";
object o = null;
this._browser.Navigate("about:blank", ref o, ref o, ref o, ref o);
}
private void browser_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e) {
((mshtml.IHTMLDocument2)browser.Document).write(_previewData);

}
0471デフォルトの名無しさん2005/09/02(金) 12:44:51
あ
object url = "about:blank";
は必要ないな
0472デフォルトの名無しさん2005/09/02(金) 21:20:05
それ系は結構サンプルあるから探してみるといいよ
0473デフォルトの名無しさん2005/09/03(土) 05:07:43
aspで質問。

グリッドのチェックボックスの全解除、全選択をしたいのですが
javascriptでグリッドのチェックボックスを舐めていく方法ってどうしたらいいのですか?
普通にdocument,grid.チェックボックスじゃ参照できないのですが・・・


サーバ側じゃなくてクライアント側でやりたいのですが。、


0474デフォルトの名無しさん2005/09/03(土) 09:39:27
HTMLでどう表現されるかを考えてみればすぐわかるでそ
0475デフォルトの名無しさん2005/09/03(土) 10:14:27
つスレ違い
0476デフォルトの名無しさん2005/09/03(土) 10:29:27
>>475
うぜー
スレ違いなんていわれて他で質問すると
マルチなんて言われる・・・
0477デフォルトの名無しさん2005/09/03(土) 10:35:10
いや一言「どこそこで聞いたんですがスレ違いと言われたので」と断れば誰もマルチだなんて言うかよ
元スレにも移動したことと移動先を書けば何の問題も無し
0478デフォルトの名無しさん2005/09/03(土) 10:36:26
>>473をよく読みなおせ。そしてここがなんのスレか考えろ。

ど う 見 て も ス レ 違 い だ
0479デフォルトの名無しさん2005/09/03(土) 10:39:00
C#で書いたアプリってショボのでも平気で20MB程度のメモリを
使うのはなぜ?
「Excelでも10MB位なのに、なんか下手な作り方してない?」
なんて言われちゃいました・・・
0480デフォルトの名無しさん2005/09/03(土) 10:41:21
「うるせーバーカお前にメモリの構造がわかるか!!」
って言っとけ
0481デフォルトの名無しさん2005/09/03(土) 10:42:30
C#で20MBなんて少ないほうだよ。
Windows Forms使ってるとね。

「定期的に最小化してください」って言っとけ
0482デフォルトの名無しさん2005/09/03(土) 10:42:40
C#を勉強したいと思っています。

Visual Studioの評価版って60日が過ぎても、再インストールすれば
もう1度使えるのですか??
0483デフォルトの名無しさん2005/09/03(土) 10:53:20
>>479
仮想マシンの上に乗っかっているから。
一定量のメモリを OS から貰って VM を構築し、その上でソフトを動かしてる。

……って思ってたけど合ってるのかなコレ


>>482
素直に買え。もしくは無料版があるからそれ使え
0484デフォルトの名無しさん2005/09/03(土) 11:02:28
>>483
無料版って評価版とどう違うの??
もしかして、試用期間がないの??
0485デフォルトの名無しさん2005/09/03(土) 11:04:04
VSなんてのは金持ちの使うもんだ 貧乏人はSDKとエディタ使っとけ
0486デフォルトの名無しさん2005/09/03(土) 11:06:04
ワレメ
0487デフォルトの名無しさん2005/09/03(土) 11:08:18
C言語での
int a[4][4];

これってC#の場合はどうするの?
0488デフォルトの名無しさん2005/09/03(土) 11:10:06
int[][] a = new int[4][4];
0489デフォルトの名無しさん2005/09/03(土) 11:11:02
int[,] a = new int[4, 4];

int[][] a = new int[4][];
for (int i = 0; i < a.Length; i++)
    a[i] = new int[4];

意味的には前者だがお薦めは後者だ。
0490デフォルトの名無しさん2005/09/03(土) 11:21:48
>>479
メモリは幻想だって何万回出ただろう。
http://www.itwriting.com/dotnetmem.php
0491ふらっとスレ1422005/09/03(土) 11:33:35
>>490
(´・∀・`)ヘー
私は≠479だけど。
0492デフォルトの名無しさん2005/09/03(土) 12:02:49
>>481
SetProcessWorkingSetSize を明に呼び出したほうがいいんじゃない(w
0493デフォルトの名無しさん2005/09/03(土) 13:56:28
Visual Studio2003Spokeを使ったC♯の質問なんですが
プログラムをデバックするときにVSでは引数を指定できないのでしょうか?
.NetSDKについてくるDbgCLRではできたんですが・・・。

それとVSでクラスを作成してクラスだけでデバッグなどはできないのでしょうか?
変数に値を代入してデバッグなどをしたいのですが。
0494デフォルトの名無しさん2005/09/03(土) 14:00:27
プロジェクトのプロパティに引数の項目あるだろ
後者は適当にMainメソッド書けば
0495デフォルトの名無しさん2005/09/03(土) 14:27:39
ちょっと確認したいのですが
C#では、ほかの人が作ったdllを自分のアプリでプログラム部品として利用する際

[DllImport("aaaaa.dll")]
public static extern uint bbbbb(uint a, uint b);

こんな感じに記述するだけで、Dll使えるようになるんですよね。
aaaaa.libファイルがあるのですが、C#ではlibファイルの統合開発環境での登録の設定はしなくても大丈夫でしょうか。
aaaaa.hファイルもC++だったら使うけどC#ではいらいないという理解であってますでしょうか。
0496デフォルトの名無しさん2005/09/03(土) 14:32:07
それがCで書かれたのならそうだな libは使えない hも使えない
04974952005/09/03(土) 14:35:16
>>496
回答ありがとうございます。
dllファイルと一緒に入ってたlibファイルとhファイルを何かに使わなければいけないような不安にかられたのですっきりしました。
ちなみにそのdllファイルはC++でかかれてます。
0498デフォルトの名無しさん2005/09/04(日) 04:10:13
C#で書かれた商用アプリってある?
商用アプリの殆どがVC++で作られてる。

C#じゃ大したものできないのかな?
0499デフォルトの名無しさん2005/09/04(日) 04:15:18
まぁ、C#は2005が出れば終焉必至

C++/CLIがデファクトスタンダード最有力
0500デフォルトの名無しさん2005/09/04(日) 05:25:56
throw;
0501デフォルトの名無しさん2005/09/04(日) 05:54:09
リファクタリング機能がVC#2005だけに搭載されて、VC++2005にはなぜ無い?
0502デフォルトの名無しさん2005/09/04(日) 06:53:34
>>498
俺がいっぱい書いている。
0503デフォルトの名無しさん2005/09/04(日) 07:36:55
パッケージソフトを開発する言語に生産性は求められない
0504デフォルトの名無しさん2005/09/04(日) 09:27:13
ソースネクストの携帯電話メモリ編集ソフトが.NET Frameworkを要求するという噂を聞いた。
0505デフォルトの名無しさん2005/09/04(日) 10:48:18
うちは.NET系の受注が増えまくってるらしい。
0506デフォルトの名無しさん2005/09/04(日) 10:57:54
>>505
それが普通だと思うが。今更、Javaってこともないのでは。
0507デフォルトの名無しさん2005/09/04(日) 11:07:44
ありときりぎりす
.NETはまだ必須じゃないけど
必用になってから始めたら手遅れ
0508デフォルトの名無しさん2005/09/04(日) 11:08:34
ま、メインはASP.NETてことだな。
@ITの会議室とかでもWinFormの質問:ASP.NETの質問=1:2位だし。
0509デフォルトの名無しさん2005/09/04(日) 11:26:33
C#か知らんが
ttp://www.microsoft.com/japan/office/homestyle/prodinfo/default.mspx

これが.NET Frameworkが必要
0510デフォルトの名無しさん2005/09/04(日) 12:37:26
>>509
すまんが、日本語おかしくないか。
0511デフォルトの名無しさん2005/09/04(日) 13:31:12
C言語の
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
説明
fread 関数は stream ポインタで指定されたストリームから nmemb 個のデータを読み込み、 ptr で与えられた場所に格納する。個々のデータは size バイトの長さを持つ。
ファイル位置指示子を読み込んだデータバイト分進める。

これと同じことをC#に書き換えたいのですが
データバイト分進めたり、nmemb個のデータを読み込むといったことは、なんというクラスのメソッドを使えば簡単にできるでしょうか。

0512デフォルトの名無しさん2005/09/04(日) 13:37:18
StreamクラスのReadメソッド
ファイルならStreamから派生したFileStreamクラス
あるいはそれを元に作ったBinaryReaderオブジェクトの各種メソッド

そういえばReadInt32Arrayとかは無いな。不便を覚えたことはないが。
05135112005/09/04(日) 13:38:57
>>512
ありがとうございます。それらのメソッド使ってやってみます。
0514taka2005/09/04(日) 15:21:37
VS.NET2003をインストールしたいんですが手元に
どのソフトがあればインストールできるかわかりますか?


0515デフォルトの名無しさん2005/09/04(日) 15:26:13
VS.NET 2003があればインストールできるな
0516taka2005/09/04(日) 15:37:00
僕が今もっているのは
VS.NET2003 Enterprise Dveloper,Disc1 Disc2
なんですけど他に必要なのってなんですか??
インストールできないんですよ…
0517デフォルトの名無しさん2005/09/04(日) 15:45:46
3がないとワレれないよ。
0518taka2005/09/04(日) 15:47:14
何枚必要なんですか?
0519デフォルトの名無しさん2005/09/04(日) 15:50:27
6枚ってかスレ違い消えろ
05205112005/09/04(日) 15:56:10
今、
short[] ptr = new short[nmemb];
uint dwRead = 0;

while((dwRead = fread(ptr, sizeof(SHORT), nmemb, pFileIn)) > 0){}

ファイルから、sizeof(SHORT)バイトのデータnmemb個をptrに格納し、ファイルの終わりまで繰り返すという
C言語のコードをC#に書き直すということをやっているのですが、スマートなコードがかけなくて困っています。

C#で以下のように書き直しました。

FileStream fs = new FileStream("test.wav", FileMode.Open);
Binary br = new BinaryReader(fs);

br.ReadBytes(40); //40バイト飛ばす

while((ptr = br.ReadBytes(2)) > 0){}//short配列ptrに2バイトデータを格納の処理

このように書くと、>はshortとintを比べられない、byte[]をshort[]に変換できない。とエラーが出るし
nmemb個入れるという作業ができません。

0521続きです2005/09/04(日) 15:56:42
while(nmemb > 0)
{
ptr = br.ReadBytes(2);
nmemb--;
}
このように書くと、nmemb個入れれますが、bute[]をshort[]に変換できないというエラーは相変わらずです。

shortは2バイトだから2バイト入れようと思えば入れれるだろうと考えたのですが、エラーが出ます。
どうにかCのコードのように、nmemb個をptrに入れることと、ファイルの終了を感知する式を同時にwhile()に入れられるような
スマートなC#の書き方があれば助言いただけるとうれしいです。
0522デフォルトの名無しさん2005/09/04(日) 16:07:44
型というものをもっと意識しろと。
ReadInt16使えばいいじゃん。
05235112005/09/04(日) 16:11:43
>>522
アドバイスありがとうございます。
ちょうど2バイトずつ読み込める関数があるんですね。
ReadInt16を使って書き直してみます。
0524デフォルトの名無しさん2005/09/04(日) 17:45:24
>>516
shareで
(アプリ) Microsoft VisualStudio.NET 2003 Professional 日本語版 CD6枚組.ccd+rr.rar
を拾えるぞ
2.7GB程度
俺も無論拾った。
あんなものに数万円はボッタ1確
0525デフォルトの名無しさん2005/09/04(日) 17:51:17
通報しました(・∀・)
0526デフォルトの名無しさん2005/09/04(日) 17:55:01
No way you can stop me!
0527デフォルトの名無しさん2005/09/04(日) 17:57:47
業務で使ってるとしたらアフォだな
0528デフォルトの名無しさん2005/09/04(日) 18:49:05
PictureBox1からPictureBox2へ
読み込んだ画像の一部を転送するプログラムをBitBltで作成しているのですが、
このとき転送先、転送元のハンドルの取得方法が分かりません。
教えてください。
Picturebox1.Handleとやってもダメでした。
0529デフォルトの名無しさん2005/09/04(日) 19:30:51
ハンドルはハンドルでもデバイスコンテキストのハンドルだろ。
GraphicsつくってGetHdcすれ。ReleaseHdcも忘れずにな。
でもなんでGraphics.DrawImageじゃ駄目なんだ?
0530デフォルトの名無しさん2005/09/04(日) 19:48:29
>>524
1確ってなんですか?
新手の2ちゃん語?
0531デフォルトの名無しさん2005/09/04(日) 21:01:02
C#って、ANSIだISOだで標準化されないのかな?
MSのWindowsだけのための言語で、どうしても勉強する気になれん。
0532デフォルトの名無しさん2005/09/04(日) 21:02:59
>>531
プギャー(AAry
0533デフォルトの名無しさん2005/09/04(日) 21:04:47
ローカルのHTMLファイルを表示するツールです。
作ったPCでは問題なく動くのですが、別PCではHtmlが表示しません。
どなたか動作確認して貰えないでしょうか。

http://49uper.com:8080/html/img-s/77058.zip
0534デフォルトの名無しさん2005/09/04(日) 21:11:39
>>531
もうされてますが・・・
0535デフォルトの名無しさん2005/09/04(日) 21:13:14
>>531
ECMA と JIS で標準化されてるハズ〜
某言語と違ってグローバルな言語だと主張したいのか、ECMA への登録は速かった
0536デフォルトの名無しさん2005/09/04(日) 21:20:40
>>533
単に表示されないだけなのか何らかの例外は吐かないのか
Microsoft.mshtml.dllは対象のPCに入っているのか? 
0537デフォルトの名無しさん2005/09/04(日) 21:29:00
HTMLが表示しないってのはボタンを押したら左にスクロールバーが出るのですが
何も表示せず真っ白けなんです。

>>536
メインプログラムの方でtry-catchを付けてみても何も引っかからなかったんです。
mshtml.dllはSystem32に入っています。
試しに実行ファイルと同じフォルダに入れてみても結果は同じでした。
0538デフォルトの名無しさん2005/09/04(日) 21:31:37
Microsoft.mshtml.dllでググれ。
それが原因だから。
0539デフォルトの名無しさん2005/09/04(日) 21:38:57
>>538
バッチリその通りでした。
と言っても「C:\Program Files\SharpDevelop\bin」に入ってたんですけどね・・・。
実行ファイルと同じフォルダに入れたらちゃんと表示するようになりました。

ありがとうございました。
0540デフォルトの名無しさん2005/09/04(日) 22:37:31
code projectから、C#のサンプルコードをダウンしたのですが
フォルダの中身は、C#(***.cs)のファイルいくつかと、Makeファイルと、Manifestファイルが入ってました。
プロジェクトもソリューションも入っていません。

こういった場合、Makeとかやったことないのですが、makeコマンドとかをいじったりすれば実行ファイルを作ることができる
ということでしょうか。
0541デフォルトの名無しさん2005/09/04(日) 22:40:57
1ソリューションに7つのプロジェクトがあるんですが、
そのうちの一つのプロジェクトをビルドしようとすると
一々マウスでプロジェクトを右クリックしてビルドしか
ないの?

マジ使いづれー > VS
0542デフォルトの名無しさん2005/09/04(日) 22:45:01
>>540
nmake Makeファイル名
で。
0543デフォルトの名無しさん2005/09/04(日) 22:46:17
お前ら、クリック以外の作業は全部面倒なのか?
0544デフォルトの名無しさん2005/09/04(日) 22:46:58
>>531
標準化はされているが、強くWindowsOSのアーキテクチャに依存している。
Windows以外のプラットフォームで満足に動かされたら、MSも商売上がったりだろ?
05455402005/09/04(日) 22:47:49
>>542
ありがとうございます。makeファイルとかでぐぐったけど。説明が長すぎて、結局どうしたらいいのかわからなかったんです。
0546デフォルトの名無しさん2005/09/04(日) 22:51:53
>>544
別にC#はWindowsとはまるで無関係だろ?
.NETの実装とごっちゃにするのはいけない
.NETもWinFormのほか幾つかを除けばそれなりにプラットフォーム中立だしな
05475402005/09/04(日) 22:55:40
コマンドプロンプトから
nmake makefile.mak

と打ったのですが、
nmakeは、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。

と出てしまいます。
試しに
make makefile.mak
と打ってみましたが、同じ言葉が返ってきます。

何かmakeコマンドを設定する必要があるのでしょうか。
0548デフォルトの名無しさん2005/09/04(日) 22:57:47
>>546
じゃあ、おまえはCとUNIXも無関係だと?
0549デフォルトの名無しさん2005/09/04(日) 22:57:48
パスが通ってないだけちゃうんかと・・・・・・・
0550デフォルトの名無しさん2005/09/04(日) 22:58:11
>>547
pathを通す
0551デフォルトの名無しさん2005/09/04(日) 22:58:19
>>548
無関係ちゃうんかと・・・・・・・
0552デフォルトの名無しさん2005/09/04(日) 22:58:42
>>548
無関係
05535402005/09/04(日) 23:00:40
>>549-550
なるほど、パスが通ってないのですか。makeコマンドにパスが通るようにやってみます。
どうもありがとうございました。
0554デフォルトの名無しさん2005/09/04(日) 23:01:41
どこにパスを通せばいいか聞いてくるに違いない
0555デフォルトの名無しさん2005/09/04(日) 23:02:03
>>553
makeなんてないし。
とりあえずPCの中に nmake.exe があるか検索。
0556デフォルトの名無しさん2005/09/04(日) 23:05:18
パスを通すと言うこと自体分かってなかったりして……まさかな
0557デフォルトの名無しさん2005/09/04(日) 23:10:15
>>554
これに1票追加
05585402005/09/04(日) 23:10:19
>>554
そのとおりかもです。「パスを通 make」で一生懸命ぐぐってました。

>>555
検索して発見しました。
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
ここにありました。

>>556
そのとおりです。具具って見たら

特に問題なければC:\Windowsに入れてしまえばよいですが、
AUTOEXEC.BATに
SET PATH="%PATH%";"フォルダ名"
という行を追加すれば任意のフォルダにパスを通すことができます。

と書いてあるので、この方法でやってみます。

どうも皆さんアドバイスありがとうございます。助かりました。
0559デフォルトの名無しさん2005/09/04(日) 23:11:08
MSBuild.exe は結構便利だと思った
0560デフォルトの名無しさん2005/09/04(日) 23:12:21
>>558
autoexec.bat ってことは Win9x か?
NT系では別方法だぞ
0561デフォルトの名無しさん2005/09/04(日) 23:13:35
Win9xではVSもSDKも入れられない罠
0562デフォルトの名無しさん2005/09/04(日) 23:15:14
パスの次に、LIB、INCLUDE他必要な環境変数を聞いてくるに違いない。
0563デフォルトの名無しさん2005/09/04(日) 23:15:53
>>533は割れ
05645402005/09/04(日) 23:17:27
>>560
OSはXPです。ということはパスの通し方の別方法なのですね。
今日はもう遅いので明日ぐぐって調べることにします。

>>562
何かほかにまだ設定しないとmakeできないのですか。面倒ですね。
まあ、とりあえず、明日やってみて、できなかったらまた考えるということで今日はもう眠ります。

どうも皆さんアドバイスありがとうございました。
0565デフォルトの名無しさん2005/09/04(日) 23:23:08
つか普通にスタートメニュー>全てのプログラムの中のどっかにVisualStudio .NETコマンドプロンプトがあるだろ、と言う件
0566デフォルトの名無しさん2005/09/04(日) 23:35:55
>>563
usoiuna
dokodewakarunosa?
0567デフォルトの名無しさん2005/09/04(日) 23:47:49
XXXなんてディレクトリ作っている時点で変な奴だな

D:\XXX\works\Visual C# .net\WindowsApplication2\
0568デフォルトの名無しさん2005/09/05(月) 14:59:11
>>533じゃないけど普通ソースを配布するときはどのファイルを付ければいいの?
例えばフォームが一つだけのアプリだったらそのフォームのCSファイルだけで良いのかな
0569デフォルトの名無しさん2005/09/05(月) 15:07:59
VSでやってるんだったらそのソリューションのフォルダまるごと
コマンドラインでやるなら.resxを一旦resgenして/resに含めるとかしないといかんし
0570デフォルトの名無しさん2005/09/05(月) 15:46:29
asp.netでajax.netを使ってるんだけど、
ajaxで動的にコンボボックスを生成した後に
asp.netのボタンクリックなどのイベントハンドラが発動すると、
ajaxで変更した部分が初期状態(コンボボックスを生成する前)に戻っちゃうんだけど、
何か回避策ありませんか・・・?
0571デフォルトの名無しさん2005/09/05(月) 17:06:49
>>569
レスありがとうございます。
VSを使っているのですが、>>533みたいな添付の仕方で良いんですね。
って事は>>567みたいにディレクトリが知られてしまうのは仕方がないって事ですか・・・。
0572デフォルトの名無しさん2005/09/05(月) 17:18:17
>>571
ソリューションファイルがあるところに隠しファイルがある
その隠しファイルには検索履歴とかも保存されているんで
消しておくのが吉
0573デフォルトの名無しさん2005/09/05(月) 17:51:15
C#で簡単な暗号化ソフトを作りたいのですが、
暗号化するためのメソッドとかはデフォで用意されてませんか?
APIとかでもOKです
05745732005/09/05(月) 17:53:44
途中で送信してしまったので……
以下続き

暗号化する対象は様々な種類のファイルです
バイト単位(或いはビット単位)で暗号化したいです
アセンブリとして公開されているものでも構いません
基本的に文系なので自分で暗号方式を考えるのは不可能に近いです
なので既存のものを部分的に利用したいと考えています
0575デフォルトの名無しさん2005/09/05(月) 18:01:33
>>571
*.suoファイルを消しとけばいいのでしょうか。
で、>>533はそれも添付してしまったからディレクトリが分かってしまったと言うことですね。
0576デフォルトの名無しさん2005/09/05(月) 18:01:39
System.Security.Cryptography 名前空間
0577デフォルトの名無しさん2005/09/05(月) 19:30:10
>>576
大感謝っす!
0578デフォルトの名無しさん2005/09/05(月) 19:40:15
あのさ、ふと思ったんだけどさ、
標準ライブラリとかでキー指定して暗号化するじゃん
これってさ、何かあったときのためにさ、
すぐに復号してしまえるような仕組みが組み込まれてないか不安になるんだよね
まあ、暗号化した後にXORで一部ビット反転とか簡単な暗号化をやってしまえば良いんだけどさ
0579デフォルトの名無しさん2005/09/05(月) 19:44:07
何かあった時って何よw
そのレベルで心配するのならプロプライエタリなもんは使えないことになるぜ
0580デフォルトの名無しさん2005/09/05(月) 19:47:24
>>578
チラシの裏にでもかいてろカス
.NETのプログラムは逆コンパイルできるしそもそも.NETの標準ライブラリは
ただのWIN32APIのラッパーだから暗号ならcrypt.dllあたりを逆汗すればいいだけ
0581デフォルトの名無しさん2005/09/05(月) 19:49:16
>>579
何かあった時ってのはだな、
犯罪の証拠となるファイルとかそういうのを犯人が暗号化してさ、
それでキーを忘れたとか言って煙に巻こうとするような時だよ
0582デフォルトの名無しさん2005/09/05(月) 19:55:22
絶対に自分しか復号できない暗号化方式って無いかな?
将来のスーパーコンピュータでの力ずくの復号とかは考えずに
0583デフォルトの名無しさん2005/09/05(月) 20:11:17
>>582
絶対って何だろうな…
0584デフォルトの名無しさん2005/09/05(月) 20:14:31
日々の胸中を本音で書いた秘密の日記ファイルとかさ、
そういったのは確実に暗号化して隠したいよな
0585デフォルトの名無しさん2005/09/05(月) 20:16:11
>>582
復号の仕方を知っているのが自分だけという状況にする。(公開鍵暗号方式の基本だが)
ファイルを読み込むプログラムを配布するようだとそもそも無理ぽ。
0586デフォルトの名無しさん2005/09/05(月) 20:18:32
>>585
プログラムは非公開
ってか、キー値さえばれなきゃ大丈夫なんじゃないの?
0587デフォルトの名無しさん2005/09/05(月) 20:23:09
>>586
まあ世の中に絶対は無いので、絶対とは言わんが。
あとは処理速度と強度のバランスを調整しつつ実装すればよかろ。
0588デフォルトの名無しさん2005/09/05(月) 20:27:37
取りあえずそこらの奴が考えた非公開アルゴリズムよりは公開・利用されているアルゴリズム使った方が安全度は高いと思う今日この頃
0589デフォルトの名無しさん2005/09/05(月) 20:31:17
>>588
確かにそうだな
多くのエンジニアの目に触れる訳だからな
ヘタなものは出さないだろ
0590デフォルトの名無しさん2005/09/05(月) 20:35:13
現在C#でWebサービスを作成しはじめたのですが
公開したメソッドにアクセスしたクライアントのIPアドレスをログとして残そうと思っています
Webサービス側でクライアントのIPアドレスを取得するにはどのプロパティ?メソッドを
使えばすれば良いのでしょうか?
0591デフォルトの名無しさん2005/09/05(月) 20:43:10
>>590
ttp://www.gdncom.jp/general/mllog/tech/webTech.aspx?ID=2-06
0592デフォルトの名無しさん2005/09/05(月) 20:55:38
.NETで作ったアプリは逆コンパイルができるそうですが
ということは、C#でシェアウェアのアプリを作るというのはそもそも向いてないということなのでしょうか。
0593デフォルトの名無しさん2005/09/05(月) 21:05:44
そういう質問する奴には向いてないのでしょう
0594デフォルトの名無しさん2005/09/05(月) 21:10:04
>>592
難読化ツールを使っておくと、複雑なものほどネイティブの逆汗よりも面倒になる。
05955922005/09/05(月) 21:16:04
>>594
アドバイスありがとうございます。
ネイティブよりも面倒になるのなら逆コンパイルを心配することもないようですね。

.NET逆コンパイラとコードを難読化するDotfuscator
http://www.atmarkit.co.jp/fdotnet/tools/dotfuscator/dotfuscator_03.html

上記サイトによると難読化するDotfuscatorがVS2003についてるそうなのでこれでやってみようと思います。
0596デフォルトの名無しさん2005/09/05(月) 21:16:54
クラスウィザードでクラスを追加しようとすると
「エラーを特定できません」というダイアログが出て、
それを閉じるとクラスウィザードが終了するようになった。
ほかのプロジェクトに切り替えても変わらず。
「既存項目の追加」で追加することは可能。
こういう症状の出たことある人っている?
環境はVC#2003, XP Pro SP2。
0597デフォルトの名無しさん2005/09/05(月) 21:21:27
国家機密とか価値の高い企業秘密とかじゃなければ
たとえ簡単な暗号化しかしてなくても
「暗号化してあります」と書いておくだけでも十分有効
05985902005/09/05(月) 21:24:04
>>591
有り難うございました
0599デフォルトの名無しさん2005/09/06(火) 00:17:44
シェアで公開できるようなアプリはC#で作ることは不可能。

結局VC+++MFCしかないと思う

↑
くだなねー突っ込みがきそうw
0600デフォルトの名無しさん2005/09/06(火) 00:33:54
throw;
0601デフォルトの名無しさん2005/09/06(火) 00:35:44
ttp://blogs.msdn.com/danielfe/archive/2005/07/10/437293.aspx
0602デフォルトの名無しさん2005/09/06(火) 01:52:19
C++/CLIでC#はお役ご免になりそうな勢いですよね
せっかく勉強したのにちょっと残念
0603デフォルトの名無しさん2005/09/06(火) 02:10:02
throw;
0604デフォルトの名無しさん2005/09/06(火) 04:23:53
>>602
@ITの読みすぎ
0605デフォルトの名無しさん2005/09/06(火) 05:22:32
「MSはC++を見捨ててません!」って宣伝してなかったか?
もう過去の資産扱いだと思うんだが
0606デフォルトの名無しさん2005/09/06(火) 06:01:00
ネイティブAPI直接呼び出しとかメモリ管理つかえんとC++使う甲斐がないよな
マネージドC++って使われてんのかな?
0607デフォルトの名無しさん2005/09/06(火) 11:12:14
test.wavの.wavを削除したいのですが

"test.wav".TrimEnd(".wav");

としたいのですが、引数はcharの配列でないとだめみたいでうまく.wavを削除できません。
後ろから4文字削除したいのですがどのように記述すればできるでしょうか。
0608デフォルトの名無しさん2005/09/06(火) 11:15:02
String.SubstringとかRegex.Replaceとか
06096072005/09/06(火) 11:18:47
>>608
String.Replace("oldword", "newword");
でできました。
どうもありがとうございました。
0610デフォルトの名無しさん2005/09/06(火) 11:20:16
test.wav.gz とかはどうするんだろう
0611デフォルトの名無しさん2005/09/06(火) 11:25:36
.wavを取り除きたいのか、後ろの4文字を取り除きたいのか、拡張子を取り除きたいのか
0612デフォルトの名無しさん2005/09/06(火) 11:35:30
.emacs とかはどうなっちゃうんだろう
0613デフォルトの名無しさん2005/09/06(火) 11:42:10
なんでわざわざ敢えて608で出さなかったものを使うんだろうw
06146072005/09/06(火) 12:48:46
>>610
アプリの処理の流れ上、test.wav.gz というファイルは処理しないようになってるので大丈夫です。

>>611
拡張子を取り除きたいです。
ただこの場合、.wavしかありえないので、String.Replaceで十分満たせます。

>>613
"test.wav". と.を押してみたら、Replaceが出てきたので、これも使えるなと思い。
使ってみました。
0615デフォルトの名無しさん2005/09/06(火) 12:57:07
test.wav.wavなんて名前でも普通に存在しうるんだが
06166072005/09/06(火) 13:16:30
>>615
もっともなご指摘ありがとうございます。
そのようなファイル名をつけようと思えばつけれますね。

そういった名前のファイルだと、String.Replaceでは対応しきれませんね。
やっぱり末尾から4文字削除するというのが一番汎用性がありそうですね。
末尾から4文字取り除くのにぴったりのメソッドとかないでしょうか。
06176072005/09/06(火) 13:23:18
"test.wav".Remove("test.wav".Length - 4, 4)

で末尾から4文字削除できました。
皆さんアドバイスどうもありがとうございました。
0618デフォルトの名無しさん2005/09/06(火) 13:23:23
>>616
System.IO.Path.GetFileNameWithoutExtension
0619デフォルトの名無しさん2005/09/06(火) 13:23:39
>>616
すでに>>608 で出てるけど・・・
0620デフォルトの名無しさん2005/09/06(火) 13:23:57
うがっ。。。
06216072005/09/06(火) 13:29:43
>>618
これが一番どの拡張子にも対応できて汎用性がありますね。
便利なメソッドを教えていただいてどうもありがとうございます。

>>619
String.SubstringやRegex.Replaceとかもいじれば同じような処理ができるようですね。
案外いろんなメソッドで実現できることだったのですね。
これらのメソッドも参考にします。
0622デフォルトの名無しさん2005/09/06(火) 15:09:46
Pathクラスは便利なんだからもっと使ってやろうぜ。
0623デフォルトの名無しさん2005/09/06(火) 15:14:39
BitArrayクラスは使い所が分からないぜ
0624デフォルトの名無しさん2005/09/06(火) 15:14:48
test.wav.wav.wav.wavとかだったらどうすんの?
0625デフォルトの名無しさん2005/09/06(火) 15:21:00
何を言いたいの?
0626デフォルトの名無しさん2005/09/06(火) 15:22:40
そんな名前つける奴が悪い
0627デフォルトの名無しさん2005/09/06(火) 15:43:28
拡張子を削除したいならもう結論は出てるから、
そんな例を出しても無意味
0628デフォルトの名無しさん2005/09/06(火) 18:16:23
C#で簡単なゲームを作りたいのですが、参考になるゲームの
ソースコードが公開されているHPがありましたら教えて下さい。
0629デフォルトの名無しさん2005/09/06(火) 18:23:51
素晴らしく抽象的だな
0630デフォルトの名無しさん2005/09/06(火) 18:26:19
ソースは抽象的なほど良い
0631デフォルトの名無しさん2005/09/06(火) 18:33:07
質問は具体的なほど良い。
0632デフォルトの名無しさん2005/09/06(火) 19:02:06
>>628
DigiPen Institute Of Technology
MSDN Webcast Archive Video Game Development Learn to Write C# the Fun Way
http://www.digipen.edu/webcast/
0633デフォルトの名無しさん2005/09/06(火) 19:27:10
>>629-631
この流れに妙に感動した俺がいる。疲れてるのかな・・・。
0634デフォルトの名無しさん2005/09/06(火) 19:37:24
ADO.NET(System.Data.SqlClient)でレコードを追加するとき、
キーがダブっているとSqlExceptionが出るのでcatchするのですが、
この例外がPK違反かどうかというのはどこを見ればよいんでしょう?
Number? ErrorsのいずれかのNumber? それ以外?
Numberだとしたら、何番が何とか言うのはまさかcatch内で定数
べた打ち判断ですか?
PK違反だったらキーを付け直してリトライしたいです。
0635デフォルトの名無しさん2005/09/06(火) 19:42:10
Numberでヘルプ見たらmaster.dbo.sysmessages の値だと
書いてありました。これって不変なんでしょうか。
0636デフォルトの名無しさん2005/09/06(火) 19:53:40
SqlClientつーことは少なくともSQL Server限定やね。
俺が以前実装したときはNumberが2601か2627の時はユニーク制約違反と
みなすようなベタなコーディングをした。
特にお勧めはしないが。気になるならまあ具体的な数値は設定ファイルか何かで
持っておけば。

ユニーク制約違反かどうかを知りたいアプリ的に知りたいケースって
多いのに、一般的で移植性の高い方法は無いんだよな。
0637デフォルトの名無しさん2005/09/06(火) 20:07:30
私もADO.NETでOleDbを使ってるんだけど
OleDbException捕まえてErrorCodeでベタうち
なんか良い方法があれば良いんだけどね
0638デフォルトの名無しさん2005/09/06(火) 20:12:47
SQL Server限定ならともかくOLEDBではどうしようもないんじゃないか流石に
0639デフォルトの名無しさん2005/09/06(火) 20:16:25
C#の配列は最大どのくらいのサイズまで可能ですか?
つまり、

byte[] b = new byte[*];

で、 * の場所に入れれる最大数は何ですか?
1億は可能ですか?
0640デフォルトの名無しさん2005/09/06(火) 20:20:03
メモリが許す限り
一応の制限として2GB前後でなんかの壁があったような気がする
0641デフォルトの名無しさん2005/09/06(火) 20:21:26
LongLength があるから、long まで OK のはず
つまり 9223372036854775808 まで OK

多分、その前に OutOfMemoryException 出るけど
0642デフォルトの名無しさん2005/09/06(火) 20:24:13
ごめん。long の最大値が 1 大きかった
0643デフォルトの名無しさん2005/09/06(火) 20:29:44
longまでOKだろうけど、IndexOfとかはintを返すよなぁ……
0644デフォルトの名無しさん2005/09/06(火) 20:29:53
>>640-642
ありがとうございます!
0645デフォルトの名無しさん2005/09/06(火) 20:38:50
確認したら死ぬほど違ってたよ
new byte[] の [] 内に入る値は int みたいだ
0646デフォルトの名無しさん2005/09/06(火) 20:50:17
MSIL的には、配列型はnatual int == アンマネージドポインタ のサイズでやりとりするようだから、プラットフォームに因るようだが。
System.Arrayの制限としてはInt32.MaxValueが上限っぽいねー。
0647デフォルトの名無しさん2005/09/07(水) 01:40:37
>>645
longの値も普通に入るみたいだけど。
手元のメモリではint.MaxValue/3くらいまでが限界でしたが。

>>641
2次元配列とかにしたらintでもLongLengthが必要になる状況が起こりうる気がする。
0648デフォルトの名無しさん2005/09/07(水) 09:34:12
>>636
やっぱり数字で判断ですか。SQL Server限定なので
その数字参考にします。さんくす
0649デフォルトの名無しさん2005/09/07(水) 12:52:41
>>647
new byte[3000000000L]; だと OverflowException 出たのよ
0650デフォルトの名無しさん2005/09/07(水) 12:55:21
>>649
持ってたら64bit環境でやってみてくれないか (>>646)
0651デフォルトの名無しさん2005/09/07(水) 14:02:09
静的コンストラクタっていつ呼ばれるんでしょうか。
ヘルプには必要になったらすぐに呼ばれるようなことが書いてありますが
下のクラスのFooを呼んでもNameを呼んでもコンストラクタが
呼ばれません。
あとこれとは別に、静的コンストラクタを含むクラスを継承したら、
派生クラスの静的メンバを呼んでるのに基底クラスの静的
コンストラクタしか呼ばれなかったりしています。

  public class ClassA
  {
    static ClassA()
    {
      Debug.WriteLine("ClassA()");
    }

    public static string Name
    {
      get
      {
        return "ClassA";
      }
    }

    public static void Foo()
    {
      Debug.WriteLine("Foo()");
    }
  }
0652デフォルトの名無しさん2005/09/07(水) 14:15:15
>>651
> 静的コンストラクタっていつ呼ばれるんでしょうか。

そのクラスが初めて使われるとき。

> 下のクラスのFooを呼んでもNameを呼んでもコンストラクタが呼ばれません。

呼ばれてるよ?

> あとこれとは別に、静的コンストラクタを含むクラスを継承したら、
> 派生クラスの静的メンバを呼んでるのに基底クラスの静的
> コンストラクタしか呼ばれなかったりしています。

呼んでるのは基底クラスの静的メンバであって派生クラスとは何の関係もないから。
//個人的には"派生クラス.基底クラスの静的メンバ"って表記は分かりにくいので使いたくない。
0653デフォルトの名無しさん2005/09/07(水) 15:09:31
>>652
>呼ばれてるよ?
呼ばれてました。勘違いですスマソ
なんかステップ実行してもとまってくれないみたいで。

>何の関係もないから
ああ つまりたとえばClassAを継承してClassBを作ったとして
ClassB.Foo()って書いても、実行するのはClassA.Foo()だから
ClassBのメンバを参照したことにならないと。なろふど。。。
同じ名前のnewを作って委譲みたいなことしないとだめか。
ちょっと設計みなおしますorz
0654デフォルトの名無しさん2005/09/07(水) 15:57:13
>>653
> 同じ名前のnewを作って委譲
隠蔽な。

つか静的コンストラクタの呼ばれ方に依存するコードってどんなんだ?
0655デフォルトの名無しさん2005/09/07(水) 20:12:50
>>648
スレ違いなレスだが俺はINSERTの前はCOUNTで確認取る。
どの言語でもこれが普通だと思ってるが。
面倒かもしれんが、catchに色々書くぐらいなら同じじゃない?
まあCOUNTからINSERTの間に割り込まれる可能性はあるんだけど、それはエラーとして扱ってる。
そういうタイミングが頻繁に起こりえるシステムなら間違ってるけどね。
0656デフォルトの名無しさん2005/09/07(水) 20:58:36
ファイル圧縮/解凍用のライブラリってどこかにありませんか?
圧縮形式はZIPでも何でも結構です
今、自分専用のツールを作りながらC#の勉強をしているので
0657デフォルトの名無しさん2005/09/07(水) 21:04:32
探せよ
だいたいNativeCLRでの解凍ツールは少ないというか遅くて意味がない
zlibと7zipのホームページにそれぞれdllラッパーした.NET用のライブラリがある
0658デフォルトの名無しさん2005/09/07(水) 21:07:27
gzipとあとなんかのストリームが標準で付いてるね
0659デフォルトの名無しさん2005/09/07(水) 21:08:13
>>657
ありがとうござい
0660デフォルトの名無しさん2005/09/07(水) 23:10:11
遅レスだけど、秘密日記の暗号化ならまず破られないよ。
自作するかどっかから拾ってきたランダム関数使って、ランダムシードをkeyにxor。
暗号化されたファイルは乱数列にしか見えないし、
暗号複合プログラムはどっかのフォルダに隠蔽すればいい。
0661デフォルトの名無しさん2005/09/07(水) 23:26:50
マネージコードからアンマネージDLLの呼び出しに関する質問です。
アンマネージDLLにコールバック関数を指定する関数があって、
マネージコードからその関数にデリゲートを渡しているのですが、
初回だけデリゲートが呼ばれて、その後まったく呼ばれなくて困っています。

アンマネージDLL(ソースコード無し)を使ったWin32のサンプルコードは完全に動作しています。
ソースコードはだいたい以下のような感じです。
マネージコードからアンマネージDLLを呼び出すとアンマネージDLLでスレッドが起動できないとか、
なにか特別なルールがあるのでしょうか?アドバイスお願いします。

public delegate void CallBack();

[DllImport("CallBack.dll")]
public static extern void SetCallBack(CallBack cb);

-------------

public void Main()
{
CallBack cb = new CallBack(call_back);
SetCallBack(cb);

while (true)
{
Thread.Sleep(100);
}
}

public static void call_back()
{
DoSomething();
}
0662デフォルトの名無しさん2005/09/07(水) 23:27:32
ウィンドウをフローティングさせる機能を実現するためにはどのようにすればいいのでしょうか?
(OpenJaneのアンカー’>>’ポップアップ機能みたいな)

Formを作ってポップアップウィンドウを表示させると、ポップアップウィンドウのほうに
フォーカスが移ってしまうのですが
どなたか実現方法をご存知の方いませんか?

例 メインフォーム上のLinkLabel llにカーソルがいったときにポップアップするようなコード
LinkLabel ll = new LinkLabel();
ll.MouseHover += new EventHandler(ll_MouseHover);

//
private void ll_MouseHover(object sender, EventArgs e){
FloatingForm ff = new FloatingForm();//< NoBorderなポップアップ用の自作継承Form
ff.Location = MousePosition;
ff.Show();
//この時点でメインフォームのフォーカスがポップアップウィンドウに行ってしまい、タイトルが薄い青に
}
0663デフォルトの名無しさん2005/09/07(水) 23:34:21
>>661
GCのせい。
アンマネージドにデリゲートオブジェクトの参照を渡そうとしても、
参照じゃなくてデリゲートオブジェクトがマーシャリングされた関数ポインタとして渡される。
だからGCは、スコープを抜けた時点でもうそのデリゲートオブジェクトへの参照がないと判断してデリゲートオブジェクトを破棄しちゃうって訳。
フィールドとしてデリゲートオブジェクトを持っておけば、
その保持クラスのインスタンスが破棄されるまで(staticならアプリケーションの終了まで)破棄されることはない。
0664デフォルトの名無しさん2005/09/07(水) 23:34:47
>>662

ShowWindow(this.Handle, 8);
this.Visible = true;


ShowWindowはWin32APIね。

ttp://www.gotdotnet.com/workspaces/workspace.aspx?id=167542e0-e435-4585-ae4f-c111fe60ed58
これのNotificationWindowを参考にした。
06656622005/09/07(水) 23:43:50
即レス感謝です。とんでもなく早いですね
この程度でWin32APIを使わないといけないのか(´・ω・`)
0666デフォルトの名無しさん2005/09/07(水) 23:52:02
>>654
1つ目のクラスのstaticコンストラクタから呼び出してるクラスがstaticコンストラクタで1つ目のクラスを呼ぶ場合とか。
0667デフォルトの名無しさん2005/09/08(木) 00:00:43
>>663
MSDNでコールバック関数にデリゲートを渡しているサンプルとかでも考慮されてないんだけど、
GCが通常のオブジェクト同様にデリゲートのメモリ位置の再配置をやらないのか不安になります。
デリゲートのメモリ再配置は行なわないみたいな仕様があるのでしょうか?
0668デフォルトの名無しさん2005/09/08(木) 13:22:40
http://msdn.microsoft.com/windowsmedia/downloads/default.aspx
ここから、Windows Media Encoder 9 Series SDK をダウンしてインストールしたのですが

コードに、using WMEncoderLib; を記述すると
型または名前空間名 'WMEncoderLib' が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。

とエラーが出るので、参照の追加から、それらしきものを追加したのですが、どれもはずれでした。
ちなみに追加してみたのは以下のものです
Windows Media Player Compatibility Layer
Windows Media Player
Windows Media Player Launcher
Windows Media Streamer Plugin Type Library

調べてみると、コンポーネント名が、Windows Media Encoder object library
のものを追加すればいいのだと思うのですが、どこにもないので
どうも参照の追加の一覧に載ってないのではと思うのですが、こういった場合どうすればいいのでしょうか。


0669デフォルトの名無しさん2005/09/08(木) 13:46:07
>>668
とりあえずローカルにWMEncoderLib.dllがあるか検索。
0670デフォルトの名無しさん2005/09/08(木) 13:58:19
>>669
アドバイスありがとうございます。
検索はしたんです。
で、WMEncoderLib.dllを2つ発見しました。正しくはinterrop.WMEncoderLib.dllでした。
C:\WMSDK\WMEncSDK9\samples\C#\remadmin\WMEWebSvc\bin の中と
C:\WMSDK\WMEncSDK9\samples\Vb\Batcher の中です。

発見したinterrop.WMEncoderLib.dllを、開発中のアプリのDebugフォルダにほうりこみましたが

型または名前空間名 'WMEncoderLib' が見つかりませんでした。ディレクティブを使うかアセンブリ参照を使ってください。
とエラーがでます。

ためしに、using interrop.WMEncoderLib; にしてみましたが結果は同じでした。
どのようにしたらこのdllを使えるようになるんでしょうか。
0671デフォルトの名無しさん2005/09/08(木) 14:14:43
MSDNを見ると
using WMEncoderLib;
using WMPREVIEWLib;
using WMDEVICECONTROLLib;
この3つを一緒にプロジェクトへ追加せ〜
とあるけど…どうなんでしょ(横レス、スマソ)
06726682005/09/08(木) 14:23:28
>>671
貴重な情報ありがとうございます。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmencode/htm/encodingafilecsh.asp
ここにあるC#のサンプルコードには、using WMEncoderLib;
しか記述されていないので、WMEncoderLibさえ設定してしまえば大丈夫かと思ったのですが
ほかにもいるのでしょうか。

参照の追加の一覧のWindows Media 関係のものはあらかた試しましたが
using WMPREVIEWLib;
using WMDEVICECONTROLLib;
に関連があるらしきものは見当たりませんでした。

もしかして、Windows Media Encoder 9 Series SDK 以外にも何かインストールしなければいけなかったのでしょうか。
普通は、SDKダウンしてインストールしたら、COMだったら参照の設定の一覧にあるはずですよね。
0673デフォルトの名無しさん2005/09/08(木) 14:39:51
label名を連番にしていて
ラベルへの文字列代入させていきたいのですが
label名 + 連番用変数 .Text = "文字列";
のような処理はできないのできませんか?
よろしくおねがいします。
0674デフォルトの名無しさん2005/09/08(木) 14:41:54
>>673
できます。
0675デフォルトの名無しさん2005/09/08(木) 14:42:43
>>673
reflection
番号どおりに配列にでもぶっこんどくのが楽だろうけど
0676デフォルトの名無しさん2005/09/08(木) 14:45:16
>>668
WMEncoderLib.dllじゃなかった、スマソ。
using WMEncoderLib; に相当するものは、
Windows Media Encoder (wmenc.exe)
using WMPREVIEWLib; に相当するものは、
Windows Media Encoder Preview Control (wmprevu.dll)
06776682005/09/08(木) 14:50:09
>>676
情報ありがとうございます。
さっそくwmenc.exeを探したところ、何も見つかりませんでした。
これは結局、Windows Media Encoder 9 Series SDK じゃなくて別のSDKをダウンしなければいけなかったのでしょうか。
名前からしてずばりWindows Media Encoder 9 Series SDKだと思ったのですが。
0678デフォルトの名無しさん2005/09/08(木) 14:58:56
>>677
wmenc.exeはSDKじゃない只のWindows Media Encdoer、それを入れる。
06796682005/09/08(木) 15:02:51
>>678
ありがとうございます(T T) やってみます。
06806732005/09/08(木) 15:15:34
ありがとうございます。
ちょっとやってみたのですが

"label"+"連番変数".Text = "line";
のように処理するとstringにTextの定義がありません。
とエラーがでます。

reflectionについてもちょっと調べたのですが
少し難しくてまだ理解できてません。
どのように処理するのが正しいのでしょうか?
しょぼい質問で申し訳ありません。

06816682005/09/08(木) 15:46:17
>>678
WMEncoderをダウンしてインストールしたところ
参照の追加の一覧に
Windows Media Encoder が現れました。
それを追加したところエラーはなくなりビルドできました。
どうもありがとうございました。
0682デフォルトの名無しさん2005/09/08(木) 16:07:23
>>680
諦めて事前に配列に突っ込んでおく。
0683デフォルトの名無しさん2005/09/08(木) 16:40:32
>>673

Label[] lab = new Label[3];

lab[0] = label1;
lab[1] = label2;
lab[2] = label3;

for (int i = 0; i < lab.Length -1; i++)
{
lab[i].Text = i.ToString();
}
0684デフォルトの名無しさん2005/09/08(木) 16:48:33
フォルダごと複数ファイルを読み込むにはどうしたら良いでしょうか?
Lhacaみたいな圧縮ソフトを作りたいので
0685デフォルトの名無しさん2005/09/08(木) 16:57:59
子コントロールを名前で見つけるメソッドがあってもいいのにね
0686デフォルトの名無しさん2005/09/08(木) 17:03:32
>>684
普通にDirectory.GetFilesとか使えばいじゃん
06876732005/09/08(木) 17:21:15
みなさんどうもありがとうございました。
じゃんぬねっとさんでそれらしきものを見つけました。
http://jeanne.wankuma.com/tips/form/29-findcontrol.html
が、>>683さんのやり方でやってみようと思います。
ありがとうでした!
0688デフォルトの名無しさん2005/09/08(木) 17:34:52
>>687
Control.NameはVisual Studioのデザイナーは自動でNameプロパティに
フィールド名を入れてるがあれは規定値は空文字列のプロパティで
必ずしもフィールド名が入ってるわけじゃないので頼らないほうがいい。
0689デフォルトの名無しさん2005/09/08(木) 19:33:17
じゃんぬめっとはクソ
0690デフォルトの名無しさん2005/09/08(木) 19:59:18
おまえは?
0691デフォルトの名無しさん2005/09/08(木) 21:59:58
2005発売後C++/CLIよりC#を使うメリットはあるかな?
0692デフォルトの名無しさん2005/09/08(木) 22:02:49
throw;
0693デフォルトの名無しさん2005/09/08(木) 22:30:20
asp.net webアプリケーションに初挑戦なんですが、
WebForm1.aspx から、WebForm2.aspxを呼び出すにはどうしたらいいんでしょうか?
Transferを試してみましたが、URLがWebForm1.aspxのままで同一ブラウザ内で
開いてしまいました。

別ブラウザで開かせることはできないのでしょうか?
0694デフォルトの名無しさん2005/09/08(木) 22:44:23
まずHTMLを勉強してね
0695デフォルトの名無しさん2005/09/08(木) 22:46:50
>>691
まあ、C# の方が必要なものだけ機能しぼられてて綺麗し。
0696デフォルトの名無しさん2005/09/08(木) 23:06:34
>>693
たとえばformタグのtarget属性追加。
次は遷移について学習。
0697デフォルトの名無しさん2005/09/08(木) 23:17:43
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("WebForm2.aspx");
}

見たいな感じで、同様に、プログラム中で新しいブラウザで表示させるようなものは無いのでしょうか?
0698デフォルトの名無しさん2005/09/08(木) 23:19:42
だからHTMLの勉強をしろって。
0699デフォルトの名無しさん2005/09/09(金) 00:10:18
すいません。。本当にhtml勉強したら出来ました。。。。
ありがとうございました^^
0700デフォルトの名無しさん2005/09/09(金) 00:41:05
いいってことよ
0701デフォルトの名無しさん2005/09/09(金) 14:36:01
SqlCommandにParameterを作ってDataAdapterでFillして
エラーが出たとき、どうやらSQLが原因だとします。
Fill中のイベントでCommandTextを見ると、パラメータ部分がパラメータ名の
ままなのでですが、ここにそのときの具体的な値が入った状態の
完成したSQL文字列って、どこかで取得できませんでしょうか。
0702デフォルトの名無しさん2005/09/09(金) 15:55:48
code project でダウンしたコードが不思議な構造しているので質問します。

Form1.vb があり、VBで書かれています。
そのForm1.vbから、 

Dim a As Aclass
Dim b As Bclass

a = New A()
b = New B()

といった具合に、クラスをインスタンス化して使うわけですが、なんとクラスaはC#で書かれており
クラスbはC++で書かれています。

Form1.bと、 a.csと、b.cpp、1つのソリューションの中にそれぞれ別プロジェクトとして入っていて
ちゃんとビルドできるし、ビルドできたアプリはきちんと動作しました。

こんな書き方できるのでしょうか。
Form1はvbで書くとして、クラスはプロジェクトが別なら別の言語で記述しても大丈夫ということでしょうか。
更に、それが可能だとします。可能だった場合

Form1をC#、クラスAをcppでといったことも可能でしょうか。
0703デフォルトの名無しさん2005/09/09(金) 15:59:45
可能。なんでかっつーと、別プロジェクトということは、ソースコードは参照してないんだよ。
コンパイル済みのアセンブリを参照してる。アセンブリってことは言語は関係ない。
07047022005/09/09(金) 16:02:33
>>703
回答どうもありがとうございます。

できるんですか。最初見たときは驚愕でした。
なるほどコードじゃなくてアセンブリを参照なのですか。納得。
アセンブリなためどの言語でも関係ないとなると
Form1をC#、クラスAをcppでといったことも可能ですね。
0705デフォルトの名無しさん2005/09/09(金) 16:12:39
>>704
そりゃ、それが .NET Framework の理念だから。
C# で書いたクラスAの派生クラスBをC++で書いて、そのBをVBで使ったりも出来るよ。
07067022005/09/09(金) 16:18:25
>>705
書いたクラスをいろんな言語で使いまわせるんですね。
言語乗り換えたときなんかに便利ですね。
これができるんならひとつの言語に執着しなくても気軽に別の言語も使ってみたくなります。
どうもありがとう。
0707デフォルトの名無しさん2005/09/09(金) 16:20:49
ただ、異言語間で使う場合、たいてい問題ないが、知識無しだと、引っかかることがある。
クロスプラットフォーム共通言語仕様CLSっていうのを知っておく必要がある。


C#で作ったクラスライブラリをVB.NETで使う(クラスライブラリの作り方と共通言語仕様CLS)
http://santamartadotnet.hp.infoseek.co.jp/documents/dotnet/classlibrary.html
07087022005/09/09(金) 16:50:02
>>707
詳しい解説サイトを教えてくださってありがとうございます。
読んでみて実際やってみようと思います。
0709デフォルトの名無しさん2005/09/09(金) 17:23:55
2.0だと同一プロジェクトのソースでも使いまわし可能だとか。
0710デフォルトの名無しさん2005/09/09(金) 18:19:52
質問させてください。

自分が作ったクラスをXML形式に(XMLシリアライズ?)して
そのままオラクルにCLOB型で入れたいのですがやり方がわからずに困っています。。。
どなたか教えてください。
0711デフォルトの名無しさん2005/09/09(金) 18:20:52
byte配列にshift-jisエンコードの文字列が入っています。
その配列から部分文字列(開始位置と文字数はバイト数指定)を取り出しstringに変換したいのですが、
みなさんならどうやってやりますか?

BinaryReaderのReadChars(int count)を使ってみたところ、
shift-jisの文字幅でポインタが進められてしまって、うまく取得できません。
よろしくお願いします。
0712デフォルトの名無しさん2005/09/09(金) 18:24:15
>>711
Encoding.GetString
0713デフォルトの名無しさん2005/09/09(金) 18:25:38
>>710
で、その流れのどの部分が分からないの?
キーワードはそれなりに揃ってるようだけど?
0714デフォルトの名無しさん2005/09/09(金) 18:31:16
>>712
素早いレスありがとうございました。
07155962005/09/09(金) 19:49:09
こういうケースってあまりないのかな。
検索してもあまり引っかかってこない。
何か手がかりを知ってる人がいたらよろしくです。
0716デフォルトの名無しさん2005/09/09(金) 20:27:42
まあぶっちゃけわざわざウィザード使うより手で書いた方が早いし……
0717デフォルトの名無しさん2005/09/09(金) 20:34:19
テキストボックスかリッチテキストボックスで、
縦書きにすることってできませんか?
0718デフォルトの名無しさん2005/09/09(金) 20:51:32
VC6だったら再インストール勧めるんだけどな。
.NET半日かかるし。
07197102005/09/09(金) 20:53:48
>>713
レスありがとうございます!

まず自作のクラスをXML形式に変換したいのですが
XMLシリアライズのようにファイルに書き出すことなく
オラクルに格納する方法がわからないんです。
0720デフォルトの名無しさん2005/09/09(金) 21:12:22
XMLシリアライザはファイルに書き出しているんじゃなくてストリームに書き出しているだろ
07215962005/09/09(金) 21:14:32
>>716
それもそうだが、ファイル作って名前つけて
(最低限だが)クラス定義のコードも書いてくれて、と
便利だったんだよ。
でも楽をしすぎるのもいかんか。

>>718
OS入れる方がまだ時間かからないからなあ。
.NET Frameworkのインストールで手間取るのかな。

必須のことでもないしあきらめるよ。ありがとう。
0722デフォルトの名無しさん2005/09/09(金) 21:30:14
>>717
ttp://forums.belution.com/ja/vb/000/002/81s.shtml
大変なようだな。
0723デフォルトの名無しさん2005/09/09(金) 23:17:38
リッチテキストボックスのコンテキストメニューを
簡単にテキストボックスのデフォルトメニューにすることはできませんか?
地道に実装するしかないのでしょうか?
0724デフォルトの名無しさん2005/09/09(金) 23:23:18
リッチテキストボックスをテキストボックスとして使えばよい
07257102005/09/09(金) 23:28:40
>>720
ストリームですか・・・それをどうオラクルに書き出せば良いのか分らないです orz
0726押忍、オラ狂う!2005/09/09(金) 23:55:18

0727デフォルトの名無しさん2005/09/10(土) 00:14:13
男ならテキストエディタ+コマンドラインコンパイル。
・・・2005が出たらさすがに買います。 つд`)モウチョットヤスクシテクレ
0728デフォルトの名無しさん2005/09/10(土) 01:22:26
Expressは5000円くらいの予定じゃなかったっけ
0729デフォルトの名無しさん2005/09/10(土) 01:25:52
でもExpressってオリジナルのコントロール使ったり(参照)出来ないんでしょ
前に誰かそんなこと言ってなかったっけ?
0730デフォルトの名無しさん2005/09/10(土) 01:27:07
>>728
うむ。2005は割と良心的な値段設定になってるとおもた。
Team Systemなんかは逆の方向に吹っ切れてるけどなw
0731デフォルトの名無しさん2005/09/10(土) 01:32:54
普通にRichTextBoxをフォームに貼り付けて使ったらコンテキストメニューがでないのでは?
0732デフォルトの名無しさん2005/09/10(土) 02:55:38
どうせ、すぐにshareで公開されるから
買ったらアフォ
0733デフォルトの名無しさん2005/09/10(土) 04:27:44
>>729
使えないのではなく作れない。
というか、単にウィザードが用意されてないだけだから
技量のある人なら作れるのかもしれないが俺は知らん。
0734デフォルトの名無しさん2005/09/10(土) 09:26:11
C#のウィンドウズアプリから、LinuxのPostgreSQLに接続するにはどんな方法があるのか教えてください。

ググった感じだと、
インターウィズのPostgreSQL ODBC Driver 日本語版をつかってODBC接続?
monoのnpgsqlを使ってADO.net接続?
このどちらかでいけるのかな?といった気がしましたが、詳しい手順等ポインタをいただけたらと思います。
よろしくお願いします。
0735デフォルトの名無しさん2005/09/10(土) 09:32:51
相談というか疑問なんだけど、
C#は仮想(抽象)メソッドを静的にできないんだけど何故だと思います?
駄目な理由が分からない。。。
private virtual static int hoge() {}
protected abstract static int foo();
0736デフォルトの名無しさん2005/09/10(土) 09:44:56
静的メンバは継承されないからさ。
0737デフォルトの名無しさん2005/09/10(土) 10:07:48
あとprivate virtualは有り得ないな。
0738デフォルトの名無しさん2005/09/10(土) 10:14:24
>>735
それ、C# はっていうか、Java や C++ でできるか?
0739デフォルトの名無しさん2005/09/10(土) 10:54:00
できる言語もある
0740デフォルトの名無しさん2005/09/10(土) 10:54:28
Delphiとかいう糞言語
0741デフォルトの名無しさん2005/09/10(土) 13:36:16
Form1.csから、別プロジェクトのForm1.vbのAメソッドを呼び出すにはどのように記述すればいいでしょうか。
Form1.csに
Form1.とインテリセンスを出してみましたが、当然のようにAメソッドはインテリセンスの一覧にはありません。

どのようにすればインテリセンスに登場させることができるでしょうか。
0742デフォルトの名無しさん2005/09/10(土) 13:42:12
参照してなかったら不可能。
参照しているのなら、クラスからじゃなくて名前空間から書いていく。
あといつまでもForm1なんて名前使ってるのはださくね?
07437412005/09/10(土) 14:15:53
>>742
回答ありがとうございます。参照設定やってみます。
0744デフォルトの名無しさん2005/09/10(土) 14:20:28
vbの人はtextbox1、textbox2、3,4,5
これ定番
0745デフォルトの名無しさん2005/09/10(土) 14:22:26
>>740
マジで?
Delphi のイメージがまたちょっと悪化。
static virtual ってどういう扱いになるん?
0746デフォルトの名無しさん2005/09/10(土) 14:48:50
Delphi6 しかもってないんだが、Delphi では C# で言う static virtual は
「TClass.Method;」で呼び出すと C# の static メソッド風に、
「Object.Method;」で呼び出すと C# の non-static メソッド風に振舞う。

……みたい。ガイドを見る限りでは。多分。
0747デフォルトの名無しさん2005/09/10(土) 16:21:27
糞っていうな糞って
0748デフォルトの名無しさん2005/09/10(土) 16:24:34
ごめん、糞じゃなくてウンコ
0749名無しさん@そうだ選挙に行こう2005/09/10(土) 21:02:09
それならよし
0750デフォルトの名無しさん2005/09/10(土) 22:33:57
テキストボックスの文を、。と\r\nで区切ってsplit配列に入れていくというのをやりたいのですが
下のコードだとビルドは通るのですが、実行したらアプリが固まってしまいます。
Splitメソッドを使おうと思ったのですが、1つの文字しか指定できないのでやむなく下のように書いたのですが
どなたか何かヒントをいただけるとうれしいです。

string[] split;
string moji = textBox1.Text;
int count = 0;
int a;
int b;

while(moji.Length > 0)
{
a = moji.IndexOf("。"); //。の最初の出現位置
b = moji.IndexOf("\r\n"); //\r\nの最初の出現位置

if(a > b) //。と\r\nのどちらが先に出現するかで処理をわける
{
split[count] = moji.Substring(0, a + 1); //文の最初から。までを抜き出す
moji = moji.Remove(0, a+ 1); //文の最初から。までを削除したものをmojiに入れる
}
if(b < a)
{
split[count] = moji.Substring(0, b + 1);
moji = moji.Remove(0, b + 1);
}
count++;
}
0751名無しさん@そうだ選挙に行こう2005/09/10(土) 22:35:22
Regex.Split使えば?
0752名無しさん@そうだ選挙に行こう2005/09/10(土) 22:37:21
このスレはRegexが大人気ですね
07537502005/09/10(土) 22:37:40
>>751
便利なメソッド教えていただいてありがとうございます。
これで楽できます。
0754名無しさん@そうだ選挙に行こう2005/09/10(土) 23:35:27
お絵描きツールを作る時、描画されるオブジェクト(四角、三角、円)などは
Controlを継承して作るのとそうでない方法、どちらがよいのだろうか。

各、描画オブジェクトは摘んで動かしたりできる機能を持つとして
試しに、ドラッグして動かすものをつくってみたのですが

Controlで作った場合 Locationプロパティを変更するだけで綺麗に描画できた。
Controlを継承せずに OnPaint(Graphics), NotifyView(Rectangle), MoveTo(int,int)などを
実装したオブジェクトを使った場合、かなりちらつきがあったり、遅かったりしたんですけど。
どちらの方が一般的なんでしょうか?
0755名無しさん@そうだ選挙に行こう2005/09/10(土) 23:38:07
アンマネージdllの読み込みについて質問です。
DllImport属性だとDllの場所を動的に指定できないみたいなのですが、
実行時にdllの場所を指定して読み込ますことはできないんでしょうか?

それができるDllImportの代替手段などもあれば教えてください。
0756名無しさん@そうだ選挙に行こう2005/09/10(土) 23:42:48
>>754
前者はウィンドウハンドルの無駄遣いっぽい。
後者を使ってダブルバッファリングさせるのが一般的じゃないかな?
0757名無しさん@そうだ選挙に行こう2005/09/10(土) 23:44:01
>>754
オブジェクトの数が増えるとそれが逆転する可能性がある。

>>755
俺も調べたことがあってそういう方法を紹介してたサイトがあったが、
それがとてつもなく面倒な手間がかかって欠点もある、ということで結局
アンマネージDLLを呼ぶアンマネージDLLという馬鹿馬鹿しくなるものを作った覚えがある。

つまりお勧めできない。
0758名無しさん@そうだ選挙に行こう2005/09/10(土) 23:46:33
Controlクラスはリソース食うからあんまり大量に使うもんじゃないんじゃない?

構造をDocumentとViewにわけてDocumentで描画オブジェクトを管理。
View部分にはTimerクラスをくっつけて、
Documentの更新状況に関係なく毎秒nフレームとかで描画すればそんなに遅くならないよ。

ちらつきはBMPのバックバッファ用意して、そこに描画して一気にメインバッファに
流し込めば起きなくなる。描画するコントロールのOnPaintbackgroudを無効にしておくのも忘れずに。
0759名無しさん@そうだ選挙に行こう2005/09/10(土) 23:46:40
遅延バインディングによりアンマネージDLL関数を呼び出す
http://dobon.net/vb/dotnet/links/extractarchive.html

これを参考に。ちなみに俺には中身は理解できなかった。
0760名無しさん@そうだ選挙に行こう2005/09/10(土) 23:48:42
>>755
.NET2.0になればMarshal.GetDelegateForFunctionPointerで関数ポインタをデリゲートに変換できるんだが。
Managed C++でLoadLibraryをラッピングするしかないかな。
0761名無しさん@そうだ選挙に行こう2005/09/10(土) 23:54:22
>>759
LoadLibrary使うのにこんなメンドクサイ事するとは……。
システム寄りの事をするにはC++のほうが適してるな、こりゃ。
0762名無しさん@そうだ選挙に行こう2005/09/11(日) 00:01:22
>>761
何を今更
ま、Managed用の言語であるC#とUnmanagedのDLLで食い合わせが悪いのは当然だわな
07637582005/09/11(日) 00:02:21
昔作ったサンプル
ttp://venus.aez.jp/uploda/data/dat2/upload318729.zip
0764名無しさん@そうだ選挙に行こう2005/09/11(日) 00:26:58
>>755
set PATHすればええやん。
そういう問題じゃないのか?
0765名無しさん@そうだ選挙に行こう2005/09/11(日) 00:31:49
プラグインみたいなのを想定してるとか。
0766名無しさん@そうだ選挙に行こう2005/09/11(日) 00:43:01
>>761-762
そのためのManaged C++でしょう。
0767名無しさん@そうだ選挙に行こう2005/09/11(日) 01:19:59
コウイチ
0768名無しさん@そうだ選挙に行こう2005/09/11(日) 01:47:40
うわ…よくそんなもの見つけましたね。
IDEで出ちゃいます?
07697552005/09/11(日) 01:59:59
Program Filesにインストールされてる製品に付属するアンマネージDLLを参照したかったんです。
でもラッパーDLLをそのフォルダに置いて、それを呼び出せば良さそうですね。
たくさんのレスありがとうございました。

ところでマネージDLLを実行時に場所を指定して読み込むのってどうやるんでしたっけ?
0770名無しさん@そうだ選挙に行こう2005/09/11(日) 02:02:48
Assembly.LoadFrom
07717552005/09/11(日) 02:06:03
あと、ここにもそれっぽい記事が・・・ここまでやるならラッパーDLLを作った方が早いでしょう。
ttp://www.misuzilla.org/docs/net/dynamic-pinvoke
07727552005/09/11(日) 02:06:58
>>770
ありがとうございます。
0773名無しさん@そうだ選挙に行こう2005/09/11(日) 02:17:17
>>768
>571-575
07747542005/09/11(日) 11:43:18
>>756-758 ありがとうございます。
オブジェクト4000個で実験したところ
Controlだと消費メモリは+3M@タスクマネージャ
遅い原因はView側のOnPaintがClipRectangleに対応していなかったようです
0775名無しさん@そうだ選挙に行こう2005/09/11(日) 11:55:23
DocumentViewアーキテクチャ
0776名無しさん@そうだ選挙に行こう2005/09/11(日) 14:49:13
yield return/break って使い道あんのか
0777名無しさん@そうだ選挙に行こう2005/09/11(日) 15:51:06
今時、Doc/View?

ポトペタ最高
0778名無しさん@そうだ選挙に行こう2005/09/11(日) 19:58:22
>777
その発言の意図がわからん。
古いっつーなら勉強し直した方がいいかも。
0779名無しさん@そうだ選挙に行こう2005/09/11(日) 20:08:54
いや古いだろ。
MFC信者?
0780名無しさん@そうだ選挙に行こう2005/09/11(日) 20:52:23
「古いから使わない」はおかしいな。
0781デフォルトの名無しさん2005/09/11(日) 22:39:04
ちょっと確認したいのですが
C#でシェアウェアを作ったとします。
コードの中にパスワードが書いてあった場合、逆コンパイルでパスワードって見えちゃうんじゃないかと思うのですが
どうなんでしょうか。
0782名無しさん@そうだ選挙に行こう2005/09/11(日) 22:41:29
>>781
普通、そういう場合はパスワードを暗号化したものを入れておくんじゃないか。
ユーザーに入力された文を暗号化して結果が、暗号化されてるパスワードと比較する。
0783名無しさん@そうだ選挙に行こう2005/09/11(日) 22:42:37
>>781
そこでMD5暗号化
しかし固定文字列では割れ厨はシリアル集からパス入手するかもね。
0784名無しさん@そうだ選挙に行こう2005/09/11(日) 22:43:31
そういやDotFuscatorの製品版は内部の文字列も暗号化してたはずだな。
07857812005/09/11(日) 22:46:58
>>782
なるほど、それなら見えちゃっても大丈夫ですね。ありがとうございます。そのようにしようと思います。

>>783
MD5という暗号技術がお勧めですか。ありがとうございます。やってみます。
そんなに需要のあるジャンルじゃないので洩れて晒されるほどではないのでわと思っているのですが。

>>784
文字列の暗号化は確か有料でけっこうなお値段だったような気がするのですが、いくらだったか。
ちょっと見てみます。
07867812005/09/11(日) 22:48:52
http://www.agtech.co.jp/products/preemptive/price.html
このサイトに30万とか書いてますよ。
0787名無しさん@そうだ選挙に行こう2005/09/11(日) 22:59:01
>>786
お前は何も見なかった。
0788名無しさん@そうだ選挙に行こう2005/09/11(日) 23:05:24
>>785
UPX 圧縮するともしかするかも
マネージコードで試したこと無いからわかんないけど
0789名無しさん@そうだ選挙に行こう2005/09/11(日) 23:08:00
Shareware Starter Kit使えよ。
2005だけど。
07907812005/09/11(日) 23:17:13
皆さんアドバイスありがとうございます。

>>788
UPX圧縮って、調べてみたら実行ファイルを圧縮して、サイズが小さくなって起動が早くなるとかいう説明でしたが
ひょっとして圧縮ファイルにパスワードとかかけられるのでしょうか。
それか圧縮した状態だから中のパスが見られないということかな。

http://www.vector.co.jp/soft/win95/util/se246580.html
実は、シェアだけど、これも圧縮ファイルにパスワードかけるやつなのですが、これ使っちゃおうかなと思ってたんですけど
一応プログラマーなんだから自分のシェアソフトのパスぐらい自分でなんとかしないといけないんじゃないかというジレンマがあって
こういうの使うのが一番簡単な気がするのですがいまだに迷ってます。

>>789
2005には便利なものがついてるのですね。
使っているのはVS2003です。
確か2005はまだベータでしたよね。
0791名無しさん@そうだ選挙に行こう2005/09/11(日) 23:20:00
C#を勉強して良いものだろうか・・・
いまだに悩んでる。
MSが簡単に「もう辞めた」と言いそうで怖い
0792名無しさん@そうだ選挙に行こう2005/09/11(日) 23:21:57
>>791
複数の言語を使えるに越したことはない。
特に.NETでは。
0793名無しさん@そうだ選挙に行こう2005/09/11(日) 23:23:57
>>791
現在ver2は開発中だしver3は仕様の構想中だよ
C++と違って実装できた機能が規格に追加されるので堅実だと思う
M$は.netいじりにはC#が最適と言いたいみたいだし
0794名無しさん@そうだ選挙に行こう2005/09/11(日) 23:29:42
.NETにはC++/CLIが最適に思えるのだが・・・
0795名無しさん@そうだ選挙に行こう2005/09/11(日) 23:42:21
>>794
今までの資産が大きすぎるからなぁ。両方できればそれに越したことは
ないけど、そうでない、頭が固まってしまった人がかなりいるし。
0796デフォルトの名無しさん2005/09/11(日) 23:50:24
>>776
他人が読むときに不便になりそうな奇抜な機能は付けないでほしい…
0797デフォルトの名無しさん2005/09/12(月) 00:00:01
>>791
次のタマはないんだよ。
現在研究中の言語もC#に取り込まれていくだけ。
0798デフォルトの名無しさん2005/09/12(月) 00:25:10
>>791
幅広く何でもやりたいなら、当分の間安泰なC/C++がお勧め。
0799デフォルトの名無しさん2005/09/12(月) 02:08:24
ちょっと自分で描画系を勉強するに当りScrollWindowExやScrollWindowを使ってスクロールをしようとしているのですが、

UserControlを継承したクラスで

OnPaint(Graphics g)内で
g.DrawString(...)を読んで文字列を書いて

ScrollWindowExやScrollWindow読んで画面をスクロールさせるようなサンプルありませんでしょうか?
どうにもどうすればいいのかつまってしまって困ってます3ヶ月前まで、Linux一筋だったので助けてください。
0800デフォルトの名無しさん2005/09/12(月) 03:03:29
>>799

Microsoft .NET Framework の Windows フォームを使用したペインティング テクニック
http://www.gotdotnet.com/japan/team/windowsforms/windowsformspainting.aspx

サムネイル画像コントロールを作ろう
http://www.atmarkit.co.jp/fdotnet/practprog/wisearch02/wisearch02_01.html
0801デフォルトの名無しさん2005/09/12(月) 03:44:14
このままC#の勉強を続けるべきか
それともJavaの勉強をするべきか
或いはネイティブのC/C++の勉強をするべきだろうか
正直悩むな
どれが一番将来性があるのか
0802デフォルトの名無しさん2005/09/12(月) 04:27:51
>>801
3つとも大して難しい言語でもなく、ましてや基本的には似た言語であるので
人並みの能力があれば3つの勉強を同時にこなすぐらいわけないことだ。

つまり一番将来性がないのはそれができないお前。
0803デフォルトの名無しさん2005/09/12(月) 04:52:25
VS2005出るまでC++の勉強すれば?
出たらC++/CLIで.NETの勉強すればいいじゃん。

俺の見解だけどその中で一番将来性ないのはJAVAじゃないのか?
JAVAのコンセプトは悪くないんだけど、コンセプトを実現させるパワーに欠ける気がする。
あくまでMSと比較してだけどな。
0804デフォルトの名無しさん2005/09/12(月) 06:23:20
>>754
後者でやる場合、四角、三角、円などのクラスに自分の位置とサイズを表すプロパティをつける。
描画する先のコントロールのOnPaintをオーバーライドして
ClipRectangleから描画する必要があるオブジェクトだけを求めて
必要ならダブルバッファリングして、最終的に描画するって感じかな

おもしろそうだったんで試しに作ってみた。VS2005 Beta2
http://49uper.com:8080/html/img-s/79426.zip
0805デフォルトの名無しさん2005/09/12(月) 07:47:04
ここでJavaの話をすると荒れそうだからやめとこう
0806デフォルトの名無しさん2005/09/12(月) 16:30:28
>>801
あえて将来性の無い言語を選ぶのも悪くないね
ひとつの言語しか使用経験がないのに比べ
複数の言語を使った経験があると
その言語でしか通用しない概念か
多くの言語でも通用する概念かの区別がつくので
未経験の言語を使い始めるときに苦労が少ないよ

要するに「未経験の言語=使えない言語」ではなくなる
0807デフォルトの名無しさん2005/09/12(月) 16:32:44
シェアウェアで買ってもらったらパスワード渡しますよね。
そして、ユーザがパスワードを入力して制限が外れます。

毎回毎回起動の度にパスワードを入力させるわけにもいかないから当然、ユーザが入力したパスワードを
どこかに保存することになりますよね。

今までテキストに書き込んでおいたのですが、内部に保持する方法はないでしょうか。
コンボボックスを作っといて、コンボボックスのアイテムとして書き込んだら内部に保持できるかなあとか考えて

comboBox1.Items.Add((object)textBox1.Text);

このように書いてみたりしたのですが、アプリを終了して再度起動したときには、せっかく追加した文字が消えており
保持に失敗。
ユーザの入力したパスワードをアプリ内部に保持する方法があれば教えていただけるとうれしいです。
0808デフォルトの名無しさん2005/09/12(月) 16:38:37
>>807
自分なら暗号化してレジストリへ書き込みますね
MACアドレスなども含めて暗号化することで
同じ値を入れたのでは他のPCで使えないようにすることもできます
08098072005/09/12(月) 16:43:08
>>808
アドバイスありがとうございます。
やはり外部に書き込むしかないのですね。
テキストにパスワードそのまんま書き込んでたので、あんまりかなあと思っていたので暗号化はしようかと思います。
MACアドレスを含む技も、1台に1ライセンスのシェアを作ったときに使わせていただこうと思います。
0810デフォルトの名無しさん2005/09/12(月) 18:25:53
>comboBox1.Items.Add((object)textBox1.Text);
>このように書いてみたりしたのですが、アプリを終了して再度起動したときには、せっかく追加した文字が消えており
こんな知識で一体どんなシェアウエアつくる気だ?
0811デフォルトの名無しさん2005/09/12(月) 19:59:24
CompJapon
08127542005/09/12(月) 21:51:25
>>804 DLして見ました。
綺麗ですね。
ダブルバファリングはControlStyleに任せていたので参考になります。
Point + Sizeとか始めて見ました。
ForEach(delegate(T){});とか2005のソースは面白いですね。
0813デフォルトの名無しさん2005/09/12(月) 22:00:54
2005じゃなくて2.0のソースだろ
0814デフォルトの名無しさん2005/09/12(月) 22:14:08
.slnとか.csprojとかにも面白みがあるんだよ! 多分
0815デフォルトの名無しさん2005/09/12(月) 22:18:12
匿名メソッドは便利やね
0816デフォルトの名無しさん2005/09/13(火) 00:56:31
Generics使って
特定のカスタムアトリビュートが付与されているクラス
のみTに取るとかって指定できませんか

たとえば
List<T>
のTは[serializable]が付与されているものだけに限定とか

型は指定できるけどアトリビュートはできないのでしょうか?
0817デフォルトの名無しさん2005/09/13(火) 00:59:10
すべてがObjectから派生しているからListには
なんでもいれられるじゃないですか
それなのにGenericってなんの意味があるんですか?
0818デフォルトの名無しさん2005/09/13(火) 00:59:18
where じゃないっけ?
0819デフォルトの名無しさん2005/09/13(火) 01:05:43
Genericsってセカンダリ制約ってAND条件のみ?

IAかIBってインターフェイスを実装しているType指定って
できないのかな?

Factoryかませないとできないか?
0820デフォルトの名無しさん2005/09/13(火) 01:14:52
>>816
少なくとも.NET 2.0ではできない

>>817
キャストしないで良いじゃん

>>819
ANDのみだね
0821デフォルトの名無しさん2005/09/13(火) 01:16:25
>>820
だったら配列に入れればキャストしなくてもよくね?
0822最凶VB厨房2005/09/13(火) 01:19:48
配列とリストは構造が違う。
0823デフォルトの名無しさん2005/09/13(火) 01:20:11
Genericsはリストだけで使うわけじゃないから
0824デフォルトの名無しさん2005/09/13(火) 01:20:52
配列だと気軽にAdd/Removeできないじゃん
0825デフォルトの名無しさん2005/09/13(火) 01:46:35
Genericの目的は、キャストよりもアルゴリズムの一般化じゃない?
List<T>で言えばPredicate<T>での検索とかComparison<T>でのソートとか
型に合わせた部分だけ変えればいいっていう
0826デフォルトの名無しさん2005/09/13(火) 02:02:16
テンプレートなくても
javaで言えばComparatorを実装するオブジェクトはソートできる
みたいにアルゴリズムの再利用はできるぞ
0827デフォルトの名無しさん2005/09/13(火) 11:12:15
>>817
何でも入れられるのは問題あるから、型 T だけしか入らないように限定しよう
……というコンセプトもある
0828デフォルトの名無しさん2005/09/13(火) 12:04:07
確かに object 型のリスト作ればどんな型でも格納できるんだけど、
いちいちキャストが必要。
キャストが必要と言うことは、InvalidCastException 発生の危険性が常に伴う。
Generics 使えば、この例外の発生はありえない。
これは、実行時エラーの回避、効率の両面で有効。
0829デフォルトの名無しさん2005/09/13(火) 12:04:16
まぁ型総称性とかで調べてみると理論は分かると思うが。
オブジェクト指向と絡むとちょっと重要なところが変わるんだけどな

実は配列ってのも似たような機能を固定的に成り立たせている
ところもあるっていうか、MyClassって型があったとして、MyClass[]
って型が暗黙的に存在しているだろ。この関係はList<MyClass>と一緒だ
C++のtemplateみたいな一種のコードジェネレータで実現できる機能って
ことは重要で継承とはちがった拡張性が型パラメータによる総称性って
いうか何かに何かを「適用する」って概念だな

で?なんの役に立つのそれ?ってのがたぶん大半の理解できないひとの
いいぶんだと思うけど、それは使ってみて分かるしかないと思うよ
0830デフォルトの名無しさん2005/09/13(火) 13:37:26
HttpUtilityクラスを使って文字列をデコードしたいんですが

using System;
using System.Text;
using System.Web;

とやっても名前空間に見つからないって言われてしまいます。

System.Web.
まで送って、コード補完かけても、AspNetHosting〜しかでてきません。

何か足りないものがあるんでしょうか(´・ω・`)
0831デフォルトの名無しさん2005/09/13(火) 13:40:51
>>830
参照を追加しろ
08328302005/09/13(火) 14:19:52
>>831
おおっっっっ。ありがとうございます!
できますた!
0833デフォルトの名無しさん2005/09/13(火) 17:13:27
質問させてください。
とある自作ゲームで、CPU側の動作(AI)をユーザが
DLLでプラグインできるようにしたいのですが、、

まず、ゲーム本体はプラグインするDLLから動的にアセンブリを呼び、
どういう動作をするのかを問い合わせる形をとるものとします。

しかし、ゲームの本体で持っているデータ構造をDLLと
共有する方法がわかりません

ゲーム本体で使っているクラスとゲーム中のデータを
プラグインするDLLがそのまま参照できると嬉しいのですが、
そういうことは可能でしょうか?
0834デフォルトの名無しさん2005/09/13(火) 17:23:38
>>833
データやクラスを定義したDLLを作成し、本体とプラグインの両方から参照する。
MSのTerrariumが実際にそんな方法でやってるからTerrariumやってみたら?

http://www.microsoft.com/japan/msdn/net/terrarium/
0835デフォルトの名無しさん2005/09/13(火) 17:25:52
>>833
意味不明な部分もあるが、全部可能。
ググルで 
C# DLL 遅延
C# DLL 構造体
C# DLL コールバック
で検索して、読めれば全部解決する。
08368332005/09/13(火) 18:14:26
>>834
めちゃめちゃ参考になりそうです、ありがとうございます!
データとクラスを定義したものをDLLに分離したらよいのですね
ところで、共有したいクラス(シングルトンで使っている)を別DLL内に
閉じ込めたとして、プラグインとゲーム本体で同じDLLを参照したとすると、
中身のデータも共有できるんでしょうか??

>>835
説明が下手ですいません。
とっかかりとなることがわからない状態ですので
キーワードを提示していただけて助かります、早速調べてみます
0837デフォルトの名無しさん2005/09/13(火) 18:33:51
>>836
>共有したいクラス(シングルトンで使っている)を別DLL内に
>閉じ込めたとして、プラグインとゲーム本体で同じDLLを参照したとすると、
>中身のデータも共有できるんでしょうか??

なにをどうしたいのかいまいちよく見えないが、
ゲーム本体がプラグインのDLLと共有クラスDLLから
インスタンスを作って使うわけで可能じゃね?
とゆーか調べてから設計しる。
08388332005/09/13(火) 18:53:21
ありがとうございました、望みどおりの動作になりました

>>837
そのとおりでした。ゲーム本体が共有データを持つDLLの
インスタンスを作って、その後からプラグインがゲーム本体から
動的にロードされて共有データのDLLを見に行くので
問題無しでした

>とゆーか調べてから設計しる。
そうっすね・・・
0839デフォルトの名無しさん2005/09/13(火) 20:15:17
C#で作るほにゃらら、みたいな感じの、初学者でも順を追ってそれなりの
プログラムが組めるような書籍、どなたかご存知じゃないでしょうか?
ジャンルは問いません、友達に教えてあげたいので教えてください。よろしくおねがいします。
0840デフォルトの名無しさん2005/09/13(火) 20:16:24
↑追記
例えば、rubyで言えば、恋するプログラム〜Rubyでつくる人工無脳
のような本ですね。
0841デフォルトの名無しさん2005/09/13(火) 20:18:42
MSDN
0842デフォルトの名無しさん2005/09/13(火) 20:19:37
それなりのレベルのものしか作れないんで意味ないと思うよ
0843デフォルトの名無しさん2005/09/13(火) 20:20:40
うわ。MSDN がそれなりのレベルみたいなレス配置に orz
0844デフォルトの名無しさん2005/09/13(火) 20:32:41
VSについてくるチュートリアル結構よかったよ
文法だけでライブラリのことはノータッチだけど
0845デフォルトの名無しさん2005/09/13(火) 20:42:55
>初学者でも順を追ってそれなりのプログラムが組めるような書籍

『初心者でも順を追ってそれなりの小説が書けるようになる書籍』って読み替えてみた。
こういうのを探すと多分無駄足を踏む事になるね。
俺も >>841 とか >>844 が素直な正解だと思う。
0846デフォルトの名無しさん2005/09/13(火) 20:50:23
ペゾルドを参照せよ!
0847デフォルトの名無しさん2005/09/13(火) 22:26:17
配列と配列を比較するのに推奨の方法は何でしょうか。
要素数は同じです。

参考サイト
ttp://blog.livedoor.jp/gushwell/archives/2005-03.html

やはり逐一比較しかないのでしょうか?
0848デフォルトの名無しさん2005/09/13(火) 22:29:07
しかとは言わないが、まあそれが一番手っ取り早かろう
0849デフォルトの名無しさん2005/09/14(水) 04:15:37
>>834
Terrarium って今でも活発に使われてますか?
0850名無しさん♯2005/09/14(水) 04:16:24
C# 3.0ですよ。( ゚д゚)ノ
http://msdn.microsoft.com/vcsharp/future/
0851デフォルトの名無しさん2005/09/14(水) 04:26:18
また doc ファイルかよ
0852デフォルトの名無しさん2005/09/14(水) 04:47:08
Implicitly typed local variables
Extension methods
Lambda expressions
Object and collection initializers
Anonymous types
Implicitly typed arrays
Query expressions
Expression trees
0853デフォルトの名無しさん2005/09/14(水) 04:50:28
var がキーワードになるのかよ
死ねよ
0854デフォルトの名無しさん2005/09/14(水) 04:54:54
>>849
Terrariumはもともと学習用のゲームみたいな面があった。
0855デフォルトの名無しさん2005/09/14(水) 05:52:31
デフォルトのメーラを起動して、Process.Start("mailto:〜〜");では添付できないので、
ファイルが添付されているところまで持って行きたいのですが、
ちょうどInternetExplorerの、ツールメニュー -> メールとニュース -> 「ページの送信」
を実行した後の様な形です。

よい方法ありませんか?
0856デフォルトの名無しさん2005/09/14(水) 05:59:09
var var イエッツ!

とか振っても、この板では元ネタ知ってる人が居なさそう_| ̄|○|||
0857デフォルトの名無しさん2005/09/14(水) 06:04:10
>>850
きたー。
でもあんまり感動がねえなあ。
0858デフォルトの名無しさん2005/09/14(水) 07:41:14
>>853
プださ
0859デフォルトの名無しさん2005/09/14(水) 12:17:09
lambda はいやじゃー
0860デフォルトの名無しさん2005/09/14(水) 13:06:03
複数のForm間で共有するデータを保持するクラスを作成したのですが、
インスタンスを生成する良い場所が思いつきません。自動的に
生成されるForm1のメンバとして作成するのが定石なのでしょうか?
0861デフォルトの名無しさん2005/09/14(水) 13:11:15
必要なときに作れば良いんでないの
0862デフォルトの名無しさん2005/09/14(水) 13:40:36
>>860
ヒント:シングルトン サービスロケータ
0863デフォルトの名無しさん2005/09/14(水) 16:06:32
Webサービスの開発しているんですが
Web.conifgの設定を変更したらWebサービスは再起動するのでしょうか?
0864デフォルトの名無しさん2005/09/14(水) 16:09:54
しない、はず
いちいちファイル監視なんてやってられないでしょ
0865デフォルトの名無しさん2005/09/14(水) 16:31:45
>>864
有難うございます
普通のWindowsアプリは再起動するらしいので
Webサービスもするのかどうか分からなかったので心配でした
0866デフォルトの名無しさん2005/09/14(水) 16:38:54
ちょっと待て、ひょっとして「再起動するのか」じゃなくて「再起動させなきゃいけないのか」って事か?
それなら当然設定を反映させるのには再起動が必要だぞ。
0867デフォルトの名無しさん2005/09/14(水) 16:46:50
IISが自動的にやってくれるけどな。
0868デフォルトの名無しさん2005/09/14(水) 17:13:45
>>866
>>867

プログラム少し変更して
Global.asaxのApplication_Start内でWeb.config変更ログ取るようにしてから
メモ帳でWeb.configを変更してみたんですが
いじる前といじる後ではこちらで再起動掛けなくても変更がログに残ってたんですが
理由は>>867だったんですね
納得しました

お二人とも有難うございました
0869デフォルトの名無しさん2005/09/14(水) 21:10:35
自己解凍形式の圧縮ファイルみたいに、
プログラム内部にファイル(データ)を内包した感じのプログラムを作りたいのですが、
どうやれば作れますか?
0870デフォルトの名無しさん2005/09/14(水) 21:14:26
ん、リソースを埋め込みたいって事?
どぼんでも見に行ってみたらどう?
0871デフォルトの名無しさん2005/09/14(水) 21:20:09
Web.conifg書き換えるとワーカプロセスが再起動するよ
0872デフォルトの名無しさん2005/09/14(水) 21:26:00
>>870
レスありがとうございます。
どぼん見ても分からなかったらまた来ます。
0873デフォルトの名無しさん2005/09/15(木) 01:38:35
C#でこんなカコイイアプリ作ったぞ
なんて自慢できる人いますか?

つっこみ来る前にw
デザインがダサかったら萎え
0874デフォルトの名無しさん2005/09/15(木) 01:40:16
デザインなんてどうでもいいや
ユーザビリティが優れてればそれで
0875デフォルトの名無しさん2005/09/15(木) 01:42:49
>>873
晒してみる。

【実況用】2chブラウザ「Balloo!」スレ Part2
http://pc8.2ch.net/test/read.cgi/software/1107744498/
0876デフォルトの名無しさん2005/09/15(木) 02:30:52
それ一度使おうと思ったけどインストーラがまんどくさかったから使ってないや
0877デフォルトの名無しさん2005/09/15(木) 22:16:39
配列を定数として宣言したいのですが、どうすればいいのでしょうか?

const uint[] Color = new uint[]{0xFF006000,0xFF0060FF,0xFF00FF00}

としてもエラーになってしまいます。
0878デフォルトの名無しさん2005/09/15(木) 22:19:47
static const でもダメ?
0879デフォルトの名無しさん2005/09/15(木) 22:20:54
>>877
配列自体はconstでも中身が操作できるから。
0880デフォルトの名無しさん2005/09/15(木) 22:21:18
readonly
0881デフォルトの名無しさん2005/09/15(木) 22:28:56
>>880
readonly も中身は操作できなかったっけ?
0882デフォルトの名無しさん2005/09/15(木) 22:40:03
参照型はstring以外constはできない。
static readonlyにするぐらい。
各要素の変更まで禁じようと思ったら独自クラス作るかArrayList.ReadOnly使うとか。
0883デフォルトの名無しさん2005/09/15(木) 23:24:34
c#のconstはつかいにくいんじゃー
08848772005/09/15(木) 23:31:58
あちゃ配列ってconstできないんですか…

今回はこれまでコードの中できめ打ちしてたのを
頭でconstにまとめて読みやすくと思っただけなのでまぁ諦めます

ありがとうございました。
0885デフォルトの名無しさん2005/09/15(木) 23:33:40
それだけならstatic readonlyで十分だと思うが。
0886デフォルトの名無しさん2005/09/15(木) 23:34:05
final しかない言語よりはましだろ
0887デフォルトの名無しさん2005/09/16(金) 01:07:52
っていうかC#のconstは意味がはっきりしてるっていうか
正確に意味理解しとき。
あれは、バイナリイメージにそのまんま「埋め込む」んだ。
だから基本型しか適用できないし、リンク時の動作も埋め込みに
なるんだ。
0888デフォルトの名無しさん2005/09/16(金) 01:09:46
つまりは #define マクロか
0889デフォルトの名無しさん2005/09/16(金) 02:09:48
実行中のWindows Media Playerを他のプログラムから制御する方法はありませんか?
08908892005/09/16(金) 02:22:14
自己解決スマソ。
Ctrl+Pとかを送ってやることにしました。
0891デフォルトの名無しさん2005/09/16(金) 02:26:34
AxWindowsMediaPlayer だったかなんかで自作すればいいじゃん
0892デフォルトの名無しさん2005/09/16(金) 03:42:10
>>887
だが、publicやprotectedの別アセンブリ内のconstを参照するときには埋め込まないでほしかったよ。
constはreadonlyにすればいいんだけど、enumが値の埋め込みになるのが痛い。
0893デフォルトの名無しさん2005/09/16(金) 09:57:52
.NET2.0SDKっていつでるの?
0894デフォルトの名無しさん2005/09/16(金) 10:00:20
>>887
俺は877じゃないし、現状、const でも readonly でも 877 の望むようなことはできないのはわかるけど、
バイナリイメージにそのまま埋め込むタイプの、固定長・中身 const の配列欲しくない?
System.Array 型にマッピングされるんじゃなくて。

>>892
いや、それは readonly でもなくて、public プロパティにしろって MSDN かなんかにかかれてたぞ。
public const にしていいのは、円周率 Math.PI みたいに、ほんとに絶対変わらない値だけ。
0895デフォルトの名無しさん2005/09/16(金) 10:00:32
VS2005発売開始と同時じゃね?
0896デフォルトの名無しさん2005/09/16(金) 12:08:54
public static readonlyにするのは、私の場合高機能列挙型作るときぐらいかな。
あと構造体の初期値。
0897デフォルトの名無しさん2005/09/17(土) 00:47:32
>>896
ハイハーイ。おれはこんなコード書くことが多いです

public static readonly Regex regex = new Regex(@"...", RegexOptions.Compiled);
0898デフォルトの名無しさん2005/09/17(土) 00:58:47
俺はそういうのは private で宣言するなぁ……
0899デフォルトの名無しさん2005/09/17(土) 01:12:41
なんでもpublicにするなよクソが
0900デフォルトの名無しさん2005/09/17(土) 01:14:37
そして再利用されないクラスが増えていく……
0901デフォルトの名無しさん2005/09/17(土) 01:36:38
疑問なんだけど RegexOptions.Compiled って目に見えて効果ある?
09028972005/09/17(土) 02:04:33
あ、internal class内かprivate nest class内ね…
これかいとかないと確かにダメダメだ…orz
0903デフォルトの名無しさん2005/09/17(土) 02:11:51
>>901
気持ち速くなってる。
かなり頻繁に呼ばれないと最初のコンパイルのコストを取り返せないような、微妙。
もっと速くなると思ってたので期待はずれだった。
0904デフォルトの名無しさん2005/09/17(土) 02:27:32
より長く複雑なパターンだと、もっと顕著に効果が現れるのかもね
0905デフォルトの名無しさん2005/09/17(土) 11:48:45
2の補数表現で表されたバイナリデータ(16bit)があるのですが、
これを適切に読み込むにはどうしたらいいのでしょうか?
int data[]として、
data[i] = fs.ReadByte()<<8 + fs.ReadByte();
としているのですが、
0x0000が最小0xFFFFが最大として扱われてしまいます。
符号ビットによって場合わけして読みこむように自分でコードを書かないとだめなのでしょうか?
0906デフォルトの名無しさん2005/09/17(土) 12:03:33
16bitならInt16==short使えばいい話でない?
ついでにBinaryReaderとか(EOF検出が例外によるものしかないっぽいので使いにくいが)
09079052005/09/17(土) 12:07:23
うほっ
intって32bitだってなぜか忘れてました orz...

(short)( fs.ReadByte()<<8 + fs.ReadByte());
でばっちりいけますた。
即レス多謝。
0908デフォルトの名無しさん2005/09/17(土) 13:12:49
.NETは、C++/CLIになるのに、なんでいまだにC#?
0909デフォルトの名無しさん2005/09/17(土) 13:48:57
C++/CLI?
なんじゃそりゃ?
0910デフォルトの名無しさん2005/09/17(土) 13:56:43
>>908
C++/CLIでASP.NETしてろよ。
0911デフォルトの名無しさん2005/09/17(土) 14:29:34
ASP.NET?
なんじゃそりゃ?
0912デフォルトの名無しさん2005/09/17(土) 15:54:51
デザイナでのコード生成に関しての質問です。

自作コンポーネントを作成して、プロパティにMyCollectionというクラスを作った場合
コードの自動生成で
MyCollection.AddRange( new AbstractClass[]{
new ClassA(), new ClassA(), new ClassB, new ClassB));

のように記述されるためにはどのようにすればよいのでしょうか?
http://www.comrade.co.jp/component/dotnetroom/kt_vsdn/kt_vs5b.htm#4
を見て単純な場合はうまくいったのですが、CollectionEditorをカスタマイズすると
追加された内容が反映されなくなってしまいます (コードが自動生成されない)

こんな感じのコード
[Editor(typeof(MyCollectionEditor), typeof(UITypeEditor))]
[Serializable]
public class MyCollection : IList{ /* */}
public class MyCollectionEditor : CollectionEditor{/* 具象クラスを何種類か選ばせて追加できるようなエディタ */}
0913デフォルトの名無しさん2005/09/17(土) 18:02:43
とりあえずこの辺見てみれば?
ttp://www.codeproject.com/csharp/DzCollectionEditor.asp
0914デフォルトの名無しさん2005/09/17(土) 22:55:07
ASP.NETが動く無料のサーバーってありませんか?
公開できないとなると作る気もなくなるので
0915デフォルトの名無しさん2005/09/17(土) 22:57:07
そんなの公開しても恥ずかしくないようなものができてからでも
遅くなくね?
0916デフォルトの名無しさん2005/09/17(土) 23:03:22
>>915の無能なレスにワロタ
微笑ましいね
0917デフォルトの名無しさん2005/09/18(日) 00:21:42
露骨過ぎる釣り
0918デフォルトの名無しさん2005/09/18(日) 00:30:28
>>914
ASP.NET デベロッパー センター ホスティング情報
http://www.microsoft.com/japan/msdn/asp.net/hosting/
0919 2005/09/18(日) 00:42:26
JAVA勉強してるのだけど、
JAVAからc♯へ移行ってどの程度かかりますか?
最終的にJSP サーブレットをある程度できるようになったら
.NETとasp.netも勉強しようと思ってます。
.NETのほうが簡単に見えてきて。
0920デフォルトの名無しさん2005/09/18(日) 00:51:11
>>919
本腰入れて学習が必要なのはASP.NETくらいかな?
VS.NETの使い方、.NET FrameworkのAPI、C#.NETの文法なんかは
それぞれ本一冊あればどうとでもなる。
0921デフォルトの名無しさん2005/09/18(日) 02:54:42
>>920
C# の文法とかはむしろ、ウェブ上の情報だけでも十分かも。
ほとんど Java だし。
0922デフォルトの名無しさん2005/09/18(日) 03:07:20
言語の違いなんてそうたいしたものではない。
JavaもC#もオブジェクト指向に根ざした言語なのだから、
片方で得られたテクニックなんかもそのまま適当できるっしょ。
0923デフォルトの名無しさん2005/09/18(日) 03:11:22
だから?
0924デフォルトの名無しさん2005/09/18(日) 08:14:03
あるメソッドから、別のメソッドを呼び出すとします。
別のメソッドで行う処理は数分かかるので、その処理が終わるまで
待つのは避けたいんです。
どうすればいいのですか?
0925デフォルトの名無しさん2005/09/18(日) 08:20:36
System.Threading.Thread

整合性に気をつけて
0926デフォルトの名無しさん2005/09/18(日) 11:01:27
WjnFormの場合Invoke/BeginInvoke/InvokeRequiredにも気をつけて
0927デフォルトの名無しさん2005/09/18(日) 11:17:01
delegateにメソッド入れてinvokeで呼び出せばマルチスレッドになるんでしたっけ?
0928デフォルトの名無しさん2005/09/18(日) 11:21:54
ならないよ
BeginInvokeの方
0929デフォルトの名無しさん2005/09/18(日) 11:24:34
�d
0930デフォルトの名無しさん2005/09/18(日) 11:54:43
>>920
VS.NETの使い方が本一冊ぶんも書いてある書籍なんてあるの?
ちょっと気になるので、参考書名を教えて欲しいのですが。
0931デフォルトの名無しさん2005/09/18(日) 12:20:47
MSCOMMを使ってモデムとシリアル通信しようとおもうのですが、うまくいきません。
モデムと通信するための新しいスレッドを立てて、たとえばATなどを送信して、
返っていた文字列の最後が「OK\r\n」か「ERROR\r\n」になるまでループして待機、
ということをやっているのですが、
while(CommString.EndsWith("OK\r\n") || CommString.EndsWith("ERROR\r\n"));
のところで、「スレッドを中止しようとしました」との例外が出ます。
解決策をお願いします。


do
{

 CommString += ((string) mscomm.Input);

 //リソースを食い尽くさないように待機
 Thread.Sleep(100);

}while(CommString.EndsWith("OK\r\n") || CommString.EndsWith("ERROR\r\n"));

return CommString;
0932デフォルトの名無しさん2005/09/18(日) 12:28:40
>>931
> while(CommString.EndsWith("OK\r\n") || CommString.EndsWith("ERROR\r\n"));

訳:CommStringの末尾が"OK\r\n"か"ERROR\r\n"である限りループを繰り返せ
  そうでない場合はループを終了せよ
0933デフォルトの名無しさん2005/09/18(日) 13:50:03
.NETって普及しますかねえ?
0934デフォルトの名無しさん2005/09/18(日) 14:29:08
Windows環境での普及率なら既に JRE < .NET Framework だしょ
0935デフォルトの名無しさん2005/09/18(日) 14:44:51
Javaと同じで利用分野によりますね。
イントラWebや以前はVB6などで作ってた事務系システムの分野ではかなり使われてる。
Longhornが最初の予定通りなら利用分野が広がった可能性もあるがかなり後退してしまった。
んなもんで、大型のパッケージソフトやユーティリティ系のソフトはネイティブのC++が主流。
そんなこんなでシェアウェア作家あたりが.NET使えねーとかいってこういうスレッドで
暴れだす例が後を絶たない。
0936デフォルトの名無しさん2005/09/18(日) 15:58:17
>>933
分野にもよるけど今だにそんなこと本気でいってる人は少ないと思われ。
0937デフォルトの名無しさん2005/09/18(日) 16:01:58
普及しなかった、と。
0938デフォルトの名無しさん2005/09/18(日) 16:12:49
>>937
>>934-935
0939デフォルトの名無しさん2005/09/18(日) 16:17:30
つーかおれが普段使ってるPCに.NET入ってない時点で普及してるとはとても言えないナー
0940デフォルトの名無しさん2005/09/18(日) 16:17:39
コンテナコントロール上に透明な色にて描画したいのですが
(PhotoShopでいうレイヤーが常に透明な色で重なっている状態)

Graphicsで描画すると描画した直後はいいのですが
コンテキスト等でその領域に何か表示された後に
その無効領域を取得する方法がわかりません。

どうすればいいのでしょうか?

全部再描画かけてしまうと透明な描画が
2枚以上重なってしまう部分等があり悩んでいます。


0941デフォルトの名無しさん2005/09/18(日) 16:21:33
>>939
WindowsUpdateで入れようと思えば入れられるものを
入れてないから普及してないと言い張るのは根拠としてはいまいちだな。
0942デフォルトの名無しさん2005/09/18(日) 16:25:19
どうでもいいだろそんなことより940に誰か応えてやれよ
0943デフォルトの名無しさん2005/09/18(日) 16:32:08
>>931
MSCommってCOM(ややこしいな)でしょ?
COMってスレッドセーフ違うんじゃなかったっけ?
というか、0.1秒も眠らせるなら別にスレッドでやることないと思うんだが。

>>940
普通にOnPaintかPaintイベントで再描画するだけでしょ。
正直「どうすればいいでしょうか」なんて他人に質問する以前の問題だね。
0944デフォルトの名無しさん2005/09/18(日) 16:52:58
>>943
コンテナPaint→レイヤー描画→コンテナ無効領域発生
のコンボはどうするんだ?

0945デフォルトの名無しさん2005/09/18(日) 17:02:25
意味ワカンネ。
因果関係の順番が狂ってないか。
無効領域が発生したからOnPaintが呼ばれるわけだが。
0946デフォルトの名無しさん2005/09/18(日) 17:34:02
PointF[]で1000〜1M個くらいの座標リスト作って(Y座標のデータはMAX-10〜+10くらいなので拡大処理)
それを画面サイズ内で縮小して描画したいのですが、
普通にg.ScaleTransformしてからg.DrawLinesで描くと線が拡大されて表示が汚くなります。
座標データの位置だけを画面サイズに変換してその間を結ぶ線は細いままにしたいのですが
どうしたらいいでしょうか?

色々見る感じだと、g.TransformPointsってのがあるのですが、
System.Drawing.Drawing2D.CoordinateSpaceとかがよくわかりません。
よろしくお願いします。
0947デフォルトの名無しさん2005/09/18(日) 17:57:18
Penを細くしたらいいんじゃない
09489462005/09/18(日) 18:01:20
自己レスです。色々見てたのですが、
Matrixを定義してやればいけるっぽいです。

グラフィクス周り触るのは初めてで変換行列の定義から読んでるので時間がかかりそうですが…

0949デフォルトの名無しさん2005/09/18(日) 18:18:25
Threadは、voidでかつパラメータ無しのメソッドでしか使えないんですか?
用途が限られてくると思うのですが。
0950デフォルトの名無しさん2005/09/18(日) 18:20:07
ようは、Javaのパクリじゃん
0951デフォルトの名無しさん2005/09/18(日) 18:21:13
そのためにそれ用のクラスを作るの。必要なパラメータと起動メソッド持たせて。別に不自由ないよ。
ちなみに.NET 2.0でParameterizedThreadStartってobjectを一つ引数に取るデリゲートが追加される。
0952デフォルトの名無しさん2005/09/18(日) 18:21:47
940とかぶるが

コンテナにいくつかコントロールが足されている場合
もともとのコンテナ領域分レイヤー描画ってどうするん?

普通に描画してもコンテナにコントロールが
足されていない部分は描画できるが
足されたコントロール上の領域にもかかなきゃならんやん

0953デフォルトの名無しさん2005/09/18(日) 18:28:32
>>951
なるほど、クラスを作るんですね。
0954デフォルトの名無しさん2005/09/18(日) 18:55:30
C#で角が丸い四角を描画する方法ってどんな感じになりますかね
Pointを8つ指定してDrawCurveを使うしかない?
0955デフォルトの名無しさん2005/09/18(日) 19:09:32
>>953
Thread じゃなくて Delegate を使えばよろし
0956デフォルトの名無しさん2005/09/18(日) 19:48:49
>>954
GraphicsPathを作ってAddLineとAddCurveを繰り返し、FillPath/DrawPath
0957デフォルトの名無しさん2005/09/18(日) 19:49:53
AddCurveじゃなくてAddArcだった……
0958デフォルトの名無しさん2005/09/18(日) 21:15:34
>>946
やりたいことがいまいちよく理解できないけど、
要は座標変換だけしたいってこと?
Graphics.PageScaleの使い方は知ってるのかなあ。

この辺は読んだ?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/_gdiplus_types_of_coordinate_systems_about.asp
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnprogvbnet/htm/chapter18.asp
0959デフォルトの名無しさん2005/09/19(月) 00:28:58
非同期デリゲートがあれば、スレッドっていらないんじゃないの?
0960デフォルトの名無しさん2005/09/19(月) 00:30:49
いらないよ
0961デフォルトの名無しさん2005/09/19(月) 00:33:40
まじかよ
0962デフォルトの名無しさん2005/09/19(月) 00:34:57
まじだよ
0963デフォルトの名無しさん2005/09/19(月) 00:49:14
ちがうよ。要るよ。非同期デリゲートは ThreadPool の中で待機している Thread によって実行されてるんだよ
0964デフォルトの名無しさん2005/09/19(月) 00:54:51
つ、つれた
0965デフォルトの名無しさん2005/09/19(月) 01:03:44
な、なんだって〜
0966デフォルトの名無しさん2005/09/19(月) 01:07:21
そんな中学生みたいなやり取りして楽しいか?

まあリアルで厨房のとき友達がいなかったからそういう精神的成長段階を
卒業できてない可哀想な奴らなんだろうけど。
0967デフォルトの名無しさん2005/09/19(月) 01:19:14
StreamReader型をHashtable型に変換する方法をご存知の方がいましたら
御教授お願いします。
0968デフォルトの名無しさん2005/09/19(月) 01:22:50
ありません
0969デフォルトの名無しさん2005/09/19(月) 01:23:45
あ、ごめん。単純にキャストすればいいだけかも
0970デフォルトの名無しさん2005/09/19(月) 01:27:02
うむ。やはりキャストはだめだった。ということで 「ない」 が正解
09719312005/09/19(月) 01:43:30
遅くなりました。
>>932>>943
ありがとうございました。
0972デフォルトの名無しさん2005/09/19(月) 01:49:54
質問です
[Q]キーを押した時にアプリケーションを終了させる事を意図して、
次のようなコードを書いたのですが、
qキーではなく、Shift+qキーを押さないと、思った通り終了してくれません。
qキーを押した事を拾うにはどのように書いたら良いのでしょうか・・・?
ご教示お願いします

protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
switch ((int)(byte)e.KeyChar)
{
case (int)System.Windows.Forms.Keys.Q:
this.Dispose();
break;
}
}
0973デフォルトの名無しさん2005/09/19(月) 01:57:54
Shift + q を押したら q になるようなキーボードレイアウトになってんじゃないの?
09749722005/09/19(月) 02:00:59
>>973
PC2台で確認しましたが、両方とも駄目でした。
09759732005/09/19(月) 02:05:33
switch ((int)(byte)e.KeyChar)
   => switch (e.KeyChar)
case (int)System.Windows.Forms.Keys.Q:
   => case 'q':

紛らわしいから間違えちまったよ
0976名無しさん♯2005/09/19(月) 02:13:45
次スレです。( ゚д゚)ノ
http://pc8.2ch.net/test/read.cgi/tech/1127063469/l50
09779722005/09/19(月) 02:25:30
ああ、なるほど…
ありがとうございました
あと紛らわしくてすいませんでした
インデントしてたのですが反映されなかったもので…
0978デフォルトの名無しさん2005/09/19(月) 02:49:40
複数のコントロールでCreateGraphics()つかって
描画しようとしているのですが

各コントロールの描画を一端メモリ上に書き込んで
全てのコントロールでの描画を一括で画面に反映させるには
どうしたらいいんでしょうか
0979デフォルトの名無しさん2005/09/19(月) 10:15:38
ControlへのDrawStringについて質問です。
可変領域へ文字列を書き込む必要がありDrawStringしてるのですがうまくいきません。

例えば、FormのOnPaintをオーバライドして実行し
フォームをリサイズしてWidthを0にして、少しづつ大きくするとStringが描画されないのですが
どなたか解決方法を知っている人いますでしょうか
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint (e);
e.Graphics.DrawString("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW",
this.Font, Brushes.Black, this.DisplayRectangle);
}
0980デフォルトの名無しさん2005/09/19(月) 10:24:38
ResizeRedraw?
0981デフォルトの名無しさん2005/09/19(月) 11:20:59
>>976
乙
09829462005/09/19(月) 11:35:11
>>958
二個目のリンクを発見してワールド変換することで対応しました。
一個目のリンクもよんで勉強します。

ご丁寧にありがとうございました。
0983デフォルトの名無しさん2005/09/19(月) 11:37:32
>>979
>this.DisplayRectangle
これの中身ヲチしてみた?
これって画面座標なんじゃないの?
コントロールGraphicsに描画するんだから、座標系はコントロールのクライアント座標を
つかわなきゃダメでしょ。

09849792005/09/19(月) 12:14:20
>>980, >>983 解決しました。ありがとうございました
StringFormatのStringTrimmingをNoneに設定で解決しました。
(ResizeRedrawを有効にするのもOK)
0985デフォルトの名無しさん2005/09/20(火) 08:05:12
埋めないか
0986デフォルトの名無しさん2005/09/20(火) 16:24:16
うほ、いいC#
0987デフォルトの名無しさん2005/09/20(火) 16:35:11
            , '´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_ C#_,{|
          N| "゚'` {"゚`lリ
             ト.i   ,__''_  !
          /i/ l\ ー .イ|、
    ,.、-  ̄/  | l   ̄ / | |` ┬-、
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \
  .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{   ___|└―ー/  ̄´ |ヽ |___ノ____________|
  }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  |
__f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|
  | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄|
___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|
 ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄|
_______l       -ヾ ̄  l/         l|       |___|
0988デフォルトの名無しさん2005/09/21(水) 01:00:59
いいこと思いついた。お前メモリの中でお漏らししろ
0989デフォルトの名無しさん2005/09/21(水) 01:44:25
それを許さないのがC#のいいところ。
0990デフォルトの名無しさん2005/09/21(水) 01:46:03
>>988
「これがホントのメモリリーク」
「山田君、座布団ぜんぶとっちまいな」
とか言いたいのかテメコノヤロウ
0991デフォルトの名無しさん2005/09/21(水) 08:10:59
バカヤロ コノヤロ
おいダンカン
こんなゲームにマジになってどうするの
0992デフォルトの名無しさん2005/09/21(水) 15:35:43
梅
0993デフォルトの名無しさん2005/09/21(水) 18:04:45
うめうめ
0994デフォルトの名無しさん2005/09/21(水) 18:24:30
不敬の儀である!生死に関わらず捕縛致す!
0995デフォルトの名無しさん2005/09/21(水) 20:00:19
          …と思う吉宗であった
   (__) ..    ,、、,,,,,,,,,,,,,,,,
             {::::::::}三三三ミミミ`、、
    (_)       >ー"'" ⌒,,ィシヽミミiミミ 、
           /     三彡彡彡ィ`、ミミミ`、
     (_)   /      シ彡彡彡彡ノ'ヽミミミ`、
          ,'        ,三彡彡彡彡彡ソ,ー'
        ○  l    _ _ """'彡彡彡彡彡ノi
         {;、 ';;;='''"""`  彡彡彡 、ノノi
            kr) .ィェー   彡彡' r、ヽ}彡i
          レ'  ..      シ彡' )ァ' /彡'
         {_,,,、 ;、      シ彡 ニンミミ{
          l         '''"::.   彡ミi
           ! ̄"`     ...:::::::: ノ""{
          l    .......:::::::::  /   \_
          `''ー 、::::    /     /
0996デフォルトの名無しさん2005/09/21(水) 21:51:26
>>994
磔獄門のうえ遠島を申しつける
0997デフォルトの名無しさん2005/09/21(水) 22:59:36

                                    ¶       ∧彡
                                    ( `Д)  彡 ・ \
返してよぅ                             /丑/つヽ,)彡  人.ヽ.)
 ̄∨ ̄ ̄ ̄                            //丑/(三"'''--/'''" ̄
  ∧_∧                           =≡=( (**)─┘   ヽ
 ( ´Д⊂ヽ                        /   /  ⊇       )
⊂    ノ                       /    / ノ ノ ̄丶  ソ \
  人  Y                       /   /// /    \ ヽ\ .\
 し (_)                 [こくまろ]    《_/ 《_/      ヽ/ラ丶/ラ


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ''';;';;;;;,., ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  
シチュー引き回しの刑
0998デフォルトの名無しさん2005/09/21(水) 23:01:25
998
0999デフォルトの名無しさん2005/09/21(水) 23:19:51
999
1000デフォルトの名無しさん2005/09/21(水) 23:20:46
世の中、意外にEM_hogehogeなメッセージを探している人が多いと言うことが分かったある日の午後
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。