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

C♯相談室 Part19

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯NGNG

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


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


関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D

ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
0002名無しさん♯NGNG
過去スレ
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/ (現在HTML化待ち)
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/ (現在HTML化待ち)
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/ (現在HTML化待ち)
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/ (現在HTML化待ち)
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0003デフォルトの名無しさんNGNG
Scheme の .NET 対応マダー?
0004デフォルトの名無しさんNGNG
4様参上(゚Д゚≡゚д゚)
0005デフォルトの名無しさんNGNG
えーと、2005βの話題はココで振っていいのかな?

今、Managed DirectX9 October 2004が動くか試してます。
んで、グラボのCapsをコンソールに吐き出そうと↓を打ち込んだ。

Manager.GetDeviceCaps(0, DeviceType.HardWare).ToString().Replace("\n", "\r\n");

どうやら、コレが落ちる原因みたいなのだけれど、例外も吐き出さんと
終了してしまう。Capsの個々のプロパティはフツーに文字列に変換できるので
2005βのバグだと思うんだが?

2005β入れてる奴は上のコードが動くか試してみてくれ。
0006デフォルトの名無しさんNGNG
6rz
0007デフォルトの名無しさんNGNG
複数の言語を切り替えられるようにするにはどうすればよいのですか?
どうも.NETに国際化対応の機能があるみたいですが
0008デフォルトの名無しさんNGNG
>>7
この辺か?
p://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/Vbcon/html/vboriInternationalization.asp
0009デフォルトの名無しさんNGNG
いきなり落ちそうだな

====

不定期にイベントを発行する Component を作ってます。
その Component では、イベント発生したら大抵 Control を弄るので

1:Component 側で Invoke 系を行ってしまおうと考えた
2:Control.Invoke を行うには Control を取得する必要がある為、Owner プロパティを付けた

結果、デザイナで貼り付けた後 Owner プロパティを設定する手間が新たに生まれたのですが、
可能な限り Component 貼り付けるだけで完了する方向性で 1 か 2 をもうちょっと簡略化できませんか?
0010デフォルトの名無しさんNGNG
リファレンス打ち出してくれるフリーツール、何か良いの無いですか?
「Webページのビルドコメント」は private なメンバまで出力されるので、かな〜り使い勝手がわるいんス orz
0011デフォルトの名無しさんNGNG
>>10
NDoc でぐぐれ
0012デフォルトの名無しさんNGNG
あげとく
0013デフォルトの名無しさんNGNG
前スレの992のアフォです。
スレちがいなのに、皆様ありがとうございました。
0014デフォルトの名無しさんNGNG
dataGridから、セレクタを選択してある行を消すのに

dataset.Tables["table"].Rows[Position].Delete();
ってやるのと
this.BindingContext[dataset,"table"].RemoveAt(Position);
てのと2種類あるようですが、両方とも同じように行削除できます。

使い分ける必要ってあるんですか?それとも好きなほうを使えってやつですか?
0015デフォルトの名無しさんNGNG
ビジュアルスタイルではまっています。
manifest でビジュアルスタイルにしています。

画面には textbox が複数あり、これらの textbox は
private void EnterControl (object sender, System.EventArgs e)
{((TextBox)sender).BackColor = Color.Red;}

private void LeaveControl(object sender, System.EventArgs e)
{((TextBox)sender).BackColor = Color.White;}
のように、フォーカスを受け取ると背景色を赤にして、フォーカスを失なうと
白にしています。

この時、フォーカスを失なったコントロールの背景色が白にはなるのですが
赤の枠線が残ってしまいます。

どのような時に枠が残ってしまうのかわかりませんが、枠が残ったコントロール
にマウスカーソルを持っていくとその枠は消えます。

ただ、枠が残ってしまう状態のコントロールがフォーカスを持っている時は
白の枠が描かれてしまいます。でフォーカスを失なうとその白の枠が赤になる
という感じです。

ちょっと説明しづらいのですがこのような現象に関して何か情報があれば
教えて頂きたいです。おねがいします。
0016デフォルトの名無しさんNGNG
J#のバグ潰しマダー?
0017デフォルトの名無しさんNGNG
質問です。
Panel とかで AutoScroll 有効にしたとき、スクロールバーのつまみいじってるときに
クライアント領域をスクロールとか描画とかしたいんですけどできますか?
スクロールのイベント無いみたいなのですが・・・
あと、Win32APIでのScrollWindow()みたいなメソッドってありますか

以上、よろしくおねがいします。
0018デフォルトの名無しさんNGNG
とかとかとか
0019デフォルトの名無しさんNGNG
>>17
継承クラスをつくってオーバーライドしたWndProcでWM_HSCROLLとWM_VSCROLLを捕まえてイベントを発生させる、かな。
コードからスクロールさせる場合はAutoScrollPositionプロパティを操作すればいい。
ただしAutoScrollPositionを操作してもWM_(V|H)SCROLLは発生しない。
002017NGNG
>>19
サンクスです。明日、試してみます。
0021デフォルトの名無しさんNGNG
質問ですCとC++を一応覚えたので
次にC#をやろうとしていたら
友人にC#は糞だから素晴らしいjavaをやったほうがいいと
言われたのですが本当ですか
0022デフォルトの名無しさんNGNG
>>21
似たようなもん。
0023デフォルトの名無しさんNGNG
>>21
開発元が違うだけ
0024デフォルトの名無しさんNGNG
javaを素晴らしいという人がC#を糞という理由は何だろうね。
0025デフォルトの名無しさんNGNG
決まりきってる、アンチMSなだけ。
0026デフォルトの名無しさんNGNG
>>25
少なくとも技術的理由ではないな
0027デフォルトの名無しさんNGNG
たいていは後発の言語の方が優れてるよ
0028デフォルトの名無しさんNGNG
>21
C#=(Java+Delphi)/2+C++
よって
C#>>>Java
0029デフォルトの名無しさんNGNG
Scheme の地位は揺るがんよ
0030デフォルトの名無しさんNGNG
>29
クラシック音楽は素晴らしい音楽ですが
聞く人は少数派です。
0031デフォルトの名無しさんNGNG
まぁ、将来どうなるかは分からんが、C#やっておいて損は無いけどね。

Webアプリは、JavaかASP.NET、偶にPHPやPerlか?
Windowsアプリ作るなら、C/C++か.NETだしな。

なかなか仕事してても、Webアプリ”だけ”、Windowアプリ”だけ”やってる奴なんて少ないしな。
また、Webアプリ”だけ”やってたとしても、必ずしもJavaとも限らない。

C/C++は覚えたというんだから、次はJavaとC#(またはVB.NET)やっておけば、
とりあえず、此処最近の技術は網羅してるんだから問題無いだろう。
0032デフォルトの名無しさんNGNG
両方やったほうが間違いなく楽しめる
自分の世界を広げろ
0033デフォルトの名無しさんNGNG
>>24
クラスライブラリかなあ?
0034デフォルトの名無しさんNGNG
>24
タダ・・・なのと
色々オープンソースのフレームワークがあるから
それで実験できるとか・・・
0035デフォルトの名無しさんNGNG
>>34
いやそれ C# も同じ
0036デフォルトの名無しさんNGNG

C#重すぎる!けど、
javaでUI作るのよりは少しマシ?
0037デフォルトの名無しさんNGNG
C#おもいか?
0038マリーNGNG
常にVMを起動しておけばいいじゃない
0039デフォルトの名無しさんNGNG
>>36
>javaでUI作るのよりは少しマシ?
かなりマシかも・・・でも 98系だと起動が遅いね。
0040デフォルトの名無しさんNGNG
なんにしても言語の問題じゃないと思うんだが。
0041デフォルトの名無しさんNGNG
拡張子がEXEだから使いやすい以外はJavaと一緒だよ、
重さも使いやすさもライブラリも。
神経質になれば微妙に些細な優劣があるけど、
Windows向けにちょっと調整しただけのデッドコピーだね。
そもそもSunとMSの係争の果ての産物だし。
0042デフォルトの名無しさんNGNG
>41
そんなことはないだろ。
RADの使いやすさとか言語仕様とかC#が勝ってる部分は多い。
Javaにももちろん有利な点はあるが、Windowsでプログラミングする限りは
C#>>>Javaだよ。
0043デフォルトの名無しさんNGNG
総合的な優劣を決める必然性ないだろ。

状況に合ってる方を使え。
0044デフォルトの名無しさんNGNG
RUBY!!!!!!!!!!!!!!!!!!!!!!
0045デフォルトの名無しさんNGNG
ひとつの言語しか使えない低脳以外はどっちが優れていようが問題ないだろ
0046デフォルトの名無しさんNGNG
確かにC#かJavaやってて、C/C++を知らないというのは低脳だな。
0047デフォルトの名無しさんNGNG
>46
わざわざメモリ解放を考えるのは無駄。
実体とポインタの使い分けを考えるのは無駄。
MFCを覚えるのは無駄。
C#とJavaで十分。
0048デフォルトの名無しさんNGNG
こいつは凄い奴だな
0049デフォルトの名無しさんNGNG
interfaceもない言語を使うのは無駄。
ヘッダファイルとソースファイルに同じことを二度書くのは無駄。
WinAPIを直接叩くのは無駄。
C/ C++のような低級言語を使う時代は終わった。
時代はC#/Javaの高級言語だ。
0050デフォルトの名無しさんNGNG
そんな議論が無駄。
0051デフォルトの名無しさんNGNG
>>49
同意。
C#/Java なんか出る前から、心ある人は VB しか使ってませんでした(w
0052デフォルトの名無しさんNGNG
C++の唯一の牙城であったテンプレートも
C#へのGenericsの導入で優位性が崩れつつある。
もうC++は終わった。
0053在日外国人参政権反対NGNG
そうだねーアセンブラとかも無駄だもんねー(棒読み)
0054デフォルトの名無しさんNGNG
低脳必死だな
0055デフォルトの名無しさんNGNG
最後に一言
「無駄なことは無駄」
0056デフォルトの名無しさんNGNG
そうですね
0057デフォルトの名無しさんNGNG
話もとに戻しますが、みなさんどんだけ Dispose 入れてます?

というのも、漏れいままではロジカルに必要なところでは Dispose してたんだけど、
頻繁に更新されるデータを保持するのに大き目の配列の作成・消滅を繰り返してると
意図的にGC.Collect() しないとメモリ足らんとか例外が出るようになって・・・

こうなってくると、リソースの制限にひっかりそうなオブジェクトや、
すぐにリソース開放したい場合以外はファイナライザに任せてもいいかな、という気分に。
using の嵐も面倒だし・・・
0058デフォルトの名無しさんNGNG
imageオブジェクトとストリーム関係ぐらいかなあ意図的に
Disposeするのって。
005957NGNG
>>57
「こうなってくると」は、「どうせ適当な間隔で GC 動かす必要があるなら」てな意味です。
.NET 2.0 ではこの辺修正されたんでしたっけ・・
0060デフォルトの名無しさんNGNG
Udpでの送受信ができません。どこがおかしいんでしょうか。
送信側
byte[] sendBytes = Encoding.ASCII.GetBytes("Hello World");
UdpClient client = new UdpClient(1023);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"),2323);
client.Connect(endPoint);
client.Send(sendBytes,sendBytes.Length);
client.Close();
受信側
public void ReceiveData()
{
UdpClient server = new UdpClient(8080);

while(true)
{
IPEndPoint endPoint = null;
byte[] receiveBytes = server.Receive(ref endPoint);

string receiveData = Encoding.ASCII.GetString(receiveBytes);
this.textBox1.Text = receiveData;
}
}
受信側の開始スレッド
Thread thread = new Thread(new ThreadStart(ReceiveData));
thread.Start();
thread.Abort();
0061デフォルトの名無しさんNGNG
>>60
SendTo で 8080 宛に送ってください。
0062デフォルトの名無しさんNGNG
>>57
メモリー足らないのホントに厳しいよ、なんとかならんかな。
もう2G使い切っちゃって増設できねぇぇぇぇ
ぬぉおおおおおおどうしてくれようかぁぁぁ
と絶叫中
0063デフォルトの名無しさんNGNG
>>60
thread.Abort(); // <- これ要りません。っていうかあるとダメ。
0064デフォルトの名無しさんNGNG
>>52

http://www.mamezou.com/tec/equip001.htm
これを読め。C++のテンプレートとジェネリクスは大分違うぞ。

大きな違いは
-同一変換と異種変換
-閉じた多態と閉じていない多態
って感じか。

C#のジェネリクスはC++のテンプレートに比べて強力な感じはしない。
以下、C++のテンプレートにできてジェネリクスにできないこと
-型生成子
-タグディスパッチ
-テンプレートの特殊化
-テンプレートのインライン展開によるメタプログラミング
などなど。C++のboostのlamda(は次のバージョンでは無名の
デリゲートがサポートされるらしいからできるかも)やFC++みたいな
関数型プログラミング系のテクニックはつらいだろ。
006560NGNG
>>61>>63
どうもありがとうございます。これで動きました。
送信
byte[] sendBytes = Encoding.ASCII.GetBytes("Hello World");
UdpClient client = new UdpClient(1023);
client.Connect(IPAddress.Parse("127.0.0.1"),8080);
client.Send(sendBytes,sendBytes.Length);
client.Close();
受信
public void ReceiveData()
{
UdpClient server = new UdpClient(8080);

while(true)
{
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any,0);
byte[] receiveBytes = server.Receive(ref endPoint);

string receiveData = Encoding.ASCII.GetString(receiveBytes);
this.textBox1.Text = receiveData;
}
}
受信スレッド
Thread thread = new Thread(new ThreadStart(ReceiveData));
thread.Start();
0066エデンNGNG
Form1.cs(312): 型または名前空間名 'Socket' が見つかりませんでした。
ディレクティブを使うかアセンブリ参照を使ってください。

これが何を指しているのかわからないのですが・・・。
こういう場合どっかその近くを書き間違えているということでしょうか。

ディレクティブやアセンブリを調べると何かファイルが足りないというような意味みたいだし
教えてエロい人
0067デフォルトの名無しさんNGNG
>>66
たぶん
using System.Net.Sockets;
を追加。
0068デフォルトの名無しさんNGNG
>>64
52じゃないけど、C#でもそんなものなのですか?
VMからして対応していると聞いていてちょっと期待していたのですけど。
0069デフォルトの名無しさんNGNG
話はちょっと変わるのですが、WSDLサービスを記述したデータをwsdl.exeに
渡すと、C#のスケルトンを生成してくれるますがこれ以外に、XMLデータの
スケルトンを生成する方法はないでしょうか?
Wsdl2JavaではコードのほかにXMLもはけますがどうなのでしょうか?
もしできたとして、WSDL.exe自体を勝手に配布したりすとまずいですよね?
0070デフォルトの名無しさんNGNG
C++のテンプレートはコンパイル時にエラー出すと255文字こえるエラーメッセージgがでて
わけわからんかったなぁ。
0071デフォルトの名無しさんNGNG
>>70
http://pc5.2ch.net/test/read.cgi/tech/1095583235/716 はお前か。
0072デフォルトの名無しさんNGNG
>>71
ちがうっちゅーにw
0073デフォルトの名無しさんNGNG
dataGridから、セレクタを選択してある行を消すのに

dataset.Tables["table"].Rows[Position].Delete();
ってやるのと
this.BindingContext[dataset,"table"].RemoveAt(Position);
てのと2種類あるようですが、両方とも同じように行削除できます。

使い分ける必要ってあるんですか?それとも好きなほうを使えってやつですか?
0074デフォルトの名無しさんNGNG
各行にチェックボックスとエディットボックスを備えた
リストボックスのようなUIを求められています。

あまりトリッキーでない方法で実現するにはどうするのが
ベストでしょうか?

最悪はListViewにして、編集には1アクション操作してもらう
ようにお願いしようと思いますが、できれば要望書に近い
UIにしてあげたいのです。

■[ 編集可能 ] 文字列 文字列 文字列
□[ 編集可能 ] 文字列 文字列 文字列
■[ 編集可能 ] 文字列 文字列 文字列
■[ 編集可能 ] 文字列 文字列 文字列

文字列の出所はOleDbですが、一部加工してから表示するので
連携は特に必要ありません。

よろしくお願いします。
0075デフォルトの名無しさんNGNG
売ってるグリッドクラスとか買って来い
出なければ編集時だけeditboxはっつけるか、自分で気合で作る。
0076デフォルトの名無しさんNGNG
DataGridの拡張はそんなに難しくないよ。
0077デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=82
遊び程度にサーバもどき書いてみたんですが、
http://localhost:250/
なら表示されるのに、
http://IPアドレス:250/
にすると表示できません。なんででしょうか?
(起動してから、IE等のブラウザでポート250にアクセスしてみてください。)
007874NGNG
>>76
どもでした。
DataGrid
DataGridTableStyle
DataGridBoolColumn
DataGridTextBoxColumn
この辺の組み合わせで納得してもらえるようなものを
作れそうです。
0079デフォルトの名無しさんNGNG
つーか、ASP.NETなのかWindowsFormsなのかはっきりしてくれ。
008074NGNG
>>79
Windows.Formです。

aspxでListViewって使えましたっけ?
0081デフォルトの名無しさんNGNG
EXEファイルの内部の変数を外部の他のEXEファイルから参照したり出来ないでしょうか?
参照設定にEXEファイルを選んでもDLLしか駄目みたいなことを言われるのですが
0082デフォルトの名無しさんNGNG
>>77
listen する IP アドレスは、クライアントが接続してくる interface の IP アドレスを指定する必要があります。
例えばPCが 127.0.0.1 と 192.168.0.0.2 の2つのIPアドレスを持っているとした場合、
それぞれのアドレスを指定した2つのlistenerで同時に待つ必要がある。
遊びに突っ込みもアレだけど、
> Socket handler = (Socket)socketList[socketList.Count-1];
これはスレッド生成時の引数 (object が一個渡せる) で渡したほうが良いような・・・
0083デフォルトの名無しさんNGNG
>>81
内部の変数とやらはともかく、VSからでは参照設定に.exeを指定できない。
.csprojファイルを手でいじってやれば参照できる。
0084エデンNGNG
型、名前空間の定義、またはファイルの終わりが必要です。
と出るのですが多分ファイルの終わりがないんだと思うんですが、
いくらやってもこれが出てしまいます。
どうすればいいんでしょうか
ちなみに
usingはこれを使ってます。

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net.Sockets;
using System.Net;

