2
3 :
デフォルトの名無しさん :01/12/28 08:16
3
4 :
デフォルトの名無しさん :01/12/28 08:42
Linux か FreeBSD か Solaris 8 環境で C#プログラミングしてみたいのですが どこからなにをダウンロードしてきたらいいのですか?
5 :
デフォルトの名無しさん :01/12/28 10:11
www.go-mono.com
6 :
デフォルトの名無しさん :01/12/28 17:55
まあ、色々書いてみてるんだけど、 サービ ス周りがほんとに役にたつのか不安に思いながら勉強中・・ で、なんですがasmxが提供してくれるDataSet型のXML+Schemeを JavaScript(MSXML4.0?)で整形したりしたいのだが (つまりサーバーサイドでフィルタかけられたくないんすよ。) なんかいいDocumentってないですかね。。。。。 色々見て回ったけど、なんかサーバーサイドのことしか ないんですよねぇ。。(JScriptでサービス書く方法とかそんなのしかみつからん 、、、)
意味がわからん。そのJavaScriptはクライアントサイドで動くのか?
8 :
デフォルトの名無しさん :01/12/28 19:40
>7 そです。サービスから、DataSet型になってるXMLを引っ張ってきて、 それをクライアントサイドでJavaScriptでいじってあげようと思ってるんだけ DOMでゴリゴリ書くしかないのか、それとも MSXML4.0がDataSet型に対応してて、特有のヘルパーメソッドがつかえるのか。 そういう点がのってるドキュメントがないのかなぁ。。。と。
10 :
デフォルトの名無しさん :01/12/28 19:56
>>9 戻ってくるのは、diffgramという形式だから、それで検索してみると良いかも。
たとえば前スレで話題が出たSQLXMLとかは対応してる。diffgramはスキーマつき
だから、うまく使えばMSXML4ではかなり楽かもね。
11 :
デフォルトの名無しさん :01/12/29 00:16
名無しさん♯さんがでてこないと単なる糞スレですね、ここ!
>11 糞スレを優良スレに変えられる名無しさん♯はすごいってことですか?
@ITとかUSERS GROUPよりもこっちの方がはるかにマシ。
10> Tx。検索かけてみますわ。ってかかけてみたんだけど、実際 外国の文献しかまともなのいっすよねぇ。。。 まともな資料なかったら、DOMでごりごり書きます。 まあ、たたかれてるし、だめな点もあるけど、 VS.NETでたら絶対需要あるしね。日本語文献もいっぱい出てくるのかな。。。 そうすりゃ、初歩的な部分で聞かなくていいからましになるのかなぁ。。。 14> USERS GROUPひどいね。。最近はほとんどPOSTないのかな? @ITは結構みてるけど。 (っていっても関連リンクのページばかり見てるけど)
あ、@ITは記事じゃなくて掲示板のことね。一応。
>名無しさん♯さんがでてこないと単なる糞スレですね、ここ! ププ。お前がDQNだからわからんだけだ。
>18 あ、、、TX. 実はDOMでゴリゴリ書いてしまったあとだけどw Diffgramの仕様みたけど、これ、標準化するといいねぇ。 使いやすそう。 MSXML4はあんまり特徴感じない・・・Schemaの理解度不足かな、、、
"Amazon Takes Orders for Visual Studio .NET " 1/17から出荷だそうです。 日本語版は2月。
22 :
デフォルトの名無しさん :01/12/31 04:40
exe作るまでもないような小物ツールを perlみたいに直接ソースコードから実行することってできない?
24 :
デフォルトの名無しさん :02/01/01 06:10
質問なんですけど、 IntPtr ( hWnd )からフォームオブジェクトを取得する方法なんて無いでしょうか? 無いだろうなぁ…。 もし何か方法があったら教えて下さい。
>>25 Control.FromHandle または Control.FromChildHandle
>>26 きゃふ、できました。
なぁんだ、ちゃんとあるんですね。
ありがとうございました。
28 :
デフォルトの名無しさん :02/01/03 23:23
.NET Framework SDKがインストールされていないマシンで実行するには どうすればよいのでしょう? ランタイムパッケージとかあるんでしょうか?
ない。
31 :
デフォルトの名無しさん :02/01/04 03:12
そろそろ発売間近。期待アゲ
32 :
デフォルトの名無しさん :02/01/04 20:19
誰かお知恵をお貸しください。 フォーカスがあるかどうかに関わらず、 Alt + Enter などのキー入力を得たいのですが、どうやったらいいかわかりません。 SystemEvent クラスにはそれっぽいイベントもなさそうですし…。 Win32API を使わなければ駄目でしょうか?
>>32 フォームでProcessKeyPreview()をオーバーライドすれば、
コントロールのキー入力をすべて拾えるよん。
パラメータでわたってくるのはMessageクラスだから、
ちょっと取り扱いが原始的になるけど。
>> ♯さん あ、コントロールの取得したキーを…っていう意味ではなく、 別のアプリがアクティヴな時でもキーを取得したいんです。 Win32APIで言うと GetKeyBoardState をポーリングするみたいな感じなんですけど(本当はイベントが起こってくれるといいんですけど)
>>34 システムフックをやるとなると、結局はAPI使いまくりになると思われ。
(SetWindowsHookEx()あたりね。)
それと、.NETのアセンブリ(DLL)でフックプロシージャがちゃんと動くかは
実際にやってみないとちょっとわかんない。
やっぱり .NET のライブラリにはそれっぽいのはないですか…。 どうしても unsafe な方法に頼らないと駄目なんですね…。 それっぽい方法が無いって事を確かめるのにヘルプと数日格闘しなかっただけでも助かりました。 ありがとうございました。
>>36 試してみたけど、システムフックはやっぱり
C++(Unmanaged)でDLLを作らないとだめみたい。
・C++側でフックのコールバックを書く。
・フックの登録,解除用の関数をエクスポートする。
・.NET側でDllImportでそれらの関数を呼び出す。
という感じね。
結局はVB6でやるのとほとんどいっしょ。(藁
>> ♯さん あぁ、C++ で DLL を作らないと駄目なんですね、 ちょっと別の方法を考えてみます。 Oreilly の本、日本語訳されてないのって多いんですねぇ (いや、示してもらった本が日本語訳されてるかどうか調べたわけじゃないですが、少なくとも本屋で見た事ないので) VS.NET 日本語版は三月中にはでないのか……。 友達が大学卒業しちゃうじゃないか (ヲイ
40です。 たびたび質問なのですが、 .NET のライブラリでできるだけ精度の高い時間を計測したいんですが、 DateTime.Now よりも精度の高い方法ってありますか? Windows のマルチメディアタイマー ( timeGetTime() ) くらいの精度で十分なのですが…。
42 :
デフォルトの名無しさん :02/01/06 20:50
>>41 ないと思う。
それと、APIを使ってもマネージド環境で精度の高さが活かせるかも疑問。
>40 なんかC#はあくまでもWeb専用と割り切った方がいいんじゃないの?
>> 42, 43 ほぇぇ…ないんですね…。 みなさんはコードのベンチマークとか、どうしてます? 複数回実行してはっきり結果がわかるようにしているのでしょうか? まぁベンチ以外にも使いたかったので、がっかり度は高いですが、 とりあえず timeGetTime でも使っておきます。
45 :
デフォルトの名無しさん :02/01/06 23:15
>みなさんはコードのベンチマークとか、どうしてます? ガイシュツだけど、プロファイラAPI。
46 :
デフォルトの名無しさん :02/01/06 23:17
>なんかC#はあくまでもWeb専用と割り切った方がいいんじゃないの? はやいとこWindowsにCLRが乗らないとね。そうなったらWebページなんか 終わりだ。Windows Forms+XML Webサービスの時代になるね。
48 :
デフォルトの名無しさん :02/01/07 11:27
>>47 の最後のスレッド
ttp://www.users.gr.jp/ml/archive/CS/765.aspからの 話なんだけどさ、これって変に770とかでまとめられちゃってるけど、要するに
javaはCLASSPATHにjarファイルが書いてあるから、それを指定してロードできる
ってだけの話だよね?CLASSPATHにjarではないフォルダ階層だけが書いてあったら、
やっぱそのフォルダにある.classを全部ロードして確かめろ、って話だと
思ってるんだけど、違うかなあ?
こっちのほうがUSERSよりまともなRESがつきそうなので、こっちに聞いてみました。
49 :
デフォルトの名無しさん :02/01/07 11:48
>>48 なにいってるかわからんぞ。
手抜きしないでちゃんと説明してみろ!
50 :
デフォルトの名無しさん :02/01/07 15:15
javaは、JARファイルのMANIFESTから、中身のクラスがどんな”サービス”を実装しているのかを 読み取る機能が標準で存在する。 C#(.NET Framework)には、属性などがあるし、メタデータもあるが、上記の機能がない。 COMには、レジストリにカテゴリを書く機能が存在していた。 だから、C#はダメダメだ。 という主張がMLには書いてあるんだけど、javaにそういう機能があるってこと自体が 妄想に近いんじゃないのか?ということが漏れは聞きたかった。
>>50 確かに、jarのサービスプロバイダで機能のカテゴリ分けなんてできないよね。
単に特定のインターフェイスに対する実装クラスを指定するだけで。
それに、JAVAでの型検索ではクラスパスの内容を一通り見るはずだから、特別な仕掛けもない。
質問者はSDKのTypeFinderサンプルを見てないんじゃないの?
なんでテンプレートが消えたの?
53 :
デフォルトの名無しさん :02/01/07 16:17
簡易DOSコンソールウィンドウを 作らなくてはならなくなったので いろいろ教えてくれ。 教えてくんなかったら・・・泣かす!
54 :
デフォルトの名無しさん :02/01/07 16:19
WaitForSingleObject, WaitForMultipleObject, GetExitCodeProcess←これはなぜかコードページ違反になるのだ WaitForInputIdle DuplicateHandle←詳しく教えてくれ DOSについても教えろやゴルぁ
というか、アセンブリ情報を1箇所にまとめるなんて、それこそ地獄の再来だと思うが...。 「ダメダメ」という結論には理解できない...。
>>55 同意。何のためにアセンブリの種類をprivate / sharedに分けたんだか。
58 :
デフォルトの名無しさん :02/01/07 16:51
ごちゃごちゃいってんと、早く関数並べろやゴルァ
よかった。USERSはunsubscribeします。(w
ちょいと当たり前だけど、確認したいんだけど abstract も virtual もつけないメソッドって、sealed 扱い…というか、 VM がちゃんとしてればインライン展開の対象になるよね?
いや、「コンパイラがちゃんとしてれば」か…。 いやむしろ「コンパイラも VM もちゃんとしてれば」なのか…。
>>60 そのはず。ただそれはJIT時ね。
ソースのコンパイラはほとんど最適化はしない。(というかする必要がない。)
おかげで、VC# std.でも実行コードの質が落ちることはない。(w
>ソースのコンパイラはほとんど最適化はしない うそーん
>>64 そうでもないみたいよん。cl.exe /clrは、csc.exeよりも速いILを吐くって
USのC++のプログラムマネージャが豪語してた。
66 :
デフォルトの名無しさん :02/01/07 20:38
>>65 C++.NETて.NETプラットフォームのコードもはけんだよね、やっぱり。
Beta2ではWin32しか選べんのだけど。
>>66 ん?Beta2でも吐けるよ。
#using <mscorlib.dll>して、cl.exe /clrすればOK。
>>62 そうだよね、ありがとう。
>>54 もしマジ質問なら…
GetExitCodeProcess 試してみたけど正常だと思う。
[DllImport("KERNEL32.DLL", CharSet = CharSet.Unicode)]
public static extern uint GetExitCodeProcess (int hProcess, ref int lpExitCode);
ちゅうかもしマジ質問なら問題部分のソースくらい出してください。
そうじゃないなら消えてください。
70 :
デフォルトの名無しさん :02/01/08 11:12
フォームのクライアント領域の左上座標の取得の仕方を教えて下さい。
>>71 フォーム左上隅から見た座標ということかな?
それならこんな感じよん。
Point p = this.PointToScreen( new Point(0, 0) ) - (Size)this.DesktopLocation;
>>72 おぉ、本当に欲しかったのはスクリーン上での座標だったのです。
ってことで Form.PointToScreen( new Point(0, 0)) でばっちりです!
ありがとうございました。
74 :
デフォルトの名無しさん :02/01/09 13:55
WinForm のイベントについて詳しい方教えて下さい。 あるフォームを閉じる前に、別スレッドで特定の処理をしたいので、 フォームの Closing イベントで sender が this だったら、 別スレッドに終了中な事を知らせるフラグを立てて、 終了はキャンセルするようにしました。 で、別のスレッドで、そのフラグが立っている事を確認したら、 Form.Close() をしました。 でもうまくいきませんでした。 Close() で Closing を送るのは フォーム自体だったので、延々とキャンセルし続ける処理になってしまったんです。 これをうまく機能させるにはどうしたらいいでしょうか?
>>76 すいません。文章だと解りづらいですね。
もともとヘンテコリンな処理なのだから、もうちょっと解りやすく書きます。
(1) まず、メインループのスレッドと、GUIのスレッドをたててます。
メインループのスレッドは GUIスレッドで表示している Form のインスタンス
Form1 をもっていて、使用しています。
(2) GUIのスレッドが勝手に終了する( Form1 が終了状態になる ) と、
メインループのスレッドで NullException やらなんやらがバカバカでます。
(3) ですので、ユーザーがアプリを終了させたいと思ったとき、
GUIのスレッドを勝手に終了させずに、メインループのスレッドが
Form1 を閉じるようにしようと思いました。
(4) で、GUIスレッドで、ユーザーが終了させたいと思っているのを感知するのに
Closing イベントを使用して、イベント送信者が this なら、
「終了したいですフラグ」を立てて、終了をキャンセルするようにしました。
(5) メインループスレッドのある時点で、「終了したいですフラグ」を調べて、フラグが立っていたら、フォームを終了させたいと思います
(が、Form.Close()は Closing イベントの送信者がフォーム自体になるので
うまくいきませんでした)
(6) ちゃんとフォームが終了できたら、メインループの方では、フォームが
存在しない場合の処理に移行します。
という感じの処理なのです。
メインループ側でフォームとその関係のオブジェクトの所すべてで
例外を拾うと凄まじい事になってしまうので…。
78 :
デフォルトの名無しさん :02/01/09 18:56
>>75 スレッドにはAutoResetEventあたりで通知を行い、FormではThread.Joinで
スレッドの終了を待って、Closeするってのはどうだ?
>>78 ありがとうございます。今からちょっと調べてみます。
その前にちゃんと説明が伝わるように、問題部分抜粋しました。
using System;
using System.Threading;
using System.Windows.Forms;
using System.ComponentModel;
namespace NiChannel
{
public class Starter
{
private static FormCustom s_Form;
public static void Main()
{
s_Form = new FormCustom();
Thread guiThread = new Thread( new ThreadStart( GuiMain));
guiThread.Start();
while ( !s_Form.IsClosing)
{
// s_Form のからみを色々使う処理
}
s_Form.Close(); //ここでフォームを閉じたい
Console.Write ("このメッセージが出ている時点でフォームには閉じていて欲しい。\n");
}
public static void GuiMain()
{
Application.Run ( s_Form);
}
}
続く
public class FormCustom : Form { private bool m_IsClosing = false; public bool IsClosing { get { return m_IsClosing; } } public FormCustom() { this.Closing += new CancelEventHandler( FormCustom_Closing); } private void FormCustom_Closing(object sender, CancelEventArgs e) { Console.Write ("終了イベントです..."); if ( sender == this) // 送信者が自分ならユーザーからの入力だと判断(これがまずかった) { Console.Write ("ユーザーからの入力だと思うので、終了はキャンセルします。\n"); e.Cancel = true; m_IsClosing = true; } else { Console.Write ("普通に終了します。\n"); } } } } 以上。
81 :
デフォルトの名無しさん :02/01/09 19:24
フラグ使えば?
ところで sender って,あくまでそのイベントを送ったオブジェクトが 入って居るんじゃないのかな。 button1.Click += new EventHandler(foo1); button2.Click += new EventHandler(foo1); button1 をクリックすれば (foo1 内の) sender は button1 で, button2 をクリックすれば (同じく foo1 内の) sender は button2 ... って感じだと思う。 もしかしたら例外もあるかもしれない...(;´Д`)
>>81 「閉じろの送信者はプログラム?」フラグを作ると確かにうまくいきます。
やっぱりこれしかないでしょうか?
>>82 フォームの Close() メソッドが Closing イベントを発生させるので、
Closing の sender は フォーム自体になるみたいです。
言ってたのと逆だけど、こんなんでどう? namespace NiChannel { public class Starter { private static FormCustom s_Form; public static void Main() { s_Form = new FormCustom(); Thread guiThread = new Thread( new ThreadStart( GuiMain)); guiThread.Start(); Console.WriteLine("今は閉じまへん。"); Thread.Sleep(5 * 1000); s_Form.ev.Set(); s_Form = null; Console.Write ("次は閉じまっせ。"); } public static void GuiMain() { Application.Run ( s_Form); } } public class FormCustom : Form { internal AutoResetEvent ev = new AutoResetEvent(false); public FormCustom() { this.Closing += new CancelEventHandler( FormCustom_Closing); } private void FormCustom_Closing(object sender, CancelEventArgs e) { if (ev.WaitOne(500, false)) e.Cancel = false; else e.Cancel = true; } } } 本当は、s_Form.ev.Set();のあとでFormを待たないとおかしいけどね。
85 :
デフォルトの名無しさん :02/01/09 19:49
いや、俺は75ではなくて、
>>75 ってことだった。
86 :
デフォルトの名無しさん :02/01/09 19:49
>>77 詳しいことはよく分からんけど、フォームからワーカースレッド立てるやり方じゃだめ?
>>83 フラグよりも簡単で明瞭な別の方法があるか、
そのフラグが実はプログラムで大域的に参照されてしまうか、
フラグを使うとジンマシンが出るのでないのなら一番いいのはフラグだろ。
なるべく小難しくして難しいことしてると思い込みたいなら話は別だが。
ていうか、スレッドを立ててそこからApplication.Runする意図がよく分からん。 フォームからワーカースレッドを立てて、フォームを閉じるときに終了フラグをセットして ThreadStartから抜け出すというやり方の方がシンプルだと思うが。 フォームを閉じてからも処理が必要なら、普通にApplication.Runの後に処理を書けばいいわけだし。
>>84 わざわざ AutoResetEvent の使い方まで書いてくれてありがとうございます。
でも………理解できませんでした ^^;
>>86 ,88
フォーム側を汎用部品にできる所なので…。
>>87 ごもっともです。もっと明瞭な方法があるとよかったんですが…。
フジモリ氏ね
94 :
デフォルトの名無しさん :02/01/11 05:31
>>94 しかし、_CorExeMainのスタブを突かれたらどうすればいいのやら...。
>>93 実体がある場所知らない?XPでも感染するのか確かめたい。
XPでは感染しないはずなんだけど...?
SDKでToolBarButtonコントロールに画像を貼り付けるにはどうしたらいいんでしょうか? VS.NETでペタッと貼り付けてソースを見ても、"open.gif"のようなファイル名が見当たらないです。 ImageListも System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); となっていて特定の画像を指定しているようには見えないんです、、、。
>>99 ImageList.Images.Addで画像ファイルを指定してちょ。
ただ、このやり方だと.exeとは別に画像ファイルを置かなきゃならないけど。
ちなみに、VS.NETのやり方は.resxファイルをエディタで開いてみるとよくわかるよん。
イメージとかはbase64でXMLにシリアライズされてる。
>>100 > ただ、このやり方だと.exeとは別に画像ファイルを置かなきゃならないけど。
いちおう補足ね。
リソースを使えば、画像を.exeに埋め込むことはできるんだった。
SDKのみ(VS.NETなし)で.resourcesを作る方法がよくわからなかったから
こう書いちゃったんだけど、実際やってみたらものすごく簡単だった。(藁
using System.Drawing;
using System.Resources;
class Test
{
public static void Main() {
ResourceWriter writer = new ResourceWriter("Test.resources");
writer.AddResource( "icon1", new Icon("Icon1.ico") );
// ...
writer.Generate();
}
}
で、あとはC#のコンパイル時に /res オプションをつければOK。
>>97 peverifyすればいいんじゃないの?
103 :
デフォルトの名無しさん :02/01/11 17:42
>>98 >The virus checks the platform
>and only infects on Windows 2000 and above.
というわけでむしろ狙い撃ち。
>>97 MSによるとOSとの統合によってこの方法は無効になると書いてある。
>>103 OSとの統合ってのが、すでにWindows XPで果たされているってことなんだけど...。
狙い撃ちしてるのは単にそれ以外のプラットフォームではほとんど動いていないからだろう。
105 :
デフォルトの名無しさん :02/01/11 17:54
>>104 違う。XPにも入ってない。最初から統合状態なのは・・・.NET Server?
98/ME/NT/2K/XPを統合状態にするには最低でも今年出る予定の.NETランタイム
正式版を導入する必要があるはず。
107 :
デフォルトの名無しさん :02/01/11 18:08
>>106 MSとは関係ないが、Beta2使ってて好きなのは確か。
リンク先のリンク先いってみたが、わざわざ登録すんの?おれ。
ていうか登録できんのかな。
リンク先のみ見て書かせてもらうと、Late-breaking は変。
ローダと絡めると Late-Binding じゃないのかなぁ。
#beta2SDKにはlate-breakingはない。
しかしRCで変更された可能性もある。
ウイルスはBeta2を使って作られたと書いてあったし、
RCで変更されたてんを追求されても分からん。
できればリンク先のリンク先の文章を見せてくれ。
>Late-breaking は変。 いや、それは「最新の」とか言う程度の意味の、文書のタイトルなんだけど。。。。 以下コピペ。 Security Guidelines System loader dependencies. ISSUE: Managed code assemblies are designed to be compatible with native code files so that they can be executed by existing operating system loaders. However, this compatibility means that any malicious code at the native entry point code will execute even if security policy does not permit the assembly to run any unmanaged code. This code runs before the common language runtime, so it cannot be blocked by security policy. WORKAROUND: On Windows XP, the system loader recognizes managed code assemblies and safely executes them; because the native code entry points are not used, they cannot be attacked. On earlier Windows releases, only trustworthy managed code assemblies should be installed in the file system. Use the PEVerify tool (Peverify.exe) to verify that the assembly has correct native entry point code. ISSUE: Managed code DLLs are loaded using the system loader; therefore, according to the rules used to find DLLs, it is possible for an imposter DLL to be substituted. This is another way in which the previously mentioned issue can be exploited. WORKAROUND: Reference components by their strong name, which cannot be spoofed as long as the associated private key is held securely by the owner.
>>108 確かにXPは影響を受けないと書いてあるね。
おれはウイルスのバイナリをもっていないので推測しかかけんけど、
・XPは当初は確かに.NET実行環境として想定されていたが、
見送られてリリースされた経緯がある。
・まだベータで仕様が決まってもいないのに、OSのローダに
見切り発車して搭載する可能性は少ない。
・XPが本当に影響を受けないのなら、MSがコメント中でそう言うはず。
というあたりからXPでも影響を受けると思うよ。
あとはそのドキュメントが書かれた日時を基に考えればよろしい。
最近のものなら別の推論がいるけど、古ければおそらく上ので決まり。
捕捉。 「MSのコメント」とは、今回のウイルスに関して寄せられたMSのコメントのことね。
>>109 Windows XPのRTMは8/24。.NET Framework SDK文書の日付は8/30。
ここからみて、漏れはWindows XPは被害を受けない可能性が大だと思う。どうかなあ?
>>111 >>94 。ていうか、そこを訳したものが
>従って、将来的にOSが.NET Framework対応になり、MSIL実行ファイルを
>ネイティブに起動できるようになれば無効な手法です。またこのウイルスは、
>感染力もシステムの破壊力も弱く、「.NET Frameworkをターゲットにした
>ウイルスも作成可能」だということを主張する目的で作成されたと
>レポートされています。
という一文だと思われ。
>>112 まあ、たった六日を根拠にそう思うんならあとは議論しても無駄かな。
>>114 (1)ローダーの実装を知っている、(2)今回のウィルスを持っている
でもなければ、議論なんかしてたって無意味だからね。
終了。
ちょっと上の方でリソース関係のヤツをやってたので、 それをいじってみたんだけど、わかんないことが発生。 ResourceReader からリソース取り出すには GetEnumerator() しかないんだと 思ったんだけど、IDictionaryEnumerator って、MoveNext() で回さないと 特定のキーの値を取得できないのかな? インデクサーとかで一発取得ってないの?
117 :
デフォルトの名無しさん :02/01/11 21:01
ResourceReaderって一覧用だからそういうもの。ResourceManagerを使えばいいんじゃないの?
今回のウイルスはXPの優位性を示すためのMSのジサクジエンですか?
>>116 リソースから画像を取り出すときはこんな感じよん。
// 第1引数 : リソースの入ってるアセンブリ名(拡張子抜き)
// ここでは実行するフォームアプリ自身。(Form1.exe)
ResourceManager resources = new ResourceManager( "Form1", Assembly.GetExecutingAssembly() );
Icon icon1 = resources.GetObject("icon1") as Icon;
C#始めて(普通の)C言語の重要性に気づいた俺って、、、
>> ♯さん おぉ、アセンブリ名ってそういう事だったのですね、ヘルプ相手に 小一時間悩みました。ありがとうございます。 >> 122 そう?ポインタも malloc() もないし、C# やる上で必要な C (に独特の)知識って、あんまり無い気がする。
124 :
デフォルトの名無しさん :02/01/13 04:51
>>119 あれ?ResourceManagerの第1引数ってアセンブリ名なの?
ヘルプにはリソースファイル名ってあるんだけど・・・。
>>124 うわー、リソースファイル名の間違いでした。ごめんちゃい。
両方同じ名前にしてたから気づかなかった。
ちなみに、拡張子抜きのアセンブリ名はAppDomain.Loadとかの場合です。
こっちと混同してた...。
>>121 本当にRC5で出るのかな...。
今、一部のテスターに渡ってるのがRC4で、
MS内部ではRC7まで逝ってるとかいううわさだけど...。
127 :
デフォルトの名無しさん :02/01/13 12:05
>>125 >拡張子抜きのアセンブリ名
だから違うって言ってんだろ。前スレの465に書いただろうが。で、471で解説してるアンタはにせものか?
>>126 RCなんてもうすでに20超えてるよ。
すみませんが、メディアプレーヤーのasxのいじり方教えて下さい。 メディアプレーヤーの何処を操作すれば良いのでしょうか?わかんなくて困ってます。
129 :
質問・128 :02/01/13 22:52
US版の.asxは、こんな感じになってるんです。 ---- <entry> <TITLE>US 200Kbps</TITLE> <ref href="mms://media2.bloomberg.com/btv_us200.asf"/> </entry> <entry> <TITLE>US 28Kbps</TITLE> <ref href="mms://media2.bloomberg.com/btv_us28.asf"/> </entry> ---- 日本語版っ。 ---- <entry> <TITLE>東京 200Kbps</TITLE> <Ref href = "(ひみつですー)"/> </entry> <entry> <TITLE>東京 28Kbps</TITLE> <Ref href = "mms://media2.bloomberg.com/btv_jap28.asf"/> </entry> すいませんが、上記メディアプレーヤーのasxの事らしいのですがどのような事なのか分かりますか?
130 :
デフォルトの名無しさん :02/01/14 14:13
JAVAとC#は似ているそうですが、 C#でJSPのようなものはASP.NETですか? ASPってC#とは違いますか??
132 :
デフォルトの名無しさん :02/01/14 14:49
>>130 ASP.NETは、言語に依存してないよ。VBでもC#でも、COBOLでも書ける。
>>127 > だから違うって言ってんだろ。前スレの465に書いただろうが。
そういえばそうだった。すっかり忘れてた。(藁
ごめんちゃい。
...っていうか、
>>119 のレスって相当恥ずかしい...。
134 :
名無しさん♯ :02/01/16 09:35
136 :
デフォルトの名無しさん :02/01/16 11:03
ばんざーい。ばんざーい。
MSDN限定だけど、VS.NETも出たよヽ(´ー`)ノ
日本語版も?
140 :
デフォルトの名無しさん :02/01/16 12:07
@ITはまだ気づいてない模様。(w ♯さんの情報の早さには感服。
ドキュメントの日本語化をキボンヌーーー
ってOSかなり限定されるのね、、、
>>142 悪いこといわないから、英語勉強したほうがいいよ。マジで。
日本語ヘルプが*まともな*日本語で書いてあったためしがないもん。
>>141 > Beta 2 to V1 API Changes Document (ZIP File)
public sealed enum System.Windows.Forms.Keys ()
Removed
Field: public static const Keys KanaMode, Value = KanaMode
Added
Field: public static const Keys KanaMode, Value = HangulMode
ん?
>>145 Keys.KanaModeの値がHangulModeと同じになったみたいね。
Console.WriteLine(Keys.KanaMode); ってやってみたら
"HangulMode" って表示された。
正式リリースおめ
149 :
デフォルトの名無しさん :02/01/16 18:16
しかし、こんな記念すべき日に誰もRTMを話題にしないUSERS GROUPって・・・
151 :
関係ないけど・・ :02/01/16 22:13
おいおい、トレンドマイクロって大丈夫か? >これは新しいプログラミング言語である「C#」で開発されたプログラムに感染する直接感染型上書感染型のファイル感染型ウイルスです。「C#」のプログラムに感染するウイルスとしては世界初と思われます C#だけじゃねーだろ。この話はもう終わってんだけど?
VS.NET落とせん...。混みすぎ。
156 :
デフォルトの質問さん :02/01/17 00:18
DL中なんですが、正式版SDKも無料なの? 有償はVSだけなのかな。 へぼい質問ですいません。
159 :
デフォルトの名無しさん :02/01/17 00:30
C#に関する質問です。 どこへ行けば一番安く買えるでしょうか?
163 :
デフォルトの名無しさん :02/01/17 02:32
C#使いたいだけなら、ランタイムかSDK落とせば
164 :
デフォルトの名無しさん :02/01/17 03:40
C#からoracleにアクセスするにはどうしたら・・・? ODBC使うの? なんかサンプルあったら教えてください。 Javaは簡単なのに。
166 :
デフォルトの名無しさん :02/01/17 06:05
>>160 Windows XP Home Editionでも動きますか?
Microsoft Windows NT 4.0 (SP 6a required)って!
NT 4.0 SP 4しかないんです。
SP 6aてどこでダウンできますか?
168 :
デフォルトの名無しさん :02/01/17 09:59
>>164 OLE DBかODBC。
つっても基本的なインターフェイスは変わらんけど。
OracleもManaged Provider出してくれ。
>>168 MSが作ってる。>Oracle Managed Provider
1.8GBのダウソなんて初めてだ...
ASP.NET の 〜Validator がやってるように、 ブラウザに応じてクライアントスクリプトを吐き分ける Webコントロールってどうやって作ればいいの?
日本語版Redistが出れば雑誌付録とかでバラ撒くんだろうねえ。 普通のWinマシンにもC#、VB.NETコンパイラの入る時代がもうすぐ。
177 :
デフォルトの名無しさん :02/01/17 23:22
178 :
デフォルトの名無しさん :02/01/18 02:01
> 今見たら、「完全にマスターしている 46.2%」 > これは凄いですねぇ。これなら半数近くですよ。 と言われても先生。 今現在、「総投票数: 16」なんですけど。w 見落としても無理はないけど、ちと笑った。
16人中7人で43.75%…
ベータ2になってそれ以前のほとんどのプログラムが動かなかったが、 もうそれ以降はたいして変わらないよーというはずだったのでは。 正式版になってもなんか結構な数が動かないんだけど…。 Windows.Forms関連かな? 直さなくっちゃ。
それにしてもVS.NET落ちねぇー。 FTTHなのに20KB/sって、どういうことよ。 VSSとかVISIOは2MB/sくらいで落ちたのに…
>>181 ダウソ祭りはまだまだ続いてるみたいね。
漏れも早くVS.NET( ゚д゚)ホスィ…
184 :
デフォルトの名無しさん :02/01/18 17:36
VSS何が変るの?UIが変っただけ?
>>185 まだ入れてないけど、12月の頭にMSDNで送られてきたものと
同じだと思うよ。
バージョンは一緒(6.0c)だし。
Beta2で作ったWebForm+MobileWebFormなソリューション、ノーリライトで動作しました。>RTM あ、VB.NETだった。sage
.NETのリリースタイミングに合わせたかのように、セキュリティ最優先策とDon BoxのMS移籍か。 .NETの時代がやって来たんだね。本当に嬉しいよ。
>ヘジたん並みの特別待遇 なにこれ? 会社に自家用ジェット機買ってもらったとか?(藁
C#のHejlsberg、C++のLippman、WebServiceのBox。 恐いものなしだな、こりゃ。
逆にいえば、真に試される時が来たということだね。 .NETが開発者に受け入れられるのか、それとも絵に描いた餅で終わるのか・・・
>>192 Distinguished Engineerとかいうやつよん。
ようやくインスト完了。(´ー`)y-~~ 正式版という実感がいまいち湧かないな。(w
199 :
デフォルトの名無しさん :02/01/19 07:53
VS正式版インストした方へ 安定して動作してますか? 私のマシンは落ちまくりです。 特定のサンプルのみかと思いきや、VS使用中にも落ちまくる。 もしかするとハードの不具合の問題かもという気もしてきた。 アスロンマシンなんだけど、ちょっとメモリの耐性が低いみたい なんだよねーー。2000のインスト時に一旦不具合が出たのだが BIOSいじってるうちに落ちなくなって、ずっと安定してたはずなん だが・・・今回VSはどうにも安定しない。なんか落ち方が以前の 不安定だった時と似てて、ひょっとするとメモリ関連かもという気 がしてきた。xpを普通に動かしてるだけでは落ちないのだが。 何か、VSで超ハードなメモリアクセスタイミングの処理を使い まくってるとか・・・そんなのかも・・・ とりあえず、マシンの問題なのかどうか確認したい・・・ 皆さんのマシンでは突然リセットがかかるような事はないですか?
200 :
デフォルトの名無しさん :02/01/19 10:02
>>191 my goodness....
漏れもMSFTに入るぞー(藁
201 :
デフォルトの名無しさん :02/01/19 10:06
>>199 ん?こっちは特に問題は起きてないよ。当方XP。
203 :
デフォルトの名無しさん :02/01/19 16:11
>>199 こっちも、今のところ問題なし。AthlonXP Dual + WindowsXP。
>>199 どんな感じ?
β2で特定の入力(括弧とか)するとウィンドウごと一瞬で消えるように落ちるってのは経験してるんだけど、まさか直ってない?
205 :
デフォルトの名無しさん :02/01/19 20:51
β2の時とはちょっと違う。 β2で特定入力でオチたのは俺も経験したが・・・ 今回は、なんか、もう、別のソリューションをロード しようとしたら落ちるとか、 サンプル起動して、絵を描こうとしたら落ちるとか ヘルプ見てて、次のリンクを見ようとマウスクリック したら落ちるとか・・・ この前までβ2うごかしてたのは日本語xpの上 だったのと、殆どの作業は別の2000上のβ2で やってたので、今回のマシン上でのβ2の安定度 は、あまり確認できてないのだが、 その同じハードに別のディスクを入れ替えて、今回 英語xpの上に英語版VSを入れてみた。 が・・・何か作業してると1時間もしないうちにオチる。 VS以外のソフトでは落ちることは無いのだが・・・ マルチランゲージエクステンション入れてるのも何か 関係あるかなぁ・・・? 今、2000上のβ2削除して、こっちにも英語VSを インスト中。 こっちで、安定すれば、ハードの問題という事になる のだろうが・・・VS以外は問題なく動作してるだけに あきらめきれないなぁ・・・今、メモリ高騰してるし、 マザボ交換とかしたくないんだが・・・ 電源交換してみたが効果なかった。
>>205 それはちょっとひどすぎるね。
こっちはOSからクリーンインストールしたけど、今までのところ落ちてないよ。
そんなに使い込んでないけど。(w
インストーラプロジェクトでショートカットのプロパティにConditionの項目入れ忘れてたってのは直った?
このスレとは微妙にスレ違いと思うのだけど。
>>205 VS.NET相談室スレまだ早いかもしれないけど、
立てたほうがいいのかも。
210 :
デフォルトの名無しさん :02/01/20 00:00
2000にインスト完了し、動かしてみた・・・なんか動作が軽い。 Scribbleをxpで動かした時に最初のストロークで固まる感じが無い。 とりあえず、クラッシュもない・・・ と思っていたら、Scribbleのリソースをいじってる最中に一度落ちた。 但し、今度のはVSのウィンドウが突然消滅するという落ち方で クラッシュには至らなかった。こちらは通常のバグかも・・・ それと、ソリューションロードした時の重さが全然違う。なんか軽い。 ひょっとすると、搭載メモリの違いがここに来て現れたかも。 xpマシンは256M、2000マシンは512M。 .NETには512M必須?? う〜ん、しかしxpマシン、どうしたものか・・・ VSさえ動かさなきゃ問題ないんだが・・・ ところで、なんかリソースのエディットがやりにくくなった感じがするのだが・・・ *.resx に取り込まれたビットマップイメージってペイント編集できないのか? ボタンのイメージを変更する度にソースのイメージ取り込み直してたら手間 かかって仕方ない。なにか別の方法でもあるのか? やっぱ.NETで普通のウィンドウアプリなど作ってはイカンのだろうか?
211 :
助けてください ◆9.xmaNCs :02/01/20 01:04
>>211 ILDASMしようとしましたが、エラーが起きてしまいました。
このスレでは対処できません。
213 :
助けてください ◆9.xmaNCs :02/01/20 01:14
> 但し、今度のはVSのウィンドウが突然消滅するという落ち方で > クラッシュには至らなかった。こちらは通常のバグかも・・・ 使えねぇ〜〜〜! SP待ちか?
215 :
デフォルトの名無しさん :02/01/20 02:58
その後の報告。 クラッシュの原因は解決しました。どうもお騒がせしました・・・ 実はxpマシンはデュアルモニタにしていたのですが、2枚の ビデオカードの電力消費に耐えられなかったようなのです。 ネットで「安定動作」とかで検索していたらカノプーのホーム ページに出くわし、ふと、ビデオカードが大飯食らいであった 事を思い出しました。 GeForce2+TNTだったのですが、TNTがスペック的に見劣り する為、何となく電力消費も大した事ないような気になって いました・・・が、良く考えりゃ当時大飯食らいで有名だった位で・・・ 所有のマシン群の中で1枚だけカノプーのGeForce256搭載機 があったので、これと差し換えてみた所・・・いきなり安定度Up 今の所、落ちていません。(さっきまでなら既に5回は落ちてる) 今更ながら、カノプーのすばらしさを実感しました。 あと、どうもロードが重いな〜と思っていたら、メモリ256MBでは スワップ発生しまくりになっていたようです。 タスクマネージャを見た所、残りメモリが40MBぐらいで、メモリ を空けようと必死・・・そんな感じでした。 VS.NET使うのには最低384MBは無いとダメみたいですね〜
なんかVSを買うの当分やめようかな。 SDKで作業するのになれちゃったよw
219 :
デフォルトの名無しさん :02/01/22 16:10
インクリメント/デクリメント演算子のオーバーライドのときに、 ポストフィクスとプレフィクスを区別するにはどうするの?
220 :
デフォルトの名無しさん :02/01/22 16:38
強いジャンケンプログラムを教えてください。
>>220 入力を受け付けてから出す手を決めれば最強かと。
アレだろ、相手のパターンを読んで、出す手を決めるってヤツ。 マルコフ過程がどうのこうの、という話だったようだが。
223 :
デフォルトの名無しさん :02/01/22 17:18
>>221 どうやってやるの?
>>223 switch (入力) {
case ぐー: 出力(ぱー); break;
case ちょき: 出力(ぐー); break;
case ぱー: 出力(ちょき); break;
}
自己レス。 クラスは参照型だからそもそもポストフィクスとプレフィクスを区別する必要は無いってわけだ。 (C#の演算子はオーバーライドじゃなくてオーバーロードなんだね)
>>225 > クラスは参照型だからそもそもポストフィクスとプレフィクスを区別する必要は無いってわけだ。
そういう問題じゃなくて、1つ定義したら両方自動的に作ってもらえるはずだった気が。
> (C#の演算子はオーバーライドじゃなくてオーバーロードなんだね)
それは C++ でもそうじゃないか?
>>227 んや、書き方悪かった。
public static MyClass operator ++( MyClass This ){
++This.val; return This;
}
とかやってたからさ、Thisそのものを返しちゃったらポストもプレも関係ないじゃん(´Д`;)ってこと。
新しいオブジェクトを作ってそれを返すことにしたけど、これだと++objのときのオーバーヘッドが気になるなぁ。
> それは C++ でもそうじゃないか?
別にC++と比較したってわけじゃないんで。
>>228 いや、俺もちょっといらだっててさ。
某∪SERS GR○∪Pで痛い投稿が2連続であったもんだから。
>>228 の
> 新しいオブジェクトを作ってそれを返すことにしたけど、これだと++objのときのオーバーヘッドが気になるなぁ。
は撤回。
これだとそもそも++が++として機能していなかった。
結局俺の中ではポストとプレを区別するなってことで決着ついちゃったんだけど、
相違のある人は解決策きぼんぬ。
>>230 実験してみたが、結論としては、classに対してはあんまりpostとpreの差異はないけど、
struct に対してはある。
↓
using System;
class CValue{
public int n;
public static CValue operator++ (CValue v){
v.n++;
return v;
}
}
struct SValue{
public int n;
public static SValue operator++ (SValue v){
v.n++;
return v;
}
}
class Sample
{
public static void Main(){
CValue c = new CValue();
c.n = 0; Console.Write((++c).n + ", ");
c.n = 0; Console.Write((c++).n + "\n");
SValue s = new SValue();
s.n = 0; Console.Write((++s).n + ", ");
s.n = 0; Console.Write((s++).n + "\n");
}
}
実行結果
1, 1
1, 0
232 :
デフォルトの名無しさん :02/01/24 15:42
それはちょいと違うぞよ。postとpreの違いは戻り値。以下ドキュメントのコピペ。 The result of x++ or x-- is the value of x before the operation, whereas the result of ++x or --x is the value of x after the operation. In either case, x itself has the same value after the operation. で、結果がどうしてこうなるのかは、参照型と値型の違いだけであって、postとstructの関係とか、preとclassの関係とかではない。 つまり、++cとc++は、おなじモノ参照してるけど、s++や++sのときにはその戻り値として新しい値ができてるわけ。だから別のものに操作を 加えていることになる。
233 :
デフォルトの名無しさん :02/01/24 17:28
public static CValue operator++ (CValue v){ CValue c2 = new CValue(); c2.n = v.n+1; return c2; } とすると、正しい操作ができるみたい。 どうも、前置と後置では変数に対する参照の代入タイミングが異なるよう。 つまり、下記のようなとき class T { } T t = new T(); 前置(++t)では T t2 = T.operator++(t); t = t2; return t2; なのに対し、後置t++では T t2 = T.operator++(t); try { return t; } finally { t = t2; } となる感じ。 ちょっと面白いな。
234 :
デフォルトの名無しさん :02/01/24 17:49
>ができるみたい。
>が異なるよう。
だから、そう書いてあるじゃん。
>>232 の英文に。
>>233 >>228 はそれを言ったんだけどさ、
それだとvそのものは変更されてないから、
もともとの++演算子として機能して無くない?
そういえばC#って ++(++MyStruct) 出来ないんだな。
しばらく見ない間にこのスレ、、殺伐としてきたな。
238 :
デフォルトの名無しさん :02/01/24 19:53
>>234 うんにゃ、
>>231 の方法ではダメからレスしたのさ。
英文では前置と後置に関する一般的なことしか書いてないじゃん。
>>235 ところがこれで正しく、クラス型でも普通のt++ and ++tとして動くのよ。
テスト済みさね。やってみそ。
>>238 なんだかよくわからんけど、
>ところがこれで正しく、クラス型でも普通のt++ and ++tとして動くのよ。
>テスト済みさね。やってみそ。
元ネタ?(231)の中で言っている、structでの動きについては違うっしょ?
>>238 ( ゚д゚)ポカーン・・・ホントだ。
left = ++right; ↓ left = right = Class.operator++(right); left = right++; ↓ right = Class.operator++(left=right); ってことか? rightに代入し直されるとは思わなかった。
243 :
デフォルトの名無しさん :02/01/25 00:05
>>239 の255は
>>225 の誤りでした。
>>240 structでも
static T operator++(T t) {
T t2;
t2.n = t.n+1;
return t2;
}
でちゃんと動く。
>>231 のようにオリジナルを変更しちゃって
動くか動かないかは値型と参照型の違いによるものだろうけど。
つーか、
>>231 のコードコンパイルして、op_IncrementのILの違い見りゃ分かることじゃん。
なんだかんだ言ってさっき始めてVC#.NETでWindowsアプリケーション作ってみたYO! というか作ろうとして途中で挫折したYO! ・・・めっさ作りにくくないですか? メニューバーやツールバーがデフォルトで用意されてないし、 ツールバーは画像一個一個別々のファイルで作って登録しなきゃならないし。 Windows用はVC++で、C#はWeb用にって割り切ったほうがいいかなぁ。 エディタはVC++で言語だけC#だったら最高なんだけどなぁ。
>>245 VS.NET で開発してるなら,
> メニューバーやツールバーがデフォルトで用意されてないし、
簡単に作れるよ。
SDK であっても System.Windows.Forms.MainMenu , MenuItem でメニューが作れるし,
ToolBar でツールバーも作れる。
> ツールバーは画像一個一個別々のファイルで作って登録しなきゃならないし。
VS.NET 上で ico ファイル作ってそれを追加っていうのは反則ですか(;´Д`)
>>246 だって・・・VC++ならメニューバーやツールバーがはじめから付いてて。
いちいち ファイル(F) とかやらなくてもいいじゃん。
ツールバーも同上。
特に画像一つ一つ書くのは(コピるのは)大変。
っていうかSDIやMDIってC#で書くべきじゃないかな?
ダイアログだけならすごく作りやすいし。
>>247 だからVS.NETでやりなさってことでは?
一度メニューバーとかツールバーを作ってテンプレとして保存しとくとか。
このスレ死んでるの? 質問系スレが丸2日も止まってるなんて・・・
>>253 今は一番中途半端な時期だからねえ・・・。
正式版が出たからVS.NET Beta2使う気もしないし、だからといって正式版VS.NETは
誰でも手に入るわけじゃないし。
255 :
デフォルトの名無しさん :02/01/29 23:11
256ゲット!
monoマンセー
X11 みたいな半端なライセンスを採用するとは…
>>255 オープンソース陣営と企業の歩みよりの形がいいね。
261 :
デフォルトの名無しさん :02/01/30 09:31
Cで作られたネットクライアントをC#に移植しています。 Cのソースで#define Magic "\0\1\2\3"と定義されているデータを C#で作るクライアントでサーバ−へ送信しなければならないですが、 C#で string Magic = @"\0\1\2\3";とし、これをSocket.Send( byte[] ) するために、System.Text.Encoding.Default.GetBytesでbyte[]を得て、 これをSocket.Sendしたのですが、どうもサーバーは正しく受け取って くれないようで困っています。 stringからbyte[]にする時におかしくなっているのか、@"\0\1\2\3"自体の 記述が駄目なのか、他に原因があるのか、、、 よろしくお願いします。
>>261 すいません。訂正です。\0\1\2\3 --> \0\1\2\0 に訂正。
>>260 4ページも使っておきながら、Managed Codeへの感染ではないことには一切触れてない。
その代わり.NET戦略が云々ってどうでもいいことばかり。
ZDNetってよっぽどMSを落とし入れたいんだろうね。
264 :
デフォルトの名無しさん :02/01/30 12:32
>>261 System.Text.Encoding.Default って Unicode だったと思われ。
'1' とかも2バイト。
266 :
デフォルトの名無しさん :02/01/30 13:00
>>261 そもそも
>どうもサーバーは正しく受け取ってくれないようで困っています。
って辺りがちょっとな
サーバーって本物(テスト環境にしても)を使ってないか?
普通は送られてくるデータをダンプしたりできるデバッグ用サーバーを作って使うんだが
どんなデータが送られてきているのか、見てみた?
267 :
デフォルトの名無しさん :02/01/30 13:26
>>264-265 たぶん初代スレの話題を勘違いしたと思われ。以下のJScript.NETで
確かめよう。
import System;
import System.Text;
Console.WriteLine(Encoding.Default.EncodingName);
import System.IO;
Console.WriteLine(new StreamWriter("c:\\temp\\hoge.txt").Encoding.EncodingName);
何でJSC?だってclassとかstatic void Mainとか書くのがめんどくさくて...。
>>261-262 > stringからbyte[]にする時におかしくなっているのか、@"\0\1\2\3"自体の
> 記述が駄目なのか、
@"\0\1\2\0" っていうのは,"\\0\\1\\2\\0" と等価。
だから,C の "\0\1\2\0" を C# で書くんだったらそのまま "\0\1\2\0" でいいはずよ。
皆様、 レスありがとうございます。
>>268 そのまま書くと、C#のコンパイラがUnrecognized escape sequenceと怒ので@で黙らせてました。
試しにJAVAで作ってみたのですが、
String Magic = "\0\1\2\0";
sendStream = new DataOutputStream(socket.getOutputStream());
output.writeBytes(Magic); output.flush();
でうまく行くのですよね。writeBytesは1バイトづつ送ってくれるみたいだら。
JAVAのbyteはCのchar 型と同じなんですがC#だとsbyteがCのchar型なんですよね。うーん。
>>264 ACSIIとかUTF8も駄目でした。
>>269 >
>>268 そのまま書くと、C#のコンパイラがUnrecognized escape sequenceと怒ので@で黙らせてました。
あ,そうか...
"\x00\x01\x02\x00" だとどうだろう?
.NET は string が unicode だからこの辺の扱いが面倒なんですよね...
>>270 おお、うまく行きました!ありがとうございました。
これで先に進むことができます。本当にうれしいです。
レスくださった皆様、お忙しいなか本当にありがとうございました。
272 :
デフォルトの名無しさん :02/01/30 18:23
β2でWebアプリケーション作ってて、 HttpCookie cookie = new HttpCookie( "Name", "Value"); cookie.Expires = DateTime.Now + new TimeSpan( 30, 0, 0, 0, 0 ); //30日後のつもり Context.Response.Cookies.Add(cookie); してクッキーに保存しようとしたんだけどさ、 されないんだよね。 ログみてみたらヘッダーにExpires付いてないみたいなんだけどさ、 漏れ間違ってる?
273 :
デフォルトの名無しさん :02/01/30 19:34
>>272 ん?そのコードでこれ↓がちゃんとついたぞ。
Set-Cookie: Name=Value; expires=Fri, 01-Mar-2002 10:31:12 GMT; path=/
もしこれ↓をつけたいなら、
Expires: Fri, 01 Mar 2002 10:33:42 GMT
こうだね。
Context.Response.Expires = 30 * 24 * 60;
>>273 ゴメン!
ProxOmitronのせいだったYO!
Make all cookies session only
にチェックが入ってた(入れた覚えないのに・・もしかしてデフォルト?)
275 :
デフォルトの名無しさん :02/01/31 09:14
くだらない質問なんだけど、メンバ変数を使用する時
>>275 やってもうた、、、誤爆です。申し訳ない。
279 :
デフォルトの名無しさん :02/02/02 01:37
すいません、「Form1.csの保存」と「すべてを保存」はどう違うんでしょうか?
>>279 そりゃ、form1.csだけ保存するか、
プロジェクト中のほかのソース&プロジェクトファイル自身も一緒に全部保存するかの違いだろ。
281 :
デフォルトの名無しさん :02/02/03 13:47
最近活気ないね、ここ・・・
282 :
デフォルトの名無しさん :02/02/03 13:52
C#はフリーで開発できるようになる見こみはあります? フリーと言うかMS以外の有料でも良いんですが。 C++とMSのサイトのSDKで作れたみたいに。
>>282 .NET Framework SDKなら無料だけど。。
このスレの途中にリンクがあったよ。
287 :
デフォルトの名無しさん :02/02/03 15:43
C#でEXEができるのはどうでもよい。 JAVAのjarファイルのようにhtmlからサクッと利用できるように なってんの?これできなきゃツカエネーんじゃねーの。
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 日本語化まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | .|/
>289 それ、アプレット! できないよなぁー どーやってすんの
291 :
デフォルトの名無しさん :02/02/03 16:29
>>285 これ良いねえ。
加えてGCCがC#受け取ってくれたらもっといいねえ。
>>286 日本語とおらなきゃだめじゃん。
だれかできるひと日本語化してー
294 :
デフォルトの名無しさん :02/02/03 17:13
SDK落としたけど、いまお仕事で使わされてるマシンはWin98、ウワ〜ン! 98で動く予定とかないですかね。 いや、単なる事務用のマシンなんです。仕事サボってコード書いてます。 いやだって、会社に仕事来ねーもん。
>296 これは、すごい記事だね。ほんとにそうなのかな?もし そうなら大変だこりゃ。
javaアプレットみたいにサクッとできそうもないね。 やっぱこりゃクソだ。何のメリットもない!
299 :
デフォルトの名無しさん :02/02/04 00:19
そうか・・俺ができないだけなのか・・・ わかり易く教えてくれよ。兄さんよ
>301さんはきっともっと分かりやすいサンプルが欲しいのだな、きっと
>301 そもそもC#ってのはVBとC#の隙間をうめるためだけの言語であって、 WEBがどうとかJAVAがどうとかってのはあまり関係がない。 JAVAよりも低レベルに位置するものであって、到底同じようなことができるわけがない。 もっと勉強してこいよ w
>>304 正直、お前には日本語の勉強をすすめたい。
307 :
デフォルトの名無しさん :02/02/04 16:38
>>307 なんだこの記事、2つとも間違いが多いし、だいたい意味がわからんぞ。
豆蔵ってこんなダメなとこだったのか...。教育とかどうなってんだろ。
>>308 同じ感想を持った人がいてホッとした。(藁
豆蔵ってたしかMSと提携してたよね?それでこの程度なの?C#の先行きも不安だな...
>>307 無理にオブジェクト指向の視点から解釈しようとしすぎて訳わからなくなってる。
312 :
デフォルトの名無しさん :02/02/05 00:57
313 :
デフォルトの名無しさん :02/02/05 04:10
System.ComponentModel.EventHandlerListって アタッチするイベントハンドラが多い時使ったほうがいいの? それとも発行するイベントの種類?定義?が多い時使うものなの? なんかSample見てもどれも不完全で何やってるのか、いまいちつかみきれないです。 ms-help://MS.VSCC/MS.MSDNVS/cpref/html/frlrfSystemComponentModelEventHandlerListClassTopic.htm ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpconraisingmultipleevents.htm
>>313 ここなんかが参考になると思われ。
ttp://msdn.microsoft.com/library/en-us/cpguide/html/cpcondefiningcustomevent.asp イベントを定義するとき、デリゲートをフィールドに持たせるよりも効率的なやり方として
EventHandlerListを使ってるみたいね。
でも、EventHandlerListの説明にこんなことが書いてあるんだけど。(藁
> This class uses a linear search algorithm to find entries in the list of delegates.
> A linear search algorithm is inefficient when working with a large number of entries.
> Therefore, when you have a large list, finding entries is slow.
315 :
デフォルトの名無しさん :02/02/05 11:07
サンプルありがとうございます。何やってるのかやっとわかりました。 delegateを節約するために、、、ですか。 しかしEventプロパティで一々コンテナに入れて 取り出してイベントをdefineみたいな感じですね。 なんか面倒な上に、、取り出すの遅いぞって(ワラ。
315は314へのレスです。#さんレスありがとうございました。
>>312 @ITのBBSは結構ためになるよ。記事はだめだけど。
初歩的な質問ですみません。 String型の変数に格納した文字列をURLエンコーディングするメソッドはありますでしょうか? できれば、System.Uri.HexEscape(char)以外で・・・
320 :
デフォルトの名無しさん :02/02/06 08:07
HttpUtility.UrlEncode か?
stringでかいた式の真偽を評価してくれるメソッドってなにかあります? たとえば、 string a = "-1 < value";として bool hogemethod(string, int val)みたいなメソッドにaとvalの値を渡すと (-1 < val)の真偽が返ってくるとか。
324 :
デフォルトの名無しさん :02/02/06 10:13
JScript.NETならeval関数でできるから、それを使うライブラリを JScript.NETで作って、C#から呼び出すよろし。 var val : int = 1; var bl : boolean; eval("bl = (-1 < val)"); print(bl);
C#いいよなぁ〜〜もうC++なんてやってられないよ。 早く普及しないかなぁ〜〜。 // でもdelegeteとevent周りが美しくないと思ったり。
どこでもいいからNative C#だせよ
>>320 >HttpUtility.UrlEncode
ありがとうございます!これで次の問題に進むことができます(w
328 :
デフォルトの名無しさん :02/02/06 11:54
>>326 俺もその手のひとですので、出てから移ろうかと
>>324 なるほどその手があったか。
参考になりました。どうもです。
C#だけじゃ無理か...
331 :
デフォルトの名無しさん :02/02/06 14:41
>>326 そら無理だろ。クラスライブラリどうすんの?
おとなしくC#やるのがよいと思うが。 おれはWindowsとは関係ないものとして .NETを勉強しなおしてるよ。
333 :
デフォルトの名無しさん :02/02/06 15:31
>>326 PreJITすれば、Nativeなんだけど・・・
334 :
デフォルトの名無しさん :02/02/06 15:54
>>333 甘いね。PreJITしたって真のx86ネイティブになるわけじゃない。たとえば
PentiumIIIでPreJITしたものを、.NET FrameworkなしのAthronにもっていったって
動かないよ。
335 :
デフォルトの名無しさん :02/02/06 16:28
>>334 それはライブラリ依存の部分だけだろ? CPUの違いなんて、最適化でしか
関係ねーじゃん。
>>335 ライブラリ依存じゃないC#のコードって どんなの?
>CPUの違いなんて、最適化でしか 関係ねーじゃん。 おまえすごいな。ネイティブにこだわる人は素直に(M)C++がいいと思うが。
338 :
デフォルトの名無しさん :02/02/06 16:49
>>336 だから無理さ。ライブラリまで全部PreJITってわけにもいかんし。
>>337 x86ネイティブって言ってんだから、あとは最適化だけだろ?
なるほどよく読んでなかった。スマン
340 :
デフォルトの名無しさん :02/02/06 16:53
頼むから一度ngen.exeやってみてから言ってくれ。ここは死滅スレじゃない。
341 :
デフォルトの名無しさん :02/02/07 10:09
なんか、ネットワーク資源を食いつぶしそうな
もしかして トロイとかバックドアにどれだけ強いかの実験?
345 :
デフォルトの名無しさん :02/02/08 18:09
String.Intern と String.IsInterned ってどう違うんですかね???
Cの前身のB言語を学びたいのですが、おすすめの本とかありますか? B++についても教えてください。
>>345 引数の文字列がintern poolになかった場合、
Intern → intern poolに新たに追加して、その参照を返す。
IsInterned → nullを返す。(追加はしない。)
が違いだと思われ。
ILを見てもinternalcallなので、
実際に何をやってるのかはよくわからないんだけど。(藁
348 :
デフォルトの名無しさん :02/02/09 13:45
Form にWebBrowserコントロール貼り付けて、DocumentComplete で DispHTMLDocument doc = (DispHTMLDocument)axWebBrowser1.Document; IHTMLElement button1 = doc.getElementById("Button1"); でボタンのオブジェクトは取れるんだけどイベントの捕まえ方が分からん。 どうすればいい? button1.onclick = new HTMLElementEvents2_onclickEventHandler(axWebBrowser1_onclick); でも駄目だった。
>>347 なるほど、intern の方は追加するわけですね。
悩みが解けました、ありがとう!
>>348 イベントの追加はインターフェイスに対してじゃなくて、
クラスにやらないとだめみたいね。
HTMLDocumentClass doc = axWebBrowser1.Document as HTMLDocumentClass;
HTMLInputElementClass button1 = doc.getElementById("Button1") as HTMLInputElementClass;
button1.HTMLButtonElementEvents_Event_onclick += new HTMLButtonElementEvents_onclickEventHandler(axWebBrowser1_onclick);
> HTMLButtonElementEvents_onclickEventHandler (´ー`)。o ○(もう少し短くできなかったのかなぁ・・・)
>>350 クラスへのキャストが通らないよ〜。
というかそもそも、HTMLDocumentClass、HTMLInputElementClass
のクラスが見つからないのだが??
>>352 mshtml.tlb を TlbImp しろ
>>352 もしかして、Beta2とRTMの違いとか。
>>353 VS.NET の参照設定でも同じだよね?
TlbImp もやってみたが、オブジェクトブラウザのリストにも
出てこないんだが。
環境は、Win2000, IE6.0、VS.NETβ2 だが。 RTMじゃないと駄目??
357 :
デフォルトの名無しさん :02/02/09 21:56
そもそも、β2で作ったexeはRTMで動くのか知らないしな。
VS.NETβ2で参照追加しようとすると毎回フリーズする。。。
そもそも HTMLDocumentClass、HTMLInputElementClass でなく HTMLDocument、HTMLInputElement だと思われ
>>352 β2なら、HTMLDocument,HTMLInputElementがクラスになるみたいね。
(RTMだとインターフェイス扱い。)
>>360 HTMLDocument,HTMLInputElement に変えてみたけど駄目。
キャストの結果が null になってしまう。
RTM版待ちか。
>>361 ほんとだ。β2だとキャストできない...。
interopまわりがかなり変わったみたいね。
>>321 これ使ってみたんだけど、JAVAでint 0x0000006b;ってなってる
ものがC#でもint 0x0000006b;ってそのままだけど、本当に等価なんでしょうか?
この0xの記述ですがHELP調べてみたけど見つかりませんでした。
>>363 Console.WriteLineで10進表示してみたら?
>>364 レスありがとうございます。確認してみたら同じみたいでした。
366 :
デフォルトの名無しさん :02/02/10 12:10
.NET Love
367 :
デフォルトの名無しさん :02/02/10 12:43
Javaをほとんど触ってなかったって事もあるんだろけど、 C,C++使いとしては delete なりfreeがないのが不安というかキモイです。 VBの他からの参照がなくなったらデストラクタが動くってのは分かりやすかったですが、 C#は参照が無くなっても、すぐにはデストラクタ動かないですよね。 本当に大丈夫なのでしょうか?
368 :
デフォルトの名無しさん :02/02/10 12:55
>>367 漏れもちょっといや。
これのせいでいちいちCloseしないといけなかったり、
デストラクタ使った技が全部ダメになったり。
GC方式と参照カウンタ方式をクラス単位で選べるようにして欲しかったな。
>>268 同意。
ファイルがなぜか書き込みに失敗して悩んでたら閉じてなかった。
ところでどうしてColorクラスにはColor( R, G, B )のコンストラクタが無いんでしょ。
Color( H, L, S )とかと紛らわしい、とも言えなくも無いけど。
非メモリリソースはきちんとDisposeしませう。 C#ならusingを使うよろし。
>>370 それは(文法的には)コンストラクタとは呼ぶまい
373 :
デフォルトの名無しさん :02/02/10 15:04
ガベージコレクターが親切すぎるんで、 なんか潰しのきかないプログラマーが増えそうだね。 良いことなのか、悪いことなのか。良いことなのか、悪いことなのか。
>>373 ガベコレ装備の言語内なら潰しはきくのでは?
それはそうと、非ガベコレ言語歴が長いので>367に激しく同意。
何か代替手段はないかえ〜。
なんか同意見の人がいてちょっと安心。 みなさん不安・不満があるみたいですね。 業務でVB使うときですら、参照カウントをきちんと管理したり、 文字列なんかは最後に空にしてガベコレモドキをフォローしてきたんで、 C#はなんかドキドキです。(w まぁ、バグ界のNo1がメモリーリーク問題だそうなんで、 品質・生産性を考えたら、ガベコレ優勢なのは良くわかるんで 流れに乗るしかないのでしょうが・・
>>375 >バグ界のNo1がメモリーリーク問題
マジ?
377 :
デフォルトの名無しさん :02/02/10 21:36
>>376 正確にはメモリー管理関連だろうね。
結果的にリークすることもあるだろうけど。
あぼーん系に流れる確立も高いけど。
>>375 などなど
自信があるならMC++使えば?gcroot.hには一見の価値あり。
>>378 MC++はC#に比べて.NET Frameworkのサポートが不親切
&個人的に文法がかっこ悪い。
381 :
デフォルトの名無しさん :02/02/11 09:23
>>375 個人の問題で済むなら、MC++もありでしょう。
また必要な場面では、MC++を使うでしょう。
とかいいながら、MFC,ATLなライブラリより、ライブラリが素敵に見える & MC++からは使い方がカッコ悪い。
なんで、C#なんですよ。
個人的に何かを作るにしても生産性を優先したいかなと。
382 :
デフォルトの名無しさん :02/02/11 12:31
TcpListnerとTcpClient っ楽なんですが、 接続してきクライアントのアドレスが取得できないですよね? TcpClientのProtectedでClientってあるんで、TcpClientの派生物(TcpClientEx)を作ればよいかと思い、 TcpListerを派生させて、AcceptTcpClientの代わりのメゾッドを書いて、そこでTcpClientExを取得出来る ようにすれば良いかと思ったんだけど、TcpClientをAcceptした形での生成の仕方が分からない・・ どうしたらよいでしょうか?
>>382 そこまでするなら、リフレクションでClientを直接吸い出した方が簡単だと思われ。
TcpClient tcpClient = tcpListener.AcceptTcpClient();
PropertyInfo propClient = tcpClient.GetType.GetProperty("Client", BindingFlags.Instance | BindingFlags.NonPublic);
Socket client = propClient.GetValue(tcpClient, null) as Socket;
間違えた。 × GetType. ○ GetType().
385 :
デフォルトの名無しさん :02/02/11 14:59
>>383 ,384
こんなやり方があったんですね。
確かにコードは遥かに簡単ですが、思いっきりルール違反ですな (w
非常に悩ましいですな・・・
C#の評価も兼ねてコード書いていんるで、使ったほうが評価としては良いのか悪いのか。
マクロでやってた、 __FILE__とか、 __LINE__ の代わりって何かないですかね? Traceは、System.DiagnosticsでOKみたいだけど。
なんか2chが重いと思ってたんだけど、DNSが引けなくなってた・・ やっぱTcpListenerとTcpClientは謎ですな。 正攻法では、AcceptしたSocketでTcpClientを生成できない・・・。 そういうもんですかね?
>>382-385 そこまでするならAcceptSocketすればいいじゃん。AcceptTcpClientは
お手軽アプリ用なんだけど?
389 :
デフォルトの名無しさん :02/02/11 19:43
>>388 それはそうなんですが・・
なんかTcpListenerとTcpClientの関係が気になってしまって。
でもシステムライブラリなんだから、内部はなんでもアリなのかなと
納得しつつあります。
390 :
デフォルトの名無しさん :02/02/11 19:48
>>389 なんか気になって見てみたけど、言ってる事がなんとなくわかった。
そんなもんでしょと同意してみる。
しかしStream関連の利点がイマイチわからないのは鬱だ。
早く「7日でわかるC#!」とか書籍出ないかな・・・ ドキュソなんで初心者本見ないと後に進まない・・・
>>391 ドキュソ本を読んでる限りドキュソ脱却は果たせない。
393 :
デフォルトの名無しさん :02/02/11 22:20
394 :
デフォルトの名無しさん :02/02/11 22:21
言語仕様よりもライブラリの解説した本がほしいけど、 なんかお勧めはないですか?
395 :
デフォルトの名無しさん :02/02/12 08:07
VSLive! 開催あげ
396 :
デフォルトの名無しさん :02/02/12 10:15
明日から2ヶ月近く遠出・・・ VS.NET受け取れねぇ・・・ DLしようにも回線がISDNだしなぁ・・・
399 :
デフォルトの名無しさん :02/02/12 17:59
祭りか・・ 日本は来月だよね。3月8日だっけ? カウントダウンは別のスレでやろうね。 Microsoftのページのカウントダウンは見てる人のTZ基準だね。
400 :
デフォルトの名無しさん :02/02/12 23:20
>400 なんかOS/400みたいだ(藁
サーバーに接続したTcpClientのオブジェクトを 他のスレッドのループに渡して受信を繰りかえさせようとしてるのですが、ループの (TcpClient.GetStream()).Read( hoge , 0 ,hoge.Length ); のところで、System.NullReferenceException: Object reference not set to an instance of an object. と例外吐かれてしまいます。 ソースを書くの長くなるので流れを書くと 1.Formのボタンをクリックでサーバーに接続 2.接続されたTcpClientのオブジェクトを作成したスレッドクラスに渡し、 そのスレッドのWhile( true )でぐるぐる回す。->例外発生です。 GCで勝手に元スレッドで作成したオブジェクトを削除してるのでしょうか? 他に原因が考えられるでしょうか。よろしくお願いします。
403 :
デフォルトの名無しさん :02/02/13 12:39
>>402 (TcpClient.GetStream()).Read( hoge , 0 ,hoge.Length );
をとりあえず、割ってみようよ。
そんで、どっちで例外でるか教えて。
Stream s = TcpClient.GetStream();
s..Read( hoge , 0 ,hoge.Length );
404 :
デフォルトの名無しさん :02/02/13 12:39
Stream stm; stm = TcpClient.GetStream(); while(stm.Read( hoge , 0 ,hoge.Length )); じゃダメか?
あ、コンパイルできないけど雰囲気は伝わるよな。
406 :
デフォルトの名無しさん :02/02/13 12:44
>>404 whileがダメなんだよね。C#では。
なんでだか、条件文はtrue false が出る形式じゃないとダメとかて聞いたけど
どうなの?
>>406 そのとおりです。
if,while,do-while,for,? など、条件式は戻り値の型が bool(ean) でないとダメですね。
理由は……なんていうか、説明することができないほど自明です。
Readの戻りはintなので、while(stm.Read()>0) がいいかな。
レスありがとうございました。
ご指摘のとおり
>>403 さんのように分けてみたところ、
どうもオブジェクトが渡せていないのがわかりました。
こちらの完全なミスでした。申し訳ありません。逝ってきます。
>>407 ちなみにこんな感じで試してみると、うまくいきました。
while((stream.Read(bytes, 0, (int) tcpClient.ReceiveBufferSize))>0)
>>408 良かったね。 オレに座布団一枚くれ。
ところとで、そろそろ下っ端どもにもC#を触らせようかと思っているんだけど、
お勧めの日本語の書籍ってなんかないですかね?
なんかライブラリとかいちいち解説してられないし・・
>>409 参考にならんけど、「プログラミングC#」は役にたたんかった、
MSILコードのとことリフレクションの部分が強いて言えば参考になった程度。
MSドキュとサンプルコードサイトとこのスレのほうがはるかに役にたった。
わしもライブラリの紙ドキュが早く欲しいのう。
412 :
デフォルトの名無しさん :02/02/13 22:41
javaアプレットのような、コンパイルされているけど、webでつかえる方法ってありますか。 javaでいうjarファイルのようなものです。
414 :
デフォルトの名無しさん :02/02/14 01:32
>>411 ISBNかせめて出版社をおせーてくださいませ。
リフレクションの部分は読んでみたい・・
415 :
デフォルトの名無しさん :02/02/14 01:33
>>412 それって、ボーランドにとって勝ち負けでいったらどっちなんだろう・・
418 :
デフォルトの名無しさん :02/02/14 02:05
お、始まったかな
ゲイツたん、さりげなくSunを叩く。(藁
420 :
デフォルトの名無しさん :02/02/14 02:19
同時通訳は何ch?
な、なんだ?いきなり雰囲気怪しくなったぞ。 なんか後ろの方に「開発者」とか書いてあるし。 おめでてーな(藁
>>422 向こうでやってる料理の鉄人のパクリ番組のパロディ。(藁
>>423 さんくすっ。なるほど、道理でバカっぽいとオモタYO!!
休憩か?いや、ろくに聞き取れんもんで。 いいのさ、祭りだしー。w
ゲイツたんのキーノート終了。 4時からヘジたん登場。
ちなみに301というのは間違いだ。
わかっててもやっぱり拍手がおきる。(藁
おわた。あとは日本語版の発売をマターリ待つのみ。ヽ(´ー`)ノ
430 :
デフォルトの名無しさん :02/02/14 07:18
433 :
デフォルトの名無しさん :02/02/14 14:56
MSDNユニバにはどのバージョンんくれるんだろう・・・
>>432 キャッシュバックを入れると、MSDN Deluxeの方がお得かな。
優待パッケージの資格はバージョン番号・エディション名問わず。 (・∀・)イイ!
436 :
デフォルトの名無しさん :02/02/14 16:25
437 :
デフォルトの名無しさん :02/02/14 16:26
System.Net.Sockets.NetworkStreamでお聞きします。 1週間悩んで分かったのですが、TcpClient.GetStream();で取得できるNetworkStreamって TcpClient1つにつき一つなんですね。私、GetStream()するたびに新たなバッファー確保したストリームもらうと 思ってたら違うみたいで、同じストリームのポインタ貰ってるだけみたいですね、 こんなので悩んでるのは私だけでしょうね(ワラ そこで質問なのですが、(TcpClient.GetStream()).Read( bytes , 0 , 8 );などして受信したデータのうち、 必要な分だけバイト配列に格納し、後は読み捨てたい時どうしたらいいのでしょう? Positionプロパティは使えないしLength,Seek()なども使えないですよね。 読み捨てるバイト数も分からないときどう対処すればいいのでしょうか? よろしくお願いします。
>>437 が読みにくくなってしまってすいません。
ついでに質問を補足させて頂くと、
(TcpClient.GetStream()).Read( bytes , 0 , 8 );とした後
BinaryReader reader = new BinaryReader( (TcpClient.GetStream() );
int hogo = reader.ReadInt32();
とすると、前のバッファで読み残した分が読み込まれてしまって
意図した値がもらえないということです。
しかし、たけえな・・・・・・・・・。
Visual C# .NET Professional version 希望。
441 :
デフォルトの名無しさん :02/02/14 18:14
>>437 ,438
最初からBinaryReaderで読んだら?
VC++はいらんから、VB・VC#のStandardで安上がり。
某Dolib.dllを使ったアプリを作ろうとしているのだが(藁)、 セッションIDの取得関数を呼んだところで、本来返るはずの戻り値が、 *場合によっては* 返ってこなくなるという現象に遭遇。 お勉強がてらNUnitなんぞ使ってテストしているが、GUIバージョンで テストするとパスするコードが、コンソールバージョンだと「NullReferenceException」。 無茶なマーシャリングでコンパイルを通したのがバグの原因だとわかるまで格闘すること2日。 ・・・ (void *)な戻り値は、StringぢゃなくてIntPtrで受けるべきだったのね・・・ 逝ってきます(ドコヘ?
>>441 レス有難うございます。結局ReceiveBufferSizeで
全部読み込んでから、必要なバイト分だけを処理するように
しました。ありがとうございました。
445 :
デフォルトの名無しさん :02/02/15 16:24
JAVAのクライアントソフトをC#に移植しようとしてるものです。 以下のJAVAのコード(サーバーに数値を送信するコード)を socket = new Socket( host , (int)5000 ); output = new DataOutputStream(socket.getOutputStream()); output.writeInt(107);output.writeInt(2);output.writeInt(0); output.writeInt((int) 38); output.writeInt((int) 38); output.writeShort(4); C#で下記のように移植してみました。 BinaryWriter sender = new BinaryWriter( tcpClient.GetStream();); sender.Write((int)170);sender.Write((int)2);sender.Write((int)0); sender.Write((int)38);sender.Write((int)38);sender.Write((short)4); するとJAVA、Cではうまくデータを受け取ってくれていたサーバが正しくデータを受け取れないので 仮のサーバをC#で作り、送られてくるデータの違いを比較してみました。すると違いがみられました。 JAVAクライアント = 000107000200000003800038040000000000(以下0が続く) C#クライアント = 170000200000003800038000400000000000(以下0が続く) C#でJAVAと同じデータを送りたいのですが、どうすればいいのでしょう? 長文失礼しました。よろしくお願いします。
>>445 JAVAクライアント = 000170000200000003800038040000000000(以下0が続く)
447 :
DefaultAlias :02/02/15 17:00
バイトオーダ? しかしその前に、JavaとC#で送ってるものが違うぞ。 107と170!頭が混乱するー。 なんつーかあなたはスマートでない。
バイトオーダではないなあ。表示の問題? サーバ側の出力表現が悪いよ。カンマで区切るとかどうにか出来ないか・・。
449 :
デフォルトの名無しさん :02/02/15 17:42
コンバータにかけてみりゃいいじゃん。
>>447 さん スマートでなくてごめんなさい。まちがってしまいました。反省。
JAVA = output.writeInt(777);を6回
C# = sender.Write((int)777)を6回
で試してみたところ、
JAVAクライアント = 003900390039003900390039000(以下0が続く)
C#クライアント = 930093009300930093009300000(以下0が続く)
でしたので、バイトオーダーの問題ですよね?
・・・今度は16進で出力したんだろうか? しかし、777は0x309だ。なぜ39とか93なんだろうか?変だ。 intで送っているのにひっくり返り方がshortだ。 バイトオーダが逆で10進表記ならもっと変な数が出てくるだろう。 たぶんオレが馬鹿なんだろう。
廚な私には?ですがバイトオーダーだったようです。 sender.Write((int)IPAddress.NetworkToHostOrder(777)); とすることで解決しました。 DefaultAliasさんあんた神だ! 一生崇めるよ。
>>444 なんか手抜きで投げやりな回答でスマソかった。
454 :
デフォルトの名無しさん :02/02/15 19:14
>>452 ん?
なんでJavaとC#でエンディアンが違うの?
動かしているプラットフォームが違うって
455 :
デフォルトの名無しさん :02/02/15 21:10
>>452 英語?ていうか単語と前置詞くらい読めな。
ネットワークに送り出すときはHostToNetworkOrderだろ。
(´-`).。oO(なんでこの機能がIPAddressクラスなんだろ?)
(´-`).。oO(NothingBut.NETFWさんこっちに常駐してくれないかな?)
>>457 (´-`).。oO(あの人の正体はヤパーリY.Fさん...?)
459 :
デフォルトの名無しさん :02/02/18 11:46
(´-`).。oO(なんかC#ネタが無くなってきたね。 発売前なのに)
460 :
デフォルトの名無しさん :02/02/18 19:29
ASCIIが訳本イパーイ出すね。 ソースはMSDN Magazine。
どっか、windesのフリー版作ってくれねーかな・・・
462 :
デフォルトの名無しさん :02/02/18 22:57
HttpWebRequest wReq =(HttpWebRequest)WebRequest.Create("
http://pc.2ch.net/test/read.cgi/tech/1009473982/ ");
wReq.UserAgent = ".NET Framework Example Client";
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, Encoding.ASCII);
String respHTML = reader.ReadToEnd();
Console.WriteLine( respHTML);
とやると文字化けしてしまうのですが、どうしたらよいでしょうか?
463 :
デフォルトの名無しさん :02/02/18 23:04
>Encoding.ASCII これじゃ日本語扱えないだろ。 Encoding.GetEncoding("shift_jis")にすべし。 本当はバイナリで読んでcharset探すとか必要っぽいけどな。
>>462 Encoding.Defaultでもよろし。
>>463 ,464
レスどうもです。
とりあえず、
StreamReader reader = new StreamReader(respStream, Encoding.GetEncoding(932));
ってやったら出来てました。
Defaultが良いかな・・?
って、EUCとかJISとかで返ってくるページを読むときは、
ヘッダみてから判断しないとって事ですね。
466 :
デフォルトの名無しさん :02/02/18 23:32
(´-`).。oO(久しぶりのC#の相談だ・・・)
467 :
デフォルトの名無しさん :02/02/19 00:21
オレは if (hoge > hage){ hoge++; } else{ hoge--; } って書きたいんだよ!! ヽ(*`Д´)ノゴルァ
468 :
デフォルトの名無しさん :02/02/19 01:30
>>467 書けますが何か?
もちろん自動整形ですがまだ何か?
英数字の全角半角変換はどうすればいいんでしょう?
471 :
デフォルトの名無しさん :02/02/19 13:40
突然の質問で申し訳ありませんが、 VBの Redim Preserve 相当を C#ではどうやるんでしょうか?
472 :
デフォルトの名無しさん :02/02/19 15:36
System.Array.Copy
>>472 やっぱり別途作ってコピーになるんですか?
474 :
デフォルトの名無しさん :02/02/19 15:51
Redim Preserveも結局内部では同じ。
475 :
デフォルトの名無しさん :02/02/19 16:02
>>474 多次元の場合はどうなるんでしょうか?
個別にやらないとダメかな?
こんな感じでやったけどうまくいかなった。。
-----------
String[,] sList;
String[,] sNewList = new String[2,10];
Array.Copy(sList,sNewList,10)
sList = sNewList;
ゴメンなさい。出来てました・・。
やっぱ、 sList[0,x]しかコピーされない。 二回やらいなとダメなのかな・・・指定の仕方がわからない。
478 :
デフォルトの名無しさん :02/02/19 16:13
static void Main() { String[,] sList = new String[2,10]; for (int i = 0; i < 2; i++) for (int j = 0; j < 10; j++) sList[i, j] = "sage" + i.ToString() + j.ToString(); String[,] sNewList = new String[2,10]; Array.Copy(sList,sNewList,20) ; for (int i = 0; i < 2; i++) for (int j = 0; j < 10; j++) Console.WriteLine(sNewList[i, j]); When copying between multidimensional arrays, the array behaves like a long one-dimensional array, where the rows (or columns) are conceptually laid end to end.
とりあえず、LCMapString を DllImport して使っときます。 [DllImport("kernel32.dll", CharSet=CharSet.Auto)] [return:MarshalAs(UnmanagedType.I4)] public static extern int LCMapString( [In, MarshalAs(UnmanagedType.U4)] uint Locale, [In, MarshalAs(UnmanagedType.U4)] uint dwMapFlags, [In, MarshalAs(UnmanagedType.LPTStr)] string lpSrcStr, [In, MarshalAs(UnmanagedType.I4)] int cchSrc, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpDestStr, [In, MarshalAs(UnmanagedType.I4)] int cchDest );
480 :
デフォルトの名無しさん :02/02/19 16:20
/ ̄ ̄ ̄ ̄ ̄ ミ / ,――――-ミ / / / \ | | / ,(・) (・) | (6 つ | | ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | /__/ / < なわけねぇだろ! /| /\ \________
そうだな.
>>478 要素数が同じならそれでよいんですが、
String[,] sNewList = new String[2,11];
とか増やすとズレるんです・・。
483 :
デフォルトの名無しさん :02/02/19 17:49
そういえば、C#というか、.net freameworkの環境で Multimedia系の扱いはどうなの? 単純にwavの再生とかどうやるんだろう。
485 :
rerorero :02/02/19 18:20
int a[3]のとき、 配列名aは、式の中ではポインタと「みなされる。」 int a[3]; a[0]=10; a[1]=20; a[2]=30; printf("%d\n",*a); 10が表示される printf("%d\n",*(a+1)); 20が表示される printf("%d\n",*(a+2)); 30が表示される *aってのは、ポインタaが指している先の変数を 表す。 ってことから、aはポインタと解釈されていることがわかる。 ただ、aは「ポインタと解釈されている」のであって、 ポインタではない。 というのも、 配列の先頭要素のアドレスは 固定された値、すなわち「定数」であり、 定数にアドレスを代入することはできない。 それに対し、ポインタは「変数」である。 どうでしょね?
487 :
デフォルトの名無しさん :02/02/19 18:42
>>484 それで出来るのはわかるんだけど、やっぱそうなの。
なんか将来的な移植性とか無くなるじゃん・・。
その手を纏めたライブラリを用意しとかないとね。
というか、MSに用意して欲しいなり。
488 :
デフォルトの名無しさん :02/02/19 20:46
そもそもなんで wav の再生が標準でできないんだろう... これくらい標準装備でも良いと思うのに。
489 :
デフォルトの名無しさん :02/02/19 21:16
なんか外回りのライブラリが不足してるよね。 まぁJavaもそんなだったけど。 確かに移植性は考慮というか、そんなツマンナイ所で 台無しにしたくないよね。
>>488 WAVなんて再生できなくてもいいや、WMAがホスィ。
491 :
デフォルトの名無しさん :02/02/19 21:36
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| 1000点!!!! |
|_________|
∧∧ .||
(*゚ー゚) ||
.(ニニつ
.) .(O)
.(^ヽノ|.||
ヽ ヽ |
) .)|
/.イ .|
(,へ>へ>
韓国でも出るみたいだが……。
http://www.puchiwara.com/hacking/ おもしろければなんでもアリ!
492 :
デフォルトの名無しさん :02/02/19 21:37
足りないのはマルチメディア系ぐらいなのかな? 他にもよーく考えたらってありそうだけど。 あっ、タスクトレイに入れたいかも・・・・・・・・・。
493 :
デフォルトの名無しさん :02/02/19 21:51
>>492 タスクトレイは、NotifyIconクラスがあるよ(名前自信なし)。
494 :
デフォルトの名無しさん :02/02/19 22:59
あれ、いつのまにかSDK日本語版β2のダウンロードページが なくなって、正式版の準備中になってる?
496 :
つまらない物ですが。 :02/02/20 02:09
全角スペースをタブに置き換えてご賞味ください。 (w ------------------ /// 指定したURIのスレの最終レス番号を取得する。 /// </summary> /// <param name="sURI">スレのURI</param> /// <returns>[正常時]: 最終レス番号 [異常時]: 0</returns> static public int getLastResNo( String sURI) { int nLastNo = 0, nPos = -1; Uri uriTarget = new Uri(sURI); uriTarget = new Uri( uriTarget,"l1",true); try { HttpWebRequest wReq =(HttpWebRequest)WebRequest.Create(uriTarget); wReq.UserAgent = "Super Client 55"; //wReq.Headers.Add("Accept-Language", "ja, en"); WebResponse wResp = wReq.GetResponse(); Stream respStream = wResp.GetResponseStream(); StreamReader reader = new StreamReader(respStream, Encoding.Default); String respHTML = reader.ReadToEnd(); respStream.Close(); nPos = respHTML.LastIndexOf("<dt>"); if (nPos > 0 ) { nPos +=4; int nLast = respHTML.IndexOf( ":<",nPos); String sNo = respHTML.Substring(nPos, nLast - nPos); nLastNo = Convert.ToInt32(sNo); } else { // not find... nLastNo = 0; } } catch { // error... nLastNo =0; } return( nLastNo); }
>>496 へーっ、面白い。
レスに書ける、素敵な関数シリーズでやってくれ!!
498 :
デフォルトの名無しさん :02/02/20 06:34
最近こんなクラスを作ろうと思ってる。 ようはTraceに日付を付け足してるだけなんだけど。 本当はコレに呼び出し元の情報も付加したいんだとげ良い方法ないかな? ------------- class PTrace { public static void WriteLine(String sFmt, params Object[] o) { sFmt = String.Format( "[{0:s}] ",DateTime.Now) +sFmt; Trace.WriteLine( String.Format(sFmt,o)); } public static void WriteLine(String sCtgry, String sFmt, params Object[] o) { String sFormat = String.Format( "[{0:s}] ",DateTime.Now) +sFmt; Trace.WriteLine( sCtgry, String.Format(sFormat,o)); } }
499 :
Java使い :02/02/20 07:17
(´-`).。oO(String.Format()って便利そうだね。仕様を見たいかも....。)
500 :
デフォルトの名無しさん :02/02/20 07:56
MSは、C#というか、.NETになってハンガリアンな記法はヤメたのかな??
502 :
つまらない物ですが。 :02/02/20 09:25
/// <summary>
/// 2chに書き込む
/// </summary>
/// <param name="sServer">スレのあるサーバー ex) "pc.2ch.net" </param>
/// <param name="sBoard">ボードの名称 ex)"tech"</param>
/// <param name="sThread">スレッドID ex)"1009473982"</param>
/// <param name="sName">投稿者名</param>
/// <param name="sMail">メールアドレス</param>
/// <param name="sMessage">本文</param>
/// <returns>とりあえず今は成功するとtrueを返す。</returns>
static public bool post2chMessage(
String sServer
, String sBoard
, String sThread
, String sName
, String sMail
, String sMessage
)
{
bool bRC = false;
String sURI;
Uri uriPost;
String sReq = String.Format("submit=%8F%91%82%AB%8D%9E%82%DE"
+ "&FROM={0}&mail={1}&time={2}&bbs={3}&key={4}&MESSAGE={5}"
, sName,sMail
,(int)(DateTime.Now - (new DateTime(1970,1,1) ) ).TotalSeconds
,sBoard,sThread,sMessage);
sURI = "
http://pc.2ch.net/test/bbs.cgi ";
uriPost = new Uri(sURI);
try
{
HttpWebRequest wReq =(HttpWebRequest)WebRequest.Create(uriPost);
wReq.UserAgent = "Super Client 55";
wReq.Method = "POST";
wReq.ContentType="application/x-www-form-urlencoded";
wReq.ContentLength = Encoding.Default.GetByteCount(sReq);
wReq.Accept = "text/*";
wReq.Referer ="
http://pc.2ch.net/tech/index2.html ";
wReq.Headers.Add("cookie","NAME=test; MAIL=sage; path=/");
Stream reqStream = wReq.GetRequestStream();
StreamWriter rw = new StreamWriter(reqStream,Encoding.Default);
rw.Write(sReq);
rw.Close();
reqStream.Close();
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, Encoding.Default);
String respHTML = reader.ReadToEnd();
respStream.Close();
bRC = true;
}
catch
{
bRC = false;
}
return bRC;
}
503 :
つまらない物ですが。 :02/02/20 09:27
/// <summary>
/// 2chに書き込む
/// </summary>
/// <param name="sServer">スレのあるサーバー ex) "pc.2ch.net" </param>
/// <param name="sBoard">ボードの名称 ex)"tech"</param>
/// <param name="sThread">スレッドID ex)"1009473982"</param>
/// <param name="sName">投稿者名</param>
/// <param name="sMail">メールアドレス</param>
/// <param name="sMessage">本文</param>
/// <returns>とりあえず今は成功するとtrueを返すけ感じだけど、ちょっと嘘あります。</returns>
static public bool post2chMessage(
String sServer, String sBoard, String sThread
, String sName, String sMail, String sMessage
)
{
bool bRC = false;
String sURI;
Uri uriPost;
String sReq = String.Format("submit=%8F%91%82%AB%8D%9E%82%DE"
+ "&FROM={0}&mail={1}&time={2}&bbs={3}&key={4}&MESSAGE={5}"
, sName,sMail
,(int)(DateTime.Now - (new DateTime(1970,1,1) ) ).TotalSeconds
,sBoard,sThread,sMessage);
sURI = "
http:// " + sServer + "/test/bbs.cgi";
uriPost = new Uri(sURI);
try
{
HttpWebRequest wReq =(HttpWebRequest)WebRequest.Create(uriPost);
wReq.UserAgent = "Super Client 55";
wReq.Method = "POST";
wReq.ContentType="application/x-www-form-urlencoded";
wReq.ContentLength = Encoding.Default.GetByteCount(sReq);
wReq.Accept = "text/*";
wReq.Referer = "
http:// " + sServer + "/" + sBoard +"/index2.html";
wReq.Headers.Add("cookie","NAME=" + sName +"; MAIL="+ sMail +"; path=/");
Stream reqStream = wReq.GetRequestStream();
StreamWriter rw = new StreamWriter(reqStream,Encoding.Default);
rw.Write(sReq);
rw.Close();
reqStream.Close();
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, Encoding.Default);
String respHTML = reader.ReadToEnd();
respStream.Close();
bRC = true;
}
catch
{
bRC = false;
}
return bRC;
}
>>504 なんだか役に立つのか/立たないのか、良く分からんfunctionだな。 (w
2chなライブラリでも作ってるんですか?
506 :
Java使い :02/02/20 10:24
>>501 なんか良さげだね。
Customizing Format Stringsとか使ってみてー。
Javaに移植して欲しいな。
コード見た限りはJAVAと変わらんね。
どの変が違うの?
>>506 ・値型の存在とBoxing-Unboxing処理
・デリゲート
・プロパティ
・アセンブリ
>>498 呼び出し元というのは呼び出してきたメソッドとかクラスとかのことでしょうか?
それならこんな感じでいかがでしょう?
private static string OriginMethod() {
System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace();
System.Diagnostics.StackFrame frame = trace.GetFrame(2);
System.Reflection.MethodBase method = frame.GetMethod();
return method.Name;
}
>>509 そうです。
多分コレです。多謝。
早々に試してみます。
調子にのってこんなのもと思ったけど、0とnullしか取れないんですね・・・。(;´Д`) nt n = frame.GetFileLineNumber(); int m = frame.GetFileColumnNumber(); String sFileName =frame.GetFileName();
とりあえずこんな感じにしてみまた。 なんかフォーマットがダサいですが・・・ ----------------------- class PTrace { public static void WriteLine(String sFmt, params Object[] o) { sFmt = MakeFormatString(sFmt); Trace.WriteLine( String.Format(sFmt,o)); } public static void WriteLine(String sCtgry, String sFmt, params Object[] o) { sFmt = MakeFormatString(sFmt); Trace.WriteLine( sCtgry, String.Format(sFmt,o)); } public static void WriteLine(bool bCnd, String sFmt, params Object[] o) { sFmt = MakeFormatString(sFmt); Trace.WriteLine( bCnd, String.Format(sFmt,o)); } public static void WriteLineIf(bool bCnd, String sFmt, params Object[] o) { sFmt = MakeFormatString(sFmt); Trace.WriteLineIf(bCnd, String.Format(sFmt,o)); } private static string MakeFormatString( String sFmt) { return String.Format( "[{0:s}]<{1}>{2}",DateTime.Now, OriginMethod(3),sFmt); } private static string OriginMethod(int nFrame) { System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(); System.Diagnostics.StackFrame frame = trace.GetFrame(nFrame); System.Reflection.MethodBase method = frame.GetMethod(); //int n = frame.GetFileLineNumber(); //int m = frame.GetFileColumnNumber(); String sFullName =method.ReflectedType.FullName; return sFullName + "." + method.Name; } }
513 :
デフォルトの名無しさん :02/02/20 17:34
>>484 つうことはなんらかの音鳴らすのにいちいちAPI直に
たたかないといけないってこと?まじすか。
515 :
デフォルトの名無しさん :02/02/20 17:45
>>513 私は現状そうしてます。
[DllImport("winmm.dll")]
public static extern long PlaySound(String lpszName, long hModule, long dwFlags);
これってすでにC#というか.NETの世界ではある意味定番かもしれません。
ちなみにこれが良いとは全然思ってないです(;´Д`)。
516 :
デフォルトの名無しさん :02/02/20 17:52
>>514 手間的には515が書いたとおりで、たいしたもんじゃないけど、
NET.Frameworkのライブラリに漏れがあるんだよね。
System.Mutlitmediaぐらい欲しいよね。 (Multimediaは死語か?)
517 :
デフォルトの名無しさん :02/02/20 18:15
518 :
デフォルトの名無しさん :02/02/20 18:24
なんかVB(Ver6.0までね)で、 「Win32APIを使えばこんな事も出来るんです」 って言ってるのと変わんないよね。(全く同じだ) もうそんなのイヤだっつーの。(;´Д`)
>>515 C# の long は 64bit だけど大丈夫?
520 :
デフォルトの名無しさん :02/02/20 18:42
>>512 そのクラス使ってみたんですが、WriteLineってやっても何処にも書き出されないのですが。
本来何処に出力されるものなのでしょうか? もしかしてイベントロク?
using System.Diagnostics;
はやったのですが・・・・・・・・・。
>>520 /d:TRACEでコンパイル。デバッガで実行。Outputウィンドウに表示。
要はOutputDebugStringだ。<ってドキュメントに書いてある。
522 :
デフォルトの名無しさん :02/02/20 21:09
TextBoxで一部のテキストの色を変えて出力したいのですが、 どうしたらいいのでしょう?
523 :
デフォルトの名無しさん :02/02/20 21:26
>>522 ウィンドウズ的に難しいと思う。
あっ、標準のテキストボックスの話ね。
RichTextBox使えば色々できる。
525 :
デフォルトの名無しさん :02/02/20 21:52
>>523 すいません、RichTextBoxも調べてたんですけど
どのあたりのメソッド調べればいいんでしょう?
526 :
デフォルトの名無しさん :02/02/20 21:53
>>542 (・∀・)イイ!
オレはまだ知識・情報が少ないのでちょっとした事が為になるよ〜
INI ファイル操作クラスを作ってみた(藁 実装が汚すぎるけどね...
528 :
デフォルトの名無しさん :02/02/20 22:13
>>525 こんなんでわかる?
this.richTextBox1.SelectionStart = 2;
this.richTextBox1.SelectionLength = 5;
this.richTextBox1.SelectionColor = System.Drawing.Color.Blue;
529 :
デフォルトの名無しさん :02/02/20 22:21
>>527 INIファイルに関しては、API呼びたくなっちゃうな・・・・。
なんか.configファイルで似たような事(iniファイルみたいな扱い)が出来るような気がしているんだけど気のせい?
531 :
デフォルトの名無しさん :02/02/20 22:39
痛い話を、おひとつ。 namespaceの名称にバージョン番号を付けるという規則を提案する上司。 当然ライブラリも適用されます。 例) System.Net.Socket_001 ライブラリモジュールバージョン上がる度に・・・・・・・・・ヽ(`Д´)ノウワァァァン
532 :
デフォルトの名無しさん :02/02/20 22:45
初心者なんですが、C#でstringを関数に参照渡しするにはどうしたらよいのですか? public static void main() { string s =""; SetString(s); Console.WriteLine(s); } public static void SetString(s) { s="Hello"; } 見たいな感じでやりたいのですが。 よろしくお願いします。
533 :
デフォルトの名無しさん :02/02/20 22:48
>>524 SubbackReaderのメゾッドはReadよりもGetXXXXの方が適切じゃないかと言ってみる。
イヤなんとなく。戻りとか考えるとね。
>>533 確かにそうね。
もともとはXmlTextReaderのReadみたいな実装(Readを呼んで、それからプロパティでいろいろ取得する)
にしてたんだけど、めんどいのでDataTableでまとめて返すっていうのに変えちゃった。
>>532 refをつけてちょ。
public static void Main()
{
string s = "";
SetString(ref s);
Console.WriteLine(s);
}
public static void SetString(ref string s)
{
s = "Hello";
}
536 :
デフォルトの名無しさん :02/02/20 23:18
void f(out string str) { str = "out-going text"; } ref とかもあるYO!
被った・・・。 outとrefの違いは、呼び出し元の変数が初期化済みでなければいけないか否かです。
>>535 refは呼ぶ方と呼ばれる方の両方に付けないとダメですか?
>>536 outなら片側でよいのかな・・・
ちょっと試してみます。
ありがとうございました。
539 :
デフォルトの名無しさん :02/02/20 23:21
>>529 読み込みはSystem.Configuration系(AppSettingReader)で簡単に
できるんだけど、書き込みはなぜかSystem.Xml系...。
なんとなく中途半端。
>>538 > refは呼ぶ方と呼ばれる方の両方に付けないとダメですか?
そです。片方でも省くとコンパイルエラー。
out も必要でした。ちょっとそこまで逝ってきます。
>>540 それは使ったことないんだとげ、
なんとなく書き込みがConfiguration系に無いのが理解できる気がする。
configファイルの用途を考えるとね。
動的な使い方(?)はすべきじゃないのかと。
544 :
デフォルトの名無しさん :02/02/20 23:30
>>531 しかも [assembly: AssemblyVersion(〜)] と噛み合ってない罠。
>>545 なんか間違ってるよ。
あんな動的に使うもんではないと思うんだけど。
しかも書き込みだけファイル名ベタ埋めだし。
どうせなら、xmlなiniファイルをread writeするクラスを例に出してくれ >MSDN
>>531 544
激しく藁た。
どっかをどうにか読み間違えて、バージョン管理は重要だとか言い出してるんだろうな。 (w
Windows FormsってReBarもドッキングツールバーも無いんだな。 VS.NET買う意欲かなり減退・・・
548 :
デフォルトの名無しさん :02/02/21 00:30
すでにiniじゃなくて完全にxmlで保存すりゃいいのにという話は置いておいて。
iniを読むクラス。
class IniStream {
static Regex reSection = new Regex(@"^\[(?<name>\w+)\]$");
static Regex reItem = new Regex(@"^(?<name>[^=]+)=(?<value>.*)$");
Hashtable Read(TextReader r) {
Hashtable sections = new Hashtable();
StringDictionary section = null;
string line;
while((line=r.ReadLine())!=null) {
Match m = reSection.Match(line);
if(m.Count>0) {
section = new StringDictionary();
sections[m.Groups("name").Value] = section;
} else if(line.Length>0) {
m = reItem.Match(line);
section[m.Groups("name").Value] = m.Groups("value").Value;
}
}
return sections;
}
}
>>546 XMLなiniだったらXMLとして読めばいいんでないの?
>>548 いやだから、読むのはDOMでもとSAXでもいんだけど、そのラッパークラス。
読み書きできる奴ね。
550 :
デフォルトの名無しさん :02/02/21 09:20
>>549 XmlDocument.Save で書きはできるし。
ラッパーは何ラッピングすんのかよく分からんが。
551 :
デフォルトの名無しさん :02/02/21 09:28
>>550 なんか出勤時間が一緒ですな (w
class XmlIniFile
{
void XmlInfile( String sFileName);
void flush();
String ReadSetting( String sSectionName, String sSettingName);
String WriteSetting( String sSectionName, String sSettingName, String sValue);
}
みたいな。
C#風にプロパティでもよいと思う。
553 :
デフォルトの名無しさん :02/02/21 09:55
どうせ速度は要らないんだよね。 class XmlIniFile { // followings must be set in initializer. XmlDocument xml; XmlElement ini = xml.DocumentElement; String ReadSetting( String sSectionName, String sSettingName) { XmlElement s = (XmlElement)ini.SelectSingleNode("section[@name='"s+SectionName+"']"); return s.Attributes[sSettingName].Value; } String WriteSetting( String sSectionName, String sSettingName, String sValue) { XmlElement s = (XmlElement)ini.SelectSingleNode("section[@name='"s+SectionName+"']"); if(s==null) { s = xml.CreateElement("section"); s.SetAttribute("name",sSectionName); ini.AppendChild(s); } s.SetAttribute(sSettingName,sValue); } }
554 :
デフォルトの名無しさん :02/02/21 10:01
>>553 まぁ、大体そんな感じなんだけどね。
折角だからXMLSchemaで検査しちゃうぞとかさ。
そんな内容をMSDNに載せて欲しいって話さ。
555 :
デフォルトの名無しさん :02/02/21 11:17
ボタンをデフォルトボタンにするにはどうしたらいいですか? IsDefaultプロパティがprotectedでアクセスでけん(TT
>>555 名前がまぎらわしいんだけど、Form.AcceptButtonプロパティよん。
557 :
デフォルトの名無しさん :02/02/21 11:41
>>556 ありがと〜。 なるほど、フォームにデフォルトボタンが
複数あったらだめから、フォームのプロパティにしたのかの。
>552 3Dになるといいね。
559 :
デフォルトの名無しさん :02/02/21 13:24
>>308 豆蔵はオブジェクト指向そのものについては詳しい人は多いが
実務家でまともなのがいない.
オブジェクト指向そのものの研究というか勉強をやっていた人
が多い会社.
560 :
デフォルトの名無しさん :02/02/21 15:06
質問です。別スレッドの例外を別のスレッドで補足したいんですが どうしたらいいんでしょう?
>>559 だから間違ってる文書を書いてもいいってことにはならんぞ。
562 :
デフォルトの名無しさん :02/02/21 16:39
TcpClient.Close()ですぐに接続切断してくれない、、 GCのせい?
564 :
デフォルトの名無しさん :02/02/21 16:46
String をchar[]に変換するのは、ToCharArray()で出来るのですが、 byte[] にするにはどうしたらよいのでしょうか?
>>562 Beta2のバグ。RTMで修正済み。
>>564 System.Text.Encodingを参照すべし。
566 :
デフォルトの名無しさん :02/02/21 16:51
>>565 RTMで修正って、、、じゃあ、直ってないってことか。
NetworkStream str = tcpclient.GetStream(); したあとに、ちゃんと str.Close(); してる?
570 :
デフォルトの名無しさん :02/02/21 17:17
>>562 β2ですが、サクッと切断してくれますけど。
571 :
デフォルトの名無しさん :02/02/21 17:18
>>569 あわわ、、いちいちClose()しないとけいないのね。
神よありがとう。
572 :
デフォルトの名無しさん :02/02/21 17:21
あっ、やっと意味わかった。 取得したStreamをCloseしてないのね。 ありがちなミスですな。 オレも最初やった・・。
573 :
デフォルトの名無しさん :02/02/21 17:27
>>571 あれ?でもストリーム閉じたらその時点で切れちゃうよね。
574 :
デフォルトの名無しさん :02/02/21 17:32
解決しました。tcpClient.Close();じゃ、ほかでストリーム使ってると 接続きれないんだわ。 だからすぐ切るには(tcpClient.GetStream()).Close();だわ。 なんだかな〜。
576 :
デフォルトの名無しさん :02/02/21 17:46
SDKドキュメントのUdpClientクラスの説明より引用 > UdpClient connects to remote hosts and receives > connections from remote clients UDPというのはコネクションレスだとばかり思っていたが そうではなかった...?
577 :
デフォルトの名無しさん :02/02/21 18:04
578 :
デフォルトの名無しさん :02/02/21 21:06
β2,RC1,RTM で作った実行ファイルに互換性はありますか?
579 :
デフォルトの名無しさん :02/02/21 21:42
580 :
デフォルトの名無しさん :02/02/21 23:34
>>579 やっぱそうですか。
なんか入れ替えが不安です。
やっぱOSから入れ替えですかね
581 :
デフォルトの名無しさん :02/02/21 23:44
/t:exeでコンパイルされたのか、/t:winexeで コンパイルされたのか、プログラムから判断する方法ってあるんでしょうか?
582 :
デフォルトの名無しさん :02/02/22 01:16
>>580 RC3(2は使ってないけど)以降は、以前のバージョンがあってもきちんと
アップグレードできるようです。
というわけで、ベータ2→OSからインストールし直し→RC1→RC3→RTM と
使ってますが、特に問題なし。
.NET FrameworkのREって無料でDLできる(ようになる)? サイズはどれくらいだろう。 SDKが130MB位だし・・・。 いまC#で組んでるんだけど、これ使ってもらうために130MB落とさせるのは、ADSLやFTTHならともかくISDNにはシビアなものがある・・・。
584 :
デフォルトの名無しさん :02/02/22 05:03
585 :
デフォルトの名無しさん :02/02/22 07:53
>>583 redist用は、dotnetfx.exeで、サイズは12MB程度だったと思うよ。
586 :
デフォルトの名無しさん :02/02/22 09:14
NTベースでしか動かない開発言語って、それで作ったEXEもNTでしか 動かないのかな?クライアントが9xベースだったらどーするのさ?
>>586 ヘルプ一度でも見てればわかると思うんだけど、、、Win98で動く。
>>581 PE/COFFのヘッダーを見ればわかる。
Winnt.hのIMAGE_OPTIONAL_HEADER32構造体のSubsystemをチェックする。
589 :
デフォルトの名無しさん :02/02/22 11:41
>>560 やってみた。ソースこんな感じだけど、これでええんかな。長くてスマソ。
using System;using System.Threading;
class Class1{
static int Main(string[] args)
{
try
{
TreadClass loop = new TreadClass();
loop.LoopStart();
}
catch( System.Exception err )
{
Console.WriteLine( err.ToString() );
}
return 0;
}
}
public class TreadClass
{
private Thread Loop;
public void LoopStart(){
Loop = new Thread(new ThreadStart (this.Run) );
Loop.Start();
}
private void Run()
{
int i = 0;
while(true)
{
i++;
System.Console.WriteLine( i );
if( i == 100 )
{
throw new System.Exception( "100!");
}
}}}
確かに駄目だわ。これ困るね。普通どうするの?
590 :
デフォルトの名無しさん :02/02/22 12:11
>>560 ,589
ちょっと書いてみたが、基本的に非同期に実行しているプロセスに外側から
例外を起こすことそのものがかなり危ない。
そういうリスクを犯してまで通知してもよければThread.Abort()を呼ぶことで
強制的に通知することができる。パラメタは基本クラスを定義してやることで
受け渡し可能。
あとは「例外受け取り用スレッド」みたいなものを前提してよければイベントを
シグナル状態にしてやるとかでも通知できるから、こっちのほうが安全で綺麗。
591 :
デフォルトの名無しさん :02/02/22 12:51
>>590 >パラメタは基本クラスを定義してやることで 受け渡し可能。
ってどうゆうことですか?
sdkの日本語版って出ないの?
593 :
デフォルトの名無しさん :02/02/22 13:37
>>591 Abort()だとパラメタが渡せないから、Abort呼ぶ前に
Exception をどっかに取っておかないといけないんだけど、
クラスが完全に不特定だと取って置く場所がないんだよね。
だから、例外を受け取るクラスの基本クラスを特定できれば、
そのクラスのメンバーにExceptionを保存しておけるでしょ。
そういうこと。
594 :
デフォルトの名無しさん :02/02/22 14:00
>>593 結局throwして普通に受け取ることはできんことか。
596 :
デフォルトの名無しさん :02/02/22 14:26
>>584-5 サンクス。
12MBなら問題なさげ。
そんなところにあったのか・・・なんで見つからなかったんだろ。
>>584 どう読んでも21MBにしか見えないのは俺だけ?
600 :
デフォルトの名無しさん :02/02/22 15:04
ああ Threadの話で思い出した。 別のスレッドでWindowFormとかのVisibleプロパティいじったら ウィンドウ固まるね。糞だ。
C#のプログラミングも定番はやはり Jeffrey RichterとかCharles Petzoldの本で 大体決まりなんですか? Petzoldはいきなりあんな分厚い本書いて 気合が入ってますね。 早く翻訳されないかな。
602 :
デフォルトの名無しさん :02/02/22 16:17
>>601 ぼくよんだよ。
すごいびじんのおねえさんの
おにいさんが、しんで、くさくて、
さいごは、よのなかのために、
おじさんたちのおちんちんをなめなめするんだよ。
そうしたら、いろんないいデンパがとんでくるんだって!
>>560 delegateの非同期呼び出しを使うのはどうかしら。
例外処理はEndInvokeでいちおうできるみたいだから。
using System;
using System.Runtime.Remoting.Messaging;
using System.Threading;
delegate void ThreadProc();
class SomeWork
{
// 5秒後に例外を投げます。
public static void Run() {
int n = 0;
while (true) {
n++;
Thread.Sleep(1000);
if (n == 5) {
throw new Exception("キタ━━━━━━(゚∀゚)━━━━━━ !!!!!");
}
}
}
}
class EntryPoint
{
public static void Main() {
ThreadProc proc = new ThreadProc(SomeWork.Run);
IAsyncResult ar = proc.BeginInvoke( new AsyncCallback(OnFinished), null );
Console.Write("待機中");
while ( !ar.IsCompleted ) {
Console.Write(".");
Thread.Sleep(100);
}
}
public static void OnFinished(IAsyncResult ar) {
ThreadProc proc = ( (AsyncResult)ar ).AsyncDelegate as ThreadProc;
try {
proc.EndInvoke(ar);
}
catch (Exception x) {
Console.WriteLine(x.Message);
}
}
}
>>600 別スレッドからウィンドウハンドルに関わる操作をするなら、
Form.InvokeかForm.BeginInvoke経由で呼び出さないとだめかも。
enumって、 enum Fruit{Apple,Banana,Lemon,Orange,Cherry,} Console.WriteLine( "{0},{1}", (Fruit.Banana | Fruit.Lemon), (Fruit.Banana | Fruit.Cherry) ); この | とか、禁止する手段は無いものでしょうか。 Banana | Lemon が Orange になられるのはちょと困る。 Banan | Cherry なんてIDついてないし。 これじゃenumにする意味が無い・・・
>>605 0、1、2、3、...じゃなくて1、2、4、8、...と番号を割り当てればよいのでは。
607 :
デフォルトの名無しさん :02/02/22 17:57
608 :
デフォルトの名無しさん :02/02/22 18:15
>>604 指摘どおり。やはり神!Form.BeginInvokeでいけた。
delegete作らないといけないけど、できないより全然まし。感謝感謝。
>>603 コナ━━━(゚∀゚)━━イ よ、、来ない来ない。ナゼユエ。
>>608 > コナ━━━(゚∀゚)━━イ よ、、
ありゃ...。ヽ(´д`)ノ
例外処理より先にMain()が終わってしまってるのかも。
Main()の終わりに Console.ReadLine(); か何か入れてみてちょ。
610 :
デフォルトの名無しさん :02/02/22 18:50
>>609 キタ━━━━━━(゚∀゚)━━━━━━ !!!!
うーん すばらしい。ちとコード勉強させていだだきます。
612 :
デフォルトの名無しさん :02/02/22 19:49
発売前なの議論が充実してきたね。
>>603-604 とっても参考になりました。
その手のネタって何処で仕入れてますか?
>>606 | を使って欲しくないときの話。
C++ではenum値に対する | の結果は単なる整数だったから、enum変数に再代入することが出来なかったけれど、C#では | の結果が元の型と同じだから605のような問題が発生する。
606のプログラムで
void Func( Fruit );
なメソッドを作ったときどうするわけ?
せっかくFruitに列挙された値のいずれかであることを期待して引数をFruitにしたのに、そこに無関係の値が入り込んでくる。
enumの意味が無いのでは?
>>613 希望の値が含まれてるか & でチェックすればいいのでは。
615 :
デフォルトの名無しさん :02/02/22 21:46
>>608 あるフォームを開いてForm.BeginInvoke()呼び出して
いったんそのフォーム閉じて、また同じようにフォーム開いて
同じことすると、
Additional information: Cannot call Invoke or InvokeAsync on a control
until the window handle has been created.
って例外だすんだけど、なぜ? ウィンドウしっかり開いてるんだけどね、、
616 :
デフォルトの名無しさん :02/02/22 22:05
>>610-612 ほんとに
>>603 のコードで大丈夫なのか考えたほうがいいよ。
そもそもBeginInvokeで作られたスレッドって、その処理に固有のものではない。
CLRが内部で管理するスレッドプールからとったものだ。他の処理でも使われる
可能性があり、他の処理で例外を投げる可能性が。。。
とかね。
619 :
デフォルトの名無しさん :02/02/22 23:49
>>618 よく分からんのだけど、稼動中のスレッドが突然奪われて他の処理を始めるとでも?
>>618 SDK読むとしっかりとした説明があったので。
>>618 確かに、長時間動きっぱなしの処理をdelegateに渡すのはよくないね。
スレッドを25個以上作ったらたいへんなことになる。(藁
>>618 の言ってることは良くわからんが、>603は良くないだろ。
だってEndInvokeが呼ばれる保証がないだろ。投げて知らん振り
されたら例外投げたって無駄だよ。
>>623 ThreadPoolのデフォルトのリミット数よん。
625 :
デフォルトの名無しさん :02/02/23 00:53
結局どうなのよ。スレッドめちゃくちゃつくらなきゃ大丈夫ってこと?
漏れも
>>618 の言ってることは良くわからん。
>>626 ・非同期実行でEndInvoke()が必ず呼び出される保証はない。(Fire & Forgetパターン)
今回みたいに戻り値がvoidだったらなおさら。(藁
・try〜catchをきちんとつけないと、例外が発生したことすらわからない。
>>603 のコードでtry〜catchの部分をはずしてみるとわかるんだけど、
EndInvoke()だけを呼んでも例外は飛んでこない。
明示的にtry〜catchをつけてはじめて例外が飛んでくる。
このへんはちょっと一般的な例外の動作とは違うので要注意。
...といったところが問題だと思われ。
>>603 のコードは、Web Serviceでの非同期実行でよく使うパターンをそのまま
普通のスレッド処理に使ったから、いろいろと問題が出ちゃったということね。
あくまでちょっとしたサンプルのつもりで出したんだけど...。
∧_∧____ /(#゚ー゚) ./\ /| ̄∪∪ ̄|\/ しぃシャープです。よろしく |____|/ ,,,,∪∪,,, ,,
>>524 ここで出てくる「regex = @" ………」という表現が良く分かりません。
単に「regex = " ………」とするのとは違うのでしょうか?
MSDNライブラリのC#の文法に関する文書を中心に探してるんですが……
>>627 なるほどね。しかしこれは私的には役にたったけどな〜
631 :
デフォルトの名無しさん :02/02/23 02:21
>>631 さんくすっ!!
>@"\0\1\2\0" っていうのは,"\\0\\1\\2\\0" と等価。
「\」でエスケープすべき文字が頻出する場面では是非使ってみたいと思います。
>>632 パス名を指定するときに @ を使うと便利かも。
"c:\\winnt\\system32\\"
↓
@"c:\winnt\system32\"
あと,(どうでもいいんだけど)
>>270 にも書いているけど,
> だから,C の "\0\1\2\0" を C# で書くんだったらそのまま "\0\1\2\0" でいいはずよ。
これは間違い。
C の "\0\1\2\0" は C# では "\x00\x01\x02\x00" になる。
念のため。
634 :
デフォルトの名無しさん :02/02/23 03:02
>>633 パス名は\じゃなくて/で書けばエスケープも必要ないよね。
c:\\window\\system32
↓
c:/windows/system32/
/の方が何かと便利。
>>634 なるほどなるほど,この手がありましたか...
636 :
デフォルトの名無しさん :02/02/23 04:03
>>616 IntPtr Whandle = this.Handle;Form.BeginInvoke(hoge);として
ウィンドウハンドル必ず得るようにしたのだが、今度は4,5回繰り返すと、
またウィンドウハンドル取得するところで、固まるのよね。取得できないみたいで。
な、なぜじゃ〜。
>>637 おお 情報はや(笑 しかしMDIって
「複数文書インターフェイス」って訳すんだね。なんのことかと、、
639 :
デフォルトの名無しさん :02/02/23 07:18
ヘルプの日本語化にも期待。
641 :
デフォルトの名無しさん :02/02/23 15:19
Form.Close();とForm.Dispose();はなんか違いありますか? Form.Dispose();したあと再び開こうとすると例外がでるのですが。
>>641 An unhandled exception of type 'System.ObjectDisposedException' occurred in system.windows.forms.dll
Additional information: Cannot access a disposed object named "Form1".
ってメッセージっす。スマソ
643 :
デフォルトの名無しさん :02/02/23 16:34
質問っす。RichTextBoxでテキストが追加された時 スクロールバーを一番下まで下げたいのですが、 ScrollToCaret()じゃキャレットがない時スクロールしてくれないし。 なんかいい方法ないでしょうか?
644 :
デフォルトの名無しさん :02/02/23 17:52
>>641 >Cannot access a disposed object named "Form1".
このメッセージのとおり。Disposeってのは、メモリ上から破棄していいよ、
ってことを示すものだから、その後にアクセスしちゃだめ。
その後にアクセスするなら、Closeで閉じるだけ(メモリ上から破棄されない)
を使いましょう。
645 :
デフォルトの名無しさん :02/02/23 21:08
>>644 ん〜 しかしnewしてウィンドウ開いた後に例外でるから
なっとくでけんな。newする時に例外でるならわかるけど。
newってヒープにメモリ確保してインスタンス作るんだよね。
C++ のdeleteとは全然ちがうってことみたいね。
646 :
デフォルトの名無しさん :02/02/23 21:12
>>645 C#はGC使ってるから、Disposeしてもメモリから破棄されるわけじゃない。
あくまで、「破棄してもいいよ」ってマークをしてるだけ。
ウィンドウ開いた後に、ってのはよくわからないや。後で試してみるよ。
647 :
デフォルトの名無しさん :02/02/23 23:25
>>646 Disposeは逆じゃねーかな、破棄するぜヽ(*`Д´)ノゴルァ って使ってる方が宣言するようなもんでしょ。
>>645 再現しないぞ?ベータ2か?
Closeは内部でDisposeを呼んでるよ。Dispose直接呼ぶのとの違いは、
SendMessage(WM_CLOSE)してるってことくらいかなぁ。
649 :
デフォルトの名無しさん :02/02/24 11:11
>>643 RichTextBox.AppendText( string hoge );の時にスクロール一番下
まで下げたいのですが、どうもメソッド見当らないですね。
>>649 richTextBox1.Select( richTextBox1.TextLength, 0 ); でどう?
651 :
デフォルトの名無しさん :02/02/24 11:44
>>650 それすでに試してるんだけど、駄目だったよ。
C#でVSのIDEみたいなドッキングウィンドウって作れる?
∧_∧____ /(#゚ー゚) ./\ /| ̄∪∪ ̄|\/ Javaには負けないよっ |____|/ ,,,,∪∪,,, ,,
今月の日経ソフトウェアはC# vs Javaですな。
β2で、asmxからwsdlでプロキシを作ろうとすると、キャッシングされて更新されません。 wsdlオプションにも見当たらないし、ASP.NETテンポラリをクリアしてもだめでした。 IEのキャッシュをクリアしてもダメ。とほほ。 どなたか回避方法を。
(´-`).。oO(ほんとにわかって言ってるのかな、この人...MLの翻訳だけしかしてないよ...)
>>657 (´・ω・`)ショボーン
しばらくML系ネタは自粛しときます...。
(`_´).。oO(#さんがいなくなったらどうすんだよ
>>657 謝れ!)
(´-`).。oO( 煽りキャラじゃないんだけどな・・・ )
664 :
デフォルトの名無しさん :02/02/25 10:09
(´-`).。oO( 日本語の.NET情報なんて全然役に立たないよ・・・ )
mshtml.tlbをtlbimpすると山ほどエラーが出てしまう。。。
>>666 ↓ここにすでにあるから、tlbimpは必要ないですよ。GACにも登録済み。
C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll
671 :
デフォルトの名無しさん :02/02/25 18:42
>>670 エラーじゃなくて警告だから(゚ε゚)キニシナイ!!
>>671 そうでした。>>警告
警告が出てから1分くらい待ってたら出来ました。
サイズが大きくて時間がかかってただけでした。
どうもお世話になりました。。
>>672 つーか、それって自前でtlbimpしたものと中身が違うの?
>>674 違います。そもそもサイズが違いますし。
PIAは、実体のCOMのベンダーが作った、より最適化されたアセンブリです。
677 :
デフォルトの名無しさん :02/02/25 20:42
WebMethod の中で、
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("
http://www.yahoo.co.jp ");
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
2行目でタイムアウトになってしまうんだけど。なんでかな?
ちなみに、localhost で動かしていて。同一環境のWindowsアプリからだと同じコードでも
うまくHTMLが取得出来ています。
VS.NETはβ2です。
使われない変数があるとコンパイル時に出る警告を抑制したい・・・ try { boardlisttable.Rows.Add(new object[] { match.Groups[Column_Name].Value, match.Groups[Column_BoardListUrl].Value }); } catch(ConstraintException ce) //[warning]ce未使用警告が出る { // 一意制約違反時のエラー処理が必要な場合はコードを追加する。 } #やっぱ、Console.WriteLine(ce.Message);とか淹れるしかないんでしょうか?
↑ ちなみに、コンパイル時には警告をエラーとして扱うオプションを淹れてます。 このオプションは外したくないので明示的に警告をトラップしたい、ということです。
>>678 catch(ConstraintException)
{
// ...
}
じゃダメなのかしら?
# ただ単に例として出しただけならごめんなちゃい。
>>680 さんくすですっ!コレがやりたかったんです!
「ce」抜かしてもOKだとは思い至らず勉強不足でした。。。
>>681 % csc /nowarn:168 source.cs
も使えますね。VS.NETではダメみたいですが。
>>682 さんくすっ!
>VS.NETではダメみたいですが。
がっくし。
確かにプロジェクトファイルの中身を見ても「TreatWarningsAsErrors」と「WarningLevel」しかないし、
VS.NETにもコンパイルオプションを追加できるような設定項目なさそですね。
うーむ・・・ま、必要になった時にまた考えるということでw
ちなみに Goooooogleで調べたら、こんなの↓があって、<警告リスト>ってなんじゃ?という疑問も解けました。
http://www.dotnet101.com/articles/art034_CompOptions.asp#/nowarn >Example: This suppresses the warning numbers CS0108 and CS0109 during compilation.
>csc /nowarn:108,109 myWarn.cs
684 :
デフォルトの名無しさん :02/02/26 00:41
C言語で言うところの、以下のような 構造体は、C#ではどのように定義すれば いいのでしょうか? struct t1 { int e1; int e2[10]; }; Win32API呼び出すとき、受け渡し パラメータに、この手の配列を 含む構造体が多いのですが どうやってC#でそれを定義してやれば いいのかよくわかりません。 どなたかご存じですか?
685 :
デフォルトの名無しさん :02/02/26 01:44
>>684 struct t1 {
int e1;
[MarshalAs(UnmanagedType.LPArray, SizeConst=10)] int[] e2;
}
でしょうか。
>>685 ななしさん、ありがとう。私の質問の仕方が
悪く、質問の意図が分かっていただけなかった
ようですが、あなたの厚意に感謝します。
688 :
デフォルトの名無しさん :02/02/26 14:59
>>687 オレにも君の質問の意図がわからん。
685が適切の一つ回答だと思うが。
689 :
デフォルトの名無しさん :02/02/26 17:20
ildasmでMSILコード見れるけど、 これってコンパイルオプションかなんかで見れないように できますか?
>>690 ありがとう。つうことは・・・
コード非公開にしてもほとんど意味ない状態か、、今って。
>>691 シェアウェアとか作る場合,パスワードどうするんだろうね...
>>692 ハッシュ。Webサービスなんちゅう手も。
>>692 もし俺がそういう要件を抱えてたら、System.Security.Cryptography クラスの使用を検討してみたくなるな。
#「暗号の秘密とウソ」(山形浩生著)を少しずつ読んでるところ。分厚い。。。
VS.NETのエディタで #if #endif の「+」「-」での表示/非表示の選択したいーーーーーーーーーー!! (一応黒/灰色の表示色変化はするケド) -- いずれもデバッグ用ディレクティブ。 #if DISPLAYDATA //Console.WriteLineを使ってデータとかを確認するコードをコレで囲んでる #if DUMPDATA //確認したいデータをファイルに書き出すコードをコレで囲んでる -- おいら考え方間違ってるのかなぁ? データの取得・格納・取り出しとかの操作後の確認って大体「Console.WriteLine」でやってると思うんだけど、 バグ発生のたびに書いてはデバッグ後に消すとかってーのも面倒だし(←こういう性格は良くないんだろーけおd)、 でもデバッグ時にデータを洗い浚い見たいって言う需要も無いわけじゃないと思うし。。。 でもでもっ、そういうデバッグ用コードを残しておきつつ、スッキリコードを見渡した言って言う欲求も……ない? #愚痴ごめんね
696 :
デフォルトの名無しさん :02/02/27 01:28
>>695 >そういうデバッグ用コードを残しておきつつ、スッキリコードを見渡した言って言う欲求
DebugとかTraceとか使わんのか?
697 :
デフォルトの名無しさん :02/02/27 01:46
>>695 [Conditional("DEBUG")]
とか。
>>696 >DebugとかTraceとか使わんのか?
これって
--
#if DEBUG
//デバッグ用出力
#endif
とか
#if TRACE
//デバッグ出力
#endif
--
という風にやれば良いということでしょうか?
とすれば、おいらは
>#if DISPLAYDATA //Console.WriteLineを使ってデータとかを確認するコードをコレで囲んでる
>#if DUMPDATA //確認したいデータをファイルに書き出すコードをコレで囲んでる
という感じでやってるです。。。
ただ「DEBUG」と「TRACE」の違い(使い分け)が良く分からないんで、
取り敢えず「DISPLAYDATA」と「DUMPDATA」を自分で新たに定義してしまいましたが。。。
700 :
デフォルトの名無しさん :02/02/27 02:27
>>695 >#if
>#endif
>の「+」「-」での表示/非表示の選択したいーーーーーーーーーー!!
行数増えるが、
#region
#if HOGE
#endif
#endregion
>>700 あぁそうか・・・VS.NETで開発してて、WROXの本(「C# 実践プログラミング」)で勉強したつもりなのに、
#region
#endregion
忘れてる・・・鬱氏
ありがとう。行数増えるのには目をつぶって、これ使ってみますね。有難う。
702 :
デフォルトの名無しさん :02/02/27 03:24
>>699 とか。
DebugとかTraceに関して勘違いしていると思われ。
Console.Writelineじゃなくて、DebugクラスとかTraceクラス使えばって話なんだけど。
System.Diagnostics.Trace とかDebugとか見てみ。
>>702 「System.Diagnostics.Debug(Trace)」
な、なぬ????
あ、確かにある・・・で、でも、ドキョソメントが英語だ・・・
有難う・・・・後でMSDNのドキュ・サンプル読んでみるYO!!
グロツキーな今の俺には。。もう読めない(亡き
JDKスレにいる#さんって本物? なんか仕事でMS関連はやってないみたいなこと書いてるんですけど…。
そろそろ#さん信仰やめなよ。英語のMLが読めるってだけでしょ、あの人。
706 :
デフォルトの名無しさん :02/02/27 16:34
ついに内部分裂ですか(嘲笑激藁
707 :
デフォルトの名無しさん :02/02/27 16:46
結局このスレで本気で.NETに賭けてる人はいなかった、ということですな。
Σ(゚д゚lll)ガーン
思いっきり晒されてますがな。
>>704 そです。漏れの正体はMS使いじゃありません。
>>705 正解。(藁
仕事ではいっさい.NETはやってないし、今年はやる予定もなさそう。
ヤパーリコテハンは怖いねえ。(藁
しばらく封印して名無しで潜もうかな...。
#さんを叩く奴はおれが許さん!
文体でばれてしまう罠。
>>705 英語も読めないC#もよく分からない俺はどうすれば。(T_T
>>709 なるほどね。
.NET擁護合戦でもほとんどコメントしなかった理由がよく分かった。
つーか、ろくに使いこなしてもいないようなのが Java vs .NETとかやってただけじゃん。 あんなのに自分から進んで入っていくほうが馬鹿。
>>705 俺様の方が詳しいぜとでも言いたいのか?
だったらコテハンにして1年にわたってこのスレを支えてみろよ。
そしたら嫌でも信仰してやるよ。
このスレのいい所は初心者質問でも高飛車な回答されないでマターリしてたとこなんだけどね。
嫌な奴に住み着かれたもんだ。胸クソ悪い。
どんなに詳しい人がいようと、それは俺には関係のないこと。 分からないことを聞いてそれに対して丁寧に答えてくれたひとに 感謝している。それのどこがいけないんだ?>705 文句があるなら俺に言え。
∧_∧____ /(#゚ー゚) ./\ /| ̄∪∪ ̄|\/ 仕切りなおし |____|/ ,,,,∪∪,,, ,,
しぃ#たん…
ngen.exeで生成したネイティブイメージをゲットしたいんですが、どこに格納されてるんでしょう?
>>719 コマンドプロンプトかなんかで
%windir%\assembly\NativeImages1_v1.0.3705
を見てちょ。
>>720 サンキュ。見つけた。
でもこれって直接実行できないのね・・・。
>>707 さんくすっ。。。でもコレだけじゃ良く分からなかった・・・ゴメソ
で、無い頭絞って、いろいろ調べたり考えたりした結果。。。
1.DataTableの内容確認とかのデバッグ用コードは、Debugクラスを使うのがべたー
2.DebugとTraceの両クラスは 同じメンバー構成になっている(おいらの見た限り)。
で、Traceは「Release」用ビルドの時にも入るので、「〜処理を開始しました(XX時YY分)」
「〜正常終了しました(XX時YY分)」みたいな実行ログを吐く処理を書くのに使う。
3.デバッグ用コードが長くなるときは、[Conditional("DEBUG")]を付けた関数をひとつ用意して、
その中でコードを書くとべたー(関数単位ならVS.NETエディタで「+」「-」の表示選択も出来るしっ!)
4.Debug.Listeners.Add で、デバッグ用出力先を追加したりできるので、Console.WriteLine
よりは、リスティーナ(*1)にコンソールを追加するのがもあべたー
。。。ってな感じの結論に達しましたー
こんな感じでファイナルアンサー?
(*1)
http://pc.2ch.net/test/read.cgi/tech/1005578173/709-711 参照っ
(#´-`).。oO(気分転換したらまたキテネ #さん・・・)
C#に慣れてくると、かっ飛ぶように素早くソースが書けるという現象を経験した。 C#の言語仕様は、Javaなどに比べると大きいが、それに慣れ親しんでしまうと、 より少ない手間数でソースを書けるようになってくる。最初のハードルがやや高 いかもしれないが、それを越えれば得るものも大きい言語ではないだろうか。 それではまたどこかで会おう。Let's write C# programs!
会いたくねー。
連載終わってしまったか・・・。
何で正式版間近でこんなに盛り下がってるんだ(w
ageるとあらされるから。
foreachマンセー。
730 :
デフォルトの名無しさん :02/03/01 13:15
>>686 こうじゃないのかな?
struct t1
{
int e1;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType=UnmanagedType.I4, SizeConst=10)] int[] e2;
}
すまん、あげてしまった・・・。
はやく日本語版だして〜
>>732 やっぱり3/8の.NET Dayに出るんじゃない?
↑はダウソのことね
ごめん、#さんでオナニーしてしまった。 すみません、ごめんなさい。
あの。。TextBox内でキャレットの位置はどうやって調べたらいいでしょうか?
>>664 自己レス。むりやりでけた。
RichTextBox.AppendText();したあとTextChangedイベントで
RichTextBox.ScrollToCaret();
RichTextBox.Focus();
スクロールするよ。
741 :
デフォルトの名無しさん :02/03/02 19:25
winアプリでそのアプリ自体をネットワーク経由でアップデート するやり方を教えて。 c#でのやり方があればもちろんそれがいいんだけど なんかお勉強するサイと知っていればそれでもいいから教えて いただけないでしょうか。
>>741 ・アプリ本体のロード
・アップデート
を実装した起動用アプリを作る。
本体の実行はアセンブリをロードすればいい。
アップデートもアセンブリ取ってきて置き換えればいい。
取ってくる方法はHttpWebRequest/Responseでラクラク。
書いてみて思ったが、死ぬほど簡単だな。
(´-`).。oO( この内容でこの値段か・・・ )
高い?安い?
(´-`).。oO( 高すぎ・・・ )
751 :
デフォルトの名無しさん :02/03/02 22:36
>>743 > 書いてみて思ったが、死ぬほど簡単だな。
どんなのか見てみたい公開きぼんぬ
752 :
デフォルトの名無しさん :02/03/02 22:41
(´-`).。oO(だめだこりゃ)
17才の女性クラッカーたん(;´Д`)ハァハァ
「.NET をターゲットにしたウイルスは、『Sharpei』ウイルスで2件目だが、C#で記述したものは初めてのことだ。」 C#で記述したぁ?ありえん。 「次に Microsoft の .NET フレームワークがインストールされているかどうかを確認する。」 インストールされてなかったらC#で記述したアプリは動作せんだろうがゴルァ
C#/IL「に」感染するウイルス以外はほとんど意味ないよな。 「C#でウイルス作りました」ていうのだとJavaとの差別化くらいしか…。
762 :
デフォルトの名無しさん :02/03/04 02:37
質問です。 Hoge hoge = new Hoge(); した後、オブジェクトが不要になったので hoge = null;としてもデストラクタを呼んでくれません。 ここで確実にデストラクタを呼びたいのですが、どうしたらよいでしょう。 たぶん、呼ばれない理由はこのクラスのメソッドをイベントハンドラ として追加してるせいなんだけど、 デストラクタでイベントハンドラを削除するつもりだったのよね・・・鬱。
763 :
デフォルトの名無しさん :02/03/04 02:48
>>754 > (´-`).。oO(だめだこりゃ)
わからないから教えてほしいといっているのになんだその態度は!!
(´-`).。oO(だめだこりゃ)
765 :
デフォルトの名無しさん :02/03/04 07:51
>>762 そら、ガーベッジコレクタが起動しなきゃだめでしょ。
つーわけで、Dispose()で処理しましょ。
>>762 C#はC++ではありません。郷に入っては郷に従え。
違う言語の慣習を下手に持ち込むのは愚か者のすることです。
>>765 ありがとう。結局イベント削除するメソッド呼ぶように
してたけんどね。うーん。Dispose()ってIDisposableとか継承して実装すると
勘違いしてたよ。適当に自分でパブリックなメソッドつくるのね。
>>768 > Dispose()ってIDisposableとか継承して実装すると
その通りかと(藁
using ステートメントを使用したら,ブロックを抜けるときに Dispose() が呼び出されるはず。
>>768-769 すいません、using "Statement" は知りませんでした。逝ってきます。
771 :
デフォルトの名無しさん :02/03/04 18:56
>>770 まぁ、ベータ2からの新機能だし。そんなのがないVBはカナスィ。
772 :
デフォルトの名無しさん :02/03/05 01:16
>>767 >744
>
>>741 >
ttp://www.sellsbrothers.com/wahoo/ なにここは?
と聞いたのに見てのとおりとか
だめだこりゃとかしか答えてくれませんです。
>
>>741 > ・アプリ本体のロード
> ・アップデート
> を実装した起動用アプリを作る。
> 本体の実行はアセンブリをロードすればいい。
> アップデートもアセンブリ取ってきて置き換えればいい。
> 取ってくる方法はHttpWebRequest/Responseでラクラク。
>
> 書いてみて思ったが、死ぬほど簡単だな
これに対してもサンプルを見せてください。
といっているのに回答なしですひ。。
C#に関しての質問できるところで敷居の低いところ
といえばここだと思っていたのにショックです。
初心者にもっと優しくしてください。
勉強不足なのは重々承知しているのです。
そのための相談室だろうが!!
上級者は上級者用のスレを立てればよいのではないですか?
そちらには行きませんし!!!!!!!!!!!
>>772 > そのための相談室だろうが!!
なかなかのツワモノですね。
>772 母をさがして三千里逝け
簡単だと書いた本人だが、
>これに対してもサンプルを見せてください。
って
>どんなのか見てみたい公開きぼんぬ
これか?まず日本語勉強しようぜ。次英語な。
・アプリ本体のロード
Assembly.LoadFrom
・アップデート
FileStream.Write
・取ってくる方法はHttpWebRequest/Responseでラクラク。
SDK参照。
http://www.studyinghttp.net/も ○
わかんなきゃ初心者らしく普通にアプリつくってな。
オンラインアップデートできなくても誰も困らんから。
キタ━━━━━━(゚∀゚)━━━━━━!!
744==767です。こんばんは。 で、そのページ見たんですか?見て、説明を読めばそこがおっしゃられている HTTP経由でのアセンブリダウンロードのサンプル(しかもソースつき)ってことが わかると思いますが、見たんですか?ねぇ見たの?ねぇ、ねぇ。 英語が読めねーなんてことは知らねーよ。勉強不足だとか自慢してーなら それ相応のものの頼みかたってもんがあるだろうが。2chだと思ってなめてんじゃねーぞ。 むなくそわりーなこの野郎。
みなさまスレを汚して申し訳ありません。
>>775 > これか?まず日本語勉強しようぜ。次英語な。
はい、そうします。
申し訳ありません。
> わかんなきゃ初心者らしく普通にアプリつくってな。
> オンラインアップデートできなくても誰も困らんから。
もう一度勉強しなおしてきます。
ありがとうございました。
ただ、これからのC#のアプリはアップデートとxmlでの設定保存は
必須だと思い質問したしだいでござます。
皆様は、C#(.Net)での標準的なアプリケーションでこれは必須機能だと
思われるのは何でしょうか?
教えてください。
(´-`).。oO(このスレもうだめぽ・・・)
>>777 > むなくそわりーなこの野郎。
ほんとに申し訳ありません。
まず、第一に英語が読めませんでした。
第2にソースを落とすことができたのですが、
HP右にある画像をクリックした時に何度も例外エラーが
立ち上がってしまいわけがわからなくなってしまいました。
そのことを書いて質問したら良かったのですが2CHということに甘えて
しまいました。
勉強しなおしてきますのでできましたらまた教えていただきたく思います。
メニューとツールバーとステータスバー?
>HP右にある画像をクリックした時に何度も例外エラーが >立ち上がってしまいわけがわからなくなってしまいました。 RTM入れてる?
>>782 > RTM入れてる?
いえ、β2です。
β2だとだめなのですか?
うえーん、#さん早く帰ってきてよ〜  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ( ´Д⊂ヽ ⊂ ノ 人 Y し (_) ミンナコワイヨ ドウシタノ
>>785 > だめです。残念ながら。
そうですか。。残念です。。
製品版を購入したときにでもチャレンジします。
それまでは、このスレを見つつ勉強していきます。
ありがとうございました。
>784 #さんはまだいるのでは?
>>788 最近JAVA関連スレでしか見かけない・・・
>>778 特筆するのはXMLだけ。
あとは今までと一緒。
オンライン更新は少しかじってみりゃやり方はわかるようになる。
あと「〜したいんだけど」ていうふうに聞くと大抵拒否されるが、
「〜だとうまく行かない」って訊けば答えは返ってくる。
2chは言葉がきつめだが、特に技術系はそういうところは他のBBSの一緒。
>>790 > 特筆するのはXMLだけ。
> あとは今までと一緒。
そうなのですか。
いままでVC++を途中からはじめたので使いこなせず
挫折しへなちょこあぷりしか作ったことがないので、
C#だと今からついていけば何とかなるのではと、
そして何か新しいことができるのでは、という期待があったのですが、。。
> オンライン更新は少しかじってみりゃやり方はわかるようになる。
> あと「〜したいんだけど」ていうふうに聞くと大抵拒否されるが、
> 「〜だとうまく行かない」って訊けば答えは返ってくる。
>
> 2chは言葉がきつめだが、特に技術系はそういうところは他のBBSの一緒。
ご教授ありがとうございます。
>>769 なるほど。usingステートメントは#さんが前に言及してたね。そういえば。
usingはなんか、読みにくくなるから使う気がしなかったけど、Dispose()実装
したクラス使う時には便利みたいね。
IDisposableの件は漏れの勘違いの勘違い(ワラ 申し訳ない。
#いないと、なんだか不安なのは漏れだけ?
某MLの翻訳でもすごく助かったのに。
あのMLは一日100通以上くるアクティブさだから、読みきれんしな。
795 :
デフォルトの名無しさん :02/03/05 10:00
System.Windows.Forms.ImageListについて質問っす。 あるBitmap画像についてImageList.TransparentColor を設定してある色の部分を透過させたいのでが。 フォーム上にImageListコントロールを作成して、 プロパティのImages/collectionからAddボタンを押し BMP画像を追加しイメージリストを予め作成しておき、 カラーピッカーソフトで取得した値を設定したところ 透過しません[1] そこで、イメージリストに追加した画像から直接色を得て 設定したのですがうまくいきません。[2] しかし、ImageListをコード上でBMPファイルから直接読み込んで 作成した場合([3])、[1]のように設定するとうまく透過してくれます。 ImageListへの画像の登録方法が違うだけなのに、、、(泣 [1] ImageList.TransparentColor = Color.FromArgb( 189 ,189 ,189 ) [2] Bitmap myBitmap = new Bitmap(imageList1.Images[0]); Color pixelColor = myBitmap.GetPixel( 10 , 10 ); this.listView.SmallImageList.TransparentColor = pixelColor; [3] imageList.Images.Add( Bitmap.FromFile(fileList[i].FullName) );
>>795 とりあえず中間報告。(w
imageList.Images.AddでやるとOKだが、imageList.ImageStream = (ImageStreamer)...で
やるとだめみたい。InitializeComponentの中を見ると、上記の
コードがあるので、それをImages.Addに変えるってのがとりあえずの回避策。
これだとGUIのデザイナは使えないってことになるけど。
なんでStream使うとダメなのかは、追って報告する!
>>796 わざわざ調査していただいて感謝感激です。
>それをImages.Addに変えるってのがとりあえずの回避策
早速、InitializeComponentの中で該当箇所のコードを
探してみるとそれらしいのがありましたので([1])、
Images.Addに変えてみようとしたのですが([2])
キャストの問題なのかうまくいきません。
厨房で申し訳ない。どうしたらいいでしょう?
[1]
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
[2]
this.imageList1.Images.Add((Image)resources.GetObject("imageList1.ImageStream"));
>>797 あ、いやいや、そこはFromFileでお願いします。スマソ。
>>795-798 FERC.NETエージェント1号が調べた結果、以下のことがわかった。
1. Visual Studio .NETのWinFormデザイナでImageListを作り、
そこにプロパティウィンドウから画像ファイルを追加すると、
その画像の内容は、System.Windows.Forms.ImageListStreamerの
形式でシリアライズされ、フォームに付随するresxファイルに
格納される。
2. 実行時には、このresxファイルからできたmanaged resourceから、
データを読み出して(GetObject)、ImageListStreamに格納すると、
ImageListがImageとして認識する。実行時に読み込みもとの画像ファイルが
読まれるわけではない。
3. ImageList.TransparentColorの値は、ストリームを*作成するとき*に
反映される。実行時ではない。
4. したがって、デザイナ上では、まずTransparentColorを設定し、それから
画像データを読み込めばよいのだ!
5. ちなみに、TransparentColorを変化させてから同じ画像ファイルを
読み込んで、resxに書き込まれる文字列(Base64)を比較してみれば、
resxは*透明化後*の画像を持っていることがわかるだろう。
以上です、チーフ。
>>799 でかした!エージェント1号君(笑
詳細な報告お疲れさまです。激しく感謝。
なるほど。TransparentColorを設定後イメージリストに
画像を追加していくというわけですね。
いったん設定し忘れて作ってしまったイメージリスト
は作り直しってことですね。
途方に暮れてたところ、ほんと助かりました。
大変お世話になりました。有難うございました。
マイクロソフトのサポートページがaspxに。
802 :
デフォルトの名無しさん :02/03/05 20:42
803 :
名無しさん :02/03/06 00:19
WIN32APIを呼び出す場合いちいち使用するフラグを public const int MB_OK = 0x00 というようにしないといけないんでしょうか。 めんどくさいんですが。
804 :
デフォルトの名無しさん :02/03/06 00:53
>>803 うん。それしかない。面倒だったら、API用のコンポーネントを作っておいて、
それに追加していくとかしたら?
使いまわせば、多少楽になるでしょ。
ファイルに関連付けられた実行ファイルからアイコンを取得 すためにAPIの HICON ExtractAssociatedIcon( HINSTANCE hInst, // application instance handle LPTSTR lpIconPath, // file name LPWORD lpiIcon // icon index ); を使おうと思い using System.Runtime.InteropServices; [DllImport("shell32.dll")] public static extern long ExtractAssociateIcon(long hInst, string lpIconPath , long lpiIcon); のように宣言したんですが、long hInstに何を渡したら いいのかわかりません。 次にサンプルコードサイトをみるとHINSTANCE hInstについて 宣言時に省略してるコードがあったので参考に省略して使用してみると Unable to find an entry point named ExtractAssociateIcon in DLL shell32.dll と例外を吐きます。どこがまずいのでしょう?
>>805 FERC.NETエージェント1号が調べた結果、以下のコードで実行できることがわかった。
using System.Windows.Forms;
public class IconForm : Form {
[System.Runtime.InteropServices.DllImport("shell32.dll")]
public static extern System.IntPtr ExtractAssociatedIcon(System.IntPtr hInst, string lpIconPath , ref int lpiIcon);
static void Main() { Application.Run(new IconForm()); }
PictureBox pbox; TextBox tbox; Button btn;
IconForm() {
pbox = new PictureBox();
pbox.Size = new System.Drawing.Size(32, 32);
Controls.Add(pbox);
tbox = new TextBox();
tbox.Left = pbox.Width;
Controls.Add(tbox);
btn = new Button();
btn.Left = pbox.Width + tbox.Width;
btn.Click += new System.EventHandler(BtnClick);
Controls.Add(btn);
}
public void BtnClick(object sender, System.EventArgs e) {
int i = 0;
System.IntPtr hInst = System.Diagnostics.Process.GetCurrentProcess().Handle;
System.IntPtr hIcon = ExtractAssociatedIcon(hInst, tbox.Text, ref i);
pbox.Image = System.Drawing.Bitmap.FromHicon(hIcon);
}
}
以上です、チーフ。
>>806 エージェント1号さんすごい。
すばらしい、、、これは参考になりますね。
ありがとうございました。
808 :
デフォルトの名無しさん :02/03/06 19:33
System.Windows.Forms.Formでメッセージボックスのように、マウスによるリサイズを禁止したい場合はどのようにしたらよいのでしょうか? Formのコンストラクタで this.MaximumSize = this.Size; this.MinimumSize = tihs.Size; しても、リサイズこそ禁止できるけど、マウスカーソルの形は変わってしまうし。。
>>808 FormBorderStyle プロパティを弄りませう。
FixedSingle がお望みのものかな...
810 :
デフォルトの名無しさん :02/03/06 19:56
> 809 おー、これです! ありがとうございます。 /** それにしても、FormBorderStyleとは。ウィンドウスタイル関連かと思っていました。 */
typedef BOOL (WINAPI *LAUNCHCPL) (HWND); HMODULE hInetcpl; HWND hParent; LAUNCHCPL cpl; hInetcpl = LoadLibrary("inetcpl.cpl"); if (hInetcpl) { cpl = (LAUNCHCPL)GetProcAddress(hInetcpl, "LaunchInternetControlPanel"); if(cpl) { cpl(hParent); } FreeLibrary(hInetcpl); } C#ではどう書けばいいのかな?
FERC.NETエージェント1号が調べた結果、以下のコードで実行できることがわかった。 using System.Windows.Forms; public class ParentForm : Form { [System.Runtime.InteropServices.DllImport("inetcpl.cpl")] private static extern bool LaunchInternetControlPanel(System.IntPtr hWnd); static void Main() { Application.Run(new ParentForm()); } Button btn; ParentForm() { btn = new Button(); btn.Click += new System.EventHandler(BtnClick); Controls.Add(btn); } void BtnClick(object sender, System.EventArgs e) { LaunchInternetControlPanel(Handle); } } 一瞬、問題の動的リンクが達成されていないように見えてしまうが、実際には 裏でLoadLibrary/GetProcAddressが行われるので、これでよいのである! 以上です、チーフ。
>>812 んー、1回目は開くんだけどキャンセルで閉じると2回目死んじゃいます。
>>811 むむむ?わが社のミッションルームでは再現しないです。
ミッションルームの構成はWindows XP EN + VS.NET RTM ENなんですが...。
例外が出ますか?
「オブジェクトのインスタンスが必要とされる場所で、値'null'が見つかりました。」 という例外が出てます。 VS.NETβ2が悪いのかも。
>>815 どこで出ていますか?LaunchInternetControlPanelの呼び出しのところでしょうか?
>LaunchInternetControlPanel(Handle);
を
>LaunchInternetControlPanel(System.IntPtr.Zero);
にしたらどうでしょうか?
>>816 LaunchInternetControlPanel の中で落ちてるようです。
> >LaunchInternetControlPanel(System.IntPtr.Zero);
> にしたらどうでしょうか?
でも同じでした。
やっぱりβ2が原因なのかな?
>>817 うちも問題ないよ。Windows XP JP + VS.NET RTM ENです。
listViewにドロップしたファイルのフルパスを得たいのですが DragDropイベントハンドラで string path = e.Data.GetData(DataFormats.FileDrop).ToString(); みたいな感じで色々と試しているのですが、どうにもわかりません。 よろしくお願いします。
>>814 >>818 ほぼ確定ですな。RTM版入手したら確認してみます。
ありがとうございました。
>>819 FERC.NETエージェント1号が調べた結果、以下のコードで取得できることがわかった。
string[] strA = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach(string path in strA)
MessageBox.Show(path);
複数のファイルをまとめてつかんでドロップされたときのために、stringの
配列が返るようになっているのだ!
以上です、チーフ。
>>821 ぬ。配列にしないとだめなのか。ありがと〜。
私もDrag&Dropで調べてるのですが アプリからコントロールをデスクトップなどのドロップしたとき ドロップしたフォルダのフルパスを得たいのですが、 help探しても見当たりません。API使うしかないのかな。
System.Windows.Forms.ListViewでSubItemsだけ フォントの色と背景色を変えたいと思い ListViewItem item = new ListViewItem("test") item.SubItems.Add( "SubItemTest" , Color.White , Color.Black ,this.listView1.Font); this.listView1.Items.Add( item ); としてもまったく色が変わらんです。 で this.listView1.Items[0].SubItems[0].BackColor = Color.Black; してみると、アイテム全部の背景色が黒になります。 わけわからんです。ヘルプみても何にも書いてないし。
デザイン時のプロパティウインドウで、 PictureBoxのImageやTabControlのTabPagesのように、 ダイアログを開いて、その結果をコードに反映させるには?
(´-`).。oO(急ににぎやかになったのはなぜ?)
>>824 FERC.NETエージェント1号が調べた結果、以下のコードで反映できることがわかった。
this.listView1.Items[0].UseItemStyleForSubItems = false;
以上です、チーフ。
>>827 なるほど。しかし、なんでデフォがtrueなんだろうね。
いやだいやだ。わけわからん仕様が多すぎ。
FERC.NETエージェント1号様。ありがとう。
結構悩んだプログラムなんですが、 さっぱりなんで、どなたかアドバイスをよろしくお願いします。 「-128〜127までのランダムな値を順に配列(大きさは256)に格納する方法で、 同じ数字が出ないようにする」 という感じです。 「同じ数字が出ないようにする」というところが曲者なんですよ。 かなりな時間がかかりそうなプログラム「ログを全部検索して 同じ値が無いかどうかを確認してから格納する」はできたんですが、 後にいくにつれて遅くなりそうだったんで・・ よろしくお願いします。
また間違ったみたいです・・ また逝ってきます〜
>830 解決したのかな?してないのなら、やねうらお大先生のところに行くといいよ。
byte[] buf = new byte[256]; for(int i=0; i<256; ++i) { buf[i] = (byte)i; } for(int i=0; i<256; ++i) { int k=Random.Next(256); byte t = buf[i]; buf[i] = buf[k]; buf[k] = t; } bufにランダムな重複のない[0,255]の値が入る。 -128じゃないけど、そこまでは知らん。
833 :
デフォルトの名無しさん :02/03/07 18:25
>832 あなたもやねうらお大先生のところに行くといいよ。
>>833 google で「site:www.sun-inet.or.jp 乱数」でやったがいまいちヒットしない。
おせーて。
835 :
デフォルトの名無しさん :02/03/07 18:57
>>835 中級とか上級とか、、ドキュンぽいな。。
837 :
デフォルトの名無しさん :02/03/07 19:12
シャッフルよりランダム抽出の方が良い。
>>837 漏れはやねさんのコピったわけでもなんでもないぞ。
昔からああしてるからああいうコードを書いたんだが。
勘違いしてないか?
840 :
デフォルトの名無しさん :02/03/07 20:13
>832 いやあのコードだと分布に偏りが出るから、RSPにあるように、Swap(Data[i],Data[i+rand(N-i)]) していくのが正しいってことですよーだ。
あれを真似して書くと for(int i=0;i<N;i++) Swap(v[i],v[Rand(N)]); なんだが、本当にこれで偏るのか? 計算したが偏らんぞ。
(´-`).。oO( 明日横浜で会いましょう・・・ )
.NETのドキュメントって自動でアップグレードしてくれるんだね。 おどろいたよ。
844 :
デフォルトの名無しさん :02/03/07 23:47
>>843 そんな機能あるんだ? 知らなかった。ちなみに、どんなアップグレードがあったの?
>>844 起動したらなんか更新のあったドキュメントを落としてます
みたいなメッセージが出てただけなんでよくわかりません。すまそ。
ところでemacsで作業してるひとに聞きたいですが、
お勧めのC#モードはありますか?
846 :
デフォルトの名無しさん :02/03/08 00:12
851 :
デフォルトの名無しさん :02/03/08 01:08
#さん is back! age.
852 :
デフォルトの名無しさん :02/03/08 01:31
(´-`).。oO( 明日は行くのはヤメよう。 週末だし会社にはバレないだろうし・・・ )
>>852 .NET Dayのこと?だったらチケットくれ。
854 :
デフォルトの名無しさん :02/03/08 01:55
チケット無くても、画面の印刷できなかったて言えば大丈夫だよ。 もしくは他人のコピーすればOK。 Tech.EDとかとは違って入場者の管理してないから、 まったく問題ない。
えーん、調子に乗ってVS.NET β2環境に NUnit 1.11淹れたら、NUnitが System.IO.FileNotFoundException歯痛… NUnit 1.10ぢゃ問題なかったのに〜 またVS.NETアンインスコ→再度インスコ…で直るかなぁ…もうだめぽ
だめぽ…VS.NETセットアップが突然死する… WinXPから淹れなおしだっ。
RichTextBox,TextBoxでAppendText()したあと
スクロールしない問題で
>>740 みたいにやったけど
同じフォーム内の別のTextBoxでIMEで日本語を変換中に勝手にフォーカス
移すと変換が確定しちゃう。IM使わない英語圏なら問題
ないんだろうけど。チャットソフトやログを表示するソフト
で入力作業を行っている時に、スクロールしないと
いけないときなんか、どうしようもないね。
IMの操作すればいいんだろうか。使えないねぇ。
>>857 とりあえずAPIのSendMessage使うことにした。
private const int EM_LINESCROLL = 0xB6
[System.Runtime.InteropServices.DllImport("User32.dll")]
public static extern bool SendMessage(System.IntPtr hWnd ,int wMsg , int wParam ,long IParam );
で
//縦に一行スクロール
bool test = SendMessage( this.richTextBox1.Handle ,EM_LINESCROLL, 0 , 1 );
とりあえずね、、ワードラップする時とかどうするか考えないと、、
(´-`).。oO( やっぱり今日は人いないね・・・ )
860 :
デフォルトの名無しさん :02/03/08 19:41
(´-`).。oO(今日はつまらなかった。 お土産もイマイチだし・・・・・・)
(´-`).。oO(無料イベントだもん。仕方ないよ。)
(´-`).。oO(サンプルCD、どんなの入ってたのかな?)
863 :
デフォルトの名無しさん :02/03/09 01:43
(´-`).。oO(サンプルCD、桜木町の居酒屋に忘れてきちゃった・・・)
>>857 あれ?フォーカス外れても普通は確定しないはずだよね。
VS.NET ENだけかな?JPはどうなんだろ。
サンプル欲スぃ。。。 どなたかUPできませんか?
これから新参者も増えてくるし、そろそろ初心者用と中・上級者用にスレ分けが必要?
868 :
デフォルトの名無しさん :02/03/09 13:00
>>835 の標準C# .NETプログラミング1,2と
>>847 は.NET Day 2002 で先行販売してましたね。
ちなみに私は隅っこのほうにあったASCIIブースの
「ASP.NETプログラマのためのXMLテクニック」
って本を買ってしまったです。これも先行販売でした......。
ただこの本はASP.NETやC#については前提知識となっているのでご注意を。
あと価格が3800円(会場価格は3500円でしたが)なのは少し高いかも。
869 :
デフォルトの名無しさん :02/03/09 13:53
C#に実装されているクラスの一覧が見たいんですけど Helpのどこに書いてあるのかわかりません おしえてください リファレンスとかみても 肝心のクラス名やメソッドが書いてないので 自動補完で名前を予想して入力しないといけない
>>869 初代スレ 956-959に答えがあるよ〜
871 :
デフォルトの名無しさん :02/03/09 15:13
あ、ありがとうございますすいません
誰か NUnit 1.10 のインストーラ版恵んで頂けないでしょか? SauceForgeから「1.10」だと思って落としたのが実は 1.11だと知ってショク受けてます…
sn -k NUnit.keyやればよかったのかー。
ということで
>>872 は自力解決しました。。。
失礼いたしましたっ。
874 :
デフォルトの名無しさん :02/03/11 11:53
(´-`).。oO( 嵐の前の静けさ・・・ )
>>876 いや、間違い。
9月発売予定まで載ってる。
PetzoldもRichterも出てない!10月まで出ないってことか...
>>878 ん?Petzoldは載ってるよ。6月上旬予定。
>>858 及び関連レス
>>650 さんの指摘のコードでスクロールするよ。
しかしTextBox.HideSelectionプロパティをfalseにセットしないと、
>>650 のコードを記述したとしてもスクロールしないのね。
デフォルト値がtrueであるので
必ずfalseにセットしないといけないよん。
主にWinアプリを作成します。 そんな私にお勧めのC#本はないでしょうか? 標準C# .NETプログラミング2は、なんか人気ないのですか? プログラミング Microsoft Windows with C#は、結構人気みたいですが 私のような用途にも向いていますか?
Petzoldは1400ページとかあるけど、読む気合があるならいいんじゃない。 なんつってもPetzoldが書いてるから。
本といえば、Oreilly Japanは訳本出版する気はないのかなぁ。英語本は 良さそうなのがたくさんあるのに、もったいないね。
887 :
デフォルトの名無しさん :02/03/13 01:22
>>885 > Petzoldは1400ページとかあるけど、読む気合があるならいいんじゃない。
> なんつってもPetzoldが書いてるから。
Petzoldって人は、なんで人気あるのでしょうか。
Win32APIの教科書を書いたからでしょ
WindowsにおけるK&Rみたいなもんだ。Windowsプログラミングはみんな Petzold本で勉強した。MFCとか出てくる前な。
890 :
デフォルトの名無しさん :02/03/13 10:46
eventの存在意義って、イベントアクセッサを定義できる点だけ? どうしても、(イベントアクセッサを必要としないとき)delegate型をフィールドを持つこととの違いが分からないのですが・・。 delegate void CallbackFunc(int ratio); class MainClass { event CallbackFunc event_callback; CallbackFunc delegate_callback; }
892 :
デフォルトの名無しさん :02/03/13 11:44
> 891 前スレッドはHTML化待ちで読むことができない(T-T)
>>890 FERC.NETエージェント1号が調べた結果、以下のことがわかった。
C#においてevent宣言を行うと、メタデータにEventDefが設定される。この結果いいことが2つある。
1つは、EventDefはただのフィールドとは違うメタデータのカテゴリであり、
(現在は特に定義されていないものの)将来的にはEventDef固有のメタデータ属性を
つけたりすることが可能となる。
2つ目は、メタデータで明示的にEventDefを宣言することで、ツールサポートが容易になる。たとえば、
・publicなeventを持つクラスをC#でつくりアセンブリにする。
・次に、VS.NETを(持っていれば)使って、そのアセンブリをVB.NETのプロジェクトから参照する。
・VB.NETでWithEventsステートメントつきでクラス型の変数を宣言する。
・VS.NETのソースエディタのエクスプローラバーの左側のリストから変数を選択し、
右側のリストを開くと、event宣言されている「イベント」だけが表示される。
それを選択すると、イベントハンドラのスケルトンが自動挿入される。
このように、メタデータで明示的にそれが単なる変数ではなく、イベントを表すものであることを
宣言することには、それなりの効果があるのだ!
以上です、チーフ。
894 :
デフォルトの名無しさん :02/03/13 11:47
.NET Day 2002でもらったサンプルCDの中で、 > Visual Inheritance ウィザード(Visual Inheritance Wizard) > レベル: 初級 > 開発言語: C# がコンパイルできず、エラーとなるんです。 > error CS0518: 定義済みの型 'System.Byte' は定義、またはインポートされていません。 コンパイルできた人います?どこを修正したらいいんでしょう? (VS.NET β2)
RTMでしか動かないと思われ。 Compiler Error CS0518 The predefined type 'type' is not defined or imported One or more files needed by the compiler were not found. Reinstall the .NET Framework common language runtime. だってさ。
896 :
デフォルトの名無しさん :02/03/13 12:01
>> 893 なるほどー、そんな効能があるんですね! 一生懸命、「C#標準リファレンス」を読みましたが、そんな情報を見つけることができず悩んでおりましたが、一気に解消しました。ありがとうございました。 (VS.NETを持っていないので、3月22日以降にでも試してみます)
897 :
デフォルトの名無しさん :02/03/13 13:59
> 895 そうっすかー。残念。RTMってMSDN会員onlyですよね? 発売まで待つっきゃないかな。 (しかし、なんでSystem.Byteがないって言うんだろう。。)
>>897 Beta2で実行できたぜ?お宅の環境の問題じゃないか?
899 :
デフォルトの名無しさん :02/03/13 15:00
> 898 うぁ、CDからコピーしなおしたら出来た。お騒がせしました。ごめんなさい。
900 :
デフォルトの名無しさん :02/03/13 15:03
> 899 このサンプルって、 // frmWiz2.cs frmWiz1 Wiz1 = new frmWiz1(); Wiz1.Show(); this.Hide(); なことになっていて、NextとBackを繰り返すとウィンドウがクローズされないような気がするのですが、これでOKなの?
as 使いすぎるとバグチェックしづらくなるな。括弧減るから好きなんだけど。
900ですな。
プログラミングの質問が最近少ないね。 日本語版SDKが出るまでみんな待ちなのかな?
906 :
デフォルトの名無しさん :02/03/14 20:24
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 日本語版SDK RTMまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | |/ #3月8日に出るって思ってたのに〜 22日まで待つしかないのか?
>>906 漏れは英語版から一ヵ月後の今日だと思ってた。
8日、22日とくれば、その中間は明日15日。
909 :
デフォルトの名無しさん :02/03/15 18:15
System.Windows.Forms.TreeViewで、指定したTreeNodeを選択状態にするにはどうしたらよいのでしょうか?
910 :
デフォルトの名無しさん :02/03/15 18:54
>>909 TreeView.SelectedNode プロパティに、対象となるノードを代入しる。
川俣先生、今度はVB.NETですか(;´Д`)
913 :
デフォルトの名無しさん :02/03/16 16:53
System.Windows.Forms.ListView内の ドラッグアンドドロップについて質問です。 ListView内のItemをドラッグし、同じListView内にそのItemをドロップした時に、 ドロップされたItem.Textを取得したいと思っているのですが、 ListView.DragDropイベントハンドラで string[] name = (string[])e.Data.GetData("System.Windows.Forms.ListViewItem"); など色々試してみたのですが、どうしても、nullしか返ってきません。 どうしたらドロップしたItem.Textを取得できるのでしょうか。
>>913 FERC.NETエージェント1号が調べた結果、以下のことがわかった。
わが社のミッションルームでは、次のコードで取得できた。
private void listView1_MouseDown(object sender, MouseEventArgs e) {
listView1.DoDragDrop(listView1.Items[0], DragDropEffects.All);
}
private void listView1_DragEnter(object sender, DragEventArgs e) {
e.Effect = DragDropEffects.Copy;
}
private void listView1_DragDrop(object sender, DragEventArgs e) {
ListViewItem o = e.Data.GetData("System.Windows.Forms.ListViewItem") as ListViewItem;
o.Text = "hogehoge";
listView1.Items.Add(o);
}
ちなみに、シリアライズ可能なオブジェクトであれば、どんなものでも
DoDragDropでドラッグできるのだ!
以上です、チーフ。
915 :
デフォルトの名無しさん :02/03/16 23:12
>>914 ありがとうございます。ListViewItemでキャストすればよかったのですね。
これを参考に、今度は複数選択したItemをD&Dしようと試みてるのですが、
[1]のようにしてみたりしたのですが、nullが返って来てうまくいきません。
代替手段として、DragDropイベントハンドラで、選択されているItemを取得する
ようにしてるのですが、これだと、ListViewのインスタンス間のD&Dでは問題があります。
厨で申し訳ないです。よろしくお願いします。
[1]
//ListView.ItemDragイベントハンドラ
private void listView1_ItemDrag(object sender, DragEventArgs e){
ListViewItem [] listViewItem1 = new ListViewItem[listView1.SelectedItems.Count];
for( int i = 0; i < listView1.SelectedItems.Count ; i++ ){
listViewItem1[i] = listView1.SelectedItems[i];
}
listView1.DoDragDrop(listViewItem1 , DragDropEffects.All);
}
//ListView.DragDropイベントハンドラ
private void listView1_DragDrop(object sender, DragEventArgs e){
ListViewItem[] o = (ListViewItem[])e.Data.GetData("System.Windows.Forms.ListViewItem");
foreach( ListViewItem item in o ){
System.Diagnostics.Debug.WriteLine( item.Text + " ドロップされたアイテム");
}
>>915 > ListViewItem[] o = (ListViewItem[])e.Data.GetData("System.Windows.Forms.ListViewItem");
これを
ListViewItem[] o = (ListViewItem[])e.Data.GetData("System.Windows.Forms.ListViewItem[]");
に変えたらうまくいったよん。
配列を渡したんだから,get するときも配列と言うことを指定しないとだめみたい。
>>916 完璧です。うまくいきました。
ありがとうございました。
918 :
デフォルトの名無しさん :02/03/17 23:02
.Net FrameWork SDKをダウンロードしてC#のサンプルをいくつか実行してみたんですけど、 これって必ずコマンドプロンプトウィンドウが開くんですか? うーん…。
>>918 makefile書き直してターゲットをwinexeに指定できないかな?
自分が試してないけど。。。
>>919 QuickStartならmaster.makで指定できるよ
蛇足
コマンドラインならこんな感じで指定
>csc /t:winexe hello.cs
メイクファイルならこういう風に
#makefile
ALL : Hello.exe
Hello.exe : hello.cs hoge.cs
csc winexe System.dll System.Windows.Forms.dll System.Drawing.dll $**
>>920 知らんかったです。。(苦)
922 :
デフォルトの名無しさん :02/03/18 05:57
OS再インストールしてSDKをDLしようとしたら出来ないなんて・・・・ ぐえーん!
>> 925 ほんとだね。でも、DMで届いたMSのVS.NETのパンフレット(2002年2月)にはHOMEも OKになってる。さて、真相は?
>>925-926 英語版のRTM(MSDNでダウンロード)のReadme.htmには、XP HomeはOKって書いてある....
メモリ最小は96MBって。
928 :
デフォルトの名無しさん :02/03/18 12:26
Windowsサービスに登録したEXEの変数とか実行結果を 他のプログラムから参照するにはどうすればいいんでしょうかね? 実際そういうことができるかすらわかんないんだけど。
>>919-921 どうもありがとうございました。
Javaに比べてGUIがすいすいと動くのが感動〜!
931 :
デフォルトの名無しさん :02/03/19 02:38
現在 .NET Framework SDK および .NET Framework 再頒布パッケージの提供準備を進めております。提供準備が整い次第このページでご案内いたします
MSもここを見てるのか(w
934 :
デフォルトの名無しさん :02/03/19 15:40
"c:\" などのパスから、「ハードディスク」とか「CD-ROM」ドライブとかの説明文字列を取得するにはどうしたらよいのでしょう? DirectoryInfoではそのような情報がないようだし・・・。
買うならやっぱりこれかな? プログラミング C# Tom Archer 発売中 4-89100-241-7 3,980 円 オブジェクト指向プログラミングや C# 言語の基本事項を押さえることはもちろん、設計思想や言語内部のアーキテクチャにまで迫る本格的プログラミング解説書。サンプルコード収録の CD-ROM 付。
バイトオーダーだから変換するのはバイト単位の並び。ビット単位ではない。 故に、1byteしかなければ順序など定義することすら出来ない。 バイト順が問題になるのは2bytesのshortや4bytesのintなどの時のみ。
>>938 私の勘違いをずばり、してくださいました。
問題は解決しました。ありがとうございまいした。
ビット単位かと思ってました。
ちょっとそこまで、逝ってきます。鬱。
940 :
デフォルトの名無しさん :02/03/19 20:07
>>936 やっぱ、Win32APIしかないですか・・・。ありがとうございました。
941 :
デフォルトの名無しさん :02/03/19 20:38
日本語版SDK出たよ。
944 :
デフォルトの名無しさん :02/03/20 10:09
160MBかよ!
946 :
デフォルトの名無しさん :02/03/20 10:44
いきなりSP1なの?
混んでいて上手くDLできない゛〜
>>943 ちゃんとドキュメントが日本語化されてるね。ヽ(´ー`)ノ
あれ?QuickStartチュートリアルは英語のままだ...。 gotdotnet.comで日本語化されたのがあったのに...。
>>949 SDKのディレクトリに qs_setup_jpn.exe ってファイルがあった。
これを解凍すれば日本語化された。
うちISDNなんだYO!
たびたびスマソ。 日本語化したあと、QuickStartディレクトリの web.config を修正しないとだめみたい。 <sourceview> <add key="root" value="e:\fx\samples\quickstart" /> ↑ 変なディレクトリ名になってる
953 :
デフォルトの名無しさん :02/03/20 12:57
今日SDK入れても2日後にまた入れ直しなんだよな・・・
そろそろ次スレですな。
SDKダウソ中♪ あと6時間15分。ISDNだから10時間くらい覚悟してたのに激速w
airH"でDLしてますが何か?
やっとインストール開始。。。
シーシャーポ
962 :
デフォルトの名無しさん :02/03/22 15:34
もうだめぽ
>>952 の現象はインストールの順番を間違えてたからみたい。
日本語ファイルを解凍 → サンプルのセットアップ
なら問題なかった。
umesasete kudasai onegaisimasu
ato 35 kai kakikomu dakedesunode nanitozo
966 :
デフォルトの名無しさん :02/04/09 18:27
age
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
あわびゅ!
でりげーとん
いべんとん
えくすぷりしっとん
いんぷりしっとん
あぶすとらくとん
997 :
デフォルトの名無しさん :02/04/14 11:53
1000made
おぶじぇくとん
1000げっとん
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。