昨日の終わりか今日の始めにも同じようなことを書きましたが(TT
0085最凶VB厨房NGNG
using部分は大丈夫そうだ。
{ }はちゃんと対になってる?()も。
0086デフォルトの名無しさんNGNG
>>84
括弧がきちんと閉じられていない感じ。
ちゃんと開いた括弧は閉じましょう。
それ以上はコードも無しにわかりっこない…
0087デフォルトの名無しさんNGNG
だからそういうのまとめてソースから削って原因を絞り込めって。
0088エデンNGNG
>>86
この文の全体が500行ほどあることもですが
よく言われる『教えて君』みたいにすぐ答えを聞くんではなくて
ヒントみたいなものをもらって自分で解きたいと思ってのことです。
まあ自分も昔プログラム(当時で10年以上前のベーシックを5年ほど前に中学で、ですが・・・。)
やっていたんで『コードないのに答えれるか!?』というのも理解できるのですが

・・・>>84 も『ある意味』教えて君ですがw
0089デフォルトの名無しさんNGNG
こんなこともあるよ
http://pc5.2ch.net/test/read.cgi/tech/1065196964/584-585
0090デフォルトの名無しさんNGNG
>>88
なんかVC#のエディターというか文法解釈はあやしいことがありました。
再起動したら普通にコンパイルできたり。
500行程度なら、#if falseつかいまくって、ソースをけずりまくっては?
0091デフォルトの名無しさんNGNG
>>90
ネットワークドライブ使ってない?
俺それでやられた。
ローカルにしたら直ったよ、多分タイムスタンプの問題。
0092デフォルトの名無しさんNGNG
くそおおおおおおおおおおおおおおおおおおおお!!!!!!
動かねぇと思ったら作ったスレッド動かしてなかった!!!!
半日潰したぞ!!
0093デフォルトの名無しさんNGNG
>>92
半日ならまだまだOKのうちじゃない?
まあ、おつ。
0094デフォルトの名無しさんNGNG
>>92みたいな奴に限って「これだからM$は」とか能書きたれるよな。
0095デフォルトの名無しさんNGNG
フォームの上にコントロールをいくつか配置するとき、
あるコントロールを別のコントロールの子として配置する方法ってないんでしょうか?
半透明が子でないと効いてくれないので・・・・
009695NGNG
あともう一つ、子に発生したマウスイベントを親で受け取る方法ってないのでしょうか。
0097デフォルトの名無しさんNGNG
>>95
Control.Parentを設定しなおす。

>>96
ControlのMouseMoveなどのイベントを使う。
009895NGNG
>>97
どもです
>Control.Parentを設定しなおす。
デザイナからはやっぱ無理なんですかね?

>ControlのMouseMoveなどのイベントを使う。
実はイベントの転送方法が分らなくて・・・


0099デフォルトの名無しさんNGNG
AutoScroll用にパネルの上にPictureBoxをおいているのですが、
スクロールバーなどをのぞいた実質的なPictureBoxの高さってどうしらべればいいんでしょうか?

今は水平スクロールバーがあるかどうかをPanelのサイズとImageのサイズを比べて
あれば PictureBox1.Height-20とかでしのいでるのですが、不便なのでなんかいい方法ないでしょうか?
0100お尋ねNGNG
実際のところ .NET の GUI って、開発しやすいですか?
0101デフォルトの名無しさんNGNG
>>98
イベントハンドラで対応するOn...を投げる。

>>99
ClientSizeでいいんじゃないか。
010295NGNG
>>101
>イベントハンドラで対応するOn...を投げる。
protected でアクセスできないです(T_T)
0103デフォルトの名無しさんNGNG
>>98
>デザイナからはやっぱ無理なんですかね?
FormのLoadイベントなり、InitializeComponent()の後なりでできる。

>実はイベントの転送方法が分らなくて・・・
VS使ってるならプロパティウィンドウから設定すれ。

>>100
C/C++でAPI使って書くよりは楽。
実際に>>98にはIDEなしで、簡単だからメモ帳あたりでウィンドウを使うコードを書いてみろと言いたい。
010495NGNG
>>103
転送用のプロパティーってどれなんでしょうか?
0105デフォルトの名無しさんNGNG
>>104
プロパティウィンドウの雷みたいなマーク。

というかイベントの使い方ぐらい覚えれ。
010695NGNG
>>105
受け取り方はわかるのですが送り方がわからなくて・・・
010795NGNG
.NetFrameworkでSendMessage PostMessage に当たるものってあるのでしょうか?
0108デフォルトの名無しさんNGNG
>>107
pinvokeすればいいんじゃないの?
0109デフォルトの名無しさんNGNG
>>108
ピンボケ?
011095NGNG
やっぱアンマネージドで行くしかないのかな・・・ふぅ
0111デフォルトの名無しさんNGNG
そうだね、君には無理そうだね。
0112デフォルトの名無しさんNGNG
>>111
方法あるなら書けよ〜
0113デフォルトの名無しさんNGNG
>>110
つかわざわざクラスで隠蔽してるイベントを外側のコードから発生させるのはよろしくない気がする。
0114デフォルトの名無しさんNGNG
>>113
そんなもんは百も承知だ、分らんなら黙ってろ
0115デフォルトの名無しさんNGNG
>>114
教えてもらいたいなら黙ってろ。
0116デフォルトの名無しさんNGNG
アンマネージドでいく方が敷居高い気がするが。
0117デフォルトの名無しさんNGNG
>>107
http://www.microsoft.com/japan/msdn/net/general/win32map.asp#win32map_messageandmessagequeuefunctions
なんとなく貼ってみた。
0118デフォルトの名無しさんNGNG
背景画像固定でスクロールさせたいのですが何もいいアイデアが思い浮かばずorz
0119デフォルトの名無しさんNGNG
質問です。
よくゴミ箱に入れて削除してしまったファイルを復元するツールがありますが、
それはどうやって復元しているのでしょうか?
削除は読み出せないようにフラグをつけているだけ、ということは知っているのですが、
それをいざ読み出してやる、というと方法が思いつきません。
すいませんが、教えてください。
お願いします。
0120デフォルトの名無しさんNGNG
マネージドじゃむりじゃね?
0121デフォルトの名無しさんNGNG
>>115
おしえられねー癖に
0122デフォルトの名無しさんNGNG
Form1から
dialog.ShowDialog(this)
として、Form2を開き、
Form2から、Form1のOpacityをリアルタイムで変更したいのですが、
どういった方法ですれば良いのでしょうか?

当たり前なのかもしれないですが、
Form2から
this.Owner.Opacity = 0.5;
とかやってもダメでした。。
Form1側で
Opacityを操作するプロパティを用意してもダメでした。。。

助言お願いします〜
0123デフォルトの名無しさんNGNG
>>122
まずどう駄目だったのかをはっきりさせてからだ。
0124122NGNG
実行はできるんですが、
Form1のOpacityにアクセスするとこで落ちます。
エラー内容が
オブジェクト参照がオブジェクトインスタンスに設定されていない
です。
0125デフォルトの名無しさんNGNG
NullReferenceExceptionが返ってくるならnullでなくせばいい。
何がnullになってるのかを考えれば(あるいは調べれば)すぐ答えは出る。
自動的に代入されてるプロパティばかりではないと言う事だ。
0126デフォルトの名無しさんNGNG
何がnullかわかりました!
ShowDialog(this);
とやってForm2を呼び出しているのに、
Form2のOwnerはNullのままでした。(なぜ!?

改善策はわからず。。もうすこし見てみます。。
0127デフォルトの名無しさんNGNG
参照がなければ事前に入れたらいいのに。
0128デフォルトの名無しさんNGNG
>>127
126ではないが、そういう場当たりばっかりやってると、プログラムメチャクチャなるよ
0129デフォルトの名無しさんNGNG
>>121
すでに解決策やらヒントは出てるべ。

マネージドでやる方法もアンマネージドでやる方法も。
そんな時点で教える・教えないもあったものでもないと思うが。
0130122NGNG
だめだ。。
webにのってるのと同じようにしてるのに、
親フォームを取得できないです。。。

親側で、
form2.ShowDialog(this)
として子を呼び出し、
子側で
((Form1)this.Owner).mypublicvalue = 10;

とかすれば、良いはずじゃないのでしょうか?
タスケテー
0131デフォルトの名無しさんNGNG
C#でアニメーションしたいのですがよくわかりません。
具体的にはPicureBoxで表示した画像をアニメーションさせたいのですが
どなたかヒントいただけないでしょうか?よろしくお願い致します。
0132デフォルトの名無しさんNGNG
>>129
現状ではもうアンマネージドによる方法で解決している。
てゆうか、質問した時点でその方法についてなら既に解決済み。
マネージド方式については、どこにあるのか言ってみろ!!

0133デフォルトの名無しさんNGNG
>>131
手軽な方法はタイマーでPictureBoxの画像入れ替え

>>132
言語を理解してるならマネージのほうほうが先に思いつくわけだが、
どっちにしても解決してるなら別にいいじゃん。
0134デフォルトの名無しさんNGNG
>先に思いつくわけだが、
ウソこけ
0135131NGNG
>>133
レスありがとうございます。
タイマーで入れ換えとなると画像再模写になりますよね?

一度模写した画像を動かす方法ってありませんでしょうか?
宜しくお願い致します。
0136122NGNG
解決しました。
Form2のコンストラクタ内でForm1のオブジェクト
取得しようとしちゃダメなんですね。テヘ
すいませんでした〜
0137デフォルトの名無しさんNGNG
>>135
>模写
模写というのが、画像のファイルなどからの読み込みのことを言ってるなら
あらかじめ画像を読み込んでイメージリストにするなり
変数として保存しておけば読み込みは最初だけですむ。

>>136
( ゚Д゚)<
0138デフォルトの名無しさんNGNG
変にカタいところのある95、微妙にずれてる122
どっちもがんがれ。めっちゃがんがれ。
0139デフォルトの名無しさんNGNG
>>122

97 名前:デフォルトの名無しさん[sage] 投稿日:04/11/20 20:50:06
>>96
ControlのMouseMoveなどのイベントを使う。
0140139NGNG
悪い122じゃなくて>>132だ
0141デフォルトの名無しさんNGNG
見た目重視のためだけなのですがFormのOpacityを
Mouse_Leaveで0.2F Enterで1F
にするコードを書いたのですが、
そのフォーム上で
ControlPaint.FillReversibleRectangle(new Rectangle(this.PointToScreen(p),old_size),Color.Transparent);
で範囲選択をしようとすると反転矩形が表示されなくなってしまいました。

Mouse_Leave,EnterのOpacityを変更する行をコメントアウトすると
問題なく表示されるのでOpacityを触ったのがだめだった用です。

また、Mouse_Leave,Enterの代わりにForm_DeactivedとActivatedを用いても
同じ結果でした。


0142デフォルトの名無しさんNGNG
>>139
散々かかれてますが、受け取る方法ではなくて転送する方法
MouseMoveでイベントを受信することはできるが送信はできない。
0143デフォルトの名無しさんNGNG
初めの条件は「子に発生したマウスイベントを親で受け取る方法」でイベントの転送ではない。
転送しなくてはいけないと思ったのは95が理解していないだけで
この条件を満たすだけならイベントを転送する必要はない。
0144デフォルトの名無しさんNGNG
>>143
親に送信する必要がある、以上。
0145デフォルトの名無しさんNGNG
つかOn...のところで感じ取ってくれよ・・・・
0146デフォルトの名無しさんNGNG
>>144
子で発生したからといって子で処理する必要はなく親にイベントハンドラを実装すればいい。以上。
0147デフォルトの名無しさんNGNG
>>144
だからイベントを勉強しなおせ。
というかなにをしたいのかよくわからん。

>>145
そういうわけでOnXXXを使う前に基本的な段階がわかってなさげ。
0148デフォルトの名無しさんNGNG
判った判った、お前の勝ちだ、全く役に立たないコメントありがとね。
0149デフォルトの名無しさんNGNG
>>148
最大の敗因は教えを請う相手を煽ってることと、決定的なC#への理解不足。

>役に立たないコメント
豚に真珠
0150デフォルトの名無しさんNGNG
お前ら大人気ないな。
0151デフォルトの名無しさんNGNG
>>150
なにを間違ってるのかわざわざ指摘してやってるんだからむしろ懇切丁寧だろ。
0152デフォルトの名無しさんNGNG
>役に立たないコメント

/// <summary>幅を取得します。</summary>
int GetWidth();
0153デフォルトの名無しさんNGNG
>>152
ワロタ
0154デフォルトの名無しさんNGNG
>152
こういうギャグがとっさに出てくるのが2chだなw
0155デフォルトの名無しさんNGNG
>役に立たないコメント

/// <summary>2を取得します。</summary>
int Get2();
0156デフォルトの名無しさんNGNG
2番煎じはつまらんよ
0157デフォルトの名無しさんNGNG
3番煎じ
>役に立たないコメント

/// <summary>test1をします</summary>
int test1();
0158デフォルトの名無しさんNGNG
ちょっと質問。

TextBoxとかListViewなどのコントロールになんて名前のつけかたしてる?
0159デフォルトの名無しさんNGNG
4番煎じ
>役に立たないコメント

/// <summary>回答を激しく求めています</summary>
String getAnswer(>>141);
0160デフォルトの名無しさんNGNG
ここまでくると可哀相に思えるな
0161デフォルトの名無しさんNGNG
>>158
textBox_hoge
.NET の名前付けガイドラインに思いっきり反してるが、
Formのコントロールはぽこぽこ増えたり減ったりするので、
自分で管理してるほかのフィールドとは区別したい。
0162デフォルトの名無しさんNGNG
>>159
どうも透過ウィンドウと相性悪げ。

プラットフォーム呼び出しでPatBltのDSTINVERTを使って
選択範囲内のコントロールをいちいち描画してくとか面倒なことが必要になりそうだな。
0163141==159NGNG
レスありがとうございます。

ちょっと見た目重視にするだけでやたら面倒くさそうですね…

素直に諦めます… 
0164デフォルトの名無しさんNGNG
5番煎じマダ〜?
0165デフォルトの名無しさんNGNG
Opacity を変えると見た目が良くなるのか…
0166デフォルトの名無しさんNGNG
5番煎じ
>役に立たないコメント

/// <summary> >>141を減量します。</summary>
Man man = new Man(>>141);
man.Hear.Count--;
0167166NGNG
Hear -> Hair。
二℃と現れません。orz
0168デフォルトの名無しさんNGNG
01.jpgと言う画像を表示させたいだけなのですがうまくいきません。
pictureBox1.Dispose();

//PictureBox pb = new PictureBox();
PictureBox PictureBox2 = new PictureBox();
PictureBox2.Location = new Point(300, 400);
PictureBox2.Size = new Size(100, 100);
//pb.Image = new Bitmap(300, 300);
//Bitmapオブジェクトの作成(画像ファイルを読み込む)
Bitmap bmap = new Bitmap("01.bmp");
//または、次のようにも出来る
//Image bmap = Image.FromFile(@"C:\Blue hills.jpg");

//PictureBox1のGraphicsオブジェクトの作成
Graphics g = PictureBox2.CreateGraphics();
//画像の描画
g.DrawImage(bmap, 300, 300);
//BitmapとGraphicsオブジェクトを破棄
bmap.Dispose();
g.Dispose();
どこか、間違っていますでしょうか?
0169168NGNG
あ・・・拡張子は、下記ミスってます。
拡張子以外のミス、ありませんでしょうか?
0170デフォルトの名無しさんNGNG
PictureBoxをFormのControlsにAddしてないとみた。
0171デフォルトの名無しさんNGNG
なんかわけわからんことやってるなー……。
折角PictureBox使うのになぜImageプロパティじゃなくて直接書くのかとか。
pictureBox1.Dispose()ってなによとか。
ひょっとして画像を変更するためだけに一々コントロールを作り直してるのか?
0172168NGNG
ココ参考にして作ってみてます
ttp://dobon.net/vb/dotnet/graphics/drawimage.html
0173最凶VB厨房NGNG
コピペしてから修正しろw
0174168NGNG
>>170
簡単なImageの方でやったらAddの有る無しで表示されない場合と表示される場合
確かめることが出来ました。
Addしていませんでした(まだ解決してませんが)

>>171
>172

>>173
コピペしました。。
0175デフォルトの名無しさんNGNG
コピペしてねーじゃん。
0176デフォルトの名無しさんNGNG
一辺ファイル名と変数名以外全部コピペでやってみな。
0177デフォルトの名無しさんNGNG
その「うまくいかない」状態というのがどういったものかを教えてくれないとどうしようもない気がするが
コンパイルすら通らないのか
コンパイルは通るけど思ったような動きをしてくれないのか
そうならばどのような動きをしているのか、とか
0178168NGNG
>>175-177
コピペしてやってみました。一瞬表示されて消えるみたいです。

コンパイルは通り、プログラムは実行されるのですが
画像が表示されないという状況です。

このプログラムの前にちがうpicturebox1.Dispose()しているのも原因の一つみたいです。
0179デフォルトの名無しさんNGNG
>>168
なんで厨房はみんな「うまくいきません」しか書かないんだ?
エラーうんぬんの前に、質問を読む側に状況が全く伝わってないことが分からないのか?

ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=44&vew=111
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=44&vew=106
0180最凶VB厨房NGNG
Paintイベントハンドラに書いてんのか?
それもそのURLにかいてあんぞ。
0181夜NGNG
お世話になります。GUIのプログラミングに関しての質問です。
現在、お手軽2ちゃんねるブラウザをC#で開発中です。
取得済スレッドの振り分け機能を作ろうと思っているのですが、
それをOutlookのメッセージルール
作成に見られるような
「下線をクリックすると編集できます」みたいな感じで作りたいんです。
こんな感じのボックスってRichTextBoxで実現できますか?
他にも何かいい方法があったらおしえてくださいませ。
0182デフォルトの名無しさんNGNG
>こんな感じのボックスってRichTextBoxで実現できますか?
できなくはない。

>他にも何かいい方法があったらおしえてくださいませ。
UserControl
0183デフォルトの名無しさんNGNG
VSの設定ダイアログみたいに、左にツリー置いて右に詳細をおいた設定を作りたいけど
どうやればいの?
タブより面倒くさそ
0184夜NGNG
>>182
ありがとうございます。
UserControlをどのように応用するのか私には想像がつかないのですが、
サンプル的なコードなどありますでしょうか?
0185デフォルトの名無しさんNGNG
foreach (TextBox tb in this.Controls)
{
tb.Text = "";
}
Formに配置したすべてのテキストボックスをリセットにしたいのですが
指定したキャストは有効ではありません と実行時にエラーが出ます
コンパイルは通るのですが何かすべてのテキストボックスをリセットするいい方法ないですか?
0186デフォルトの名無しさんNGNG
Controlで回して中でas演算子
0187185NGNG
foreach(Control tb in this.Controls)
{
TextBox temp = tb as TextBox;
if(temp!=null)
{
temp.Text = temp.Name;
}
}
でうまくいけました。 ありがとうございました。
けどやってみて気づいたのですがGroupBoxの中に分類して入れてる10個以上のTextBoxは
FormのControlコレクションに入ってないんですね… orz
0188デフォルトの名無しさんNGNG
>>183
TreeViewのAfterSelectイベントでごにょればなんとかなるまいか。
0189最凶VB厨房NGNG
コンテナだからさ。
0190162NGNG
>>163
ちょっと調べてみた。

MouseEnterでOpacityを1Fに戻すところで
一緒にForm.AllowTransparencyをfalseにするのはどうだろう。
0191デフォルトの名無しさんNGNG
TextBoxを拡張して、色分け表示しようとがんばって調べていますが、
OnPaintとかオーバライドするのがベーシックなやり方でしょうか?
また、TextBoxは内部でもっているデータにどのようにアクセスして、
テキストとして描画しているのか理解できていないのですが、どうやって
調べれば判るでしょうか?
0192デフォルトの名無しさんNGNG
コントロールのフォーカス枠を非表示にしたいんですが、
フォーカス枠を描いているメソッドてありますか?
0193デフォルトの名無しさんNGNG
>>192
Control.ShowFocusCues プロパティ
とか言ってみる。
0194デフォルトの名無しさんNGNG
0195192NGNG
それをoverrideして、常にfalse返すようにしてもダメぽいんです。。
0196デフォルトの名無しさんNGNG
というか、ShowFocusCuesは
フォーカスが移ってきた場合でも使用されて無いみたい。
0197141==159NGNG
>>162==190さん
その方法で無事反転矩形が描画されました。
ありがとうございました。
0198デフォルトの名無しさんNGNG
AllPaintingInWmPaint追放してえ
0199デフォルトの名無しさんNGNG
C#で拡張子の関連付けを設定するにはどうやるんですか?
0200デフォルトの名無しさんNGNG
A.exeがB.exeのstaticな変数を共有する事は出来ないのでしょうか?

B.exeは起動中一秒ごとにpublic static int aをインクリメントし、
A.exeはボタンを押すとその時点のB.aの値を取得して表示する、というものなのですが、
A.exeのアセンブリ参照にB.exeを加えても、
B.exeから見た変数aと、A.exeから見た変数aとが異なるのですが
0201最凶VB厨房NGNG
appdomain
0202デフォルトの名無しさんNGNG
>>200
プロセス間でとなるとメッセージのやりとりやDDE、リモート処理が必要。
//まず別プロセスで実行する必要性があるかどうかから検証するとか。
0203デフォルトの名無しさんNGNG
>>200
DLL 経由で共有する方法はある。
0204デフォルトの名無しさんNGNG
>>201-203
ありがとうございます。
やはり単純には行かないのですね。
AppDomainについて勉強してからもう一度やってみようと思います。
0205デフォルトの名無しさんNGNG
クラスの設計について質問です。

Console.WriteLineなどのように、出力専用であったり、ある値を変換するだけ
のクラスは、staticメソッドにしてもよいのでしょうか?
それともインスタンスを生成して、メソッドを利用するほうがよいのですか?

あまりstaticな変数やメソッドは使うべきではないと聞くのですが、
主にstaticなものはどのような具合に使用するのがよいのでしょう。
0206デフォルトの名無しさんNGNG
>>205
そこらへんはコーディング スタイルの問題だと思う。
私ならほとんどの場合インスタンスを生成してメソッド利用にするけど。
0207デフォルトの名無しさんNGNG
>>205
Console は設計があまりよろしくない。
Win32 では確かに Console は同時に一つしか持てないことになってるが、
他の環境でどうだかは定かではない。
static にしないほうが良かった。
Math などの普遍的かつ非オブジェクト的なメソッド/プロパティはstaticがよろしい。
Path は名前は間違ってるがやってることはやっぱりstaticでよろしい。
0208デフォルトの名無しさんNGNG
javaのstringTokenizerクラスだったか、あれは.NETではString.Splitメソッドで済ます方向だよな。
//わざわざクラス立ててる割りにメソッドがしょぼいと言うイメージを受けたが。>stringTokenizer
0209205NGNG
即レスありがとうございます。

たしかに少し値を変換するぐらいのメソッドだったら、
インスタンスを生成せずstaticで済ませたい気持ちありますね(汗

もうすこしクラスの組み立て方を考えてみたいと思います。
みなさんありがとうございました(^^
0210デフォルトの名無しさんNGNG
オプションなどで変更した画面配色などを、次回起動時にも反映できるように、
設定などを保存しておきたいとします。

現在は配色や、その他設定項目を保持するクラスを生成して、
XmlSerializerとTextWriterを使ってそのクラスをファイルに書き出している状態です。
こちらのページを参考としました。
http://fe0r.at.infoseek.co.jp/Doc/csXmlSave.htm

最近バグに気づいたのですが、Colorクラスなどは参照型なので(?)、
値がうまく保存されないことに気が付きました(;´д⊂
文字などはきちんと保存され、読み込みもできるのですが・・・。

Color.Blackなどの情報はどのように保存して置けばいいのでしょうか?
0211デフォルトの名無しさんNGNG
Color は値型でんがな
0212デフォルトの名無しさんNGNG
bool a=b=true;

abともに真である条件式で
if(a & b){}
if(a && b){}
お前らはどっち書く?
0213デフォルトの名無しさんNGNG
複数のスレッドから、ひとつのファイルに読み書きを行っているのですが、
ファイルに対して排他ロックを取得する良い方法はないでしょうか?

読み書きを行うメソッドをひとつのクラスにまとめ、
lock(this){}でロックをかけていたのですが、
諸々の事情から、他のクラスからもファイルにアクセスする必要があり、
出来れば、ファイルそのものに対してロックをかけたいのです。
lock(filename){}とかで今はごまかしているのですが、
これだと単純に一定の文字列に対してロックをかけているだけなので、
やはりファイルそのものでロックをかけたいのです。

何か良い方法はないでしょうか?
0214デフォルトの名無しさんNGNG
>>212
供に真であるとわかっているなら、その if 節自体書かない。
わかっていないなら、&& を使う。コスト変わらない場合でもなんとなく。
0215デフォルトの名無しさんNGNG
あれ?同じプロセス内なら排他しててもファイル開けるんだっけ?
OS上でそれなら、擬似的に排他を行うファイルクラス作ればいいんでは?
0216デフォルトの名無しさんNGNG
>>212
&&で書く。結果は同じになるかもしれんが、
論理演算子とビット操作演算子では意味が違う。
あんまり保守プログラマをいじめないでくれい。
0217デフォルトの名無しさんNGNG
>>216
おまえ、C#って言語知ってるか?
0218デフォルトの名無しさんNGNG
b を必ず評価すべきときは当然 &。
a の値によって b を評価すべきか否かが決まる時は &&。
どっちでもいいときは、コストが少なくなる可能性がある方をとって &&。

つか、リファレンス嫁。
0219デフォルトの名無しさんNGNG
>結果は同じになるかもしれんが、
>論理演算子とビット操作演算子では意味が違う。

ここまで自覚のない厨房は初めて見たな。傑作だ>>216。
0220デフォルトの名無しさんNGNG
もうちょっと詳しく書いておくと、bool型の値を返すメソッド A() と B() があるとして、

A()とB()を両方呼んで、どちらの戻り値もtrueだったらC()を呼ぶ、と言うような場合は、
if (A() & B()) C();

A()の戻り値がtrueだったらB()を呼んで、B()の戻り値がtrueだったらC()を呼ぶ、
というような場合は
if (A() && B()) C();

C由来の構文を持ってる言語はほとんどそうなんじゃないかな。
0221デフォルトの名無しさんNGNG
>>212
マルチポストはやめたまへ
0222デフォルトの名無しさんNGNG
>>220
いやそれは誰でも知ってる・・・というか C# でもそれは && の定義だから当然だとして、
マルチポストの >>212 は bool a=b=true と(たぶん)単純変数のケースを指定してきてるわけじゃないか。
つまり「どっちでもよさげな場合はどっちにしてる?」という、単なるアンケートかと。
0223デフォルトの名無しさんNGNG
>>220
自分は余計なバグ増やしたくないんでそういう記述絶対にしないんだが。
0224デフォルトの名無しさんNGNG
俺も&&||を短絡のために使うことはないな・・・。
本当に右オペランドを評価して欲しくないならifの入れ子にする。
0225デフォルトの名無しさんNGNG
あ、でも
if ( s==null || s.Length==0 )
とかは普通にやってるな・・・orz
0226220NGNG
そ、そうか? 俺おかしい?
こういうC時代からの癖は、もはや時代遅れなのかな…… orz
0227デフォルトの名無しさんNGNG
今はあんまり使わない技法だねぇ
素直に&& || 使っちゃうな
0228デフォルトの名無しさんNGNG
いやおかしくはないんだけど、うっかり評価関数の順番入れ替えたりとかうかつなことしそう。
0229デフォルトの名無しさんNGNG
&では違うが、ififも&&もILは全く一緒になるんだからそこまでこだわらなくてもイイのでは?
保守性って言ってもそんな大掛かりな変更が必要になる場面じゃないんだし、
ミスが減る減らないはそんな構文の違いより個人個人の癖の方が大きいんじゃないかな。
0230デフォルトの名無しさんNGNG
&と|は列挙型の合成分離にしか使わない。
0231220NGNG
そうだねえ。普段から書き慣れてるスタイルが一番ミスが少ないわな。
短絡って言っても、せいぜい
if (args.Length > 0 && args[0] == "xxx") {} とか
if (aaa.ShowDialog() == DialogResult.OK && xxx()) {} 程度のことしかやってないし、
気にするほどでもないな。
0232デフォルトの名無しさんNGNG
>>229
そのとおり。全ては>>216のアフォさが原因の茶番でしたというわけで、



糸冬
0233デフォルトの名無しさんNGNG
>>231
いや下のほうはどうかと思うぞ。
Cでも普通そういうことしないだろ。
Perlでは当たり前にやるみたいだが。
0234デフォルトの名無しさんNGNG
Perlは xxx or die と書きたいだけ
0235デフォルトの名無しさんNGNG
iif ( hoge != null && hoge.Visible )とかわりとよく使う。
漏れは。
0236デフォルトの名無しさんNGNG
俺も短絡評価はいちいち参照のnullチェックでインデント下げたくない時くらいだな
0237デフォルトの名無しさんNGNG
new Hoge(new Hage(new Mage(new Moge(new Hige new Fuga()))));
0238デフォルトの名無しさんNGNG
>>237
>new Hige new Fuga()
プゲラッチョ
0239デフォルトの名無しさんNGNG
C#は、C++でいうところの

if (Derived* pDerived = dynamic_cast<Derived*>(pBase)) {
  ・・・;
}

みたいなコードが一文&&余計なスコープ無しで書けないのが自分ではかなりぎこちない。
0240デフォルトの名無しさんNGNG
C言語の時代じゃないんだから
ややトリッキーな書き方は止めるべきだね。
可読性が大事。
そんなオレはスクリプト言語は使えませんw
0241デフォルトの名無しさんNGNG
Pytho はいいぞ。可読性もばっちり。
0242デフォルトの名無しさんNGNG
>>220
短絡評価ってやり始めると凄い見通しがいいんだよな、&&はやるのは考え物なので専用の演算子が欲しい所。
0243デフォルトの名無しさんNGNG
しかし短絡評価とそうでない評価の両方が使い分けられるのは便利だな。
0244デフォルトの名無しさんNGNG
>>239
あーそれはあるなあ。
C#でそれをやろうとすると、

Derived derived = base as Derived;
if (derived != null) { ・・・; }

とか

if (base is Derived) { Derived derived = base as Derived; ・・・: } // 効率悪い

とか異様に長ったらしくなるんだよね、、、
0245デフォルトの名無しさんNGNG
GraphicsのDrawImage()メソッドで描写したイメージを
消したいのですが、DeleteImageメソッドみたいな物はありませんでしょうか?

g.DrawImage()
↓
g.DeleteImage()

よろしくお願い致します。
0246デフォルトの名無しさんNGNG
Drawする前の状態に戻したいという意味なら、そんなものはない。
0247デフォルトの名無しさんNGNG
>>245
「消したい」が何を言ってるのかさっぱり分からんが、
ある色で塗りつぶしたいんならClearとかFillRectangle、
イメージオブジェクトを破棄したいんならimage.Dispose(); image = null;でいいんじゃないの
0248デフォルトの名無しさんNGNG
>DeleteImageメソッドみたいな物はありませんでしょうか?

その「DeleteImageメソッド」とやらが一体何者なのか何の説明もなく、
いきなり「DeleteImageメソッドみたいなもの」とか言われても答えようがないんだが。
0249245NGNG
>>247
deleteみたいなメソッドは無いみたいですね。
結局disposeで消し(オブジェクトごと)ました。

ありがとうございました。
0250デフォルトの名無しさんNGNG
もうちょっと詳しく書いておくと、bool型の値を返すメソッド A() と B() があるとして、

A()とB()を両方呼んで、どちらかの戻り値がtrueだったらC()を呼ぶ、と言うような場合は、
if (A() | B()) C();

A()の戻り値がtrueだったらB()を呼んで、B()の戻り値がtrueだったらC()を呼ぶ、
というような場合は
if (A() || B()) C();
0251デフォルトの名無しさんNGNG
その両者を使い分けているコードはすっきりはするだろうが可読性はかなり下がりそうだな。
0252デフォルトの名無しさんNGNG
何かの言語で and と andalso というのがあったような。
あと、or と orelse だったかな。
0253デフォルトの名無しさんNGNG
C/C++からC#に移ってきたマーはすっかり短絡評価に慣れきっているので
全評価をするDelphiのような論理結合は必要性を感じなくなっている。

逆に言うとDelphianに受けがいいように両方用意したのかもな。
0254デフォルトの名無しさんNGNG
>>253
あり?Delphiは
if (A() || B()) C();
こっちのスタイルじゃなかったか?
VB6は全評価のみだったかな。
0255デフォルトの名無しさんNGNG
>>250
if(A()||B())C();
と
if(A())
if(B())
C()
之で速度にどれほど差があるの・・・可読性と保守では圧倒的に後者だと思うんだけど
0256デフォルトの名無しさんNGNG
伝統的にPascalの流れを汲む言語は完全評価だが、Object Pascalは
例外的に短絡評価をベースとする。完全評価には{$B+}指令が必要。

C#は両方の評価方式を取り入れてしまったためにスカラ型を暗黙のうちに
ブール型に変換する事ができなくなってしまった。

そのためCやC++のように

if (a) .... のような構文は a が bool型の時しか使えなくなった。
0257デフォルトの名無しさんNGNG
>>256
ダウト。単に型変換を厳しくしたからだろ。
0258デフォルトの名無しさんNGNG
>>255
その二つは、速度以前に動作が違う。
0259デフォルトの名無しさんNGNG
そもそも250の解説が間違ってるな。
0260デフォルトの名無しさんNGNG
なんで完全評価だとスカラ型を暗黙のうちにブール型に変換できないのかわからん。
0261255NGNG
>>258
スマン、>>250を基に書いてみた。&&か。
いずれしろこんなコード(゚�听)イラネ
0262デフォルトの名無しさんNGNG
>>259
書いてる本人が間違うぐらい読みづらい表記ってことだな。
0263デフォルトの名無しさんNGNG
いかにバグのないコードを書くのが難しいかよくわかりました。
0264デフォルトの名無しさんNGNG
へんに凝らずに素直に書けばいいのさ
0265デフォルトの名無しさんNGNG
ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200310/03100086.txt
これと同じことをC#でやりたいんだけど・・・
だれか再現できる人いない?
0266デフォルトの名無しさんNGNG
.NET 2.0ならListViewもオーナードローできるようになってるんだけどねー。
0267デフォルトの名無しさんNGNG
>>265
探せばたくさん見つかるけど?
0268デフォルトの名無しさんNGNG
C#で2chのトリップ解析する方法教えて下さい
2ch の cript 関数は 56bitDES です。

できるかどうかだけでも教えて下さい
0269デフォルトの名無しさんNGNG
die( sprintf "usage: %s <tripkey>\n", __FILE__ ) unless @ARGV;
my $tripkey = $ARGV[0];
my $salt = substr substr( $tripkey, 1, 2 ) . "H.", 0, 2;
$salt =~ tr{:;<=>?\@[\\]^_`}{ABCDEFGabcdef};
$salt =~ s{[^./0-9A-Za-z]}{.}g;
my $trip = substr crypt( $tripkey, $salt ), -10;
printf "◆%s", $trip;

このperlをC#に変換してください
0270デフォルトの名無しさんNGNG
死んでください
0271デフォルトの名無しさんNGNG
っていうか






























死ねよ >>268-269
0272デフォルトの名無しさんNGNG
こんなことで死ななきゃならないのか世の中きびしいな
0273268NGNG
cryptの関数がないんですよ。C#には・・
おしえて
0274デフォルトの名無しさんNGNG
2次元少女のエロ画像もってきたら
教えてやるよ
0275268NGNG
>>274
こんなのしかなかったですが、よろしくおねがいします
http://vladimir.ddo.jp:8888/cgi-bin/futaba/src/1101125474819.jpg
0276デフォルトの名無しさんNGNG
System.Security.Cryptography 名前空間の
DES クラスだ。
.NETのリファレンスもってるなら調べられるだろ

Cryptographyってのは暗号のことだ
0277268NGNG
>>276
ありがとうございます。がんばります
0278デフォルトの名無しさんNGNG
エロ画像本当にもってくる268に敬礼しとこう。
0279デフォルトの名無しさんNGNG
それで即答してる>>276も男らしいな。
0280デフォルトの名無しさんNGNG
C#でImageMagickを使うことってできますか?
ファイルでなくメモリでデータの受け渡しをしたいです。
0281デフォルトの名無しさんNGNG
True って1?
0282デフォルトの名無しさんNGNG
trueはtrueですが何か。
0283デフォルトの名無しさんNGNG
richTextboxに何も入力させない用にするにはどうしたらいいのですか?
Enableはtrueでお願いします。
0284デフォルトの名無しさんNGNG
プロパティ一覧ぐらい目を通そうや。
0285283NGNG
あとEnterとDeleteとBackSpaceも入力不可にしたいです。
0286283NGNG
自己解決しました
0287デフォルトの名無しさんNGNG
配列の中に文字列が入っており、
全ての文字列の後ろから、半角数字部分を摘出し、
その半角数字部分でソートをしたいのですが、
どの様な関数を用いるべきでしょうか?
 
例
[ABC012][ZZ101][Z99][A23][B11]
これを
[B11][ABC012][A23][Z99][ZZ101]
にする。
0288山田NGNG

StreamReaderを使用してファイルを読み込む処理を行っています。

----------------------------------------------------
StreamReader sr = new StreamReader( "test.txt", System.Text.Encoding.GetEncoding( "SHIFT-JIS" ));
string input;
string sql;
while(( input = sr.ReadLine()) != null )
{
sql += input + "\r\n";
}
sr.Close();

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

1回目の呼び出しは、正常に行われるのですが、2回目以降呼び出すと
「プロセスはファイル "***" にアクセスできません。このファイルは別のプロセスが使用中です。」
というエラーメッセージが表示されます。
※読み込み対象ファイルは、1回目と2回目以降、異なります。

ストリームをクローズしているのに?どうしてこのようなエラーが・・・。
ご存じの方、いらっしゃいましたら、ご教授願います。
0289デフォルトの名無しさんNGNG
>>288
>  ※読み込み対象ファイルは、1回目と2回目以降、異なります。

読み込むファイルが違うなら、このストリームをCloseしてるかどうかは関係ないと思うんだが。
その2回目以降に読み込むファイルがなんらかでロックされてるんだろ。
0290山田NGNG
>>289
早速のご回答ありがとうございます。
そうですね・・。ファイルが異なるので関係ないとは思います。すいません。
2回目以降に読み取るファイルを、別プロセスが何か行っていることは
あり得ない状況です。デバック上だと、このエラーは再現しません。



0291デフォルトの名無しさんNGNG
>>288
よくわかんないけど「非コンソールアプリを .bat ファイルや .cmd ファイルから連続して
呼び出していて、アプリが実行を終了しない間にどんどん次のを起動している」に1ぺリカ。
0292デフォルトの名無しさんNGNG
>>288
そのプログラムを試しに実行してみたらバグがあったとかで……
二個目のファイルを読み取った時点で異常停止していたりして

で、そのプロセスが何時までも居座り続けてるとか
0293デフォルトの名無しさんNGNG
>>288
この sql += input + "\r\n"; って重い処理だから、
StringBuilder sb = new StringBuilder;
...
sb.AppendFormat("{0}{1}", input, System.Environment.NewLine);
とかにしたほうがいいと思います。
なんかの事情で数千行のファイルを処理したりするときになってくると効いてくると思う。

あと、ここで例外をキャッチしないで「プロセスは・・・」っていうメッセージが出てるくらいだから、
どこか他に中途半端なキャッチし忘れがあってファイルを開きっぱなしにしている可能性も考慮してみては?
0294デフォルトの名無しさんNGNG
>>287
[ABC012][ZZ101][Z99][A23][B11]
を
(0, 012) (1, 101) (2, 99) (3, 23) (4, 11)
という具合に元々のインデックスと数値の対と見なして数値でソート
(4, 11) (0, 012) (3, 23) (2, 99) (1, 101)
そしてインデックスを見て配列組み直し
[B11][ABC012][A23][Z99][ZZ101]
とかやるんですかね。
インデックスと数値の対をクラスにして IComparable を実装すればいい感じがしそうです。
0295デフォルトの名無しさんNGNG
>>280
ImageMagickに限らず、メモリ領域のポインタを引数にとるアンマネージド関数の呼び出しは
こんな風に行える。

// マネージドメモリを確保
byte[] buf = new byte[1024];

// マネージドメモリを固定し、アンマネージド関数から参照できるようにする
// ガベージコレクタの対象からも外れる
GCHandle hGC = GCHandle.Alloc(buf, GCHandleType.Pinned);

// buf のポインタを取得
IntPtr lpBuf = hGC.AddrOfPinnedObject();

// この辺でAPI呼び出し

// メモリの固定を解く
hGC.Free();
0296268NGNG
>>269
これは、何枚画像持ってくればやってもらえますか?


余談ですが、レジストリが狂ってしまって
VB6のアイコンがVS.NETに変わってた・・・
レジストリもスワップされたみたいで、起動してもまともに動かない
AD-AWAREのせいかな・・・
再インストール時間かかるんだよなぁ・・
0297デフォルトの名無しさんNGNG
>>296
せめて、できない個所だけにまとめようよ。
0298デフォルトの名無しさんNGNG
ネタじゃなくて本気の質問というところに驚きを禁じえない
0299デフォルトの名無しさんNGNG
TreeView オーナードローして、カラフルなTextを表示するヒントください。
そろそろ、System.Windows.Form等のdll解析するのめんどくなってき
たので助けてください。
0300デフォルトの名無しさんNGNG
>>298
300GET
0301デフォルトの名無しさんNGNG
>>296
そうだな・・・
5枚あればやってやらんこともない。
ただ今度は糞画像は却下。
直エロじゃなくて微エロでよろ
0302デフォルトの名無しさんNGNG
>>287
正規表現使うと楽かも

public class MyComparer : System.Collections.IComparer {
public MyComparer() {

}

#region IComparer メンバ

public int Compare(object x, object y) {
string a = (string)x;
string b = (string)y;

//正規表現で末尾の数字を取得
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("(?<num>\\d*)$");
int numA = int.Parse(regex.Match(a).Groups["num"].Value);
int numB = int.Parse(regex.Match(b).Groups["num"].Value);

return numA - numB;
}

#endregion
}

という風にIComparerの実装を作っておいて

string[] ary = new string[] { "ABC012", "ZZ101", "Z99", "A23", "B11" };
Array.Sort(ary, new MyComparer());
0303デフォルトの名無しさんNGNG
>>302
件数が少ないときはシンプルでよいかも・・・
0304山田NGNG
288です。
皆さん、色々ご回答下さいまして、有り難うございます。

ファイル変更監視のWindowsサービスを作成して、サービス開始
処理内容は、特定にディレクトリにファイルが吐かれたことをキャッチして、通知メールを送ります。
そのファイルの内容を読み込む・・というメソッドの中で、このエラーは起きてます。

>>291
2つめのファイル以降、全部エラーになっているので、次々呼び出したから・・と
いう訳ではなさそうです。

>>292
デバック上だとエラーが出ませんので、バグではないと思います。

>>293
有り難うございます。早速書き換えます。
と、例外はキャッチしてます。言い忘れてました。すいません。
例外キャッチ後、その例外エラーメッセージをイベントログに書き込んでいます。
そのイベントログを見て、「プロセス・・」エラーが出ていることが分かりました。
0305デフォルトの名無しさんNGNG
>>304
・・・・・・他のプロセスが作成したファイルをすぐに開くと、先方の
プロセスが開いているので開けません。
0306デフォルトの名無しさんNGNG
> ファイルが吐かれたことをキャッチして
> そのファイルの内容を読み込む

まだ吐いてる途中じゃねーの?
0307山田NGNG
>>305

単体テストとして、ファイルを吐くシステムは別物なので
あらかじめ作成しておいたテキストファイルを、コピーして特定のディレクトリに貼り付けてるんです。(手作業)
1つ目のファイルも、2つ目のファイルも、同じようにコピペでテストしているのに
どうして2つ目以降は怒られるのでしょうか?

>>306
手作業で貼り付けている段階で、起こっている現象ですので
あり得ないと思います。
0308山田NGNG
なんか僕が質問してばかりですいません。
関係ないのかも知れませんが、ファイルが別プロセスで起動中だろうが
関係ない、非排他でファイルを読み込むメソッドを
ご存じの方がいらっしゃいましたら、教えて下さい。
エロ画像は持っていないのですが・・。
0309デフォルトの名無しさんNGNG
質問です。
PanelにコントロールをAddしたりRemoveしたりするところで、
System.Windows.Forms.dllでWin32Exceptionが発生します。
毎回発生するわけではなく、原因がつかめません。
対策や回避方法について、なにか情報をお持ちの方は教えて
いただけないでしょうか?
0310309NGNG
自己解決したかもしれません。
RemoveしたコントロールをDisposeしていませんでした。
0311280NGNG
>295
返事ありがとうございます。
Cを呼ぶのはAPI覚えるのと作るのが大変なのでできればどなたかラッパーしたのが使いたいです。
標準でWindows OLE版があるらしいので.netで使ってみたのですが出力結果が取得できませんでした。
http://www.imagemagick.org/www/ImageMagickObject.html
作ってみたソース
MagickImageClass magic = new MagickImageClass();
object[] list = new object[2];
object[] inlist = new object[2];
byte[] buf;
using (FileStream stream = new FileStream(@"C:\test\image\test.png", FileMode.Open))
{
buf = new byte[stream.Length];
stream.Read(buf, 0, (int) stream.Length);
}
inlist[0] = "png";
inlist[1] = buf;
list[0] = inlist;
object[] outlist = new object[2];
outlist[0] = "jpeg";
list[1] = outlist;
object msg = magic.Convert(ref list);
MessageBox.Show(""+msg);
byte[] outbuf = (byte[]) ((object[])list[1])[1];
if (outbuf == null)
{
MessageBox.Show("null");
}
using (FileStream stream = new FileStream(@"C:\test\image\test_out_magick.jpg", FileMode.Create))
{
stream.Write(outbuf, 0, (int) outbuf.Length);
}
0312デフォルトの名無しさんNGNG
Access.Application l_AccessApp = new Access.ApplicationClass();

のようにして、Accessを制御しようとしていますが、ユーザーに
Accessをされてしまうと、次にl_AccessAppにアクセスする時に
当然ながら例外となってしまいます。
そこで、事前にl_AccessAppが有効か無効かをチェックしたい
のですが、どうやったらいいのでしょうか?
手持ちのMSDNを検索していますが、探し方がヘタで見つかって
いません。
0313デフォルトの名無しさんNGNG
>>山田
ネタかもしれないけど、一応レスしときます。
>1つ目のファイルも、2つ目のファイルも、同じようにコピペでテストしているのに
>どうして2つ目以降は怒られるのでしょうか?

様々な理由が考えられます。ファイルシステムに変更が加えられてから通知されるまでの
タイムラグに違いが出てきているのかもしれませんし、1つ目のファイルが小さくてあなたの
プログラムがOpenしようとする以前にコピーが完了しているのかも知れません。

>手作業で貼り付けている段階で、起こっている現象ですので
>あり得ないと思います。
「手作業での張り付け」っていっても、ウィンドウズのエクスプローラーが「ファイルを作成」して
「内容をコピー」してるわけですよね。エクスプローラーがクローズする前に開こうとすれば
失敗する可能性があります。

>ファイルが別プロセスで起動中だろうが関係ない、非排他でファイルを読み込むメソッドを
簡単な方法はありません。Win32APIをフックして、先方のプロセスがAPIに渡しているパラメータを
変更するのが一番簡単でしょうけれども・・・
0314デフォルトの名無しさんNGNG
>>312
漏れはCOMとか全く知らないけど、『なぜかAccess.Applicationは(EXCEL等と違って)Quitイベントが
取れないから、「読み込み解除時」か「閉じる」イベントとかで代用汁!』みたいなのを見かけたことが
あるな・・・

自アプリ的には発生起因も無いのにそれらイベントが発生したら、ユーザが閉じたと判断するわけです。
0315山田NGNG
>>313
ファイルを読み込む前に、sleepを入れたら、正常に動作しました。
おっしゃる通りだったと思います。
1回目だけ、なぜ上手くいけたのかは分かりかねますが・・。

下手なやり方ですが、ファイルをオープンさせて
IOの例外がキャッチされたら、Sleep、そして再度オープン、という
よくない方法で回避したいと思います。
0316デフォルトの名無しさんNGNG
パネルコントロールとピクチャボックスの違いについて質問です。

ワーカスレッドで作成したビットマップを、
コントロールのPaintイベント内でDrawImage()して表示しているのですが、
パネルで行うとちらつきが激しいです。
DrawImageなら、描画途中のグラフィックは表示されないのではないでしょうか?
バッファリングの方法としてこのような形式が紹介されていたのですが

ちなみにピクチャボックスで同じ処理を行えばちらつきはありません。


素直にピクチャボックスにすればよいのですが、
CPUの負担を少しでも減らすためにパネルにしたいのです。

どうか知恵をお貸しください。
0317デフォルトの名無しさんNGNG
>>316
まず、PanelなりUserControlなりから派生しないかぎり無理。

派生クラスで、
this.SetStyle(ControlStyles.DoubleBuffer| ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);

OnPaintBackgroundをオーバーライドし、中身を空にする。

ていうか、検索すれば腐るほど資料は見つかるんだが・・・?
0318デフォルトの名無しさんNGNG
>>317
ありがとうございます。
調べが不十分で申し訳ありません。

つまりダブルバッファリングをスタイルとしておかないと駄目だということですよね。
ところでControlStyles.DoubleBufferとはどのような処理を行っているのでしょうか?
DrawImage()でちらつくのがどうしても理解できないのです。
0319318NGNG
大変申し訳ないです。
すでにご回答頂いていたようです。
重ね重ねスミマセン。
0320デフォルトの名無しさんNGNG
>すでにご回答頂いていたようです。

どの問題についてどの「ご回答」のことを言ってるんだか分からない。
解決したのなら、他の人が見ても分かるようにしっかり書け。
0321デフォルトの名無しさんNGNG
ListViewやTreeViewなど現状オーナードローできないViewについては
WndProcをoverrideするしかないのは理解できたのですが、
具体的にWndProcを使って表示する文字色や大きさなどを変更するためには
どのように書けばいいのでしょうか?
0322デフォルトの名無しさんNGNG
ケツだけ星人〜
0323デフォルトの名無しさんNGNG
C#でプログラミングする時のバイブルみたいな本って何でしたっけ?
0324デフォルトの名無しさんNGNG
>>323
http://books.rakuten.co.jp/RBOOKS/NS/CSfLastGenGoodsPage_001.jsp?GOODS_NO=1463194
http://books.rakuten.co.jp/RBOOKS/0001463203/
0325デフォルトの名無しさんNGNG
using System.Threading;
using System.Windows.Forms;

namespace Mut {
  class Mut {
    public static void Main() {
      Mutex mutex = new Mutex(false, "むーてっくす");
      if (!mutex.WaitOne(0, false)) {
        MessageBox.Show("二重起動のようです");
        Application.Exit();
      }
      MessageBox.Show("mutex");
    }
  }
}

と多重起動回避をさせようとしています。2つ目以降のプロセスで
"二重起動のようです"というメッセージボックスは表示されるんですが、
Application.Exit()がうまく動作せず次の"mutex"というメッセージボックスも
表示されてしまいます。使用コンパイラは
Microsoft(R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft(R) .NET Framework version 1.1.4322
です。コードはネット上で見つけたサンプルのほぼ丸コピーなので動くはずなんですが・・・。
GC.KeepAlive(mutex);を追加してガベージコレクションから外しても動作しませんでした。
どのように修正すればきちんと終了するようになるのでしょうか?よろしくお願いします。
0326デフォルトの名無しさんNGNG
>>325
メッセージループ(Application.Runで始まるループ)もないのにApplication.Exitしても意味ない。
Mainをそのままreturnで終了したまい。
0327325NGNG
また、もっと単純に
using System.Threading;
using System.Windows.Forms;

namespace WExit {
  class WExit {
    public static void Main() {
      Application.Exit();
      MessageBox.Show("表示されないはずですが表示されてます");
    }
  }
}
とやってもメッセージボックスが表示されてしまうので、問題はApplication.Exit()周りに
あるものだと考えています。MSDNによるとApplication.Exit()は
> このメソッドは全スレッドで実行中のメッセージ ループをすべて停止し、アプリケーションのウィンドウをすべて閉じます。
> このメソッドによって、アプリケーションが強制的に終了されることはありません。
とのことですので、アプリケーションを途中終了させるためには別のメソッドを利用するのでしょうか?
0328325NGNG
>>326
素早い返答をありがとうございます。試したところうまくいきました。
0329デフォルトの名無しさんNGNG
>>アプリケーションが強制的に終了されることはありません。
ちゃんとこのようになってますが・・・
あなたの言う動作をしたければ、自分を含むすべてのスレッドをKILLしたほうがいいと思います。
0330デフォルトの名無しさんNGNG
>>327
Application.Exit() が説明の通りに「実行中のメッセージ ループをすべて停止し、
アプリケーションのウィンドウをすべて閉じ」た後で、
MessageBox を呼び出しているからメッセージボックスが表示されるのです。

アプリケーションを綺麗に途中終了する方法はありません。
強制終了させるのであれば、Process.GetCurrentProcess().Kill() で出来ますが、
正常な終了処理は行われないので全くお勧めしません。
Application.Run() 実行後であれば、Application.Exit() でほうっておく、
それ以前であれば Main から単にリターンする、というのが妥当な方法です。
0331325NGNG
>>329,330
アドバイスありがとうございます。

実は最初のうちはApplication.Run(new Hoge())で呼ばれるコンストラクタ内で
Mutex判定を行い、Application.Exit()していました。Cのexit()の感覚で使ったのが
間違いのもとのようです。
0332デフォルトの名無しさんNGNG
>>331
Cのexit()に相当するのはEnvironment.Exit()あたりだと思う。
0333デフォルトの名無しさんNGNG
ICMPメッセージの送受信のサンプルって無いですか?
0334デフォルトの名無しさんNGNG
Pingのサンプルなら宇宙仮面にあったな。
0335デフォルトの名無しさんNGNG
>>333
http://www.amazon.co.jp/exec/obidos/ASIN/4274065847/
http://www.amazon.co.jp/exec/obidos/ASIN/4274064247/
0336デフォルトの名無しさんNGNG
アマゾンのURLなんか貼るなやクズが。
わからんならレスしなくていいよ
0337デフォルトの名無しさんNGNG
>>333
http://www.codeproject.com/csharp/trace.asp
0338デフォルトの名無しさんNGNG
宇宙仮面ってサイト自体が妙にCPUリソース食う作りになってるよな
0339デフォルトの名無しさんNGNG
視力も浪費します
0340デフォルトの名無しさんNGNG
なぜか太字だし背景ウザイからな。
0341デフォルトの名無しさんNGNG
Microsoft.DirectX.AudioVideoPlaybackというのを使って
メディアプレーヤーを作ろうと思ってます。
ファイルを開くときに、
Audioクラスと、Videoクラスのどちらを生成すれば良いか?
というのは、まず、Videoクラスでインスタンス作成をtryして、
ダメならcatchしてAudioクラスで開く。
というようなアプローチでよいのでしょうか?

あと、早送りとかはどのように実装すればよいのでしょうか?
早送りボタンを作って、ボタン押しっぱなしかどうかチェックして、
押しっぱなしの間はずっと早送りをし続ける。
というのをやりたいと思ってるのですが、
押しっぱなしかどうかチェックする術がわかりません。。

シンプルな、audio,video両対応プレーヤーの
サンプルなんか知ってましたら英語でもかまわないので
教えてもらえるとうれしいです。
お願いしますm(_ _)m
0342デフォルトの名無しさんNGNG
読込はそれで良いんじゃない?
拡張子でまず区分する手もあるけど。

ボタンのおしっぱなしはMouseDownとMouseUpで。

AudioVideoPlaybackはいまいち使われてないんだよね。
MDXのサンプルの中にAVP使ったプレイヤーのサンプルもあったはず。
0343341NGNG
>>342
どうもありがとうございます!
AVPサンプルとはこれですね!
http://www.microsoft.com/japan/msdn/directx/japan/dx9/AVCS.asp
しかし、これもVideoしか考慮してないようなのです。。

早送りは、押しっぱなし判定用共有変数 を持たせて、
MouseDownとMouseUpで変数をいじって、
MouseClickでおしっぱ変数がtrueの間、
Click{
while(osippa)
{
CurrentPosition += 1;
}
}
とやってみたのですが、
Down->Click(whileループ)で、
Upが呼ばれない!てことになってしまいました;;
(やってみて当たり前のことなのか、と気づきました。。)
スレッド処理とかで、早送り処理はやらせるべきなんでしょうか?
(予想以上に大事になってきてしまいました・・)

ボタンはToolBar上に配置しています。
0344デフォルトの名無しさんNGNG
押しっぱフラグの判定をMouseClickイベントハンドラでやるからだめなんだということはわかったわけね。
じゃあどうすればいいのかといえば、
・マウスボタンと関係ない
・定期的に実行される
場所でやればいいわけだ。

それを満たすためには、ざっと以下の方法が考えられる。
1.監視用のスレッドを作る。
2.TimerのTickイベントをつかう。
3.WndProcメソッドをオーバーライドする。

俺がやるとすれば3を選ぶ。一番シンプルだから。
0345デフォルトの名無しさんNGNG
安易にWndProcをオーバーライドするのは同意しかねるな。
私ならTimerを使う。直感的だから。
0346344NGNG
確かに、どうしてもメッセージを処理しなきゃならない時以外にWndProcをオーバーライドするのはよろしくないな。
ましてや、初心者のうちから変な習慣をつけちゃダメだ。

>>344 のラスト1行は撤回する。
0347デフォルトの名無しさんNGNG
ある変数の型を別の型へキャストできるかどうか、というメソッドってなんでしたか?
0348デフォルトの名無しさんNGNG
>>347
is, as の2個の演算子を調べろ
0349341NGNG
>>344-345
ありがとうございます!
petzold本にちょうどTickを使った例が載っていたので(p689)
それ使ってやってみようと思います。

しかし、また問題が出てきてしまったのですが、
早送りするなら、ボタンが押されたときに発動しなければならないので、
(よってClickイベントだとダメ!)
Downイベントを使おうと思ったのですが、
ツールバーに乗せたボタン(ToolBarButton)の場合、
各々のボタンにイベントがない為
ツールバーのDownイベントを使うしかないと思ったのですが、
ツールバーのDownイベントだと 押されたボタンが取得できません;;
(Clickイベントだったら取得できるのに。。)

この場合は自分でpanel用意して、
Buttonをペタペタ貼り付けるしかないでしょうか?
0350デフォルトの名無しさんNGNG
>>348
メソッドっていってるのに演算子を答えてる。もうだめぽ。
ちなみにMSILでは、isinst。実際にキャストするのは、castclass。

>>347
Type.IsAssignableFrom。ただし結構重い。
0351348NGNG
>>350
347 は初心者以上だったのか。すまん。
0352デフォルトの名無しさんNGNG
うえーん、IPを実装したいけどよくわかんないよ〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ∧_∧
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)
0353デフォルトの名無しさんNGNG
x86アセンブラの本を読め
0354デフォルトの名無しさんNGNG
richtextboxで指定した行へ飛ばすにはどうしたらいいのですか?
sendmessageでVBの時やってたのですが全然解りません。
0355デフォルトの名無しさんNGNG
配列の中に、同じものが入っていたら削除したいのですが
{98,98,100,80,80,100,50}
を並べ替えて、
{50,80,80,98,98,100,100}
のようにして、最後に
{50,80,98,100}または、
{50,80,98,100,0,0}
を作成する方法をよろしくお願いします。
0356デフォルトの名無しさんNGNG
>>355
で、その行程のどれが分からないの?
0357デフォルトの名無しさんNGNG
クラスの継承・インターフェイスを学んでいて不思議に思ったので質問します。

C#ではinterface内でクラス内変数を宣言することは推奨されないのでしょうか?
どこのサンプルを見ても関数定義のみで変数定義をしていないようなんですが。。
0358デフォルトの名無しさんNGNG
やってみりゃわかるがそもそも不可能。
理由はちょっと考えれば分かる。
0359デフォルトの名無しさんNGNG
>>357
なんで自分で試してみないんだ?
0360デフォルトの名無しさんNGNG
>>358
宣言したものが全てpublic abstractになり、後から実装されなければならないから、でしょうか?
0361デフォルトの名無しさんNGNG
interface は、それを実装したクラスと外部との“インターフェイスを”定義するためにある。
そのために必要ないことはできてはいけない。
0362355NGNG
>>356
すみません。誰もいないと思っていました。
最後の同じ要素を削除する部分です。
よろしくお願いします。
0363355NGNG
>>356
すみません。誰もいないと思っていました。
最後の同じ要素を削除する部分です。
よろしくお願いします。
0364デフォルトの名無しさんNGNG
こんなんでどうだ? (Whidbeyだともっとすっきり書けるんだけどねえ)

int[] a = {98,98,100,80,80,100,50};
Array.Sort(a);

int buf = a[0];
int cnt = 1;

for (int i = 1; i < a.Length; i++)
{
  if (a[i] == buf)
    a[i] = int.MaxValue;
  else
  {
    buf = a[i];
    cnt++;
  }
}

Array.Sort(a);

int[] b = new int[cnt];

Array.Copy(a, 0, b, 0, cnt);
0365デフォルトの名無しさんNGNG
Whidbeyだとこんな感じか。

int[] a = { 98, 98, 100, 80, 80, 100, 50 };
Array.Sort(a);

List<int> b = new List<int>();

b.Add(a[0]);
for (int i = 1; i < a.Length; i++)
{
  if (a[i] != a[i - 1])
    b.Add(a[i]);
}

int[] c = b.ToArray();
0366デフォルトの名無しさんNGNG
Whidbey(.net 2.0) でやるなら ttp://www.wintellect.com/powercollections/
にあるPowerCollectionsのOrderedSetを使えばもっとすっきり

int[] a = {98,98,100,80,80,100,50};
OrderedSet<int> set = new OrderedSet<int>();
set.AddAll(a);
int[] b = set.ToArray();
0367最凶VB厨房NGNG
int[] a = {98,98,100,100,80,80,100,50};
Array.Sort(a);
int ptr = 1;
for (int i = 1; i < a.Length; i++)
{
if(a[i-1]!=a[i])
{
a[ptr]=a[i];
ptr++;
}
}
int[] b = new int[ptr];
Array.Copy(a, 0, b, 0, ptr);
c#2002
書いてみますタ。
0368デフォルトの名無しさんNGNG
>>355
は自分でアルゴリズムを描くということをまったく考えなかった予感
0369デフォルトの名無しさんNGNG
人の宿題手伝っちゃだめだよ(´ω`)
0370デフォルトの名無しさんNGNG
.Netのリファレンス読んでるんですが
Socketクラスでパケットキャプチャする仕方がまったくわかりません
簡単な方法を教授お願いします
0371デフォルトの名無しさんNGNG
いくらでもサンプルは転がってる。
ttp://www.google.com/search?num=100&oe=utf8&q=C%23+packet+sniffer
0372368NGNG
ArrayList array = new ArrayList();
int[] a = {98,98,100,100,80,80,100,50};
Array.Sort(a);
foreach(int num in a){
if(!array.Contains(num))array.Add(num);
}
foreach(int num in array){
Console.Write(num + ",");
}
ゴミプログラム作成してすいません。
0373370NGNG
>>371
いやサンプルじゃなくてさ・・
肝の部分をおしえてよ
CodeProjectって認証いるやん
0374デフォルトの名無しさんNGNG
ワード2000上で(例えば)F10を押すと、
自作のVC#AppliであるmyAppli(起動済)のある
メソッドを実行させることってできますか?
DDEとかFindWindowとかSendMessageとかOLEとかActiveXコンポーネントとか
検索したらいろいろあるんですが・・・おながいします
0375デフォルトの名無しさんNGNG
COM呼び出せりゃそ子から。NET呼ぶだけですむんじゃね?
0376374NGNG
>>375
え、え、すみません。
まず何を勉強したらよろしいのでしょうか。
COMとはどのコンポーネントを指すのでしょうか。
0377デフォルトの名無しさんNGNG
#defineのような複数のファイルにまたがって参照できる
定数はC#ではなんですか?
0378374NGNG
定数はclass内でreadonlyで定義しる
0379デフォルトの名無しさんNGNG
>>376
まずどんな構成を考えているかだ。

他のプロセスのキー入力を取得するのは.NETでは不可能。C/C++などでメッセージをフックする必要がある。

グローバルなホットキーならWin32APIを使えば.NETで扱えるが、全てのウィンドウでのキー入力が奪われてしまう。
その代わりWindowsキーを修飾キーに当てる事もできるから、Windows+F10とかの他に害のないキーを使うなら割と手軽に実現できる。

VBAには詳しくないが、そっちの方でキー入力を判断してとかできるならワード上でなんとかできるかもしれない。
その場合起動済みプロセスにメッセージなりなんなりで通信することになる。


>>377
まずC/C++の思考を捨てろと。
オブジェクト指向で物を考えろと。

constかstatic readonlyのフィールドだ。
0380374NGNG
F11なんて、今まで一度も使ったことないので
このボタンなら他のいかなるプロセスとも重複しないから
いいかなと思いました。
Win32APIの具体的にどの関数がよろしいのでしょうか。
FindWindow SendMessage以外にございますか?
0381デフォルトの名無しさんNGNG
>>380
F11はアプリによってはフルスクリーン切り替えボタンになってるから
気を付けたほうがいいよ。
0382375NGNG
>>376
ワードから呼び出せるものが何かわからないけれど、COMで作ったコンポーネント呼び出せるならそのコンポーネントから.NET製のアプリなりコンポーネントなり呼び出すがよい。
0383374NGNG
そのウィンドウ間でのやりとりをする時は、
ワード2000作業中です。
ワード2k内のF11押下→SendMessage(?)→myCSAppli
ですので、他のアプリって関連がないと思うんですけど・・・
(常駐ソフトをのぞく)

Sleipnirはウィンドウサイズ変更でした(今やってみました)
0384デフォルトの名無しさんNGNG
RegisterHotKey UnregisterHotKey GetForegrondWindow
辺りかな。

いや、グローバルホットキーだとあらゆるウィンドウの入力を奪うから、
F11をグローバルホットキーに割り当てると例えばSleipnirのウィンドウサイズ変更も不可能になる。
0385374NGNG
>>382
word(A COM)
_______↓
myApl(B COM)

であり、COMは同一のもの。
ということですか?
0386デフォルトの名無しさんNGNG
このスレはレベルの低い質問は許されますか?
0387374NGNG
グローバルホットキー?
確かにこれを設定すると、
起動中のすべてのソフトにおいて
各々のソフト内で割り当てられた当該キーを無効にしてしまう

んですよね・・・たしか。
0388デフォルトの名無しさんNGNG
>>386
ふらっとC♯(Part5)
http://pc5.2ch.net/test/read.cgi/tech/1065196964/
というのもある。どっちが良いかは自分で判断すれ。

//ネタにマジレス?
0389デフォルトの名無しさんNGNG
word
    ↓ 
ブリッジコンポーネントl(COM)
    ↓ 
YourApl(.NET) 
0390374NGNG
>>389
きたーーーーーーーーーーー!

目もメモ・・・
0391374NGNG
>>389
ブリッジコンポーネントってなんだょぅ・・・(; ;)
DDEみたいなものですか?DDEはCOMじゃないけど(?)

みなさん、やさしいっす・・・(T_T)
0392374NGNG
ホットキー
ttp://www3.ocn.ne.jp/~liquidz/tips/tips_cpp001.htm
ふむふむ・・・・常にほっとなのね・・・
0393374NGNG
ホットキー
ttp://www3.ocn.ne.jp/~liquidz/tips/tips_cpp001.htm
ふむふむ・・・・常にほっとなのね・・・
0394デフォルトの名無しさんNGNG
winmm.dllのマルチメディアタイマがC#でうまく使えません。

timeSetEventにC#のdelegateで渡して
定期的にイベントを発生するようにすると
最初のうちは動くんですが
数秒たつとnull参照の例外をスローして勝手に止まってしまいます。

delegateじゃだめなんでしょうか?
0395デフォルトの名無しさんNGNG
取りあえず10ミリ秒間隔100秒の10000回は問題ないな。
何がnullになってるんだ?
0396デフォルトの名無しさんNGNG
>>364-367 372
ソースコードまで、丁寧にありがとうございます。
 実はもっと配列のサイズが大きいので、速度的にどう書けば良いか
 考えていました。
>>368
夜中に2重投稿するほど考えてました。
 確かにArray.SortCompareRemove()があればいいと思っていましたが。
>>369
単なる趣味でプログラムしているだけです。
0397デフォルトの名無しさんNGNG
速度を気にするのなら重複分を削除よりも
ソートの方が気を使うべきなんじゃ
0398374NGNG
[DllImport("user32.dll", EntryPoint="RegisterHotKey", CallingConvention=CallingConvention.Winapi)]
public static extern int RegisterHotKey(uint hwnd, uint HK_ID, uint MOD_KEY, uint KEY);

こいつでうまくいきやした。
ありあした。
0399デフォルトの名無しさんNGNG
細かいとこだが、返値はBOOLなんだからboolで宣言してやればいいんじゃないかというのと、
ハンドルの類はIntPtrを使うのが一般的であるという点。
いや別にいいんだけどね。
0400デフォルトの名無しさんNGNG
>>397
ここからは自分でソートのアルゴリズムから勉強し直してみます。
0401デフォルトの名無しさんNGNG
でりげーとさきおぶじぇくとをDispose溶かしてる余寒
0402374NGNG
>>399
え、え、そこんとこ、もう少し具体的に
助言お願いします・・・
0403デフォルトの名無しさんNGNG
>>394
まず、どういう形でDllImportしているのかと、コールバックメソッドはどのように
定義されているのか書いてくれ。それを見ないと確かなことは言えないから。

関数ポインタを引数に取るアンマネージド関数にデリゲートを渡すのは問題ない。
ちゃんとデフォルトのマーシャリングが定義されてるから。
詳細はここを読んで。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingcallbackfunctions.asp

コールバックメソッドを持つオブジェクトを破棄しちゃってるとか、そういう理由だと思うけど。
ためしにコールバックメソッドを static にしてみな。
0404デフォルトの名無しさんNGNG
>>402
「ハンドル」というのは要はポインタのことだから、ポインタを表すIntPtr型を使った方がいいってこと。
.NETでポインタを扱うメソッドやプロパティ(Marshalクラスのメソッド群とか、Form.Handleとか)は
ポインタとしてIntPtr型の引数をとるから、いちいち変換する手間がないという利点もある。

もっとも、MSDNのサンプルでウィンドウハンドルにintを使っていたりするので、動作そのものに
支障はないんだけどね。
0405デフォルトの名無しさんNGNG
あとプラットフォームによってポインタのサイズが変わる可能性がある、と言う点もIntPtrにする理由だな。
IntPtrならプラットフォームによるポインタサイズを考慮する必要がない。ということになってる。
0406デフォルトの名無しさんNGNG
Startボタンを押すと時計がスタートする
10分の1秒単位で表示
Lapボタンを押すとstartボタンをおしてからの
経過時間が表示される
STOPボタンを押すと時間がとまる
Resetボタンをおすと0にもどる
closeボタンを押すとフォームをとじる

っていうのでストップウォッチをつくりたいんですけど。。
教えてください。
0407デフォルトの名無しさんNGNG
何を教えればいいのかな。
0408デフォルトの名無しさんNGNG
どのようなソースになるのかが
わからないです・・・(><)
0409デフォルトの名無しさんNGNG
>>408
  ∧∧  バコ  ☆
 ( *・-・)っ―[] /  
[ ̄ ̄ ̄] (><)
0410デフォルトの名無しさんNGNG
ベクターより選んでダウンロードする。
0411デフォルトの名無しさんNGNG
>>408
ここにきくより。
まず、VC#の基礎を紹介しているHPまわったほうがいいよ。
Timer,TextBox,Buttonコントロールはりつけてイベント記述して完成。
0412374NGNG
>>404 405

詳しく書いてくれたもんだから、うれしいじゃねーかよ!!
あんがとな。
ばっちりだぜ。
0413デフォルトの名無しさんNGNG
ファイルを開くときに、そのファイルに対して他のプロセスが排他的なロックを行っているか調べる方法はありますか?
今は例外をキャッチしたら・・・という処理にしているのですが、
出来ればファイルを開く際にロックを調べたいのです。

よろしくお願いします。
0414デフォルトの名無しさんNGNG
IPやTCP, ICMP等のパケットを自分で作りたいんですが、それぞれの関係や、具体的なデータの例を出して解説してるWebサイトってありませんか?
(UDPパケットはIPパケットのデータ部分に含まれてるとか、そういうプロトコル同士の関係とか)
0415デフォルトの名無しさんNGNG
>>414
それは↓のスレで聞いたほうがいい答えを聞けそうな気がする
http://pc5.2ch.net/test/read.cgi/tech/1096187183/
0416デフォルトの名無しさんNGNG
>>415
どうもありがとうございます。
0417 NGNG

インターネット -----(グローバルIP) ルータ(192.168.1.1)------- (192.168.1.10)LAN端末

こんな環境でLAN端末で動いているC#アプリから
グローバルIPを取得する方法知りませんか?

                      

0418デフォルトの名無しさんNGNG
tracert みたいなもんを組むしかないんじゃない?
0419デフォルトの名無しさんNGNG
IPアシストというグローバルアドレス取得ソフトでも結局診断君あたりの情報を使ってるだけだな。
0420417NGNG
レスありがとうございます。
どうやら、外に問いあわせるしかないようですね。
がんばって組んでみます。
0421デフォルトの名無しさんNGNG
なんか、手はあるそうだけど、ルーター選ぶみたい。
手っ取り早いのは外にといあわせですね。
0422デフォルトの名無しさんNGNG
ルータの機種にもよるけど、こんな方法はどうだ?

HTTPなりHTTPSでルータ管理画面(のHTMLソース)を取得し、その中からIPアドレスを抜き出すとかw
0423デフォルトの名無しさんNGNG
>>413
Win32APIつかえ
0424422NGNG
サンプル作ってみた。ルータは Planex BRL-04FWU。

// ルータステータス画面のURI、ユーザ名、パスワード
string uri = @"http://192.168.1.1/status.htm";
string username = "admin";
string password = "password";

try
{
  System.Net.WebClient wc = new System.Net.WebClient();

  wc.Credentials = new System.Net.NetworkCredential(username, password);
  string src = System.Text.Encoding.Default.GetString(wc.DownloadData(uri));

  System.Text.RegularExpressions.Regex rx
    = new System.Text.RegularExpressions.Regex(@"\d+\.\d+\.\d+\.\d+");

  string ipAddr = rx.Matches(src)[0].Captures[0].Value;

  Console.WriteLine("成功しますた。 Global IP Address: {0}", ipAddr);
}
catch
{
  Console.WriteLine("失敗しますた。");
}
0425デフォルトの名無しさんNGNG

たいへん初歩的かもしれませんが、たいへん大事な疑問を持っています。

C#という言語は、米国マイクロソフト社のものだそうですが、
現在、これは同社がどの程度にぎり締めているのでしょうか?

・C#言語で書いたソースコードを作成した場合、それはマイクロソフト社から
 何らかの所有権のような主張を受ける可能性がありますか? 現在何らかの主張
 を受ける可能性と共に、将来に渡って主張を受ける可能性があるのかどうかが問題
 です。

 たとえば、現在はC#言語を使うことについて、マイクロソフト社にお金を支払う
 必要もないし、許可を得る必要もないと示していると思います。ただし、所有権は
 握っていて、ただ単に今はお金も許可もなしで使っていいです、と言っているだけで、
 やがて将来のいつかの時点で、おカネいただきます、とか言い出す可能性があるような
 公開のされかたをしているのでしょうか?

・また、C#言語のソースコードを処理するプログラム。たとえばコンパイラや変換プログラム
 などを作成する際に、上記のような主張をされ得る可能性があるでしょうか。つまり、
 そのようなC#言語の仕様の公開のされかたがなされているでしょうか?

・同様に、C#言語に関する文書や、マイクロソフト社製のソフトやサービスを利用した人が、
 そこからインスピレーションやアイデアを受けて、別の何か面白い物を考え出した場合、
 マイクロソフト社から、それはC#の利用規約上、あなたは我々に従わねばなりません、
 おカネいただきます、とか主張される可能性があるでしょうか? 
 そのような主張がされるような可能性を残すような、公開のされかたをしているでしょうか?


どうぞよろしくお願いします
0426デフォルトの名無しさんNGNG
>>425
http://www.amazon.co.jp/exec/obidos/ASIN/4004305969/249-6849360-6597960
0427デフォルトの名無しさんNGNG
おいおい、C#はEMCAにも標準認定されてる言語だぜ。
0428デフォルトの名無しさんNGNG
>>425
プログラミング言語に著作権は無い
0429デフォルトの名無しさんNGNG
>>425
全部ない。
0430デフォルトの名無しさんNGNG
自分用に使うだけなら、適当なFTPサーバにアクセスしてデータポートを開かない
ままLISTとか投げると大概はエラーコード550に続いて此方のIPを返してくれる。
あとはSMTPサーバにアクセスしてEHLO投げてみるとか?
0431デフォルトの名無しさんNGNG
>>427
CLIの部分をISOにも提出してるっていってたよな。
通ったんだっけ?
0432デフォルトの名無しさんNGNG
動的プロパティって名前はかっこいいけど手動でしか書き換えられないの?(´・ω・`)

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/Vbcon/html/vboriApplicationSettingsInServerComponents.asp
0433デフォルトの名無しさんNGNG
>>432
2.0ではできるようになる。
今はそんな使えないもの使わず自前で。
0434432NGNG
そっか。頑張ってみるよ。ありがとん。
0435デフォルトの名無しさんNGNG
>プログラミング言語に著作権は無い

 ように見せかけているだけ。実際言語とは何か? ライブラリーとは
なにか? そのうちUNI死すみたいに豹変する可能性大。
0436デフォルトの名無しさんNGNG
Re:>435
馬鹿は死ね
0437デフォルトの名無しさんNGNG
>>435
Unisysが持っているのは著作権ではなく「特許」なわけだが。
さらに言うと、その中身は言語でもライブラリでもなく、LZWという「アルゴリズム」。
0438デフォルトの名無しさんNGNG
なぁなぁ、ManagedDirectXの日本語ドキュメントをVSを使わずに見る方法があるはずなんだが、
どうやってやるんだっけ?
0439438NGNG
っつーか.NETのドキュメントすらねぇ('A`)
ドキュメントだけ落とすことはできなかったっけ?SDK丸々落とすの?(´・ω・`)
0440デフォルトの名無しさんNGNG
確かオブジェクト指向という考え方そのものに特許を持っている
企業があって最近大騒ぎになったような…
0441デフォルトの名無しさんNGNG
これか
http://www.itmedia.co.jp/enterprise/articles/0410/05/news016.html
0442438NGNG
アラヤダ
スレを間違えてたよ(´・ω・`)
0443デフォルトの名無しさんNGNG
たしかに豹変は怖いな
0444デフォルトの名無しさんNGNG
この言語って無料ではできないんですか
0445デフォルトの名無しさんNGNG
>>444
SDKは無料。
0446デフォルトの名無しさんNGNG
言語は無料
0447デフォルトの名無しさんNGNG
俺の童貞は無料
0448デフォルトの名無しさんNGNG
無料でも貰い手が無い
0449デフォルトの名無しさんNGNG
(´Д⊂)
0450デフォルトの名無しさんNGNG
(  ̄,_ ̄)プ
0451デフォルトの名無しさんNGNG
どこかにアルゴリズムとか言語とか抜きの無料でかわいい女の子いませんか?
0452デフォルトの名無しさんNGNG
C++様(*´Д`)ハァハァ

……とか言うべき流れなのだろうか。
0453デフォルトの名無しさんNGNG
>>444
.NET Framework自体にコンパイラが含まれてるんで、それだけでも開発はできる
俺はよく仕事に使うツールなんかを作ったりしてるよ。
0454デフォルトの名無しさんNGNG
お世話になります。
tabpageの配列に関しての質問です。

tabpageの配列?を作りたいんですが、
ボタンをクリックする毎に
ひとつのtabControl上に順ににabPage1、tabPage2、tabPage3、・・・
と作られるようにしたいのです。

xをインデックスとして
int x = 1;
void Button1Click(object sender, System.EventArgs e)

{
      System.Windows.Forms.TabControl control = new System.Windows.Forms.TabControl();
      System.Windows.Forms.TabPage page[x] = new System.Windows.Forms.TabPage();
      control.Controls.Add(page[x]);

x++;
}

としてもどうやら文法ミスのようでうまくいきません。
なんででしょうか?
こう書けば出来るよっていう書き方を知ってたら教えてください。
0455454NGNG
ちなみにエラーメッセージです。
構文エラーとか言われてます。

c:\Documents and Settings\yuu\My Documents\SharpDevelop Projects\arraytab\MainForm.cs(107,41): error CS0650: 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。
c:\Documents and Settings\yuu\My Documents\SharpDevelop Projects\arraytab\MainForm.cs(107,45): error CS1002: ; が必要です。
c:\Documents and Settings\yuu\My Documents\SharpDevelop Projects\arraytab\MainForm.cs(107,45): error CS1525: '=' は無効です。
c:\Documents and Settings\yuu\My Documents\SharpDevelop Projects\arraytab\MainForm.cs(107,47): error CS1002: ; が必要です。

ビルド完了 -- 4 エラー, 0 警告

0456デフォルトの名無しさんNGNG
>>454
取りあえず
> System.Windows.Forms.TabPage page[x] = new System.Windows.Forms.TabPage();
みたいな書き方するレベルなら、もっと基礎から学んでいくべきだね。
配列の宣言と代入の仕方から。

> System.Windows.Forms.TabControl control = new System.Windows.Forms.TabControl();
FormとTabControlとTabPageの関係も考えてみる。
何がTabControlで何がTabPageだ?
どのTabControlにどのTabPageを入れるか?
0457某NGNG
ttp://www.iis.u-tokyo.ac.jp/~susaki/c/func2.html
ここの問題なんですが・・・・
全部分かりません(x_x)
どなたかよろしくお願いしますm(_ _)m
丸投げ状態ですが、ちゃんとパソコンの前に座って勉強してます
色々な所に書き込んでます
ご迷惑お掛けしますm(_ _)mコ
0458454NGNG
>>456
ありがとうございます。
いまついうっかり書き写し間違えてしまいまた。

じゃあこんなのはどうでしょうか?
System.Windows.Forms.TabPage[] page = new System.Windows.Forms.TabPage();

配列の要素数を最初っから決めたくないんですが・・。
この気持ち分かってくれますか?
0459デフォルトの名無しさんNGNG
どうでしょうかも何もコンパイルすりゃ分かるだろう。
配列サイズを動的に増加させたいならArrayListでも使ってろという話だ。


ところでなんで基礎を基礎をと言う話は華麗にスルーするんだろうねこういう人たちは。
0460最凶VB厨房NGNG
おまいもかれいにするぅしろぃ
0461454NGNG
答え教えてくれよ。
0462デフォルトの名無しさんNGNG
>>461
ちょっと感動した。
0463デフォルトの名無しさんNGNG
>>461
釣りだというのは承知で言わせてもらうが


お前は死ね!

0464デフォルトの名無しさんNGNG
>>454
つられよう。
タブコントロールボタンクリックするたびにつくってどうする!
タブページをどこに追加してんねん!
そもそも以下略・・
0465デフォルトの名無しさんNGNG
System.Windows.Forms.TabPage tabPage = new System.Windows.Forms.TabPage();
this.tabControl1.TabPages.Add(tabPage);

ちなみに追加の仕方はこうだ。
配列は勉強汁
0466デフォルトの名無しさんNGNG
>>457

C言語のスレにいきなされ。
0467デフォルトの名無しさんNGNG
みんな優しいのね。

>>454だとButton1Clickの度にTabControlが作られるよ。
そうしたいなら話は別だが・・絶対に違うだろ?

0468デフォルトの名無しさんNGNG
[DllImport("Imm32.dll",EntryPoint="ImmEnumRegisterWordA")]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport("IMM32.DLL")]
public static extern Int32 ImmReleaseContext(IntPtr hWnd, IntPtr hIMC);
[DllImport("IMM32.DLL")]
public static extern Int32 ImmSetOpenStatus(IntPtr hIMC, Int32 fMode);
[DllImport("IMM32.DLL")]
public static extern Int32 ImmRegisterWord(IntPtr hKL, String lpszReading, UInt32 dwStyle, String lpszRegister);

[DllImport("User32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("User32.dll")]
public static extern IntPtr GetKeyboardLayout(UInt32 dwLayout);

private const Int32 mc_TRUE = 1;
private const Int32 mc_FALSE = 0;
//public const Int32 IME_REGWORD_STYLE_USER_FIRST = 0x80000000;
public const Int32 IME_REGWORD_STYLE_USER_FIRST = 0x0000;
public const Int32 IME_REGWORD_STYLE_USER_LAST = 0xFFFF;
0469デフォルトの名無しさんNGNG
private void button1_Click(object sender, System.EventArgs e)
{
//辞書ボタン
IntPtr hWnd;
IntPtr hIMC;
IntPtr hKL;
hWnd=GetForegroundWindow();
if(hWnd==IntPtr.Zero)
{
MessageBox.Show("hWnd = "+hWnd.ToString());
}
hIMC=ImmGetContext(hWnd);
if(hIMC==IntPtr.Zero)
{
MessageBox.Show("hIMC = "+hIMC.ToString());
}
hKL=GetKeyboardLayout(0);
if(hKL==IntPtr.Zero)
{
MessageBox.Show("hKL = "+hKL.ToString());
}

if(ImmSetOpenStatus(hIMC,mc_TRUE)==0)
{
MessageBox.Show("ImmSetOpen Failed");
return;
}
MessageBox.Show(hKL.ToString());
ImmRegisterWord(hKL,"へけけ",IME_REGWORD_STYLE_USER_FIRST,"へけっしゅ");

ImmReleaseContext(hWnd,hIMC);
MessageBox.Show("最後まで到達");
0470468NGNG
うわ〜恥ずかしい、hIMCがIntPtr.Zeroになってしまうのを
質問しようとしたら、IMMGetContextになぜかエントリーアホイントが
残ってたじゃないですか・・・すみません。
改めて、エントリーポイント削除して起動したら、無事
hIMCは取得できました。
しかし、
ImmRegisterWord(hKL,"へけけ",IME_REGWORD_STYLE_USER_FIRST,"へけっしゅ");
をしたにも関わらず、単語登録されていません。
ちゃんとReleaseでコンテキストを開放しているんですけど、
プログラム実行後すぐに辞書を確認しても、登録されていません。
だれか、教えてください。まじ、頼む・・・
0471468NGNG
hWnd=GetForeGroundWindow()じゃなくても
hWnd=this.Handle;

でいけそうな予感もしたので、先生方、そこんとこもよろしくです。
まじたのもう。
0472468NGNG
そのほかにも、「おまえアホか」とか
「この文、ナンセンスだよね」とかあったら、
教えてください.
ネット上では、IntPtrの代わりに
longがよく使われているみたいだけど、
longでも代用可能な理由と、どちらを選択すべきか及びその理由も
教えていただけると、僕はなきます。まじで、なく。
0473デフォルトの名無しさんNGNG
取りあえず一般的な事を。

>  hWnd=GetForeGroundWindow()じゃなくても
>  hWnd=this.Handle;
>  でいけそうな予感もしたので、先生方、そこんとこもよろしくです。

thisがフォアグラウンドなフォームなら返ってくる値は同じ。

BOOLはboolで宣言して問題ない。 //対応するマネージ型はInt32になってるけど。
個人的にはconstで宣言するよりenumで纏めるな。 //これはコーディングスタイルの問題だが。それにこの例のように2つだけならconstも真っ当だ。

IntPtrの方が自然。
つうかlongで宣言してる例って見かけないんだけど……。
//VB6はLongが.NETにおけるInt32になるよ。
32bit環境でならIntPtrは32bitとして扱われるのでちょうどInt32と相互に互換性がある。
そのためInt32/UInt32で定義することも珍しくはない。
がしかしInt32にしろInt64にせよポインタサイズを決めうちしてしまうと、
プラットフォーム固定になってしまうから好ましくない。
0474454NGNG
int x = 0;
System.Collections.ArrayList myArrayList = new System.Collections.ArrayList();
   
void Button1Click(object sender, System.EventArgs e)
{
myArrayList.Add(new System.Windows.Forms.TabPage());
tabControl1.Controls.Add((TabPage)myArrayList[x]);
x++;
}

エラーが消えて希望の処理が出来るようになったので
安心して死ねます。みなさんありがとうさようなら・
0475468NGNG
>>473
天使だな、あなた。 とりあえず、うれしいぜ。
DLLインポートの時に、上記すべての宣言時において
EntryPointでエントリポイントを念のためきちんと指定しておきました。
もっともEntryPointの記述なしにハンドルとか取れていたので、
EntryPoint って結局いるのいらないの?
そこんとこも、頼みます(・人・)

あと、
//public const Int32 IME_REGWORD_STYLE_USER_FIRST = 0x80000000;
public const Int32 IME_REGWORD_STYLE_USER_FIRST = 0xA000;
これも。Basic.Netで&H80000000と書いてあったんで
C#.netなら、0x80000000でよいかなと、
で、ちょっと桁が多くておかしいなと。16進法なのに・・・
というわけで、80000000が8進法だと仮定して・・・あれ。
8進法なら7までのはず・・・はぁ僕っておばかさん。
0476468NGNG
>>454
え、何それ、それやるとタブ増えるの? めもめも
0477454NGNG
まだ死ねなかった。

>>474で生成されたTabpageなんだけど
いざ新しく出来たタブに名前をつけようとして

例えば
(TabPage)myArrayList[x].Text = "新しいタブ"

とかやるとエラーが出てくる。どうしてか教えてください。
0478デフォルトの名無しさんNGNG
>>475
EntryPoint の指定は、特に別名を指定したい場合以外は必要ない。
(例えば、static メソッドには必ず sm_ というプレフィックスをつけるというコーディング規約
がある時とかね)

あと、ANSI版(〜A)とUnicode版(〜W)がある関数の場合、あえてAやWを指定せずに、
(例えば、LoadLibraryA とか LoadLibraryW とか書かずに LoadLibrary と書く)
CharSet = CharSet.Auto と指定すると、プラットフォームに応じて適切な方を呼んでくれる
という機能があるので、積極的に利用汁。
0479デフォルトの名無しさんNGNG
>>468-470
[DllImport("imm32.dll")]
public static extern uint ImmGetRegisterWordStyle(IntPtr layout, uint itemMaxCount, [Out] StyleBuffer[] buffer);
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct StyleBuffer {
   public int Style;
   [MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x20)]
   public string Description;
   public override string ToString(){
      return string.Format("StyleID: 0x{0:X8}   品詞: {1}", Style, Description);
   }
}

IntPtr layout = GetKeyboardLayout(0);
uint count = ImmGetRegisterWordStyle(locale, 0, null);
StyleBuffer[] buffers = new StyleBuffer[count];
count = ImmGetRegisterWordStyle(layout, count, buffers);
foreach (StyleBuffer buffer in buffers)
   Console.WriteLine(buffer.ToString());

で品詞とそれに対応するStyle値が手に入る。
例えば名詞が0x80000001だとして、
ImmRegisterWord(layout, "ああ", 0x80000001, "吁嗟");
これだけならコンテキスト取得する必要も無し。

> //public const Int32 IME_REGWORD_STYLE_USER_FIRST = 0x80000000;
基本的に正しい。Int32はその名の通り32bit。4bitで16進数一桁だから32ビットは16進数8桁。丁度だ。
ただ、DWORDに対応するマネージ型はUInt32だからね?
0480468NGNG
はぁ、もうみんなやさしすぎ。
まじうれしいです。
休み時間にゆっくり検討させていたらきます。
0481初心者NGNG
お世話になっています。C#初心者です。
現在、HTTPプロトコル経由で、CGIへ送信メソッドを呼び出すプログラムを作成しています。
POSTメソッドに引き渡すパラメータの中に、「画像ファイルバイナリデータ」があるのですが
一体、どのように渡せばいいのか、検討が付きません。

どなたかご教授下さいますよう、宜しくお願い致します。

-------------------------------------------------------------------
WebRequest webReq = HttpWebRequest.Create( "・・・.cgi" );
wk_webReq.Method = "POST";

Stream stream = webReq.GetRequestStream();
StreamWriter writer = new StreamWriter( stream );

↓↓↓↓↓↓↓↓↓↓ ここの部分が不明です。
string parameter = "key=111&gazou=(画像ファイルバイナリデータ)";
parameter = HttpUtility.UrlEncode( parameter );

writer.Write( parameter );
writer.Close();

WebResponse wk_webRes = wk_webReq.GetResponse();
・・・
0482デフォルトの名無しさんNGNG
>string parameter = "key=111&gazou=(画像ファイルバイナリデータ)";
>parameter = HttpUtility.UrlEncode( parameter );

これだとCGIに渡されるデータは「key%3d111%26gazou%3d(・・・」になるぞ
0483デフォルトの名無しさんNGNG
>>481
そのCGIの仕様を知らないから何とも言えないが、大抵はBase64エンコードを使うんでは無かろうか。
System.Convert.ToBase64Stringメソッド。

POSTするときはContentLengthプロパティの設定も忘れずに。
0484初心者NGNG
>>482
間違えました。パラメータの=右値のみ、UrlEncodeする予定です。

>>483
ありがとうございます!!
僕も、そのCGIの仕様を全く知らないのですが、仕様書にそう
書かれていました。
0485468NGNG
>>478
Char Setね、アイアイサー
0486468NGNG
>>473
まじ、俺、うれしいぜ。
ちょっと恥ずかしいくらい、今うれしいぜ。

>thisがフォアグラウンドなフォームなら返ってくる値は同じ。

らじゃ。フォアグラウンドウィンドウってことは
ようは、Active()なウィンドウってことでオッケーっすよね。

>BOOLはboolで宣言して問題ない。 //対応するマネージ型はInt32に
>なってるけど。

はぅ、まじっすか?確かに小文字にしただけなのでいけそうな気も
していたのですが、BOOLはInt32であって、True or Falseというわけでは
ないから、無理だとばかり思ってました。だって、
Int32をboolに暗黙的に変換できませんでした」なんて言われそうで・・・。
0487468NGNG

>個人的にはconstで宣言するよりenumで纏めるな。
> //これはコーディングスタイルの問題だが。
>それにこの例のように2つだけならconstも真っ当だ。

らじゃ、列挙んとこ、勉強しときます。

>IntPtrの方が自然。
>つうかlongで宣言してる例って見かけないんだけど……。
>//VB6はLongが.NETにおけるInt32になるよ。

VBのLongを、longと近藤さんでした。
IntPtrでがんがんいくぜ! ってか
IntPtrって、C言語でいう
単なるポインタなんでしょ?ってか、単なるアドレス格納庫なんだよね?
(間違ってたら遠慮なく「あほ」とおながいします)
0488468NGNG
>>479
ポイセドン級のレベルですね。
ドラゴンボールでいうなら、デンデでしょうか。
パッパリピ・・・ごっふぉん。

ってか、まじさんくす。
そんなサンプルどこにありました?
僕はかなーり探しましたけど、imm32に関しては
定義くらいしか載っていませんでした・・・
確かにスタイル取得の構造体に関する記述は少しあったけど、
ぜんぜんくわしくなくて、まるで雲をつかむ思いでした。
でも、天使君臨。(>_<)
0489デフォルトの名無しさんNGNG
>>487-488
>  IntPtrって、C言語でいう
>  単なるポインタなんでしょ?ってか、単なるアドレス格納庫なんだよね?

まあそういう理解で間違いじゃない。
ただ32bitなりのただの数字だから、単純に数値を渡す時にも使ったりする。……のも結局Cと同じだよな。
//SendMessageのWParamを想像するとわかりやすい。
要はプラットフォームに固有の桁サイズ(メモリアドレスがその代表格)を持つ数値を表す構造体であると。

> そんなサンプルどこにありました?
> 僕はかなーり探しましたけど、imm32に関しては
> 定義くらいしか載っていませんでした・・・
> 確かにスタイル取得の構造体に関する記述は少しあったけど、
> ぜんぜんくわしくなくて、まるで雲をつかむ思いでした。

定義が載ってたから後はトライアンドエラー。
閃いたのはImmRegisterWordのstyle値を成功するまでループで回してみて、0x80000001で成功が返ってきたから。
DllImportの記述は慣れ。
0490468NGNG
>>489
アドバイス、本当にありがとうございます。
おかげで、なんかいけそうな気がしてきました。
僕はスタイル値に適当にぶっこんどけば
動くものだと思っていました。
(「適当に」というのは0x80000000とか)

僕の頭の中には、残念ながら以下の文に関する知見がございません。
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x20)]
勉強しに逝ってきます。
0491デフォルトの名無しさんNGNG
while文を使って、ファイルを一行一行読み込んでいます。
ある行でエラーが発生した場合、次の行を読み込みたいのですが
どうしたらいいんでしょうか
0492デフォルトの名無しさんNGNG
continue;
0493デフォルトの名無しさんNGNG
enum Test : int
{
  value1 = 0x0100,
  value2 = 0x0110
}
ていう列挙体を作って、

Console.WriteLine(Test.value1);
で、これだと「value1」が出力されます。
Console.WriteLine((int)Test.value1);
だと、「256」が出力されます。

ダイレクトに「0100」という出力結果がほしいんですが、どうしたらいいんでしょうか?
0494デフォルトの名無しさんNGNG
printf
0495デフォルトの名無しさんNGNG
ダイレクトも何もコンパイル時に0x100、つまり256という「数値」で格納されるので0x0000などという表記は喪失する。
Convert.ToString(int, string)とかで適切に対処する。

文字に変換するのが重要なら構造体にしてToStringをオーバーライドするという手もある。
0496デフォルトの名無しさんNGNG
Convert.ToString(int, int)の間違いだった。
0497デフォルトの名無しさんNGNG
>>493
内部的には16進リテラルも10進リテラルも同じだから区別のつけようは無い。
そのため、出力関数側で16進表示の面倒を見てやる必要がある。
Console.WriteLine("16進表示:0x{0}", Enum::Format(typeof(Test), myTest, "x"));
といった感じ。

ここを参考:
ms-help://MS.NETFrameworkSDKv1.1.JA/cpref/html/frlrfSystemEnumClassFormatTopic.htm
0498デフォルトの名無しさんNGNG
tabControlのBackColorを変更したいのですが、
それぞれのページのBackColorは変更ではなく、
tabControl自体のBackColorは変更できないのでしょうか?
ボタンのところではなく、外枠っぽいところです。
そこだけ無機質なWindowsコントロールの色なので変更したいのですが・・・
0499デフォルトの名無しさんNGNG
Q1: バイナリを配布する際にコンソールを表示しないようにしたいのですが
   可能でしょうか?

Q2: プログラムからIEを起動してヘルプを表示したいのですが、
   どのようにすれば良いでしょうか?

Q3: 「コンパイル済みHTMLヘルプファイル」(.chm)を作るツールみたいなものって
   あるのでしょうか?

おながいします。
0500デフォルトの名無しさんNGNG
>>499
1. 可能。/t:winexe
2. こんな感じでいいかな http://ja.gotdotnet.com/QuickStart/aspplus/default.aspx?url=%2fquickstart%2fwinforms%2fdoc%2fWinFormsAxHosting.aspx
3. あります。探しなさい。
0501デフォルトの名無しさんNGNG
>Q1
可能

>Q2
IEのパスを取得してSystem.Diagnostics.Process.Start();

>Q3
ある
0502468NGNG

//The Function to get IME Context
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
//The Function to release IME Context
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern bool ImmReleaseContext(IntPtr hWnd, IntPtr hIMC);

//The Function to Set IME Opened
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern bool ImmSetOpenStatus(IntPtr hIMC, bool fMode);

//The Function to Get IME Status
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern bool ImmGetOpenStatus(IntPtr hIMC);

//The Function to get ResisterWord Styles
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern UInt32 ImmGetRegisterWordStyle(IntPtr hKL, UInt32 nItem, [Out] StyleBuffer[] lpStyleBuf);

//The Function to resister words
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern bool ImmRegisterWord(IntPtr hKL, String lpszReading, UInt32 dwStyle, String lpszRegister);
0503468NGNG

//The Function to delete resiterd word
[DllImport("imm32",CharSet=CharSet.Auto)]
public static extern bool ImmUnregisterWord(IntPtr hKL, String lpszReading, UInt32 dwStyle, String lpszUnregister);

//The Function to Get ForeGround Window
[DllImport("user32",CharSet=CharSet.Auto)]
public static extern IntPtr GetForegroundWindow();

//The Function to Get Keyboard Layout
[DllImport("user32",CharSet=CharSet.Auto)]
public static extern IntPtr GetKeyboardLayout(UInt32 dwLayout);


//The struct field used for "ImmGetRegisterWordStyle"
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
public struct StyleBuffer
{
public UInt32 Style;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x20)]
public string Description;
public override string ToString()
{
return string.Format("StyleID: 0x{0:X8} 品詞: {1}", Style, Description);
}
}
0504468NGNG

private void button1_Click(object sender, System.EventArgs e)
{
//辞書ボタン
IntPtr hWnd;
IntPtr hIMC;
IntPtr hKL;
hWnd=GetForegroundWindow();
if(hWnd==IntPtr.Zero)
{
MessageBox.Show("hWnd = "+hWnd.ToString());
return;
}
hIMC=ImmGetContext(hWnd);
if(hIMC==IntPtr.Zero)
{
MessageBox.Show("hIMC = "+hIMC.ToString());
return;
}
hKL=GetKeyboardLayout(0);
if(hKL==IntPtr.Zero)
{
MessageBox.Show("hKL = "+hKL.ToString());
}
0505468NGNG


if(ImmSetOpenStatus(hIMC,true)==false)
{
MessageBox.Show("Can't Open IME");
}
if(ImmGetOpenStatus(hIMC)==false)
{
MessageBox.Show("IME not Opened");
}
UInt32 count = ImmGetRegisterWordStyle(hKL, 0, null);
StyleBuffer[] buffers = new StyleBuffer[count];
count = ImmGetRegisterWordStyle(hKL, count, buffers);

foreach (StyleBuffer buffer in buffers)
Console.WriteLine(buffer.ToString());
0506468NGNG


if(ImmRegisterWord(hKL,"へけけ", buffers[0].Style,"へけっしゅ")==false)
{
MessageBox.Show("Can't Resister Word");
}
//登録したけど、やっぱ消す。
//2重登録はエラーになるからめんどい。
if(ImmUnregisterWord(hKL,"へけけ", buffers[0].Style,"へけっしゅ")==false)
{
MessageBox.Show("Can't UnResister Specific Word");
}

if(ImmReleaseContext(hWnd,hIMC)==false)
{
MessageBox.Show("can't release IME Context");
}
MessageBox.Show("最後まで到達");
}
0507デフォルトの名無しさんNGNG
死ねと言われる前に他所に行くなり諦めるなりしたほうがいいぞ
0508デフォルトの名無しさんNGNG
>>468 いい加減にしろよ。
0509デフォルトの名無しさんNGNG
頭の悪い質問なのですがunmanaged codeのDLLをインポートしたときの
デバッグについて質問なのですが、DLL側ではスレッドを起動している以外はごくごく普通のCとC++をラップした
APIの構成になっているのですが、デバッグするとほぼ確実にunmanaged code
メソッド周辺で落ちるのですがこれは、呼び出しがそもそもいけないのでしょうか?
その辺のサンプルに乗っているのと同様にDllImport文法を利用しているにすぎず
特殊なことは一切しておりません。原因がDLL側にあるのかC#のほうの呼び出しに問題があるのか
切り離せず苦慮しています。何かいい知恵授けてください。
0510デフォルトの名無しさんNGNG
DLLでデバッグするようにしてどこまできてるかとか確かめてみたら?
0511デフォルトの名無しさんNGNG
デバッグしないと正常に値が出し入れできるので頭が痛いのです。
デバッグしたときだけ落ちるので、何がいけないのか良くわからない状況です。
単体デバッグだけならDLL、C#とも何も起きません。
0512デフォルトの名無しさんNGNG
だったらまずリリースにしてDLL側でログはくようにしろよ。ファイルでおきなかったら、共有メモリにはく。
0513468NGNG
すみません、削除依頼出しておきます。
すみません。
0514468NGNG
削除願い、今朝提出させていただきました。
ご迷惑おかけしました。
0515デフォルトの名無しさんNGNG
どうでもいいけどMSのドキュメントってなにげに良質じゃない?
0516デフォルトの名無しさんNGNG
開発環境は良質
之は(・∀・)イイ!!
0517デフォルトの名無しさんNGNG
.NETのリファレンス級のマニュアルがあれば
すぐLinux+GCC+KDEにころぶが・・・そうはいかないからなぁ
0518デフォルトの名無しさんNGNG
PCに割当てられてるグローバルIPを取得するには、どうやったらいいですか?
同時に、ネットにつながってない場合、192.0.0.1を取得するようにしたいんですが。
0519デフォルトの名無しさんNGNG
>>515
良質。メソッド毎のサンプルも結構あるし。
MSってドキュメンテーションにすごいお金かけてるよね。Platform SDKなんかの
古いAPI のドキュメントも未だにメンテナンスされ続けてるし。
ちゃんと外からのフィードバックを反映する体制が出来てるんだろうなぁ。
0520デフォルトの名無しさんNGNG
画像ファイルを、バイナリデータとして
文字列で取得したいんですが
どうすればいいですか。結果的には0と1の文字列にしたいのですが・・。
0521デフォルトの名無しさんNGNG
>>520
FileStreamで開けてバイトを読み出してConvert.ToStringで二進数にしてPadLeftで左を0で埋めてStringBuilderにAppendしていく。
0522520NGNG
>>521
ありがとうございます。

StringBuilder sb = new StringBuilder()

// ファイルをbyte型配列としてすべて読み込む
FileStream stream = new FileStream( "c:\gatou.jpeg", FileMode.Open, FileAccess.Read );
byte[] bt = new byte[stream.Length];
int len = stream.Read( bt, 0, (int)stream.Length );
stream.Close();

for( idx=0; idx < len - 1; idx++ )
{
sb.Append(Convert.ToString(bt[idx]).PadLeft(8,Convert.ToChar("0")))
}
0523デフォルトの名無しさんNGNG
SSL関連のクラスが見当たらないんだけど、SSLで接続するにはどうしたらよい?
0524デフォルトの名無しさんNGNG
>>523
ms-help://MS.NETFrameworkSDKv1.1.JA/cpguidenf/html/cpconUsingSecureSocketsLayer.htm
0525デフォルトの名無しさんNGNG
>>523
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconusingsecuresocketslayer.asp
0526デフォルトの名無しさんNGNG
C#のADO.NETをつかって、MS-ACCESSのテーブル一覧を取得するにはどうしたらよいのですか?
0527デフォルトの名無しさんNGNG
>>526
書店にいくと、ADO.nETとAccessに関する
良本がたくさん出版されています。
だから聞くなとは言いませんが、包括的に学習するためにも
購入されてみてはいかがでしょうか。
0528デフォルトの名無しさんNGNG
ディスプレイ全体のスクリーンのキャプチャを取ろうとしているのですが、
下のコードではアクティブウインドウのスクリーンしか取れません。
なにがいけないのでしょうか?

SendKeys.SendWait("{PRTSC}");
Bitmap bmp = (Bitmap)(Clipboard.GetDataObject().GetData(DataFormats.Bitmap));
0529>>515NGNG
サンプルコードつけてくれる所がうれしいね
0530デフォルトの名無しさんNGNG
>>526
あきらめてADODB.ConnectionとADOX.Catalogで、
0531デフォルトの名無しさんNGNG
>>528
Shift(+)かCtrl(^)付け加えると良いよ。
0532518NGNG
(´・ω・`)放置プレイ
0533デフォルトの名無しさんNGNG
>>417に同様の質問が出てるもの
0534528NGNG
とれました。ありがとうございます。
0535デフォルトの名無しさんNGNG
C#というか.NETframework環境でのマルチスレッドについて書かれた書籍はないでしょうか?
0536デフォルトの名無しさんNGNG
>>524-525
なるほど。。。
でもSMTPで使いたいんですよ…。
MSDNのそのページはhttpsを前提にしているけど。
0537デフォルトの名無しさんNGNG
ならこれ使えばいいべさ(´д`)
http://www.mentalis.org/soft/projects/ssocket/
0538デフォルトの名無しさんNGNG
Ethernet実装したいけど、よくわかんないよ〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ∧_∧
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)
参考になるサイトキボンヌ
0539デフォルトの名無しさんNGNG
WDMデバドラ入門
0540デフォルトの名無しさんNGNG
MDB内にある取得クエリ(リライト却下された)を動かし、
その結果をDataTableで扱わねばならんのですが、最適な方法がわかりません。
とりあえずCOMに参照設定してクエリ動かすまではやりました。
一度AccessインスタンスをSaveAllで落としてからOleDbConnectionで繋ぎにいくべき?
もっといい方法ってあるんでしょうか。
0541 NGNG
C#使ったことないんですけどオートメーションサーバー作りたいんですけど、簡単に作れますか?
いいページとかないですか。
0542デフォルトの名無しさんNGNG
OLEオートメーションの意味かな?ならこれとかお勧め。
基本はaximpでCOMコンポーネントからブリッジとなるアセンブリを作って
C#側からリンクし、呼ぶということになる。
http://www.codeproject.com/csharp/mshtml_automation.asp
0543デフォルトの名無しさんNGNG
>>540
dao.Database l_Database = CurrentDb();
とやってもいいし、オートメーションに用がなければ終わらせてから
daoで単独に開いてもいい。
0544デフォルトの名無しさんNGNG
ATL/WTL
0545 NGNG
英語が苦手だから間違ってるかもしれないけどクライアントの方じゃなくてサーバーのほうが楽に作れるか知りたいんです。
埋め込みとかまでやる複雑な奴じゃなくて
WSHのVBScriptとかから呼び出して操作できる奴。

<SCRIPT LANGUAGE="VBScript">

Dim app
set app = CreateObject("MyApp")
app.hello()

</SCRIPT>

みたいにVBScriptから生成して実行できるMyAppみたいなやつです。
0546 NGNG
>>542
をつけるの忘れてた。
レスどうもありがとうございました。
0547デフォルトの名無しさんNGNG
ATL/WTL
0548デフォルトの名無しさんNGNG
Apple Talk Library / Winsock Type Library
0549540NGNG
>>543
レスありがとうございました。
DAOで取得することにします。
0550デフォルトの名無しさんNGNG
>>545
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/cpref_start.asp
作成そのものはそんなに難しい事でも特別な事でもない。
基本的に普通に作ったアセンブリ(.dll/.exe)にregasm.exeを使えばいい。
CreateObject("名前空間.クラス")などで使えるようになる。

ただ、アセンブリを配置する場所がちと難しい。
厳密名をつけてGACに置くか、クライアントの実行ファイルと同じ位置(WSHなら.vbs/.js「ではなく」、wscript.exe/cscript.exe)に置くか。
0551デフォルトの名無しさんNGNG
STAThread属性について教えて下さい。

過去ログとMSDNを参考になんとなくは理解出来たような気はするのですが、
CLRのスレッドの管理方法にはMアパートメントの概念そのものがないですよね?
[STAThread]は、あくまでCOM側から見た場合、
擬似的にアパートメントを作ってるような感じなのでしょうか?
GUIアプリでスレッドを沢山使う必要があるのですが、
Windowsフォーム以外のオブジェクトもスレッドに結び付けられてしまうのでしょうか
0552デフォルトの名無しさんNGNG
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconexposingnetframeworkcomponentstocom.asp
リンク間違ってるよ……orz
0553 NGNG
>>550 >>552
どうも有り難うございます。
そういうことが知りたかったです。
まだC#知らなくてこれから勉強するんだけど。
0554デフォルトの名無しさんNGNG
>>551
擬似的ではなく本当にアパートメントに属させてるわけだが。
CLRが管理するとは言えWindowsから見てもスレッドはスレッドだから。

まあそれはともかく、COMに触れないスレッドにはスレッドアパートメントは関係ないね。

ちなみにスレッドを作った時にThread.ApartmentStateプロパティ(.NET2.0ならSetApartmentStateメソッド)でどっちに属させるか指定できる。
指定しない場合は暗黙的にMainが属するのと同じアパートメントになるんだったかな。

STAスレッドとMTAスレッド間のCOMオブジェクトを使うやりとりでCOMマーシャリングが行われるわけで、
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpcondevelopingmultithreadedwindowsformscontrol.asp
によればWindowsフォームは問答無用でSTAで動いてるようだから、
「Windowsフォームとは関係ない、MTAモデルのCOMを使った」スレッドを大量に作るんでない限り全部STAでやるのが妥当だろうね。
0555468NGNG
tp://www.akadia.com/services/dotnet_arraylist_datagrid.html
このサイトを参考にプログラムを作ったのですが、
cs.Width = colwidth;
を、
cs.Width = 15;
に変えてみたにも関わらず、
datagrid1上(フォーム上)では、列の幅が反映されません。
また、列(column)が複数あるのですが、
列の並び順番が、左から列名の若い巡になってしまいます。
[Zoo] [Price] [Popularity] [enterprise]
という列名を、上記ソースを参考に用意しようとしても
[enter..] [Popu..] [Pri..] [Zoo]
といったようにアルファベティカリになってしまいます。
1 列幅設定の反映しない理由
2 列名をアルファベット順に勝手に並べ替えない方法

に関して、教えていただけませんでしょうか。
Googl、MSDNで調べても
なかなか理解できません。
お願いします。(・人・)
0556デフォルトの名無しさんNGNG
↑すみません、前の番号が残っていました。
0557デフォルトの名無しさんNGNG
また468か!
0558555NGNG
↑はい、重ね重ね申し訳御座いません。
0559デフォルトの名無しさんNGNG
どっちも再現しないと言うかコード通りになったので答えようがないな。
ま、どうせ変なコード書いたんだろ。
0560デフォルトの名無しさんNGNG
質問です。
public struct data
{
public int[] ge; public double x;
public double ev; public string id;
}

data[] gen = new data[8];

method()
{
if(){
gen[4].ge=gen[1].ge; baf=gen[4].ge;
}
if(){
gen[4].ge=gen[2].ge; baf=gen[4].ge;
}

if(baf[a]==1) baf[a]=0;
else baf[a]=1;
}←ここの時点でのデバッグ時の質問です。

簡略化して書いてますがデバッグで値を追ってみたところ、
このようなときbaf[]の配列がgen[1].geやgen[2].geにも反映されてしまっています。
参照型や値型、クラスや構造体など調べてみましたが自分の力では
解決することができませんでした。
おかしなところあればご教示願います。
0561デフォルトの名無しさんNGNG
>>560
読みづらいコード書くね……。

> gen[4].ge=gen[1].ge;
> baf=gen[4].ge;

gen[4].geとgen[1].geが同じオブジェクトを参照するようになる。
bafとgen[4].geが同じオブジェクトを参照するようになる。
よってbafとgen[1].geは同じオブジェクトを参照するようになる。

配列を代入したって配列の参照をコピーするだけで要素はコピーしない、というのは基礎の基礎だぞ。
要素ごとコピーしたいならCloneメソッドとか使う。
0562561じゃないけどNGNG
>>561 に補足

ge & buf は Array クラスのサブクラス int[] のインスタンス
インスタンスなので = 演算子では参照がコピーされる

baf = gen[4].ge; の瞬間、gen[4] と baf は同じ int[] のインスタンスを指す事になってる
だから変更されないようにするには baf = (int[]) gen[4].ge.Clone(); とする

ただし、ge がもし参照を格納する配列だったら、さらに一手間かける必要があるかもしれない
これより先は『浅いコピー』『深いコピー』で調べるよーに
0563折角なので言葉は正しくいこうNGNG
>>562をちょいと修正

> ge & buf は Array クラスのサブクラス int[] のインスタンス
> "クラスの"(=構造体でない)インスタンスなので = 演算子では参照がコピーされる
0564デフォルトの名無しさんNGNG
560です。
読みづらいのは縦長になるのはちょっと迷惑かなと思ったのですが
逆に読みづらくなりましたね。申し訳ありません。
まだプログラム書き始めて間もないのでいろいろ教えられることが多いです。
問題のことですが迅速な対応をしていただいてありがとうございます。
早速調べてみて解決してみたいと思います。
スレ汚し失礼しました。
0565562NGNG
>>563
すまぬ。構造体もインスタンスと呼ぶんでしたな
0566デフォルトの名無しさんNGNG
クラスを複製したいのですが、
stringなどはクラス=参照系だからそのまま代入したらダメですよね。
ということはCloneクラスから全てのプロパティを コンストラクタにわたして〜ってことをしないといけませんが、
クラスの全てのプロパティを設定するためのメソッドorコンストラクタを用意しないといけず、
非常に面倒です。

何か代案はありませんか?
0567デフォルトの名無しさんNGNG
>>566
びみょ〜にひょ〜げんがおかしいが

string はヒープに確保されるから参照型だけど、
変更できないオブジェクトだからコピーしなくても問題ないです

というか Clone クラスなんて無い
0568567NGNG
>>566
まて
もしかしたらインスタンスじゃなくてクラスを複製する話をしているのか?

そうじゃなかったら Clone メソッド内を整備すればいいやん
0569デフォルトの名無しさんNGNG
ちなみに浅いコピーで良いならObject.MemberwiseCloneメソッドでCloneを実装するだけで済む。
0570デフォルトの名無しさんNGNG
>>566が何をしたいのかわからん。
0571デフォルトの名無しさんNGNG
GDNJSにあるもぐらたたきを改造しています。
モグラコントロールをtimerで一定時間ごとに移動させています。(this.leftを操作)
すると、Ctrl+F5で実行させると、コードデザイナに配置したコントロールまで移動してしまいます。

この超霊現象をなんとかしたいんですが、なんとかなりませんか?
0572デフォルトの名無しさんNGNG
>>570
超高級言語しかさわったことのないバカにはわかりません
0573デフォルトの名無しさんNGNG
たしかに >>566 は超高級言語(日本語)を分かってないみたいだ。
0574デフォルトの名無しさんNGNG
ttp://vbdotnet.fc2web.com/csharp/control/DataGrid03.htm

DataTable dt = (DataTable)dataGrid1.DataSource;
指定されたキャストは有効ではありません
って言われてしまいます。なぜなのでしょうか。
DataTable dt = (DataTable)_mydatagrid.DataSource;
MessageBox.Show("行の総数 = "+dt.Rows.Count.ToString());
をしてもだめみたいです。

MessageBox.Show("現在_datagrid1は「" + _mydataset.Tables["_mytable"].Rows.Count.ToString() + "行あります。」");
これをすると、Nullreferenceとなります。

private System.Data.DataSet _mydataset;
private System.Data.DataTable _mytable;
private System.Windows.Forms.DataGrid _mydatagrid;
private System.Windows.Forms.DataGridTableStyle _mydatagridtablestyle;
this._mydatagrid.DataMember = "_mytable_name";
this._mydatagrid.DataSource = this._mydataset;
0575デフォルトの名無しさんNGNG
DataSourceにDataSetを使ってるんだからDataTableにキャストなんかできるわけなかろ。
Tablesの引数もDataTableを格納する変数名とDataTableの名前を混同してるようだし。

サンプルを参考にするのは良いが訳も分からず引き写すのは感心しないな。
0576574NGNG
夜分遅くに的確なアドバイス、ほんとうにありがとうございます。
確かにDataSourceには、_mydatasetも、_mytableも選べましたが、
ttp://ukamen.hp.infoseek.co.jp/Programming1/DataGrid/index.htm
を参考に後者にしていました。
僕はてっきり_mydatagrid.DataSource.DataMemberのような
構造だとばかり思っていました。
(Datamemberの意義がよくわかってないのかも・・・)

Tablesの引数に関してのアドバイス、ありがとうございます。
この引数はヒントで、string name と書かれてありました。
_mytableのnameですから、_mytable_nameにしたら、うまくいきました。

ほんとうにありがとうございました。
0577574NGNG
DataTable dt = ((DataSet)_mydatagrid.DataSource).Tables[_mydatagrid.DataMember];
MessageBox.Show("行の総数 = "+dt.Rows.Count.ToString());

一歩成長したような気がしました。
0578デフォルトの名無しさんNGNG
dt.Rows.Count.ToString()

ToString()はイラネ
0579デフォルトの名無しさんNGNG
>>578
君はstringとintを平気で足せるような型の弱い人か。
0580デフォルトの名無しさんNGNG
ToString()はイラネ
0581デフォルトの名無しさんNGNG
くらだないので一応言っとくと、
stringとintを平気で足せるような型の弱い奴というのは、ToString()を自動で補完してくれるC#のことです。
0582デフォルトの名無しさんNGNG
要するに >>578 = C# ということです。
0583デフォルトの名無しさんNGNG
曖昧さがなければ型がゆるくっていいよ
0584574NGNG
DataTable dt = ((DataSet)_mydatagrid.DataSource).Tables[_mydatagrid.DataMember];
DataRow dr = dt.NewRow();
dr[_column1] = 7;
dr[_column2] = "挿入部";
dr[_column3] = "109";
dt.Rows.InsertAt(dr, 7);

はぁ、なんでInsertAtがAddと同じような振る舞いしか
してくれへんのやろ ○rz...
dt.Rows.Countが10行以上あるのに・・・.ToString();
0585デフォルトの名無しさんNGNG
"dt.Rows.Countが10行以上あるのに・・・".ToString();

ここでもやっぱりToString()はイラネ、だな
0586デフォルトの名無しさんNGNG
>>581
いつ自動で補完するね?
0587デフォルトの名無しさんNGNG
> dt.Rows.Countが10行以上あるのに・・・.ToString();

チョットワロタ
0588デフォルトの名無しさんNGNG
>>586
シラネ。コンパイル時じゃねーの?
0589デフォルトの名無しさんNGNG
ListView の View を View.Details にして、
そのマスに棒グラフ(矩形)を描画したいのですが、
可能でしょうか?
0590デフォルトの名無しさんNGNG
C++で #define MAX 100 っていうのは、C#ではどう書くんですか?
0591デフォルトの名無しさんNGNG
constででも宣言しときな。
0592590NGNG
レスありがとうございます。

やっぱりそうなるんですね。
0593デフォルトの名無しさんNGNG
全てのクラスで共有される定数だけを集めたクラスを作りたいんですが、どうしたらいいんですか?
static constは駄目なんですが・・・。
class A
{
//他のクラスから、A.aaaという形で呼び出したい。かつ変更不可にしたい。
public static const int aaa = 123;
}
0594デフォルトの名無しさんNGNG
constは暗黙的にstaticなのでstaticキーワードはいらない。
0595394NGNG
>>403 遅れましたがありがとうございます

private static int TimerID;
private static uint TimerDiff;
private struct TIMECAPS
{
    public uint wPeriodMin;
    public uint wPeriodMax;
}

private delegate bool TimeProcDelegate(int uID, int uMsg, int dwUser, int dw1, int dw2);
[DllImport("winmm.dll")] private static extern void timeBeginPeriod(uint x);
[DllImport("winmm.dll")] private static extern int timeGetDevCaps(ref TIMECAPS lpTimeCaps, int uSize);
[DllImport("winmm.dll")] private static extern int timeSetEvent(uint uDelay, uint uResolution, TimeProcDelegate lpFunction, int dwUser, int uFlags);

public static void Test()
{
    TIMECAPS tc = new TIMECAPS();
    timeGetDevCaps(ref tc, Marshal.SizeOf(tc));
    TimerDiff = Math.Min(Math.Max(tc.wPeriodMin, 5), tc.wPeriodMax);
    timeBeginPeriod(TimerDiff);
    TimeProcDelegate tpd = new TimeProcDelegate(Timer);
    TimerID = timeSetEvent(5, TimerDiff, tpd, 0, 0); // TIME_ONESHOT = 0 1回だけ呼ぶ
}
private static bool Timer(int uID, int uMsg, int dwUser, int dw1, int dw2)
{
    TimeProcDelegate tpd = new TimeProcDelegate(Timer);
    TimerID = timeSetEvent(5, TimerDiff, tpd, 0, 0); // TIME_ONESHOT = 0 1回だけ呼ぶ
    return true;
}
0596394NGNG
マルチメディアタイマを使いたいんですが
これでTest()を実行すると、
何もしなければ大丈夫なんですが
MouseMoveなど他のイベントが何回か発生したときに

   'System.NullReferenceException' のハンドルされていない例外が 不明なモジュールです。 で発生しました。

   追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

   現在のソースコードの場所を特定できません。

になります。
タイマは別スレッドで動くらしいですがその使い方がおかしいのでしょうか。
0597デフォルトの名無しさんNGNG
>>595
ttp://www.google.com/search?hl=en&lr=&c2coff=1&q=timesetevent+nullreferenceexception
一番初めに出るな。

TimeProcDelegateがスコープ終了で参照が無くなり、GCの対象になってしまう。
で、Timerが呼ばれる前にGCが発生すると、呼び出すメソッドのポインタへの参照(要はデリゲートだが)が無くなってしまってNullReferenceが発生するわけだ。
フィールドでTimeProcDelegateへの参照を保持しておけば問題ないってことだな。
0598デフォルトの名無しさんNGNG
> 呼び出すメソッドのポインタへの参照
馬から落馬だよ……。
呼び出すメソッドのポインタの間違い。
0599デフォルトの名無しさんNGNG
ノータッチデプロイメントをしようとして、作成したexeファイルをアップ。
エラーがでたので、ためしに、新しいプロジェクトでフォームしかない
プログラムを作成して、アップやっぱりエラーが・・・。どういうことなんでしょう?
エラーは「System.Security.Policy.PolicyException がDomain2で発生」
開発環境は「Visual c# .Net 2002」で、サイトに存在するノータッチデプロイメントの
プログラムはきちんと動作しますので、.Net frameworkのセキュリティはOKだと思うのですが
0600デフォルトの名無しさんNGNG
>>599
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_06/idnfw11_06_03.html

.NET 1.0の場合SP1からInternetZoneに対してアクセス許可をNothingにしているわけだが、その辺はどうか。
0601デフォルトの名無しさんNGNG
C#(.NET)でReal PlayerのactiveXを使って
rmファイルを再生すると、再生時に一瞬
real社のロゴが表示されるのですが、
これを非表示にする方法はないでしょうか?
(ちょっとC#とは関係ないような気もするのですが・・・)
ほかのフリーのプレイヤソフトなどだと、
こういうロゴが表示されないのですが、
もしかしたら、別の方法(RealPlayerのactivex使ってではない)
があるのでしょうか?
もしかして、そっちの別の方法が一般的だったり。。
0602デフォルトの名無しさんNGNG
はい。大丈夫です。一度、セキュリティを最低にていみましたが、
同じエラーでした。
0603デフォルトの名無しさんNGNG
ん〜、試してみたけど、.NET1.0のアセンブリの場合

・デフォルト:PlicyExceptionがDomain2で発生

・.NETウィザード>.NETセキュリティの変更>このコンピュータへの変更を行う>インターネット が信頼無しになってるのを確認

・一段階信頼を上げてウィザード完了 >問題なく起動

と言う事になったけど?
0604デフォルトの名無しさんNGNG
Waveファイルを再生したく思います。。。

PlaySoundを使って、普通に再生する ということは出来るんですが、
リソースに追加されたWaveファイルを再生することが出来ません・・・。

リソースから読み込む方法が良くわからず
PlaySoundの引数に何を渡せばいいのやら・・・

ご教授お願いします
0605デフォルトの名無しさんNGNG
もしやウサギさんですか?
0606デフォルトの名無しさんNGNG
1).rcで記述したリソーススクリプトをリソースコンパイラに食わせ、
 /win32resでくっつけてエイリアス名とSND_RESOURCEフラグで実行する

2)リソースをbyte配列に読み込み、GCHandle(このスレに使い方が書かれてる)でラップして
 ポインタとSND_MEMORYフラグで実行する
0607デフォルトの名無しさんNGNG
>>581
自動で補完しないだろ。
0608デフォルトの名無しさんNGNG
>>607
文字列の加算は全て StringBuilder.Append で行っているんだっけか?
0609デフォルトの名無しさんNGNG
>>607
ハァ?
自分じゃ何も試せないチンカスでつか?
0610584NGNG
放置プレイ・・・(T_T)
0611デフォルトの名無しさんNGNG
取り合えずildasmしろ、話はそれからだ。

明示的に文字列結合として書いてないという問題以外に
ToStringしてないと場合によっては予想外にボクシングしまくることもある。
0612デフォルトの名無しさんNGNG
そもそもあんたがプレイしていた事に気付かなかった。
584で(自己)完結してるじゃん。
0613デフォルトの名無しさんNGNG
>>609
自分の聞きたい話だけを聞いて生きていくならそうすればいい。
ずーっと間違ってろ。おまえに情報をやる義理もないしな。
0614デフォルトの名無しさんNGNG
ToString以外でも、構造体にインタフェイスを実装させるときとか気をつけないといけないよな。
予想外のボクシングで効率落ちたりとか、結果が反映されなかったりとか。
0615デフォルトの名無しさんNGNG
初心者の質問ですみません。
スクリーンキーボードと同じ機能のアプリを作ろうとしています。
「あ」〜「ん」までの50音分のボタンを用意して、「い」のボタンを押すと
テキストボックスに「い」が代入される。というのを作ったのですが、これは
平仮名が代入されるだけで、漢字変換しようと思ってもできませんでした。
自分でキーボードイベントを起こしてやらないといけないんじゃない?
とアドバイスをもらったのですが、具体的な方法が分かりません。
考え方だけでもご存知の方が居ましたら、教えてください。よろしくお願いします。


0616デフォルトの名無しさんNGNG
IMEかんれんをしらべてみよ
0617584(再度失礼します)NGNG
DataTable dt = ((DataSet)_mydatagrid.DataSource).Tables[_mydatagrid.DataMember];
DataRow dr = dt.NewRow();
dr[_column1] = 7;
dr[_column2] = "挿入部";
dr[_column3] = "109";
dt.Rows.InsertAt(dr, 7);

と記述して、RowIndex=7 のところに
new Rowを挿入したいのですが、結果として
リストの最終行に「追加」されるだけで、うまく明日してくれません。
「挿入」というからには、当然予め挿入される行番号よりも
多くの行を事前に用意してあります。
ところで、予め列ヘッダをクリックして数度(少なくとも1度)
ソートを実行しておくと、dr[_column1] = 7; という記述により
挿入される値「7」が挿入時に自動ソートされているようです。

私のInsertAtメソッド記述周りの
どういった点が怪しいと思われますか?当人調査継続しておりますが、
お助け請いたく存じます。
0618584(再度失礼します)NGNG
>>615
http://www.geocities.co.jp/SiliconValley-Cupertino/5872/String/Ime/
http://nienie.com/~masapico/api_ImmConfigureIME.html
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpintl/html/_win32_ImmConfigureIME.asp
がんばってください。
0619デフォルトの名無しさんNGNG
<<527
調べて無理そうでしたので、聞いてみました。
<<530
やはりそれしかないのですねえ。
0620デフォルトの名無しさんNGNG
>>616さん
>>618さん
早速調べます。
ありがとうございます。
0621デフォルトの名無しさんNGNG
>>617
Rowsコレクションの物理的な並び順はあまり意味を持たないようです。
キーでの並び順はDataViewで操作可能です。DefaultViewをいじってみました。

// データセットとテーブルの作成
_dataSet1 = new DataSet("TestDataSet1");
DataTable dataTable = _dataSet1.Tables.Add("TestDataTable1");
dataTable.Columns.Add("ID", System.Type.GetType("System.Int32"));
dataTable.Columns.Add("NAME", System.Type.GetType("System.String"));
dataTable.Columns.Add("LNAME", System.Type.GetType("System.String"));

// Primary keyを付ける
DataColumn[] pkey = new DataColumn[1];
pkey[0] = dataTable.Columns["ID"];
dataTable.PrimaryKey = pkey;

// デフォルトViewを変更
DataView dataView = dataTable.DefaultView;
dataView.ApplyDefaultSort = true; // Primary keyでソート
//dataView.Sort = "ID desc"; // Primary keyがないか別のキーでソートする場合

// DataGridにバインド
_dataGrid1.SetDataBinding(dataTable, "");
//_dataGrid1.SetDataBinding(_dataSet1, "TestDataTable1"); // こっちの表記だとうまくいかないようだ
0622617NGNG
>>621
サンクスコ 家帰って、復習します。

他にも何か代替策ございませんか?
0623デフォルトの名無しさんNGNG
>>554
横レスで一点補足。COM使ってないつもりでも、例えば STA 指定無しのスレッドで
いきなりProcess.Startで url を開こうとしたりするとエラーになったりする。
>指定しない場合は暗黙的にMainが属するのと同じアパートメントになるんだったかな。
明示的に設定しない場合は MTA だったと思う(1.1)・・
というか実験結果としてはMTA的動作になってた。ドキュメントは読んでないけど。

ライブラリの下のほうでこっそりCOM使われたりすることもあるから注意ってこと。
0624デフォルトの名無しさんNGNG
>>623
確かに属性無しとMTAThread属性だとurlでエラーになりますね。へ〜
少し脱線するけど、Processオブジェが何でSystem.Diagnostics(診断)
の下にあるんだろう。
.netのクラスライブラリの構造って不可思議なところがありますね。
ApplicationオブジェがなぜかSystem.Windows.Formsのしたにあって
はじめの頃ずいぶん探しました。
ライブラリごとに、完全CLI(移植性あり)、OS依存の機能あり、
COM呼んでる、APIじかに使ってる・・
といった区別がキチンとつくようにしてくれると助かるんですけどね。
0625デフォルトの名無しさんNGNG
ここはひどい.NET Frameworkですね
0626デフォルトの名無しさんNGNG
マネージドヒープはプロセス毎にひとつでしょうか、AppDomain毎にひとつでしょうか?
0627デフォルトの名無しさんNGNG
private Word.Application _wApp;
private Word._Document _wDoc;
private Word.Selection _wSel;

上記3インスタンスを規定どおりに開きました。
ここで、ワードを先に閉じられたことを検出するには、
どのインスタンスを確認すればよろしいのでしょうか。

イメージ:
if(_wDoc.Exist==true) _wDoc.SaveAs();
else _wDoc = null;

お願いします。
C#でwordを操作。
0628デフォルトの名無しさんNGNG
お願いします。c言語です。
0〜10までの整数を入力して、数を当てるゲームプログラムを作って下さい。
(ただし99を入力すれば終了)初めに自分の好きな整数を入力してから、
ゲームスタートです。
(実行例)
Input Your favourite Number 540000
3 ← ここから自分で 数を当ててみます。
more Upper
Input Your favourite Number 5

Congratulation!!
ヒントプログラムです。
#include <stdio.h> /* printf を使うために必要 */
#include <stdlib.h> /* 乱数を発生させる srand rand を使うために必要*/
void main( )
{
int myNumber;
printf("Input Your favourite Number"); scanf ("%d",&myNumber);
srand( myNumber );
int result = rand() / 3276 ; /* rand()は 0〜32767 の乱数を生成 */
int inputNumber = 0;

while(1){
scanf ("%d",&inputNumber);
if( inputNumber > result){ printf("more lower \n"); }
else if( inputNumber < result){ printf("more upper \n"); }
if( inputNumber == 99){ break; }
}
0629デフォルトの名無しさんNGNG
モーダルダイアログでShowDialog()で開いたウィンドウを
デスクトップで最前列に表示させ、且つアクティブ状態に
するには、どうすればよいのでしょうか。
form2.Activate();
form2.textbox1.Focus();
をform1でのShowDialog()直後に記述しても
表へ出てきませんでした。
(ちなみに、form1はホットキーで操作しています)
0630627NGNG
ワード文書を閉じるには
_wDoc.Close(ref oTrue, ref oMissing, ref oMissing);
でいけます。参考までに。
0631デフォルトの名無しさんNGNG
>>629
ShowDialog はモーダルダイアログが閉じられるまで帰ってこないので、
ShowDialog の直後に何か書いてもダメです。

form2.VisibleChanged += new EventHandler( this.form2_VisibleChanged );
とかしておいて、
private void form2_VisibleChanged(object sender, System.EventArgs e)
{
 Form form2 = sender as Form;
 form2.Activate();
 form2.textbox1.Focus();
}
とか。
form2 ってのが自分で作ってるクラスなら、form2のクラス側で行うべきって気もする。
textbox1.Focus() なんてのは TabIndex を適切に設定すれば不要になると思うし。
0632デフォルトの名無しさんNGNG
>>631
それだと form2 が消えるときにも実行されるから、if (form2.Visible) とかで囲ったほうが良い。
0633デフォルトの名無しさんNGNG
>>628
more Upperって・・・
0634629NGNG
>>631,632
いけたぜ、ブラザー。
サンクスコ☆
0635デフォルトの名無しさんNGNG
>>626
何を以て一つというの?
0636デフォルトの名無しさんNGNG
 DataGridTextBoxColumnを継承した独自クラス作ったのはいいのですが、
OnPaintをoverrideしてセル単位で文字色を制御することはできました。
 しかし行を選択すると、ベース呼び出しだと文字のForeColorがハイ
ライト表示になり黒だと白表示といったぐあいにRGB値が反転しているは
ずなのですが、overrideするとこの機能が失われてしまいます。
どのように基底クラスで実装しているから調べる方法知らないでしょうか?
0637デフォルトの名無しさんNGNG
>>636
何つーか・・・あたりまえだろ・・・・
0638デフォルトの名無しさんNGNG
>>636
フォーカスの有無に対するフラグを持たせて場合分けで描画する
とかいうことになるんじゃないかと。
0639デフォルトの名無しさんNGNG
string test = "ABCDEF";
while(test != 最後まで){
一文字ずつ取得
}
って処理C#だとどう書けばいいのですか?stream系いろいろあるけど
戻り値全部intだし困った困った。
0640デフォルトの名無しさんNGNG
foreach (char c in test) {...}
StringReaderとかなら返値のintはcharにキャストしてやればいい。
0641デフォルトの名無しさんNGNG
知らなかった……。
foreach (char c in test.ToCharArray()) ってやってたよ orz
0642デフォルトの名無しさんNGNG
>>641
[Serializable]
public sealed class String : IComparable, ICloneable,IConvertible, IEnumerable
0643デフォルトの名無しさんNGNG
接続可能なSQLサーバ一覧を取得しようとして以下を実行するとエラーになります。
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers();
エラー
インターフェイス SQLDMO.NameList の QueryInterface に失敗しました。
SqlServerのSP3aは、入れてあります。
誰かわかる人教えてください。
0644デフォルトの名無しさんNGNG
<<643 
ソース書き忘れ付け足し

SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers(); 
0645デフォルトの名無しさんNGNG
テキストファイルの特定行だけ読み込ませたいんだが
具体的なサンプルとかある場所ありませんか?
0646デフォルトの名無しさんNGNG
行単位で考える時点で先頭から内容を検証する必要が発生するわけで。
StreamReader.ReadLine()で読み込む行まで空読みすればいいじゃん。
0647デフォルトの名無しさんNGNG
645じゃないんだけど
空読みってどうやんの?
0648デフォルトの名無しさんNGNG
通常の読み込み
string line = streamReader.ReadLine();

空読み
streamReader.ReadLine();

読み込むだけ読み込んで結果は無視するってだけ。
0649647NGNG
あぁ〜なるほどね
なんか単純すぎて思いつかなかったわ
サンクス
0650デフォルトの名無しさんNGNG
>>645
あらかじめインデックス作っとくしかないでしょ。
0651627NGNG
放置しないで、ぐすん。
0652デフォルトの名無しさんNGNG
一般的には、コレクションにget_Itemなどさせ、目指すアイテムが見つからなかった場合nullを返す物だが。
0653627NGNG
>652
らじゃー、家帰ったら、やってみまっする。
サンクスコ。
0654デフォルトの名無しさんNGNG
VBでいうSendkeyはC#にはないのですか?
0655デフォルトの名無しさんNGNG
System.Windows.Forms.SendKeys
0656デフォルトの名無しさんNGNG
ドラッグ&ドロップでコントロールのサイズを変更するには
どのようにすればよいでしょうか?
具体的にはMSNメッセンジャーの、
文字を入力するテキストボックスのサイズを変えるような感じなのですが・・・
0657デフォルトの名無しさんNGNG
>>656
アンカーじゃだめなのか?
0658656NGNG
現在パネルとDockプロパティで、フォームのサイズ変更時の
引き伸ばしなど行っていますが、やはり、ドラッグでコントロールの
サイズを変更できればと思っているのですが(´・ω・`)
0659デフォルトの名無しさんNGNG
本の記述に、本書で使用されているサンプルコードは、
http://www.gotdotnet.com/
あたりで取得できると書いてある割には、
英語のGotDotNetに接続できません。

数週間前に試した時も駄目だったんですが、
もしかして、見えないのは俺だけですか?

『.NETでのテスト駆動開発』に載っているコードが欲しいのですが。
0660627NGNG
this.textbox1.Size.Width = this.Size.Width * alpha;
this.textbox1.Size.Height = this.Size.Height * beta;
this.textbox1.Location.NeverChange;
0661デフォルトの名無しさんNGNG
>>656
手で実装する。
スケルトン:http://up.isp.2ch.net/up/cd118b9b044a.zip
//ただし存在しない仮想メソッドをオーバーライドしてるのが一つあるから削除する。

裏技的に、
ttp://dobon.net/vb/dotnet/form/formwithinform.html
UserControl代わりの、「FormにTextBoxを乗っけたコントロール」で、と言う手法もできないこともない。
ただ縁が盛り上がってしまうからあんまり美しくない。

>>659
なんかいまGetDotNet.com落ちてるね。
0662656NGNG
スケルトン試してみたいと思います。
ありがとうございました(^-^
0663374ありがとうございました。NGNG
皆様のおかげでようやくソフトが完成しました。
皆様には、
1. DataSet関係
2. Word操作関係
3. imm関係
4. HotKey関係
に関して、有益なアドバイスをたくさん頂きました。
特にimmに関しては、レスを無駄に増やすという
失態をしてしまい、大変ご迷惑おかけしました。
ここに改めてお詫び申し上げます。

いつかソフトつくりの壁にあたったときには、
心より宜しくお願い申し上げます。

ありがとうございました。
0664デフォルトの名無しさんNGNG
ドッキングできるウィンドウを探していたため
http://www.codeproject.com/cs/miscctrl/magicdocking.asp
ここのDLLを使用してるのですが
ボタンを押してウィンドウを表示させるとして
すでに表示されていればウィンドウにフォーカスを当てる
などの使い方はできるのでしょうか?

英語が出来ないためここで質問させていただきました。
どうぞご教授願います。
0665デフォルトの名無しさんNGNG
ソース見れば分かるんじゃないの?
0666デフォルトの名無しさんNGNG
For the sake of looking for a window which can make a dock
http://...
I take advantage of the Dll presented at that URL,
While displaying a window with a button pushed,
is it possible to focus the window already shown ?

Thank you.
0667デフォルトの名無しさんNGNG
試しに、664を英訳ソフトで英訳してみました。
このソフト、もしよかったら紹介しましょうか?
0668デフォルトの名無しさんNGNG
それがC#製ソース付きなら是非とも。
そうでなきゃいらん。
0669デフォルトの名無しさんNGNG
DataGridで、任意のセルに配色やフォントの置換をするにはどのようにすれば
いいのでしょうか?
 DataTable dt = new DataTable();などと作っていって
dt.Rows[][]で任意のセルを取ってくることはできますが、
オブジェクト型にキャストすればいいのでしょうか?
とってきてForeColor = Color.Redなどとしたいのですが。よろしく
お願いします
0670664NGNG
う〜ん・・・
DLL経由でないとウィンドウが表示されているかがわからない
ということでしょうか?
0671663NGNG
>>669
http://vbdotnet.fc2web.com/csharp/control/DataGridMenu.htm
http://homepage3.nifty.com/dotnetfan/winmenu.html
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=DataGrid%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB&num=50
http://dobon.net/vb/dotnet/datagrid/
http://www.akadia.com/services/dotnet_arraylist_datagrid.html

僕がDataGrid作るときに、参考にしたサイトです。
0672デフォルトの名無しさんNGNG
C言語でいうstructは、C#だとstructなんでしょうか?classでしょうか?
0673デフォルトの名無しさんNGNG
>>672
structだね。一応MSDN読んでclassとの違いとかを確認しといたほうがいいよ。
0674デフォルトの名無しさんNGNG
インスタンス名の指定に変数をつかって、インスタンスを多数作るには
どのようにしたらよいのでしょうか?

以下のような感じでdt_NNNの部分が変化する数百個のインスタンスを作りたいのです。
(dt_NNNの部分の文字列はstringの配列に入っています)

DataTable dt_123 = new DataTable();
DataTable dt_286 = new DataTable();
DataTable dt_NNN = new DataTable();
・・・
よろしくお願いします。。
0675デフォルトの名無しさんNGNG
>>674
・・・それをどうやってつかうきだ?
0676デフォルトの名無しさんNGNG
そうまでして配列を使わない理由を小一時間(ry
0677デフォルトの名無しさんNGNG
興味アル方メールください

業務内容
サーバ・アプリケーションの設計・開発・運用・保守管理などの業務に取り組んでいただきます。
資 格
学歴不問25〜40歳位迄、下記項目中2項目以上の経験者が望ましい。


Java開発経験者(Tomcat等のJakarta Projectを利用した開発)
DB開発運用経験者(Oracle,PL/SQL,Pro*C,MySQL,PostgreSQLを利用した大規模DBの運用・開発経験者)
Linuxサーバの構築・運用経験者(bind,sendmail,qmail,ネットワーク一般、セキュリティ設定等)
システム開発プロジェクトマネージャー経験者


勤務地
東京都渋谷区
0678デフォルトの名無しさんNGNG
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.yahoo.co.jp");
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

MessageBox.Show("CharacterSet=" + resp.CharacterSet);
MessageBox.Show("Contents Encording=" + resp.ContentEncoding);

とかやっても、CharacterSetとかContentEncordingが取得できません。
この後で、StreamReader使って読み込みたいと思っても、Encodeがわからないので、
日本語のページでは困った事になってしまってます。

これらの簡単な解決方法はないのでしょうか?
HeaderのContent-TypeでCharacterSetまで定義している場合は少ないと思うので、
やっぱり行単位で読み込んでいって、Metaタグで判定してから変換とかになるのですかね?

なんかお知恵をください。
0679デフォルトの名無しさんNGNG
>>674

Hashtable hash = new Hashtable();
hash["123"] = new DataTable();
hash["286"] = new DataTable();
hash["NNN"] = new DataTable();

・・・

DataTable tbl = (DataTable)hash["xyz"]
0680デフォルトの名無しさんNGNG
>>678
簡単な解決があったらブラウザが文字化けする事も無くなってしまうわな。
0681デフォルトの名無しさんNGNG
http://www.csharphelp.com/archives2/archive342.html
↑のソースですが、コンパイルは通るのですが、実行すると
インターフェイス SQLDMO.NameList の QueryInterface に失敗しました。 
となってしまいます。
どなたか、動く人がいましたら教えてください。
0682デフォルトの名無しさんNGNG
>>681
ググってみたけど、「最新のサービスパックを充てろ」って書き込みが多い。
漏れは使ったことないからよく分からんけど。
0683デフォルトの名無しさんNGNG
タブコントロール内でPictureBoxを描画する場合、タブコントロールを
Refreshしなければ描画の表示がうまく表示されないのですが、
リフレッシュさせずに描画を表示させるのはどのようにすればよいのでしょうか?
0684デフォルトの名無しさんNGNG
普通はPictureBoxをInvalidateするものだが。
0685デフォルトの名無しさんNGNG
684
それを使って描画しているのですが…
今やってみると、なんだか描画できたりできなかったりです。汗
tabPageのRefreshとUpDateとInvalidateはどう違うのかが
わからないです…
0686デフォルトの名無しさんNGNG
Invalidate ⇒そのうち OnPaint や何かが動いて再描画される。
Update ⇒ Invalidate されていたら、すぐ再描画する。
Refresh ⇒ Invalidateしてすぐ Updateする。
0687683NGNG
686
なるほどです。
タブコントロール上でアニメーションやタイマーイベントで描画する場合、
アップデートで十分という解釈でよろしいのでしょうか
0688デフォルトの名無しさんNGNG
>>687
どう読めばそうなるんだ... orz
0689683NGNG
今までリフレッシュでやっていたんですが、
どうしても画面がちらつくのが…
0690デフォルトの名無しさんNGNG
俺、FlashでアクションスクリプトつかってHPとかつくったことのある人です。
C#をつかってwindows用のアプリケーションを作りたいと思ってアカデミックかってみたはいいが、アクションスクリプトにくらべてクラスとか種類が多くて大変だね。
1冊本つかって勉強してるんだけど、ひたすらサンプル作ったり問題といたりして土台みたいなの身につきますか?
将来的にはwebアプリケーションみたいなのつくたいんよ。
0691デフォルトの名無しさんNGNG
>>690
2冊目を買ってからのほうが良いよ。一冊で補完しきれない部分とか結構あるから。
0692デフォルトの名無しさんNGNG
>>691
アドバイスTHX。
年末にかけてマターリやってみますヽ(´ー`)ノ
0693デフォルトの名無しさんNGNG
>>692
http://www.amazon.co.jp/exec/obidos/ASIN/477411507X/249-8445994-9536323
これがお勧めです。
内容が非常に浅いですが、こんなこともできるんだってな喜びが得られると
思います。
僕は入門時に、この本にかなり勇気付けられました。
(そのころ、僕はC,C++,VC++,ActionScriptを経験していました)
0694デフォルトの名無しさんNGNG
>>689
Paintイベントで描画してないか?
0695デフォルトの名無しさんNGNG
C#でディスプレイに落書きするソフトを作りたいのですが、
どのAPIを使えば出来そうですか?
0696デフォルトの名無しさんNGNG
大きなフォームを作る。
→透過色を適宜設定
→MouseMoveとかで描画
0697683NGNG
Paintで描画して、Invalidateで再描画しております。
他に描画する方法がありますでしょうか?
0698デフォルトの名無しさんNGNG
>>697
ちらつくのはInvalidate()じゃなくてPaintで描画しているせい
バッファリング汁
0699683NGNG
>>698
調べてみました。
http://www.woodensoldier.info/computer/CSharp.htm
こちらのサイトのGDI+のダブルバッファリングということでしょうか?
0700デフォルトの名無しさんNGNG
yes
0701683NGNG
フォームのダブルバッファリングは知っていたのですが、
ピクチャーボックスにもあったんですね。
皆様ありがとうございました。
0702デフォルトの名無しさんNGNG
>>699
その辺を自前でやるのなら、PictureBox じゃなくて単純なPanelを使ったほうが
考慮すべきことが減ってラクですよ。
0703デフォルトの名無しさんNGNG
昔ダウンロードしたファイルを、どこからダウンロードしたか調べられませんか?
元のurlとかの情報はWindowsには保存されてないんでしょうか?
0704デフォルトの名無しさんNGNG
>>703
それがC#とどう関係あるのかは存じませんが、
よくあることですよね。
拡張子を覚えているなら、テンポラリフォルダで
検索することも可能ですが、
Googleで検索したほうがいいですね。

http://www.amazon.co.jp/exec/obidos/ASIN/4621072943/249-8155793-7711568
0705683NGNG
Panelに描画していくということでしょうか?
0706デフォルトの名無しさんNGNG
>>702
「パネルがちらつきます。ダブルバッファリングしてるのにどうしてでしょうか?」
とかいう質問に3000マリネラ
0707デフォルトの名無しさんNGNG
>703
オレは少しでも役に立ったページは必ずお気に入りに登録するが。
code projectなどは記事毎にお気に入りに登録してるしな・・・
0708デフォルトの名無しさんNGNG
HttpRequestクラスを継承したクラスを作成したいのですが、
コンストラクタ定義した時点で、引数があるにもかかわらず、
HttpRequestに引数は0このメソッドはありませんと出てしまう。
何がいけないのでしょうか?
 やりたいことは、Headerの予約されている要素をデータを設定し
た以後でも自由に改変したいのです。元の動作では、そのまま用意されている
プロパティに値突っ込んでやるとランタイムエラーメッセージが出てしまう。
その仕様を無視させたいので継承したいだけです。
 ヘッダー自由に作成できる別クラスがあればそれでもいいのですガ....
0709デフォルトの名無しさんNGNG
クラスを継承させる場合、基底クラスのコンストラクタが自動的に呼ばれる。
実行されるコンストラクタは指定しない場合基底クラスのデフォルトコンストラクタ(引数無しのコンストラクタ)だ。
で、HttpWebRequestはデフォルトコンストラクタ持ってないから。

じゃあ引数付きのコンストラクタはどうかというと、2つあるのはどっちもinternal。
唯一のprotectedコンストラクタはISerializable用の.ctor(SerializationInfo, StreamingContext)。

事実上、好き勝手な継承はできない。


ところで

>データを設定した以後でも自由に改変したいのです。

ってのがよくわからのだが。
0710デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemnethttpwebrequestclassheaderstopic.asp
コノページで言うとこの各メソッドの呼び出しによって開始した要求の後に Headers プロパティを変更すると、 InvalidOperationException がスローされます。
InvalidOperationException が出るタイミングでも要素を書き換えて、送信したいということです。
 ヘッダーを偽装するようなことをしたいって事だと考えてます。
0711デフォルトの名無しさんNGNG
何に対して偽装するんだ……?
0712デフォルトの名無しさんNGNG
Expect Date Host等のヘッダ情報を書き換えれればいいだけなのですが
0713デフォルトの名無しさんNGNG
>>693
おぉ。ありがとうございます。明日書店で拝見させていただきます。
693さんは、かなり経験豊富みたいですねぇ(〃▽〃)
0714デフォルトの名無しさんNGNG
hoge
0715デフォルトの名無しさんNGNG
>>710
開始した後は変更できないよ。だってもう先方にリクエスト送っちゃってるもの。
0716デフォルトの名無しさんNGNG
Explorerを「詳細」にするとListViewみたいな感じになりますよね。
そのタブの部分が右クリックで表示を切り替えられるようになっていますが
C#のListViewでおなじことをするにはどうしたらよいですか?
0717デフォルトの名無しさんNGNG
>>716


671 :663 :04/12/08 00:18:53
>>669
http://vbdotnet.fc2web.com/csharp/control/DataGridMenu.htm
http://homepage3.nifty.com/dotnetfan/winmenu.html
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=DataGrid%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB&num=50
http://dobon.net/vb/dotnet/datagrid/
http://www.akadia.com/services/dotnet_arraylist_datagrid.html

僕がDataGrid作るときに、参考にしたサイトです。
0718デフォルトの名無しさんNGNG
タブコントロールで、
その中にタブページを表示すると、その背景がフォームの色になってしまいます。

WindowsXPで、ほかのソフトとかWindowsの設定ダイアログとかを見ると、
タブページの背景はグラデーションがかったものになってます。

こうするためにはなにか設定が要るんでしょうか?
EnableVisualStylesとかしてもダメでした。
0719デフォルトの名無しさんNGNG
CGIへデータをPOST(ENCTYPE="multipart/form-data")するシステムを作成しています。
画像ファイルを送りたい場合、バイナリになりますが
一体どのようにコーディングすれば宜しいでしょうか
0720デフォルトの名無しさんNGNG
>>719
このスレで出てる。
0721719NGNG
>>720
481のことでしょうか?ちょっと異なるのですが・・・。
0722デフォルトの名無しさんNGNG
じゃあ何がどう異なるのかを説明しなよ。
>719の記述は曖昧に過ぎる。RFCを読めとしか言いようがないさ。
0723719NGNG
すいません。
CGIへPOST(ENCTYPE="multipart/form-data")するシステムを
作っています。
WebRequestクラスを使って、POSTへデータを投げようと
思うのですが、POST文字列をどのように作成すれば良いのか
分かりません。
ヘッダーも作る必要があるのでしょうか
0724デフォルトの名無しさんNGNG
ヘッダというか、multipart/form-data の書式を満たした mime multipart のデータ全体を作って投げてやる必要があるよ。
RFC嫁⇒ ttp://suika.fam.cx/~wakaba/-temp/wiki/wiki?RFC%202388
0725デフォルトの名無しさんNGNG
実際に何を送ってるのか分からないと言うのなら、ブラウザで送信してみてそれをパケットキャプチャとかしてみる。
0726デフォルトの名無しさんNGNG
DataSet
DataTable

DataGrid
DataGridTableStyle

に関する質問です。

DataGrid.Source が DataSetであって、
DataGrid.Member が DataTableです。

DataGrid上でDataSetをSortすると、
「DataGrid上でMouseUp.HitTestで取得した行番号」
と、
「そのMouseUpされた行の内容が収められているDataTable内での
行番号」
が一致しません。
ソートしなければ、一致します。
ソートすると、HitTestで検出する行番号が
実際のデータではなく「DataGridに表示された表向きの行番号」
となってしまうのです。
これは、いかにして解決すべきでしょうか。
先輩方、先生方、どうぞよろしゅうお願いいたします。
0727フナ太郎NGNG
もうちっとデータグリッド使い勝手よくなんねーかなー
0728デフォルトの名無しさんNGNG
>>727
わしも、そーおもう。
(古ッ!)
0729デフォルトの名無しさんNGNG
だからこそのDataGridView。
……多機能すぎて使い勝手の面であんまりよろしくないな。
0730デフォルトの名無しさんNGNG
C#で、文字列作成してますが
"を文字列として出したい場合、どうしたらいいんですか
0731デフォルトの名無しさんNGNG
こんどVC#を始めようと思うのですが、お勧めの本を教えてください。
ちなみにVBはやったことがあります。
リア厨でお金が無いんでこれ一冊でIDEの使い方からコンソール、GUIまでOK!みたいなヤツをお願いします。
0732デフォルトの名無しさんNGNG
>>730
\"

>>731
ない。本気で
0733デフォルトの名無しさんNGNG
常時接続環境があるなら、ネットにあるので割と十分。
0734デフォルトの名無しさんNGNG
>>732
じゃあ、一番オススメなのはなんですか?

>>733
一応繋ぎ放題ですがAirH"なんですよ。
結構厳しいです。
0735732NGNG
>>734
む〜……
「IDE」「C# の文法」「GUI」のどれがいいか、せめて選んでくれぬか?
0736デフォルトの名無しさんNGNG
>>734
http://www.microsoft.com/japan/info/press/bookimages/02921.jpg
http://www.microsoft.com/japan/info/press/JPN_ViewMsPress.asp?Book_id=842&list_id=1
http://www.microsoft.com/japan/msdn/net/books/ProgWinCsharp/chapter2.asp
http://www.microsoft.com/japan/msdn/net/books/ProgWinCsharp/contents.asp
0737736NGNG
GUIの基礎本が>>736ね

C丼の文法で最強にわかりやすく値段もリーゾナブリーなのがコレ
http://www.ric.co.jp/book/contents/covers/book407.gif
http://www.ric.co.jp/book/contents/book_407.html

この本の一部はVS2003のリファレンスにもついてた
0738デフォルトの名無しさんNGNG
>一冊でIDEの使い方からコンソール、GUIまでOK!
これなんかどうかな。
http://images-jp.amazon.com/images/P/4844316222.09.LZZZZZZZ.jpg
0739デフォルトの名無しさんNGNG
>>736
ほえーあの無駄に高いやつかぁ・・・

>>737
それよさげですね。
0740739NGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4774114847/qid=1102673740/ref=pd_ka_1/249-4043623-0986741
これはどうなんですか?
一応連載を読んだこともあるんですが、それなりに値段も安くて、順位も上位でよさそうなんですが・・・
0741デフォルトの名無しさんNGNG
C#でVNCみたいなソフトを作ろうとしているのですが、
windowsにマウスクリックイベントを送信する方法ってわかりませんか?
0742デフォルトの名無しさんNGNG
わかりません
0743739NGNG
>>741
SendMessageじゃないか?
0744739NGNG
あーーーーー癖でAPIを答えてしまったorz
吊ってきます・・・
0745726NGNG
・・・放置しないで・・・たのむ・●rz
0746デフォルトの名無しさんNGNG
>>726
モッコス
0747デフォルトの名無しさんNGNG
>>745
http://pc5.2ch.net/test/read.cgi/tech/1065196964/446-453
0748741NGNG
dllたたくしか方法はないのでしょうか?
0749デフォルトの名無しさんNGNG
>>748
うん
0750741NGNG
レスどうもです。残念です。
0751726NGNG
>>747
天使だな、サンクスコー
0752デフォルトの名無しさんNGNG
>>741
P/Invokeでmouse_event。
0753デフォルトの名無しさんNGNG
#か♯どっちなんですか?
0754デフォルトの名無しさんNGNG
# が正解。
0755デフォルトの名無しさんNGNG
>>754

(゚Д゚)ハァ?

C# C# C♯ C丼 C井 C++++
       ↑
     どうかんがえてもこれだろ          
0756デフォルトの名無しさんNGNG


┌ ++
└ ++
0757726NGNG
>>747
THe Problem has been resolved.
0758デフォルトの名無しさんNGNG
外人が考えたんだからASCIIで表現できるに決まってる。
よって「C#」で決まり。
0759デフォルトの名無しさんNGNG
CωはASCIIじゃないですが・・・
0760デフォルトの名無しさんNGNG
ガラパゴス日本的には♯でいいよ
0761デフォルトの名無しさんNGNG
おれだけのC♭
0762デフォルトの名無しさんNGNG
ωって、英語のOSでも表示できる?
0763デフォルトの名無しさんNGNG
C# ではなくて Visual Studio の質問になってしまいます。
スレ違いであれば誘導お願いします。

あるプロジェクト ABC は EXE で、別の DLL XXX を呼びだそうとしています。

ソリューションで ABC のみ存在している状態で XXX のプロジェクトを追加して
参照の追加で、XXX プロジェクトを追加しようとすると
dll のみが追加できるといったメッセージが表示されて参照の追加ができません。

これとは別で同じように EXE から DLL を呼び出すプログラムでは
EXE ファイルのソリューションにその DLL のプロジェクトを追加して
参照の追加で問題なくプロジェクトを追加できています。

このように、参照の追加でプロジェクトを追加できる場合とできない場合
があって困っているのですが、何が原因で参照の追加にプロジェクトを指定
できないのかわかりません。その為に EXE から呼び出して使用したい
DLL のデバッグができずに困っています。

何かお気付きの点がある方は教えてくださいませんでしょうか?
よろしくお願いします。
0764デフォルトの名無しさんNGNG
実はXXXの出力がWindowsアプリケーション/コンソールアプリケーションになってるとか。
0765デフォルトの名無しさんNGNG
それは確認したのですが、クラスライブラリになっています。
どうしてもその XXX だけがプロジェクトを参照の追加で選択できないんです。
何がいけないのかわからない…。誰か助けてください....
0766デフォルトの名無しさんNGNG
>>762
ギリシャ文字だから表示できるにきまってるだろう
数学じゃπとか使うし
0767デフォルトの名無しさんNGNG
>766
>π
最近じゃラーメン吸ってるようにしか見えなくなってきたorz
0768最凶VB厨房NGNG
ワロタ。そのあほな発想めちゃ好きや
0769デフォルトの名無しさんNGNG
>>726

currencyManager経由でとらないと正しい行番号は取れん

ソートされているのはDataviewでありDataTableではない

よってView上での実際の行の位置は変わるが
Datatableの位置は変わらん
その辺を管理してるのがCurrencyManager

MSDNでCurrencymanagerみてみ
0770デフォルトの名無しさんNGNG
>>769
>>747 >>757
0771デフォルトの名無しさんNGNG
マーシャリングとは一体何を行うことなのでしょうか?

スレッドに固有のインターフェイスポインタに対して処理を行うのはわかるのですが、
ヒープなんかはスレッドごとではなくプロセスで持っているので、
スレッドがどう関係するのかわかりません。
ポインタのオフセット値をどうにかしたりするんでしょうか
0772デフォルトの名無しさんNGNG
受け取り相手が分かる形にデータを整形する事。
COM相手でもWin32API相手でもマーシャリング。
さて貴方のマーシャリングのお相手は?
0773デフォルトの名無しさんNGNG
my wife
0774デフォルトの名無しさんNGNG
Visual Studio に関して質問です.

ユーザーコントロールや,自作コンポーネント(同ソリューション内の別のプロジェクトで作成)を
使用したフォームをエディタで表示するとき,
そのコントロール・コンポーネントが忽然と消えてしまうことがあります.
どんなときにこの現象が起きるかはよくわかっていません.
またコントロール・コンポーネントをフォームに追加しなおせばいいだけの話ですが,大変面倒です.

一部のコンポーネントをツールバー(マイ ユーザー コントロール)に自力で追加する際,
bin/debug 内にあった DLL を追加したのですが,これがまずかったのでしょうか…?
MSDN の記述に従ったつもりなのですが.
0775デフォルトの名無しさんNGNG
RichTextBoxのClearメソッドを呼び出すと、以後スクロールが機能しなくなるんだが、
どう対処したら良い?
0776デフォルトの名無しさんNGNG
>>763
[ファイル]→[プロジェクトの追加]でXXXを追加してから
0777デフォルトの名無しさんNGNG
WebRequestクラスとかで非同期処理するときって
IAsyncResultで非同期作るのと、スレッド立ててブロッキングで処理やらせて
終わったらコールバック受け取るのとどっちがいいのだ?
繰り返し処理すればIAsyncResultだったらスレッドプール使い果たしたり
しないのかな?
0778デフォルトの名無しさんNGNG
>>777
どっちでも好きな方、自分にとって扱いやすい方を。
IAsyncResultの利点はWaitHandle.WaitAllで簡単に一括待機できるなんてのもある。

> 繰り返し処理すればIAsyncResultだったらスレッドプール使い果たしたり
> しないのかな?

BeginGetResponseを使った場合20接続(だったはず)までに制限される。

>>775
再現しない。
取りあえず.NET FrameworkのSPでも当てる。
0779デフォルトの名無しさんNGNG
例えば何処かの掲示板で「こんなツール無いかな?」と言うのを見て、
出向先のPC、VS.NET2003Pro、C#でそのツールを作ってアップロードするとします。

このツールを見る人が見たら会社名や作成したソフトのVerなど
何かしら詳細がばれるのかな?
最悪、「会社に通報しました」何て事になるのかな?
AssemblyInfo.csに気をつけてれば大丈夫?

昼休みに暇つぶしに作ったことがあるけど、アップして良いものか分かりませんでした。
0780デフォルトの名無しさんNGNG
>>779
そんな無駄で余計な機能はない。
0781デフォルトの名無しさんNGNG
デバッグモードでコンパイルしたものをうpとかそんなアホなことをしなければ大丈夫w
0782デフォルトの名無しさんNGNG
>>780-781
やはり大丈夫でしたか。
同じような状況が今後あるか分かりませんが、
次からは気にせずアップすることにします。
レスありがとうございました。
0783デフォルトの名無しさんNGNG
このスレから、タイーホ者が出ないことを切に願う
0784デフォルトの名無しさんNGNG
20万以上通りの条件分岐って、if文とswitch文、どっちがいいんでしょうか orz
0785デフォルトの名無しさんNGNG
>>784
三項演算子
0786デフォルトの名無しさんNGNG
>>784
設計そのものを疑え
0787デフォルトの名無しさんNGNG
>>762
HTMLなら、&omega;でωが表示されるようになってる
ちなみに&Omega;とするとΩになる。
フォントさえ(MSのUnicodeフォントとか)あればOSを問わず表示出来るはず。
0788デフォルトの名無しさんNGNG
XML Schemaによる検証を行いたいのですが、XmlValidatingReaderでは
エラーメッセージをこちらで決めることができないように見えます。

/Data/Item/Priceに文字列が入力されていたら、
「価格は数値で入力してください。」といった形のエラーメッセージにしたい。

エラーの発生箇所とエラーの種類が取得できればこちらで加工して
適切なエラーメッセージにできるのですが、良い方法はありますでしょうか?
0789デフォルトの名無しさんNGNG
>>788
メンバ一覧を見ただけだが、ValidationEventHandlerイベントは?
0790788NGNG
>>789
ValidationEventHandlerイベントの引数になっている
ValidationEventArgsがわりと情報をもっているのですが足りません。
ValidationEventArgsのExceptionオブジェクトが
エラーが発生した行番号と位置をもっています。
行番号と位置からどの要素でエラーになったのかを解析するのは面倒です。
0791デフォルトの名無しさんNGNG
C# で SQL Server と接続しようとしています。
C# というよりは ADO.NET の仕様になるかもしれないのですが、
データベースに接続/切断するタイミングをどうするべきか悩んでいます。
アプリケーションは Windows.Forms です。

今はトランザクション発行単位に接続/切断を行なっているのですが、
(コネクションプーリングに有効活用?)
アプリケーションの最初に接続し、接続しっぱなしにしたほうがよいのか、
それとも SQL 発行毎に接続/切断を行なったほうが効率がよいのか…。

アドバイス頂けないでしょうか?
また、このあたり説明が詳しい URL などあれば教えてください。
0792デフォルトの名無しさんNGNG
>>791
クライアントの数によるんじゃね?
0793デフォルトの名無しさんNGNG
toolBarのAppearanceプロパティをFlatにすると、
他のウィンドウの後ろに現在のウィンドウを隠し、表示すると
他ウィンドウの画面が残ります。
(ツールバーの場所のみ)

こんな症状を解消する方法をご教授ください。。。
0794デフォルトの名無しさんNGNG
>>791
どのようなアプリケーションによるかなので、一概に言えん。
0795791NGNG
>>792
クライアントの数は、せいぜい 20台程度です。増えても 50台程度で使用する
アプリケーションです。

>>794
基本的には伝票入力的な1画面単位で入力/登録を行なうアプリケーションです。
1画面(1アプリケーション)で扱うテーブルの数はせいぜい 10 程度です。
(その中でも更新されるテーブルは多くて 3,4)

こんな感じでアドバイスを頂ける事があればうれしいです。
どうかよろしくお願いします。
0796デフォルトの名無しさんNGNG
>>790
それ以上の情報を取得する手段は特になさそうだね。
senderはXmlReader(XmlValidatingReaderかな?)にキャストできるけど、微妙か。
強いて言えばValidationEventArgs.Messageの解析かな。
何らかのクラスに纏めるには考えられる状況が多すぎると考えたのかねぇ。
ttp://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=3eed038a-9470-4412-8c33-a40a7800a3f3
こんな凝ったのでもバリデーションのメッセージはそのままValidatioinEventArgs.Messageを使ってるし。
ちなみに.NET2.0でXmlValidationgReaderはあっさりとObsolete指定……

>>793
.NET1.0SP3@XPスタイル/クラシックスタイル
.NET1.1@Win98SE
で再現しないんだけど。
0797デフォルトの名無しさんNGNG
親フォーム内に表示されている子フォームについてですが、
子フォームを親フォームの端(子フォームが見切れる位置)に移動させた時に、
親フォームにスクロールバーが表示されるのをやめさせるにはどうすればよいですか?
どうかアドバイスよろしくお願いします。
0798デフォルトの名無しさんNGNG
C# でレジストリに値を書き込もうとしているのだが、何故かすべて文字列として
書き込まれてしまふ。
DWORD では書き込めませんか?
0799デフォルトの名無しさんNGNG
↑すまんできた。勘違い。
設定している値が文字列になっていた。0x00000001 にすれば大丈夫。
あたりまえか。
0800デフォルトの名無しさんNGNG
>>791
帳票出しまくる(しょっちょうSQL発行しまくる )、処理が終わったらすぐPGを終了させる、
クライアントが少ない、とかなら常時接続でも良い。
PG立ち上げたまま放置されたり、時々DB見に行くだけのソフトならその都度接続した方が良いかもしれない。
タイマーで3分くらいでコネクション切ってもいいし。
CALの問題もあるかな。

とりあえず、コネクションは簡単にできるように関数化しておいて
その都度接続版と常時接続版と出来るだけ簡単に変えられるようにしておこう。
ま、こんなの当たり前なんだけど。

MS SQL Server 総合スレ2 http://pc5.2ch.net/test/read.cgi/db/1093012583/
の、186〜でも出てるけど、結局はケースバイケースなのよね。
0801デフォルトの名無しさんNGNG
プラグインが使用できるプログラムが作りたいです。
プラグインを作成する方法として、インターフェイスdllを作成しました。
プログラムホストのインターフェイスも作成し、プラグインからプログラムへも
操作ができる状態です。

プラグインとプログラム間において、メソッドの引数としてクラスを使用したい場合、
インターフェイスのdllにそのクラスを書いて、参照を使い、プログラムとプラグイン両方
で使用するか、
それともintやstringで代用できるならば、(記述が長くなるが)そちらを使うか、
どちらがベターなのでしょうか?

アドバイスよろしくお願いします。
0802デフォルトの名無しさんNGNG
>>801
安全生と利便性を計りにかけてケースバイケース
ま、どれだけメソッドを隠蔽しても C# では殆ど無意味だから、俺は前者の方を選ぶが
0803デフォルトの名無しさんNGNG
その方式のプラグインは、
引渡しとかそんなことよりプラグイン自体のアンロードが出来ないのが最大の問題。
お手軽なんだけどね。
0804デフォルトの名無しさんNGNG
>>803
リソース食うもの以外なら、自力でアンロードせんでもかまわんだろ
0805デフォルトの名無しさんNGNG
現在テキストボックス(複数行)に
a
b
c
と表示されているものをListBoxに同じように出すにはどうしたらいいですか?
データはStringでもっています。
0806デフォルトの名無しさんNGNG
>>805
TextBox.Lines プロパティから行単位で拾って、ListBox.Add で追加
もしくは string のデータを Split('\n') で行単位に分割して、同様に追加
0807デフォルトの名無しさんNGNG
>>805
listBox.Items.AddRange(textBox.Lines);
0808デフォルトの名無しさんNGNG
>>802
どうでも良いけど生は危険だろ。
0809デフォルトの名無しさんNGNG
安全日ですから
0810788NGNG
フォームにDataSetを作成し入力項目とDataSetを関連付け、
入力チェックをXML Schemaで一括して行おうとするのが
間違いなのでしょうか?
一般的に、入力チェックはどのように実装しているのでしょうか?

0811805NGNG
多謝
foreach(String str in output.Split('\n'))
{
this.ListBox1.Items.Add(str);
}
this.ListBox1.DataBind();
でいってみたいと思います。ありがとうございました。
0812801NGNG
プログラム全体で共有できないのはめんどくさいですね。
プラグインなのでしかたないですが(;´д⊂
0813デフォルトの名無しさんNGNG
みなさんはSTAの中で作られたアンマネージドのスレッドの管理とかは
どのような主義で管理しているのでしょうか?作って動いてますだとすげー
不安なので100%動作を把握したいのですが、外部ツールとか使って監視
とかしてますか?私はSoftICEで監視してるのですが、まだ不慣れで
時間がかかってしまい何かもう少し簡便な方法ご存知ないでしょうか?
0814デフォルトの名無しさんNGNG
よーわからんが、スレッドの役目を限定するのがいいんじゃねえの?
あちこちのコンポーネントに触らないように境界設けるとか。
0815デフォルトの名無しさんNGNG
で、なぜSTAというキーワードが出てくるかね。
0816デフォルトの名無しさんNGNG
イニシャライズ時のスレッドID と動作時のID比較して違ったら例外はけば?
0817デフォルトの名無しさんNGNG
マネージドとアンマネージド、セーフとアンセーフの違いがよくわからないの
ですが教えてくださいませ。それぞれの違いはわかるつもりなのですが、
両方混ざると頭が混乱してしまいます。
アンマネージドでセーフってありえるのでしょうか?
0818デフォルトの名無しさんNGNG
何のセーフよ。
例えばスレッドセーフかどうかはスレッドの扱いによるもので、マネージド/アンマネージドとは別のレイヤの話になるし。
0819817NGNG
次の例のようにunsafeキーワードを使った場合のアンセーフです。
static unsafe void FastCopy ( byte[] src, byte[] dst, int count )
unsafeキーワードを使った場合のアセンブリってマネージドなのか
アンマネージドなのかっといったことに迷ってるんです。
0820デフォルトの名無しさんNGNG
>>819
unsafeを付けただけでネイティブコードになったりしたら大変だろう。

C#は検証可能なコードも不可能なコードも出力できるようになっている。
デフォルトでは検証可能。unsafeスイッチを付けてビルドした場合には検証不可能。
ちなみに、MC++のコードはすべて検証不可能、VB,NETは全て検証可能。
当たり前だが一応、これらは全てManagedコード。
0821817NGNG
ILで動いてるもの=マネージドって理解でいいんですね。
検証可能なマネージドコード、
検証不可能(アンセーフ)なマネージドコード、
アンマネージドコード(ネイティブコード)という分類でしょうか。

検証不可能な管理されたコードって変な感じだったので
ILでかつ検証可能なものだけをマネージドってよんでるのかと思ってしまってました。
0822デフォルトの名無しさんNGNG
初歩的な質問なんだが、C#はclassごとにファイルをわけられないのですか?
csファイルはコンパイルするとすべて実行ファイルになりますよね。
ためしにクラスで分けてみたのですが、newするclassがないとエラー起きます。
0823デフォルトの名無しさんNGNG
しかも、class名とファイル名が異なっていてもコンパイルできますね・・・orz
0824デフォルトの名無しさんNGNG
csc.exeに.csを一つしか渡してないとかいうオチじゃないだろうな。
そもそもVS.NET/VC#.NETを使ってるのかコマンドラインコンパイルなのかどっちだ。

> しかも、class名とファイル名が異なっていてもコンパイルできますね・・・orz

だから何?
delegeteの宣言一つに.csを一つ作れと言うの?
0825デフォルトの名無しさんNGNG
>>824
コマンドラインでコンパイルしています。
Javaはclass名前とファイル名がおなじでないと動かないじゃないですか。
そのへんはC#はどうなのかなと思ったのです。
勉強不足です。邪魔してすみませんでした。
0826デフォルトの名無しさんNGNG
排他(・A・)イクナイ!!
0827デフォルトの名無しさんNGNG
どうしてもjavaっぽいことをしたいなら、スタートアップクラス以外を /target:module で
コンパイルして、.netmoduleのクラスを使う場合は /addmodule:xxx.netmodule で
参照を設定する必要がある。この場合もクラス名とモジュール名は一致させる必要は
なく1:1の関係でもない。
まあ普通はこんな使い方はしないけどね。
0828デフォルトの名無しさんNGNG
そうなんですか…。クラス一つにファイル一つという考え方でいままで勉強してきたので、変なかんじです。
0829デフォルトの名無しさんNGNG
すいません、OracleとC#のやり取りに関して質問です。
以下のコードで、実行したのですが、うまくいかないのです…。

Provider=MSDAORA.1;
Data Source=サーバー
User ID=ユーザー
Password=パスワード
Persist Security Info=True


//コネクション作成
OleDbConnection myConn = new OleDbConnection(strConn);

//コネクション確立
myConn.Open();

string myInsertQuery = "insert into TESTDB(NO,NAME,MEMO) values(7,'AAA','ああああ');";
OleDbCommand myCommand = new OleDbCommand(myInsertQuery,myConn);
myCommand.ExecuteNonQuery();

myConn.Close();


↑↑↑のようにC#よりOracle接続を行い、Insert文を実行するプログラムを作ったのですが、
コネクション確立までは問題なく実行できるけど、Inset文が実行できません。
Executeのところで、システムエラーになってしまいます。何か間違っていますでしょうか?

C#より、Oracleのテーブルに登録・更新・削除処理を行うには、どうしたらよいのでしょうか?
0830フナ太郎NGNG
なんだかなー。
おまえら、C#関連の本もってんの?
一冊ぐらい買っといたほうがいいぞ。
0831デフォルトの名無しさんNGNG
じゃあ一つその本から得た知識からご高説を賜ろうか。
0832デフォルトの名無しさんNGNG
>>829
出てるエラーの内容をUPしてね、システムエラーじゃわからん。
0833デフォルトの名無しさんNGNG
>>832

'System.Data.OleDb.OleDbException' のハンドルされていない例外が system.data.dll で発生しました。

というエラーです。。。
0834デフォルトの名無しさんNGNG
じゃあ次はその例外をキャッチしてOleDbException.Errorsプロパティから詳細情報を取得。
0835デフォルトの名無しさんNGNG
>>829
そのエラーがOleDBプロバイダの出してるエラーならば、
values(7,'AAA','ああああ'); <- ここのコロンが怪しくないか。
0836デフォルトの名無しさんNGNG
>>834

現在のオブジェクトの情報が有効ではありません。というエラーです…。
0837デフォルトの名無しさんNGNG
>>822
C#の場合(というか.NETの場合)一回のコンパイルでできる.exeなり.dllなりを「アセンブリ」と呼ぶ。
アセンブリには、Javaの.classファイルとは違い、複数のクラスを含めることができる。複数のソースファイル
からひとつのアセンブリを作ることもできる。

その代わり、他のアセンブリに含まれるクラスを使うためには、コンパイラのオプションで明示的に指示して
やる必要があるわけ。
0838837の続きNGNG
そうなっている理由は(推測だけど)、C#がIDEを前提にしているからだと思われ。
コンパイルオプションが煩雑になっても問題ないし、.classファイルを検索しなくてすむ分、コンパイルが速くできるから。

誰かツッコミきぼん。
0839デフォルトの名無しさんNGNG
スレッド関係いろいろ勉強してるのですが、
CThreadはMTAでもSTAでも好きなほうで動かせるのですか?
全然判らないというかMFCを使ったことがないです。

0840デフォルトの名無しさんNGNG
なぜそこでMFCが出てくる?
0841デフォルトの名無しさんNGNG
つーか誤爆だと思われ。
じゃなかったらどうしようもないチンカス
0842デフォルトの名無しさんNGNG
お尋ねいたします。
現在、シェアウェアソフトを公開する準備をしております。

1.不正利用防止のための技術が紹介されているサイトを
  ご存知ないでしょうか。ございましたら、ご紹介願います。

2.不正利用防止のため、myAppliの起動時に起動元PCの
  MACアドレスを自動で私のPCに送付させたいのですが、
  この機能を持たせるためには何が必要でしょうか。
  私の推測ですが、「私のPCに送付させたい」とありますが、
  その利用元のメールサービスを経由することは到底不可能だと
  思います。したがって、例えば迂回路のようなものが必要だと
  考えています。
  もちろん、MACアドレスが完全唯一であるものの
  完全に不正利用を防止できるとは考えておりませんが・・。

以上、みなさまのお知恵を拝借したく。

お願い致します。 関
0843842NGNG
追記です。私のプロバイダーは、フォームデコードが利用できます。
http://support.zaq.ne.jp/homepage/cgi/decode.html
0844デフォルトの名無しさんNGNG
2の条件を見たらスパイウェアとしか思えない。
そんなそのほかに何送るか知れたものじゃないアプリなんて使う気がしない。
0845842NGNG
追記です。私のプログラム知識で以下のような経験があります。
imm.dll user32.dll office.dll visualbasic.dll
この程度です。
0846デフォルトの名無しさんNGNG
>>842
ひとまずメール送付は諦めて鯖にHTTPでGETなりPOSTなりさせるようにするのが無難。
正体不明な相手に対するメール送信は今時のFWでは厳しくブロックされる。
MACアドレスの取得はhttp://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451を参照。

まあ安心汁。どのソフトか分かれば同機能のフリーウェアを作って対抗してやるから。
0847デフォルトの名無しさんNGNG
>>842
まともなファイアウォールを使っている人間ならば、勝手に情報を
送ろうとしたら遮断するし、その情報はすぐに広まってそんなシェア
ウェアは誰も使わなくなると思うのだが。そして激しくスレ違い。
0848842NGNG
>>844
当然、ご利用者様には了承を得ます。
シリアルが流れて、損害を被りたくないのです。
0849デフォルトの名無しさんNGNG
>>842
・課金
・マシン固有のIDの創出
・その管理
をどうするの?
0850デフォルトの名無しさんNGNG
>>848
無理です。あなたにはシェアウェア開発は無理。
おとなしくフリーソフトにしときなさい。
そんな勝手に個人を特定できる情報を送信する危ないソフトなんて
今時誰も使わない。
0851842NGNG
>>846
GetAdaptersInfoですね、どうもありがとうございます。
さっそくやってみます。

>>849
まぁ、一種の警告ですね。

>>850
無理ではない。おとなしくフリーソフトにする根拠がない。
個人を特定できる情報を送信するソフトなんて誰も使わないのだったら、
WinXPはどうなるのでしょうか。重要なのは、そのソフトが
必要かどうか、ただそれだけだと思います。
不要だと判断され入金されなければ、それまでです。特にありません。
0852デフォルトの名無しさんNGNG
>>850
WinXPはアクチベーションの際にはプロダクトIDのチェックをする
だけで、個人情報は「一切送信されません。」

適当な事書くなハゲ。
0853842NGNG
>>852
え、「一切送信されません」ってみなさん、信じてるの?
0854デフォルトの名無しさんNGNG
うは、終わったな842
0855842NGNG
しょぼーん(´・ω・`)

フリーソフトで出直してきます・・。
英語のHP読めなくて、やる気うせました。
0856デフォルトの名無しさんNGNG
XPは他に選択肢がないから我慢するだろうが、842さんのソフトがそこまで価値あるなら同じように我慢するでしょ。
0857デフォルトの名無しさんNGNG
仮にも比較対象は世界一のPC用OSベンダ、MSなんだから積み上げてきた実績も信頼性も違いすぎる

#ここで信頼性に突っ込むような厨房丸出しな事はやめてくれよ
0858デフォルトの名無しさんNGNG
別にスパイウェアだとか言う噂が広まったって、
困るのは>>842なんだから放っておけばいいと思うけど。

それよりそんなに売れるという自信が羨ましい。
0859842NGNG
>>858
少しくらいは売れますね。
少なくとも5年以内に利用対象ユーザが6万人に増えるのが確実で
且つマイナーな分野なので類似したソフトがない。
0860842NGNG
>>858
スパイウェアだと噂が広まる前に
説明書にスパイウェアの旨を明記しますってば。
0861デフォルトの名無しさんNGNG
今晩のお祭り会場はここですか?
0862デフォルトの名無しさんNGNG
どんな分野よ。
ここまで騒いだんだから差し障りない範囲で情報提供汁。
ここで話してまねされるぐらいようなモンでもないでしょ?
0863デフォルトの名無しさんNGNG
>>846あたりで解決して以降の内容はスレ違いじゃない?
適当にスルーしてよ。
0864デフォルトの名無しさんNGNG
>>860
マニュアルに何を記載しようが、
>え、「一切送信されません」ってみなさん、信じてるの?
という発言が致命的なまでに信用を毀損したと思う。

匿名とはいえ、.NETでマイナーな分野で潜在ユーザが近々6万人で
スパイウェアで類似したソフトがないとなると、さすがに特定されるだろ。
0865842NGNG
>>862
ネットワーク型出会い系ソフトです。
ただで参加されても困るので・・・。
0866デフォルトの名無しさんNGNG
そもそもWinXPとMACアドレスを同系列で論じるのがおかしい。

WinXPのプロダクトIDは、ソフトウェアと「セット」になっているものであり、
個人情報は一切含まれてないが、MACアドレスは、仮初めにも他人の
ハードウェア情報で、その気になれば個人を特定できるシロモノ。

人様の情報を盗み読みしておいて勝手に送信するなんて、スパイウェア
そのものでつね( ´,_ゝ`)プッ
0867デフォルトの名無しさんNGNG
>>865
出会い系?DQNかよ。このスレを荒らさないように、他にスレ立てて
そこでアイディアを募集してくれ。スレが汚染されていくのを黙って
見てられない。
0868842NGNG
>>866
え、個人を特定できなければ、意味なくないですか?
ですから、スパイウェアですってば!!
0869デフォルトの名無しさんNGNG
>>868
出会い系なら、鯖側でIDとパスワードで認証できるようにできんの?
それに違反したら不正アクセス防止法で引っ張れるんだし。

それとも鯖を使わないP2P型出会いソフトか?
0870842NGNG
>>869
発想が貧困だよな。
0871デフォルトの名無しさんNGNG
あのぅ、初心者なんですけど、
HTTPでGetやPostをさせるには
C#ではどうしたらいいのでしょうか・・・お願いします。
0872デフォルトの名無しさんNGNG
2コンマイクに「ポストーーーーーーーーーーー!!!」と絶叫する
0873デフォルトの名無しさんNGNG
>>871
HttpWebRequestクラスを使う。
0874871NGNG
>>873
サンクスコ。
0875デフォルトの名無しさんNGNG
>>870
貧困で結構です。下手をすると犯罪の手引きをするようなソフトを
作ろうとしている君よりは遙かにマシだと思っている。
0876871NGNG
見通しがたったので、今宵はこれにて。
どうもありがとうございました。
自分のソフトが少しでも社会の役に立てればと思います。
今後ともよろしくお願いします。
0877デフォルトの名無しさんNGNG
貧乳ですよね
0878デフォルトの名無しさんNGNG
>>876
社会の糞の役にも立たないから。はいはい行った行った。
0879デフォルトの名無しさんNGNG
>>872
迂闊にもワロタ。
0880デフォルトの名無しさんNGNG
> 犯罪の手引きをするようなソフトを作ろうとしている
自己紹介乙。児童買春は犯罪じゃないのかぁ
0881842NGNG
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemnethttpwebrequestclassmethodtopic.asp
0882デフォルトの名無しさんNGNG
>>871
スレの趣旨に沿った発言者の方が肩身狭そうでワラタ
0883デフォルトの名無しさんNGNG
>>871は

>>846
> ひとまずメール送付は諦めて鯖にHTTPでGETなりPOSTなりさせるようにするのが無難。

を受けての>>842による自作自演と読んだが
0884デフォルトの名無しさんNGNG
>>880
おいおい、途中で勝手に人の文を切るな。意味が正反対になるだろ。
0885デフォルトの名無しさんNGNG
>>883
俺も>>876を読んでそう思った。
0886デフォルトの名無しさんNGNG
マ板は相変わらずシェアウェア厨には風当たりが強いでつねw
0887デフォルトの名無しさんNGNG
こちらはム板でございます
0888デフォルトの名無しさんNGNG
こんな時間に元気だなお前ら。
0889デフォルトの名無しさんNGNG
マ板とム板の区別もつかない厨がソフトウェアを作ろうなんておこがましい。
0890デフォルトの名無しさんNGNG
たまに他所様の巨大ソリューションを見せていただくと、
クラスライブラリだけじゃなく、そのクラスライブラリのインタフェースも別プロジェクト
になっていたりします。例えば、MSが公開している例外クラスも、
Microsoft.ApplicationBlocks.ExceptionManagementと、
Microsoft.ApplicationBlocks.ExceptionManagement.Interfacesのように別プロジェクトに。

なんか、ネームスペースを分けたいだけにしても、
本体のプロジェクトの下にInterfacesのディレクトリ作って、そこに入れたらよいような
気がしますが、こうするのには何か理由があるのでしょうか?
そんなの常識っていうようなオブジェクト指向的なお作法のようなものとか・・・
0891デフォルトの名無しさんNGNG
>>890
.netのネームスペースは単に名前空間を分割するだけのもので、
javaと違い.classやアセンブリの物理的な配置とは一致しません。
>本体のプロジェクトの下にInterfacesのディレクトリ作って
というのはまったく意味を持ちません。
単一のアセンブリ(dll)の中に異なるネームスペースを混在できます。
ただし特別の理由がない限り一致させますけどね。

さて、インタフェースと実装などでアセンブリを分ける理由ですが、バージョン
管理の問題だと思います。.netのアセンブリは厳密名を付けることが推奨されて
ます。実装部と同じアセンブリにインターフェイスが含まれている場合は
実装の変更のたびに厳密名が変わってしまい他のプログラムへの影響が大きい
わけです。
0892デフォルトの名無しさんNGNG
インターフェースが普遍ならば追加ありえる実装部分を別プロにするのはイタって普通
0893デフォルトの名無しさんNGNG
COM
0894890NGNG
なるほど、良く分かりました。
インターフェースの意義って、クラス定義を明確にして、
バグを減らすこと程度にしか考えてなかった私が厨房でした・・・

どうも有り難うございました。
0895デフォルトの名無しさんNGNG
C#で、グリニッジの時刻を取得する方法はないでしょうか。
福岡大(?)の時計でもいいです。
なるべく、インターネットへの接続環境の差異に依存しない
(少なくともインターネットに接続されているのが前提)
手法をご紹介いただけないでしょうか。
0896デフォルトの名無しさんNGNG
gmttime
0897デフォルトの名無しさんNGNG
1.ウィンドウズ上で時刻を手動再設定あるいは桜時計などで
  +9GMTの時刻取得による自動再設定があった場合でも、
  常に普遍な時刻の取得方法

2.バイオスの画面で再設定できる時計から独立した時計であって、
  PC内に内在する時計

3.マザーボードのボタン電池を抜いても、動作を継続する時計


以上の3のいずれかに関してご存知でしたら、
助言いただきたく、お願いいたします。 桑原
0898デフォルトの名無しさんNGNG
NTPの使い方を聞いてるのか?
0899デフォルトの名無しさんNGNG
.NETにsntpのクラスはなかったと思うからソケットで直接書くことになると思う。
System.Net.Sockets.UdpClientあたりが使えるかも。
0900時刻厨房(895)NGNG
インターネット上で日本標準時を提供しているNTPサービス
http://www.jst.mfeed.ad.jp/

ここから、C#で時刻取得する方法あったらウマーです。
0901デフォルトの名無しさんNGNG
>>897
ほれ
http://vector.aol.co.jp/soft/winnt/prog/se281705.html
0902時刻厨房(895)NGNG
>>901
天使ハケーーン!!
0903デフォルトの名無しさんNGNG
>>895
>なるべく、インターネットへの接続環境の差異に依存しない
↑これと、↓これが、矛盾したこと言ってるように思えるのは漏れだけ?
>(少なくともインターネットに接続されているのが前提)
0904時刻厨房(895)NGNG
>>Private Sub Command1_Click()
>>
>> '' 時間を取得して表示する。
>> Label1.Caption = "時間 : " & Format(GetNtpTime(), "HH:MM:SS")
>>
>> '' 取得できるのは標準時間だけです。
>> '' 時差の補正、日付の取得はしていません。
>> '' 取得した時間には通信遅れによる誤差が含まれます。
>>
>>End Sub

●rz...日付気盆ヌ
0905デフォルトの名無しさんNGNG
お世話になります。
key=test
の、testだけ取り出したい場合、簡単な方法はないでしょうか。
今、=の位置を見て、その位置から文字の最後まで切り出して・・・みたいな
処理をしてるのですが
0906デフォルトの名無しさんNGNG
>>897
>バイオスの画面で再設定できる時計から独立した時計であって、
>PC内に内在する時計

これも何言ってるかワカンネ
0907時刻厨房(895)NGNG
>>903
あまり詳しくないので、間違っていたらご指摘ください。
接続環境に依存しないとは、
プロクシやFW(?)を想定しており、
これらが存在していても問題なくGMTを
取得できるか、それとも個別に設定をmyAppli側で
しなければならないのか、ということをお尋ねしたかったのです。
0908時刻厨房(895)NGNG
>>905
String.split
0909デフォルトの名無しさんNGNG
>>907
FWでNTP塞がれてたら駄目だな。
0910デフォルトの名無しさんNGNG
>>905
それもあり。
'='でSplitするとか。
正規表現で"[^=]*?(=.*)"とか。
0911時刻厨房(895)NGNG
>>906
日時を取得する方法として、
1.PC内部の時計を参照する
2.NTPサービスを利用する
の2通りが考えられますが、
前者はPC利用者に”人為的に”変更可能であり、
後者はインターネットの接続環境により種々の設定が
アプリケーション側に要求されるので大量に頒布するような
アプリには不向きな恐れを危惧しているのです。
0912デフォルトの名無しさんNGNG
>>895
君にはこれがお薦め
http://akizukidenshi.com/catalog/items2.php?p=1&q=K-00559
0913デフォルトの名無しさんNGNG
その2通りしかないよ。
0914デフォルトの名無しさんNGNG
難読化やってる?
0915時刻厨房(895)NGNG
>>912
ピックかよ。基盤はZip圧縮できねーし。
少なくともシリアルをUSBにしないと、今の時代・・・。
電源もUSBからウマー
0916デフォルトの名無しさんNGNG
>>911
>前者はPC利用者に”人為的に”変更可能であり、
>後者はインターネットの接続環境により種々の設定が
>アプリケーション側に要求されるので大量に頒布するような
>アプリには不向きな恐れを危惧しているのです。

これも前者と後者で矛盾した要求をしてるんだよなー。
釣りかも試練。
0917時刻厨房(895)NGNG
>>916
人為的な変更が聞かない日時の取得方法を知りたいのが目的です。
前者は人為的な変更が可能(もしかしたら、人為的な変更が
できない時計がPC内にあるかも知れないという希望の裏返し)
後者は当然人為的な変更は不可だが、ネットへ接続する
必要があるので、種々の問題がからむ。

ということを申し上げたかったのです。
0918デフォルトの名無しさんNGNG
またおかしいのが湧いてきたな。
0919時刻厨房(895)NGNG
842のことか?
またではないな。
0920デフォルトの名無しさんNGNG
>>917
後者でも人為的な変更は可能なんだが
0921デフォルトの名無しさんNGNG
>>842
>2.不正利用防止のため、myAppliの起動時に起動元PCの

>>907
>取得できるか、それとも個別に設定をmyAppli側で

なるほど
0922時刻厨房(895)NGNG
>>920
それはあくまでGMT管理組織のことであって、
日本国内の端末利用者は変更することが無理だと思う。
0923デフォルトの名無しさんNGNG
こういう、論理的な思考ができない香具師はプログラムを組むのを
やめた方がいいね。それもシェアウェアにするなんて、あつかましいにも
程がある。
0924デフォルトの名無しさんNGNG
>>922
アフォ?
0925デフォルトの名無しさんNGNG
有料のソフトウェアを作るのに、情報だけは2ch他で只で得ようってか。
なんて調子のいい香具師なんだろう。
0926デフォルトの名無しさんNGNG
>>895
おまえ女だろ。
0927時刻厨房(895)NGNG
そんなにきついことゆうなよ。
あなたたちだって、ソフト作ってがっぽり
設けてるんでしょ!!
0928デフォルトの名無しさんNGNG
以降は放置で。
0929デフォルトの名無しさんNGNG
NPTサービスを識別してるわけではないのだから、同じURLでLAN内の別のネットワークにつなげるように偽装することは十分叶ですが。
0930元842NGNG
>>929
サンクスコ!
なんか難しそうだから、やっぱフリーソフトにしておきます。
靭性、いつも挫折の連続だな。
GMTだかNTPだかよーわからへんし。
0931デフォルトの名無しさんNGNG
誤字の使い方からして自演まる分かりなのに
0932デフォルトの名無しさんNGNG
(´-`).。oO(シェアウェアとか不正使用を防止とかいうキーワードを入れずに質問すればいいのに・・・)
0933デフォルトの名無しさんNGNG
C#で関数を作成するときに、VBのOptionalのような機能ってありますでしょうか?


関数名(引数1,Optional 引数2 = 1000)

↑↑↑引数2は省略可能。省略した場合は、1000が代入される。
0934デフォルトの名無しさんNGNG
>>933
ない。
「それがやりたい場合は、引数構成の異なる同名の関数を作れ」という設計思想らしい。
0935デフォルトの名無しさんNGNG
あるよ
0936デフォルトの名無しさんNGNG
enum test
{
key1 = 0
key2 = 1
}
のtype.key1を、int型で関数に渡す場合
(int)type.key1 と書くのが一般的でしょうか
0937デフォルトの名無しさんNGNG
取りあえず代案を示してみたまえ。
0938デフォルトの名無しさんNGNG
enumのbase-typeになんでstringを指定してーよ
0939936NGNG
>>938
??意味が分りません・・。
0940デフォルトの名無しさんNGNG
上のほうでNTPがどうこうという話が出てたので便乗なのですが
NTPパケットをbyte配列で受信したのを32ビットとか16ビットワードとか
切り分けて読み出すスマートな方法ってないでしょうか?
c/c++だと構造体にキャストして一発なのだが、c#じゃどうやるのが一般的
なんでしょう。
0941940NGNG
c/c++でもエンディアンの問題で一発ってわけでもないですね
0942デフォルトの名無しさんNGNG
一般ユーザ向け商用アプリ(パッケージまたはシェアウェア)でC#ってどうよ
リバースエンジニアリング問題とかどうしてる?
0943デフォルトの名無しさんNGNG
>>914
俺は今作ってるフリーソフトが完成したら難読化して公開するつもり。
0944デフォルトの名無しさんNGNG
>>943
難読化ツール何つかってますか?
0945デフォルトの名無しさんNGNG
>>944
フリーソフトの公開ぐらいだったらVS.NET2003に付いてるDotfuscator CEでいいんじゃないかと思ってます。
徹底的にやりたいのであればPEですが、高い・・・。
0946名無しさん♯NGNG
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1103005153/l50

なんかスレ消費早いですね。( ゚д゚)
0947デフォルトの名無しさんNGNG
前回と言い、微妙にスレ立てが早いな。
0948デフォルトの名無しさんNGNG
950で次スレを立てる国の人なんだろう
0949731NGNG
遅くなりましたが、ありがとうございました。
結局>>745を買ったんですがほとんど文法ばっかりでした…
みなさんのアドバイスを聞かなかったのを反省しています。
それで、もうひとつ本を買うとしたらどれがいいですか?
あまり高くなくてGUI中心のをお願いします。
わがままばかりですが、よろしくお願いします。
0950デフォルトの名無しさんNGNG
ちょっとしたオブジェクトの永続化作ろうと思ってるんですが、知恵貸してください。
大量のオブジェクト使う必要あって、メモリに入りきらないので永続化してファイルに落とそうと思っています。
これはプロセス終了後の永続かもかねます。
動作時に最近使用したオブジェクトをリストの上に上げて下方にあるオブジェクトをファイルに落とすという形をとろうとしてますが、このリストの管理とマルチスレッドに関してどうするか考えてます。

generics<class T> ObjProxi{
T  m_t=NULL;
bool m_isObjectValid;
}

interface Permanentable{
void ToBinary();
void FromBinary();
}
class ConcreateObject:Permanentable{

こんな感じでConcreateに対してのアクセスはProxi 通して行いますが、そこでメモリ上になければファイルからの復帰をするつもりです。
Proxiに対してアクセスした際にオブジェクトの有効順位を上げるつもりなんですが、そこでの効率(・∀・)イイ!!やり方考え中です。マルチスレッドアクセスも考慮するつもりです。
(・∀・)イイ!!知恵あればご教授ください。
0951デフォルトの名無しさんNGNG
>>949
C#は文法がわからないとGUIもわからない。
0952デフォルトの名無しさんNGNG
>>947-948
このスレは950以降は無法地帯
0953デフォルトの名無しさんNGNG
っていうか変な人がいるから危機感のため行動したと思われ
0954斉藤 ◆kvYxWFRquQ NGNG
>>953
ちょっと飲み過ぎた。風に当たってくるよ。
0955デフォルトの名無しさんNGNG
C#でOracle9iのデータベースでプログラムしてます。
OracleDataReader使用してSQLでデータ取得するんですが、
DBの文字コードがUTF8でVARCHAR2の値を取得する場合に
GetOracleString+ToStringで取得します。

この時に"〜"(波ダッシュ)をリッチテキストボックスに表示するんですが文字化けします。
調べたら、書き込み時と読み込み時でコードが変わってしまってます。
大丈夫な部品もありました。

これは自分でコード変換する必要があるんでしょうか?

0956デフォルトの名無しさんNGNG
>>955
ttp://support.microsoft.com/default.aspx?scid=kb;ja;286776
ttp://otn.oracle.co.jp/software/tech/java/jdbc/nlsalart/nlsalart.html
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3526&forum=7&3

有名な問題らしい。
Replaceで置換する事にしたって人もいた。
0957デフォルトの名無しさんNGNG
Forms.DataGridのセル内の文字列を選択不可にしたいのですが、

DataGridTextBoxColumn l_DataGridTextBoxColumn = new DataGridTextBoxColumn();
l_DataGridTextBoxColumn.TextBox.Enable = false;
l_DataGridTableStyle.GridColumnStyles.Add(l_DataGridTextBoxColumn);

などとしても変化がありません。
リストボックスやリストビューのサブ項目のように表示のみで選択も編集もさせないように
することはできないのでしょうか?

よろしくお願いします。
0958デフォルトの名無しさんNGNG
, 8.7663E+00, 1.3733E+00,
, 8.7663E+00, 1.3733E+00,
, 8.7663E+00, 1.3733E+00,
, 8.7663E+00, 1.3733E+00,
な感じのデータ続くCSVにデータを書き加えて
, 8.7663E+00, 1.3733E+00,追加内容1
, 8.7663E+00, 1.3733E+00,追加内容2
, 8.7663E+00, 1.3733E+00,追加内容3
, 8.7663E+00, 1.3733E+00,追加内容4
ってするにはどうしたらいいですか?

やっぱり既存ファイルから読み込みながら新しいファイルに1行ずつ
元の内容+追加内容を書いていくのが一番スマートなんでしょうか?
0959デフォルトの名無しさんNGNG
まあ、そうだろうね。
メモリの圧迫も最小限で済むし。
0960958NGNG
csvからdatasetに読み込んであるのでさくっと追加できないかなー
っと淡い期待を胸に書き込んだんですが、素直に新規ファイルに一行ずつちまちま書きます。

ありがとでした。
0961デフォルトの名無しさんNGNG
マルチスレッドで困ってるのですが、あるフォームを作成したスレッドが現在のスレッドかどうか調べる方法はないでしょうか?
0962デフォルトの名無しさんNGNG
取りあえずInvokeなげとくってわけにはいかんか。

Thread.CurrentThread.Nameでユニークな名前を付けるとか。

どう困ってるのか書けば意外な解決が見つかるかも知れない。
0963デフォルトの名無しさんNGNG
非同期処理としてスレッド推奨なのに、肝心要のフォームがスレッド非対応というのはきついよな、
まだWin32時代の再入の方がスッキリしているというか・・・
0964デフォルトの名無しさんNGNG
InvokeRequiredをトレースしまくれ
0965デフォルトの名無しさんNGNG
>>961
delegate 作って InvokeRequired とかで出来ると思うけど、Invokeが必要かどうかを
実行時に判断しなくてはならないような状況で Invoke 使うときははデッドロックしない
ように気をつけてね。

FormA.a() in ThreadA が FormB.b() in ThreadB を invoke して、FormB.b() 呼び出し
実行中に ThreadA に属する何かの delegate を Invoke しようとするとデッドロックするから。
0966デフォルトの名無しさんNGNG
>>961
GetWindowThreadProcessId()呼び出してウィンドウのスレッドIDと現在のスレッドIDを比較するとかは?
0967デフォルトの名無しさんNGNG
Win32APIから呼び出し可能なDLLをC#で作りたいのですが
そのあたりの資料ってどこにありますか?
0968デフォルトの名無しさんNGNG
COMか?
リファレンスでCOMの資料嫁
どうせ徒労におわるだろうけど。
0969967NGNG
public static int add(int a, int b);
をexportできればそれで十分なんですが
とりあえずCOM周りを調べてみます。
ありがとうございます。
0970デフォルトの名無しさんNGNG
ATLだろ
0971デフォルトの名無しさんNGNG
>>965
少なくともwindowsではGUI作成するスレッドが複数というのは間違ってると思うが
0972デフォルトの名無しさんNGNG
>>971
さすがネイティブ開発陣の言うことは違うな

Java だとスレッド関係ないから('A`)
0973595NGNG
>>597 遅くなりましたが解決しました。ありがとうございました。
0974デフォルトの名無しさんNGNG
>>971
UIスレッドを複数持つのは別に間違っていないと思うけど?
使いどころが少ないのは確かだけど。
マルチスレッドSDI Applicationとか、A/Vアプリとかくらいか。
0975デフォルトの名無しさんNGNG
>>974
んーMFCとか.だとマルチスレッドMDIデータ管理上バグりそうなきガス。NETはしらんが、同じような問題でてこないの?調べてないのですまんそ。
0976デフォルトの名無しさんNGNG
Formで生成されるウィンドウのクラス名って変えられるの?
0977デフォルトの名無しさんNGNG
>>975
他のスレッドが作成したコントロールをいじってはいけない、
というのはこのスレではよく出る話だが、
他は特にないような気がする。

>>976
「Form1」とかいうやつなら変えられるが。
0978デフォルトの名無しさんNGNG
>>977
> 「Form1」とかいうやつなら変えられるが。
GetClassName()で取れる方のクラス名です。
0979デフォルトの名無しさんNGNG
無理だと思ふ。
0980デフォルトの名無しさんNGNG
>>978
クラススタイルがCS_GLOBALCLASSで登録してあるクラスを、
Control.CreateParamsをオーバーライドしてCreateParams.ClassNameに渡すと
任意ではないにしろ変更することはできる。
# クラスが作り直され名前にWindowsForms〜とかいった文字が追加される

クラスが作り直された後のウィンドウプロシージャの細かい動作までは知らん。
0981デフォルトの名無しさんNGNG
class KomattaClass
{
  // どこのスレッドから呼び出されるか分らない
  void MethodA()
  {
    while( MethodB が処理を完了するまで )
    {
      // もしも controlHoge のスレッドより MethodA が呼び出されると
      // controlHoge.Invoke は実行されてることがなくなってしまう
      // そういう時はここで delegateHoge() として実行してしまおうと思っています。
    }
  }
  // ワーキングスレッドより無節操に呼び出される
  void MethodB()
  {
    controlHoge.Invoke( delegateHoge ) ;
  }
}

そこで、MethodA のループ中で controlHoge.Invoke( delegateHoge ) が呼び出されていることを知って、
delegateHoge() を直接実行してしまいたいのです。
ここで MethodB がこの MethodA が controlHoge でのスレッド上で実行されているという事を知らないと切り分けできません。
MethodA() の最初で、ただいま controlHoge スレッド上で実行中フラグを建ててみたのです、
しかし殆ど起こらないと思われますが、このフラグを立てている最中に
controlHoge.Invoke( delegateHoge ) ;
されてしまったら問題があります。
なにか良い解決策はないでしょうか?

マルチスレッド逝ってよし、シングルスレッド万歳!!
だんだん嫌になってきた・・・・
0982デフォルトの名無しさんNGNG
まず日本語からやろうや・・・
0983デフォルトの名無しさんNGNG
>>981
適当に lock とか Monitor.Enter とか使って排他すればOKだと思います。ただ、MethodB の方で問答無用で
Invoke しちゃって平気なんですか?後で実行されますよ?
他スレッドからの処理依頼は object [] { delegate, WaitHandle } なんてのに入れて Queue にでも追加、
処理開始要求のみ Invoke で投げる方が良いと思います(処理開始要求がInvokeされたときと、当該スレッドで
MethodAのwhile中実行時にQueue内のリクエストを処理する)。

COMのRPCだとPeekMessageの空呼び出しでちょうどこのケースをOS側が処理してくれるから簡単なんですけどね・・
0984デフォルトの名無しさんNGNG
C#でネットワークボードのMACアドレスを取得する方法
を教えてください。
0985デフォルトの名無しさんNGNG
>>984
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16782&forum=7&6
0986デフォルトの名無しさんNGNG
>>985
ありです。
参考にしたいと思います。(^∀^ヾ|
0987デフォルトの名無しさんNGNG
using System;
using System.Management;

public class MainClass
{
public static void Main()
{

ManagementClass mClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mObjCollection = mClass.GetInstances();

foreach(ManagementObject mObject in mObjCollection)
{
if(mObject["IPEnabled"] != null)
{
Console.WriteLine(mObject["MacAddress"]);
}
}
}
}
0988デフォルトの名無しさんNGNG
using ...っていいよね

#inlude<>ってめんどいもん。

C++は*.h必須だし。
0989デフォルトの名無しさんNGNG
ListViewからドラッグしたアイテムを
デスクトップやエクスプローラで表示されているフォルダにドロップした際に、
このドロップしたフォルダのパスを取得したいのですが方法がわかりません。

ご教授ください。
0990デフォルトの名無しさんNGNG
ここってC++マネージ拡張も質問していいのかなぁ?

System::UInt32 uint32 = 100;
System::Object* obj = uint32;

これをやると
'unsigned int' から 'System::Object __gc *' に変換できません。
って出てうまくいきません。なんか方法があるのでしょうか?

C#でいう感じを書きたい
uint a = 100;
object obj = a;
0991デフォルトの名無しさんNGNG
埋め
0992デフォルトの名無しさんNGNG
>>990
__box使え

次からMC++はこっちへ
http://pc5.2ch.net/test/read.cgi/tech/1014486422/
0993デフォルトの名無しさんNGNG
990も超えたし埋め作業に入るか。
0994デフォルトの名無しさんNGNG
梅(゚д゚)ウメー
0995デフォルトの名無しさんNGNG
最後の5レスだけで雑談しよう。
諸侯ら、年末年始のご予定はいかがですかな?
0996デフォルトの名無しさんNGNG
オーストラリア
0997デフォルトの名無しさんNGNG
田舎
0998デフォルトの名無しさんNGNG
引き篭もり
0999デフォルトの名無しさんNGNG
スキー行きたいけど、実家に帰らないと・・・
1000デフォルトの名無しさんNGNG
空気嫁
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。