09/04/12 01:11:12
>>170
そうか?
サンプル分かり易いと思うし、それにCodePlexにTimeLine.NETとかSplicerとかいった編集用のライブラリとかある。
176:デフォルトの名無しさん
09/04/12 01:17:58
>>172
納期が決まってるとか予算が決まってるならともかく
趣味レベルなら別にかまわんのじゃ?
編集ソフト内の再生ズレ、なくせるんだったらなくした方がいいと思うし。
177:デフォルトの名無しさん
09/04/12 08:15:18
C#の勉強もかねて・・・・
そういえばみんな言語始めるとき勉強はなにからやってるんだろう
俺は新しい言語をやる時に
画面のコントロールの簡単な使い方
標準的なファイルの入出力
簡単な入力チェック系
データベースの 接続・追加・更新・削除
位からやってる
あとはWEBかクライアントに合わせて色々やること増えるけど
178:デフォルトの名無しさん
09/04/12 08:33:54
またHello Worldからかよorz
179:デフォルトの名無しさん
09/04/12 10:15:50
昔よくやってたのはラインアート作るとか。
今時だと、>>177 で出てるネタを押さえるようないいサンプルアプリが欲しいなぁ。
180:デフォルトの名無しさん
09/04/12 11:39:50
俺の場合は、初めに電卓、次にタイマー等が用意されてるなら、
テトリスやリバーシみたいな簡単なゲームを作る事にしてる。
ある程度、実用 ( 娯楽 ) 性があるものを作成すると、理解が早い気がする。
181:デフォルトの名無しさん
09/04/12 12:35:22
たしかに作ってて多少モチベが上るようなのじゃないと
だれるもんね。
Web サービスのクライアントなんて
結構実装簡単だし、すぐ使えるからよさげじゃない?
REST API 公開してるサービスめちゃめちゃ多いし。
182:デフォルトの名無しさん
09/04/12 13:54:16
>>170
徐々にずれるのが嫌なら再生開始時からの経過時間を使って、
間隔を調整すればいいだろ。
183:96
09/04/12 14:26:29
>>172
>そもそもあんたはマイクロ秒のズレなんてわかるんかよ。
30fps時の端数分(333μs)ずつずれていくと、100フレームほどで1フレーム遅れる計算になります。
数秒再生して1フレームも遅れるのは結構致命的だと思うのですが…
>>175
C++やDirectX、COMを触ったことがないからだと思いますが、何が何だかさっぱり…
ISampleGrabberからIBaseFilterへとか、継承しているわけでもないのになぜキャストできるのでしょうか?
同じメソッドを実装するだけでキャストできるのかと思い、テスとしてみたのですが当然できるはずもなく。
Splicerはおもしろそうですね。
>>182
現在はTickが呼ばれるたびに誤差を計算して次に加算するように変更したので、多分μs単位で
いじらなくてもあまりずれないようにはなっていると思います。
184:デフォルトの名無しさん
09/04/12 17:54:19
>>161
>OnPaintやControl.CreateGraphicsで直接描画するのとPictureBox.Imageにイメージをセットするのは
>ほとんど変わらないものだと思っていたのですが…
Control.CreateGraphicsを使えば別のメソッドから使えるというのがメリットなのよ。
GUIはGUIスレッド以外から扱ったらいけないと思い込んでるようだけどこれは例外。
つまり、メッセージループを使ったりBeginInvokeを使ったりする必要がない。
メッセージループのことは気にせずに、
独自のスレッドで連続して処理問題ないということ。(普通はプライオリティを若干下げてやる。)
OnPaintやPictureBoxなどに処理を任せるのは画面が無効になったときの再描画の処理を
やってくれるからであって、短いサイクルで描画を繰り返す場合は、その必要性がない。
Control.CreateGraphicsを使えばInvalidateやUpdateを呼ばなくても指定したタイミングで描画することが出来る。
185:デフォルトの名無しさん
09/04/12 19:18:43
>>184
そんなトンデモ説を得意げに言っちゃだめw
最初の行の「別のメソッドから」は「別のスレッド」と言いたかったんだろうが、
そんな話見たことも聞いた事もない。
Control.CreateGraphicsを使う場合のメリットは、Invalidate⇒OnPaintという
通常の処理に比べてオーバーヘッドが少ないことなんじゃないの?
逆にデメリットは、描画処理を呼ぶトリガーをOnPaintに一本化できないことでしょ。
もっとも、>>96のように短い一定時間ごとに必ず描画するのならダーティー化
された場合のことを考えなくていいからデメリットと言えないんだろうけど。
186:デフォルトの名無しさん
09/04/12 19:30:05
一応、Control.CreateGraphics はスレッドセーフだと言っておこう
187:デフォルトの名無しさん
09/04/12 19:36:55
>>186
すまん確かにそうだったw
グラフィック関連長いこと触ってないんで忘れてたよ。
188:デフォルトの名無しさん
09/04/12 20:13:37
>>96に最小限の修正を加えてろだに上げてみた。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
注、Stopのときの再描画処理としてpicturebox1にPaintイベントを追加している。
189:デフォルトの名無しさん
09/04/12 20:55:18
188です。lockの位置を間違ってた。
複数のスレッドからimageを使うことになるので、
lockはvoid Draw(int rad)全体にかけたほうがよかった。
だた、startフラグで制御してるのでただし実行に影響はないはず。
190:デフォルトの名無しさん
09/04/13 17:01:47
WinアプリでDataGridViewの行を大量に追加・削除するときって
SuspendLayoutとかの呼び出しをやった方がいいんだろうか?
位置を移動させるとかの場合は効きそうだけど今一歩やるべきかどうかの判断がつかないんだが・・・
今はおまじない的にやってるけども
191:デフォルトの名無しさん
09/04/13 21:34:50
データソースをViewから切り離してから追加・削除すると速いかも
192:デフォルトの名無しさん
09/04/14 20:34:17
これ見てみw
国会の無駄な手当てでお手盛り人件費じゃぶじゃぶの実態w
この経済危機に税金をなんでこういう公務員、国会職員に税金くれてるの?
↓
衆議院議員 渡辺周氏「呆れ返る国会のムダ呆れ返る国会のムダ」
URLリンク(www.choujintairiku.com)
内閣の閣議でどれだけお手盛り大盤振る舞い、浪費が行われているかわかるね。
これが自民党-麻生内閣の実態!!
193:デフォルトの名無しさん
09/04/14 20:39:03
>>192
text/plainでくれ
194:デフォルトの名無しさん
09/04/14 21:25:00
なんだかんだで結構親切に教えてくれるおまえらが好き。
195:デフォルトの名無しさん
09/04/14 21:26:06
どういたしまして
分からないことがあったらまたおいで
がんばってね
196:デフォルトの名無しさん
09/04/14 22:06:03
ありがとう。
いつかは教えられる側にまわれるよう精進します。
197:デフォルトの名無しさん
09/04/14 23:00:27
今、クライアント(C#)-WCF-サーバ(C#)-SQL Serverなアプリケーションを作って
いるんですが、クライアントからデータを検索する必要があります。検索条件
によっては、戻り値のデータが数万件になることもあります。
そこで、WCFのバインディングのmaxReceivedMessageSizeを大きくして対処
しようと思ったのですが、途中でキャンセルできる必要とサーバのメモリを
節約する必要が生じました。
どのように実装するのがいいでしょうか?
現在の処理)
1. クライアントが検索条件を指定してサーバを呼ぶ
2. サーバは検索条件によって、SQL Serverの複数のテーブルを検索し、複数
レコードからオブジェクトを組み立てる
3. オブジェクトの配列(やツリー構造)が出来上がったらクライアントに返す
案)
1. サーバはDataReaderでデータベースを検索しているので、一定レコード数
ごとに結果をクライアントにレコード単位でコールバックする。オブジェクト
はクライアント側で組み立てる。
2. DataReaderからデータを読みつつ、一定オブジェクト数ごとに結果をクラ
イアントにコールバックする。ただし、各オブジェクトの大きさはそれぞれ違
うので、オブジェクトの数ではメモリ使用量は計れない。
3. クライアントでデータ取得依頼だけして、数秒おきにサーバに結果を取りに
行く。
4. 戻り値はStreamとし、オブジェクトが出来るたびにStreamにオブジェクトに
入れ、クライアントはそのたびにオブジェクトをデシリアライズする。ただし、
DataReaderを読みつつStreamにオブジェクトを入れる方法がまだ分かってない。
よろしくお願いします。
198:デフォルトの名無しさん
09/04/14 23:06:00
普通に API (鯖側)のほうでページングに対応すれば?
199:デフォルトの名無しさん
09/04/14 23:15:40
どっちも非同期で実装すればいいんじゃね?
200:デフォルトの名無しさん
09/04/14 23:18:27
>>198
ページングとは、
1. クライアントで検索依頼
2. クライアントから1ページ目要求
3. データがなくなるまで、2をnページ繰り返し
ということでしょうか?
サーバで全データをメモリに読み込むことは出来ないので、データベース上に
昇順でユニークなIDが必要になるという理解であってますか?
201:デフォルトの名無しさん
09/04/14 23:20:07
SQL で指定できるでしょ。上限件数
202:デフォルトの名無しさん
09/04/14 23:21:31
>>199
すみません。具体的に御願いできますか?非同期でクライアントから依頼して
サーバから非同期でコールバックするという意味でしょうか?
だとすると>>197の案1, 2ですよね
203:デフォルトの名無しさん
09/04/14 23:23:35
WCF でのサービスメソッド呼び出しを非同期にする。
サーバーでのクエリ実行を非同期にする。
で、適宜タイムアウト。件数が多すぎるとき? シラネ。
204:201
09/04/14 23:23:55
あー、説明不足かもしれんので一応。
TOP 句
URLリンク(msdn.microsoft.com)
ROW_NUMBER 関数
URLリンク(msdn.microsoft.com)
205:デフォルトの名無しさん
09/04/14 23:25:22
>>201
上限件数は指定できます。ただ、最初の件数以降の次のデータを指定するのは
難しい状況です。ユニークで昇順なキーがないので。
データが多いからといって、途中で検索をやめてしまうのはだめです。
ただ、サーバがメモリ不足で落ちるのは駄目ですが、クライアントがメモリ不足
で落ちるのはまだ許容範囲です。
206:デフォルトの名無しさん
09/04/14 23:28:13
ダメです、とか、なんでえらそうなの?
207:デフォルトの名無しさん
09/04/14 23:30:37
>>204
ROW_NUMBER知りませんでした!!使えそうですね。ちょっとこれから調べてみます。
>>206
申し訳ないです。エラーで結果が出ないのはいいのですが、結果が正しくないの
は一番やってはいけないことなので、あのような書き方になってしまいました。
208:デフォルトの名無しさん
09/04/14 23:31:17
>>205
TOP でも 3 回(だっけ?)組み合わせればここからここまでっての
一応できるんだよ。
まぁ天啓にあった某関数と同じ機能な ROW_NUMBER サポして
くれたからこれでよくなったけど
209:デフォルトの名無しさん
09/04/14 23:58:26
カーソル付きのDBMSならHTTP鯖のセッション情報にカーソル情報書き込んでしまえばいいと思った
210:デフォルトの名無しさん
09/04/15 00:08:13
>>209
なるほど。
211:デフォルトの名無しさん
09/04/15 21:30:23
OLAPに対応してるのってMSSQL2008からだよね。
大丈夫かな?
212:デフォルトの名無しさん
09/04/15 22:49:05
質問失礼します。
タスクトレイに格納した状態で再生できるサウンドAPIを探しています。
再生させる際、タスクトレイに格納された状態で、ボリューム調整を行いたいです。
始め、System.Media.SoundPlayerを利用したのですが、音量調整ができませんでした。
次に、Microsoft.DirectX.DirectSound.SecondaryBufferを利用したのですが、タスクトレイに入った状態では再生できませんでした。
上記には勘違いがあるかもしれません。
その点の指摘も含め、分かる方よろしくお願いします。
開発環境:
VisualStudio2008
WindowsXP
213:デフォルトの名無しさん
09/04/15 22:56:04
なんで既にタスクトレイさんがわるものなのぉぉおwwww
214:デフォルトの名無しさん
09/04/15 23:03:29
SetCooperativeLevelが不適切なだけじゃね?
215:デフォルトの名無しさん
09/04/15 23:07:58
ありがとうございます。
協調レベルは真っ先に疑いました。
CooperativeLevel.Normal
CooperativeLevel.Priority
CooperativeLevel.WritePrimary
全部試しましたが、ダメでした。。。
フォームを表示すると鳴るんですけど、何故でしょうね。。。
216:デフォルトの名無しさん
09/04/15 23:14:06
SetCooperativeLevel(this, CooperativeLevel.Priority);
今このようなコードを書いています。
thisがいけないんですかね?
表示しているのはフォームではなく、NotifyIconですからそのownerを指定???
う~む。やっぱり分からないです。。。
217:212 215 216
09/04/15 23:29:32
すいません。
自己解決しました。
BufferDescription の GlobalFocus を true にする事で鳴りました!
218:デフォルトの名無しさん
09/04/15 23:31:14
なーんか似た内容の人が居たらしい
URLリンク(hpcgi1.nifty.com)
219:デフォルトの名無しさん
09/04/16 16:45:54
指定したアセンブリのプロセッサアーキテクチャを調べるにはどうすればいいでしょうか?
VS2008で参照を追加したとき.csprojに
processorArchitecture=x86
などと書かれる情報のことです。
ildasmでマニフェストは見てみたのですが、それらしき情報は見つからなかったです。
よろしくお願いします。
220:デフォルトの名無しさん
09/04/17 05:03:44
プログラムでやるなら、Assembly.ReflectionOnlyLoadFromで読み込んでAssemblyName.ProcessorArchitectureで
221:デフォルトの名無しさん
09/04/17 20:13:06
なんかプロジェクトの規模が大きくなるにつれてIDEが激しく重くなるんですが
どうしようもないんでしょうか?
といってもたかだか*.csファイル数126個、全45109行なんですが。
ユーザーコントロールも10個くらい作ってますが、それも関係してるのかな。
222:デフォルトの名無しさん
09/04/17 21:33:29
exeとは異なる任意のフォルダにdllファイルを置きたいため以下のプログラムを書きました。
(WidgetLibrary.Widgetクラスは別プロジェクトでdllとして作成)これだとWidgetLibrary.Widgetの名前が解決できないのでビルド
できません。ビルドできない原因は何でしょうか?
namespace ConsoleApplication1
{
public class Loader
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.AssemblyResolve += FindAssm;
Program.Go();
}
static Assembly FindAssm(object sender, ResolveEventArgs args)
{
string simplename = new AssemblyName(args.Name).Name;
string path = @"c:\sample\" + simplename + ".dll";
if (!File.Exists(path)) return null;
return Assembly.LoadFrom(path);
}
}
public class Program
{
public static void Go()
{
WidgetLibrary.Widget w = new WidgetLibrary.Widget(1, "a");
w.widgetDisplay();
}
}
}
223:デフォルトの名無しさん
09/04/17 21:41:29
参照設定で追加していないのでメタデータを参照できないのが原因
と思う。
224:デフォルトの名無しさん
09/04/17 21:41:44
自分で言っているように「WidgetLibrary.Widgetの名前が解決できないので」だろ。
225:デフォルトの名無しさん
09/04/17 21:45:01
>>222
任意のフォルダにDLLを配置するのが目的なら、GACに登録した上で参照設定するのが王道。
.NET Frameworkに含まれるDLLは、ローカルコピーしなくても参照できるだろ。
それは.NET FrameworkのDLLが特別扱いされているわけじゃなくて、それらが
GACに登録されているから。
自作のDLLもGACに登録すれば同様に扱える。
226:デフォルトの名無しさん
09/04/17 21:58:34
レスありがとうございます。
>>223
参照設定を追加するとプライベートアセンブリになってしまうので回避したいのです。
>>224
解決策でした。
>>225
GACに登録せずに任意のフォルダに置くことは不可能ということでしょうか??
このソースは C# 3.0 IN A NUTSHELL の558ページのコードを確認したくて
書いたものです。
227:デフォルトの名無しさん
09/04/17 22:20:42
あの本の綴じ込みはすごくいいね
洋書は製本がイマイチなのが多くて困る
228:デフォルトの名無しさん
09/04/17 22:28:17
参照しているアセンブリのプロパティでローカルコピーをオフにすればよい
と思う。
229:デフォルトの名無しさん
09/04/17 22:43:09
>>228
できました。
どうもありがとうございました。
230:デフォルトの名無しさん
09/04/17 23:57:22
GACって何のことか全く知らない俺が、ぐぐる前に適当に妄想してみる。
GACとは、Global Assembly Cacheの略で、システムワイドに.NETのアセンブリを
登録しておくキャッシュ。概念としてはUNIX系のOSでldconfigすると、システム
ワイドに利用するダイナミックライブラリがld.soに登録されるのと似ている。
231:デフォルトの名無しさん
09/04/18 05:25:56
>>230
おまえgoogle先生だろw
232:デフォルトの名無しさん
09/04/18 13:04:23
1.1のContextMenuって、MenuItem.CloneMenuを使用して
状況に合わせたコンテキストメニューを作れみたいになっていたと
記憶してるんですが、
ContextMenuStripだと、ToolStripMenuItemにCloneMenuがないので、
これはどう解釈したらいいんでしょうか?
デザイン時にパターンの数だけ作り付けのContextMenuStripを
用意しとくんですか?
233:デフォルトの名無しさん
09/04/18 20:48:31
Timerで回しているときにint(値型?)の配列が画面最小化すると消えてしまうのですが
残しておきたいです
どうすればいいのでしょうか?
234:デフォルトの名無しさん
09/04/18 20:52:43
>>233
それだけで回答すると、
そりゃあんたの作り方次第としか言いようがない。
235:デフォルトの名無しさん
09/04/18 21:02:42
>>234
作り方が悪かったですorz
OnActivatedを初めてFormが表示されるときにだけ呼ばれると勘違いしてました…
236:デフォルトの名無しさん
09/04/18 22:06:35
それなんてLoadイベント
237:デフォルトの名無しさん
09/04/18 22:51:48
例えばZキーが押された状態でAを押してもOnKeyDownが発生しません。
これをZキーが押されている時にAが押されていることを知りたいのですがどうすればいいでしょうか?
238:デフォルトの名無しさん
09/04/18 23:06:29
e.Handled = true;でいけました
239:デフォルトの名無しさん
09/04/18 23:12:15
先日、C言語の勉強を始めた者です。まだまだ参考書の始めの方なのですが、エラーが起きてよくわからないことになってしまいました。
いまだにキーボードから数値を入力させて、それを表示する程度のものの自己流改変なのですが、なぜか二つ目を入力した後にエラーが起きて止まってしまいます。
それと、途中でプログラムの流れを止める方法がわからないので、それも出来れば教えていただけませんでしょうか?
とりあえず理想としては、エンターを押してからもう一度押す迄
変数X + 1の答えを変数Xに代入し続けるようなプログラムが作りたいのです。
一応、ソースを書いておきます。
#include <stdio.h>
int main(void)
{
int PS;
float PS2;
float PS3;
printf("まずは整数を入力してください。");
scanf("%d",PS);
printf("次は、小数を入力してください。");
scanf("%f",PS2);
printf("最後にもう一度、小数を入力してください。");
scanf("%f",PS3);
int end;
printf("では、なにか数字を入力してエンターを押すと、結果が表示されます。");
scanf("%d",end);
240:デフォルトの名無しさん
09/04/18 23:13:35
>>239
すれ違い
241:デフォルトの名無しさん
09/04/18 23:13:52
printf("最初の整数は %d ですよね?",PS);
;
printf("そして次は少数一回目は %f ですよね?",PS2);
;
printf("そして最後は、 %f となっておりますよね?",PS3);
;
int red;
printf("最後に、面白いものを見せましょう。適当に数字を入れてエンターを押してください。");
scanf("%d",red);
printf("exeファイルのダブルクリックをしていなければ、適当に入れてもらった数字を足した数を「%d」内に表示しておきます。では、さようなら。",end + red);
return 0;
}
最後のprintf()が終わっても自動的に閉じないようにするには、いったいどうすればいいのでしょう?
242:239,241
09/04/18 23:15:53
申し訳ございません。
スレ名をチラっとしかみていませんでした。本当に申し訳ありません。
243:デフォルトの名無しさん
09/04/18 23:36:08
C#ってヘッダーファイルが無いのか。
変な言語だな。
C#って手続き型のプログラムができないのか。
不便な言語だな。
C#って関数に省略可能な引数を使えないのか。
代替手段としてオーバーロードしないといけないのか。
馬鹿げた言語だな。
C#ってswitch文でbreak無しで下に降りることができないのか。
気が狂ったような言語だな。
それと、0かそうでないかを評価できないのか。
初期化する前の不定値を参照するのはコンパイルエラーか。
244:デフォルトの名無しさん
09/04/18 23:46:36
省略可能な引数は確かにほしいな。
他のは賛同しかねるが。
245:デフォルトの名無しさん
09/04/18 23:49:30
省略可能な引数はC#4.0で追加される。
swichでのフォールスルーに関しては議論が分かれるとこだろう。
C#ではステートメントを含まない場合にのみ許可されている。
gotoステートメントによってラベル付きステートメントに直接移動する事もできるけど滅多に使われない。
246:デフォルトの名無しさん
09/04/18 23:58:26
>>239
初心者は恐ろしいことするよなぁ
247:デフォルトの名無しさん
09/04/19 00:00:32
セグメントエラーです。。。
248:デフォルトの名無しさん
09/04/19 00:37:30
C#はC言語の標準関数を使えないんだろ。
ぼろい言語だな。.Netでしか通用しないノウハウだな。
C++ならC言語のノウハウは生かせるから、VC++やC++Builderで、MFCやVCLの知識は無いけども、
イベントハンドラにC言語のコードを差し込んで、単にGUIの画面を借りるだけのスタイルで、
普段コマンドプロンプトのプログラムしか作らない俺でも、Windowsプログラムを作れたぞ。
249:デフォルトの名無しさん
09/04/19 00:49:14
釣りたいならもっと勉強してから出直してきな
250:デフォルトの名無しさん
09/04/19 01:10:24
>>243 と >>248 は逆に、C/C++ への皮肉だと思う。
251:デフォルトの名無しさん
09/04/19 01:14:24
C#でC言語の標準関数を使った事がある俺は神か
252:デフォルトの名無しさん
09/04/19 01:14:35
ある意味釣られたってわけだなw
253:デフォルトの名無しさん
09/04/19 01:17:50
ああ、msvcrt*.dllの関数も呼べるよな
254:デフォルトの名無しさん
09/04/19 01:39:12
C++人はマネージ拡張C++に手を伸ばせば同じことができるし、
VB6人やMS-Office VBA人は差分学習ですぐにVB.netやれるし、
(中途半端に似ててかえって混乱するとかいうのはデマ)
.Netしか通用しないノウハウのC#を学習する意味不明。
255:デフォルトの名無しさん
09/04/19 01:42:37
C互換ライブラリとかどこかにあったりしないかな。
C.StdIO.Printf() とか用意してある
256:デフォルトの名無しさん
09/04/19 01:42:57
第二段来ました
257:デフォルトの名無しさん
09/04/19 02:07:22
>>254
ところがどっこい。
.NETのサンプルがC#だけで出て来る例というのがよくあるため、
VBの人もC++の人もC#のサンプルを見て自分の言語に移す羽目に。
ここから蛇足。一昔前だったら、Cで書かれたWinAPIのサンプルを
VBへ移したり、C++ならクラスでラップしてみたりしていたわけで、
時代が移ってもやっていることに変わりはないのさ_| ̄|○
258:デフォルトの名無しさん
09/04/19 02:09:54
しっ、話しかけちゃいけません!
259:デフォルトの名無しさん
09/04/19 02:10:41
>>254
じゃあdelphiしか選択肢がないな
260:デフォルトの名無しさん
09/04/19 02:14:42
kylixってどこいったん?
261:デフォルトの名無しさん
09/04/19 03:24:35
>>257
要は君はコピペグラマってこと?
だったら.NETの問題っていうより君自身の問題なんじゃないの?
普通はサンプルの考え方を拝借することはあってもコードをそのまま引っ張る
なんてしないよ。
262:デフォルトの名無しさん
09/04/19 03:47:00
そりゃそうだ。だいたい、C#に癖のある構文なんてそんなに無いから、
サンプルを理解するくらいなら特にC#の知識を持ち合わせていなくても問題ないだろう。
もっとも、VB.NETやC++/CLIからもうちょっと手を伸ばせばC#にも手が届くだろうとは思う。
手が届くというだけではC#を学習する理由にはならないから、254への答えでは無いけどな。
263:デフォルトの名無しさん
09/04/19 08:38:49
>>239が一瞬HLSLに見えた
264:デフォルトの名無しさん
09/04/19 08:53:42
あんな見え見えの構ってちゃんの相手してやるんなら>>239に答えてやればよかった
もういないだろうけどscanfの引数は取得したい値を格納する変数のポインタを入れなきゃだめだよん
265:デフォルトの名無しさん
09/04/19 10:09:38
一章とかでscanf()してる入門書とかあるからなあ
266:デフォルトの名無しさん
09/04/19 10:47:06
いまだにCやるときはscanfを使う俺
なんで一行読み込みがgnuのgetlineしかねーんだよ・・・標準で作れよ
メモリ確保こわい
って感じ
267:デフォルトの名無しさん
09/04/19 18:12:40
fgets して sscanf するのが面倒だから
getopt に頑張ってもらうか適当な設定ファイル読ませるようにしちゃうなぁ。
つか C# 関係ないな。
268:デフォルトの名無しさん
09/04/20 02:23:31
たまに使うVC++でgetline()を使おうとして、「あれ?」と思う俺。
269:デフォルトの名無しさん
09/04/20 11:37:48
Collection系(例えばQueue)でロックされた状態で処理を行いたいとき
1.lock(独自のロックオブジェクト)
2.lock(対象.SyncRoot)
3.Queue.Synchronized(対象)
とか考えられるんですが
使い分けの方法がわからない
1・・・コレクションだけではなくその他の変数やオブジェクトもロックしたいときにまとめて一回でやりたいから使うかなと
2、3 この違いは一体何なのか教えてほしいです。
そして Queue.Synchronized でMSDN調べたら
同期されている (スレッド セーフな) Queue ラッパーを返します
とありますが、型が同じということだけはわかりますがこれはコピーされたオブジェクトなのかそれとも元の本体そのものなのか・・・
予想すると
3のラッパーはオブジェクトのディープコピーをかえしてきて読み取り専用的に扱う
削除なんかは3の操作ではできないから1,2の方法を使って要素を削除したり
こんな考え方でいいのでしょうか?
270:デフォルトの名無しさん
09/04/20 21:40:44
>>269
.Net Reflector
271:デフォルトの名無しさん
09/04/20 22:08:11
ソース公開されてるからReflector使わんでもええやん
272:デフォルトの名無しさん
09/04/21 05:09:56
ReflectorとReflectionは違うものですか?
273:デフォルトの名無しさん
09/04/21 05:15:22
>>272
うん
274:デフォルトの名無しさん
09/04/21 05:20:35
ツールか。新しい機能かとオモタ
275:デフォルトの名無しさん
09/04/21 08:45:40
>>269
どっちかっていうと1.2.が似てて、3.が違うよ
3はクラスメソッドがスレッドセーフになったコレクション。
Dequeue()やEnqueue()はスレッドセーフで実行できるけど、
列挙処理中はSyncRoot等でロックしないと別スレッドでの変更に対応できない
あとラッパーっていうのは元のオブジェクトに
新しい機能をかぶせるテクニックの総称だから元の本体だね
削除も普通にできる
276:デフォルトの名無しさん
09/04/21 08:49:30
object ICollection.SyncRoot
{
get
{
if (this._syncRoot == null)
{
Interlocked.CompareExchange(ref this._syncRoot, new object(), null);
}
return this._syncRoot;
}
}
277:デフォルトの名無しさん
09/04/21 11:09:13
説明ありがとうございます。
>>275
列挙している間に別スレッドからの追加・削除処理が入る場合は基本ロックが必要そうですね・・・
そこまで処理速度が必要そうなわけでもないので、ひとまずロックさせて使ってみようと思います。
>>276
結局は内部で専用のロックオブジェクトを提供してくれているだけという感じでしょうか
278:デフォルトの名無しさん
09/04/21 13:29:20
Shared code , Shared source といった類のキーワードでgoogle先生に聞けば以前はあっさり見つかっていたのに・・・
どこにいったんだろう?
VisualStudioのライブラリソースコード表示の説明リンクを次から1の直下に張り付けておいたら良いと思う。
誰か場所知っていたらリンク張って欲しいです。
>>277
実はソースコードみた方が圧倒的に正確だしてっとりばやい、凄い単純な実装なんで。
URLリンク(www.microsoft.com)
とりあえず VisualStudio からではないですが、ソースコードです。
ダウンロードしてgrepして探してみてください。
279:デフォルトの名無しさん
09/04/21 18:40:07
条件によって異なる複数の変数(string或いはint)を
配列化して(一列に並べて)、各変数に代入するメソッドを変数の個数だけ実行したいのですが、
デリゲートを使うとオーバーロードできないため、Object型を渡して判別するという事も考えたのですが納得できません。
unsafeのポインタを使うべきなのでしょうか。
280:279
09/04/21 18:52:28
すみません。具体的に言うと
foreach (string tmp in bufStr)
{
str = DataTypeCheck(tmp);
if (str == null)
{
//・・ここでメソッドを呼び出してそれぞれ代入
}
else if (str == "case1")
{
//・・代入する変数のリストを作成
}
else if (str == "case2")
{
}
}
データ(string[])は以下のようになっており
case1
a
b
case2
・・・
この場合はa,bをcaseに応じた変数に格納します。
281:デフォルトの名無しさん
09/04/21 19:23:47
具体的といいつつ酷く分かりづらいな
Func<T>でも使えばいいんじゃね
privateなメソッドなら型制約とかもいらんっしょ
282:279
09/04/21 19:53:25
>>281
説明下手で、すみません。
ググりましたが、おそらくお察しの通りです。
感謝いたします。m(_ _)m
283:デフォルトの名無しさん
09/04/22 19:00:44
Dispose()のCLRにマネージされていないデータを解放するという説明を読んで思ったのだけど、
CLRにマネージされてるかどうかってのはつまりどういう事なの?
284:デフォルトの名無しさん
09/04/22 19:12:25
ざっくりいってIDisposableがマネージド、IntPtrがアンマネージド
285:デフォルトの名無しさん
09/04/22 19:23:50
>>283
C++なんかだと、COMやスマートポインタを使って、リファレンスカウンタで生存管理をしているんだが
この方式だと、参照がなくなると同時に解放処理がされる。
対して、ガベージコレクタを使った.NETでは解放処理はメモリーが尽きたとき。
で、C++では参照がなくなると同時に解放処理を行う事を前提に組んであるケースが多いんだ。
だからC++の場合ちゃんとリファレンスカウンタで管理されているファイルシステムオブジェクトなどはこのタイミングでClose処理もされるのでCloseを忘れていても大丈夫
アンマネージをラップしたクラスを作るとこれが問題になることがある、これ明示的に開放する関数がDisposeだよという意味。
あくまでもラップした先のオブジェクトの解法、ラッパ事態はマネージドなので、ガベージコレクタで解放される。
たとえば.NETでStream系のオブジェクトでこれを忘れていると、Closeしわすれているとガベージコレクタで回収されるまでOpenされっぱなし。
286:デフォルトの名無しさん
09/04/22 19:42:28
>>283
CLRの関与していないところで確保したもの。主にWin32ハンドルとか。
287:デフォルトの名無しさん
09/04/23 13:27:12
IntPtrにAPIで取得したハンドルなんかもIntPtr.Zeroとかやった方が
いいんですかね…。基本的にマネージド以外の方法で取得したものは
全て何かしらの処理を加えた方がいいんでしょうか。
288:デフォルトの名無しさん
09/04/23 13:35:57
意味が分からん
アンマネージドリソースの解放ってのはIntPtr.Zeroを変数に代入することじゃないぞ
CloseHandleとかDeleteObjectとかのAPI関数呼び出しのことだぞ
処理した方がいいかどうかじゃない、必要な手順で解放する必要がある
もちろんシステムグローバルな値とかでその必要が無いものもあるがな、ウィンドウハンドルみたいな
289:デフォルトの名無しさん
09/04/23 14:14:38
請求書捨てても借金ちゃらにならない感じ
290:デフォルトの名無しさん
09/04/23 22:32:21
あとIntPtrを生で使うんじゃなくてSafeHandle使え
291:デフォルトの名無しさん
09/04/23 22:37:01
VisualStudio2008のツールボックスで使われているみたいな、プッシュピンで表示/非表示を切り替えられるGUIは、.
Netの標準コントロールとしては提供されていないのでしょうか?
市販コントロールには似たようなものがあるようなのですが。
よろしくお願いします。
292:デフォルトの名無しさん
09/04/23 22:48:19
標準には無い
293:デフォルトの名無しさん
09/04/23 23:42:08
オレそれ市販の買おうか真剣に悩んでる。
devexpressの試用版DLしたとこ。
294:デフォルトの名無しさん
09/04/24 00:05:34
>>292,293
残念です。Microsoftも便利な部品はどんどん使えるようにして欲しいですね。
295:デフォルトの名無しさん
09/04/24 00:11:37
>>294
どんどんしてるんだけど、今、SilverlightとかASP.NETとかの優先順位がむちゃくちゃ高いから、
VS風ドックコントロールは、ちょっとやそっとの要望あっても当分後回しになると思う。
296:デフォルトの名無しさん
09/04/24 08:36:28
>>287
API直接操作するなら、APIの仕様通りに使わないとアカンで
マネージド側の特徴もちゃんと考慮して、アンマネージドの処理がアンマネージドの仕様に合うように。
297:デフォルトの名無しさん
09/04/24 09:05:35
【知的財産】中国:ITソースコード強制開示強行へ・制度を5月に発足…国際問題化の懸念 [09/04/24]
スレリンク(bizplus板)
298:デフォルトの名無しさん
09/04/26 16:20:35
質問ですが、Flashのムービークリップの様に、
同じ性質を持ったオブジェクトの中にオブジェクトを上限なく動的に入れる方法はありませんか?
299:デフォルトの名無しさん
09/04/26 16:29:21
List<T> じゃあかんの?
300:デフォルトの名無しさん
09/04/26 16:32:52
表示上のオブジェクトという話かな?XAMLでどうよ。
301:298
09/04/26 16:56:29
>299-300
ありがとうございます。そこまで複雑な事ではないです。
302:デフォルトの名無しさん
09/04/26 17:06:03
じゃあどういうことよ、なのよ
303:デフォルトの名無しさん
09/04/26 17:09:44
int[] array = new int[999999];
とでもやって多めに確保しとけ
304:デフォルトの名無しさん
09/04/26 17:11:07
>>301
むしろ>>298の説明のほうがそれいじょうに複雑なことではあります
305:デフォルトの名無しさん
09/04/26 18:35:03
Compositパターンのことを言ってるんじゃないの?
306:デフォルトの名無しさん
09/04/26 18:35:51
「コンポジットパターン」と言いたいんじゃないかな?
ということで、これでぐぐってみてください。
307:デフォルトの名無しさん
09/04/27 08:52:01
このスレはやさしいエスパーが多いな
308:デフォルトの名無しさん
09/04/28 00:51:39
FormBorderStyle.Noneにして標準のタイトルバーとか表示させないで独自のものを表示したりしています。
タスクバーの右クリックでのシステムメニューは下のURL等を見て表示できるようになったんですが、最小化などが無効になったままです。
これは何かメッセージを処理したりすれば有効にさせることなど出来るのでしょうか?
最大化などもFormのWindowStateをNormalのまま最大化らしくふるまうように無理くりやっています。
もしくはこんな風な独自のウィンドウを作る時の従うべき方針などあれば是非是非エロイ人
309:308
09/04/28 01:11:26
さーせん、const int WS_MINIMIZEBOX = 0x20000;
とかをCreateParamsのStyleに追加したら最小化も表示されたっす。
310:デフォルトの名無しさん
09/04/28 01:39:19
Graphicsに任意のControlを描画することって出来ます?
var webControl=new WebControl()
webControl.Draw(graphics);
みたいな感じで。
311:デフォルトの名無しさん
09/04/28 01:44:28
Excel 2003 vbaの関数をC#から呼んでるんですが
実行時にvba内のブレークポイントで処理を止めるには
どうしたらいいんでしょうか。
312:デフォルトの名無しさん
09/04/28 02:05:10
>>310
でやってみていかがでしたか?
313:デフォルトの名無しさん
09/04/29 18:41:06
public partial class Form1 : Form
{
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static string mecab_sparse_tostr(int m, string str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int mecab = mecab_new2("");
string s = mecab_sparse_tostr(mecab,textBox1.Text);
mecab_destroy(mecab);
textBox2.Text = s;
}
}
これがXPでは動くのだけど、Vistaでは動かない。
mecab_sparse_tostr(mecab,textBox1.Text); で
System.AccessViolationException はハンドルされませんでした。
Message="保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。"
がでる。
意味がわからない。なぜ?
314:デフォルトの名無しさん
09/04/29 18:51:15
そのメカブってどこからもってきてんのよ
315:デフォルトの名無しさん
09/04/29 18:55:02
これ。
URLリンク(mecab.sourceforge.net)
316:デフォルトの名無しさん
09/04/29 18:55:19
オレも何かメカブそば食いたくなったわw
317:デフォルトの名無しさん
09/04/29 18:58:36
実はVista x64版だったというオチ、とか
318:デフォルトの名無しさん
09/04/29 20:04:16
>>317
それはさすがに大丈夫だった。
また、Mecabインストール時についてくるEXEは、普通に動きます。
319:デフォルトの名無しさん
09/04/29 20:06:30
とりあえずpInvoke行って宣言正しいかみてこようず
320:デフォルトの名無しさん
09/04/29 20:37:13
>>313
いま実際に動かしてみた
返値がStringだとマーシャラがギブアップするみたい
IntPtrで受けてMarshal.PtrToStringAnsiとかで文字列変換すべし
321:デフォルトの名無しさん
09/04/29 21:21:30
ref string でもいけそうな気がする。
322:デフォルトの名無しさん
09/04/29 21:28:24
返値にrefは使えない
エラーが出る原因だけど、あくまで推測レベルだが
返値にStringを指定した場合UnmanagedType.BStrならSysFreeStringが、
それ以外ならLocalFreeだかCoTaskMemFreeだかが自動的に呼び出されたはずなんで
メモリ周りの保護の強化との兼ね合いと思われる
323:デフォルトの名無しさん
09/04/29 22:10:13
>>320 >>322
ありがとう。XP、Vista両方動いた。
324:デフォルトの名無しさん
09/04/30 09:23:57
DataGridviewって動的列つかったCross集計もできないし機能ショボスギですね 代わりにMSレポートのマトリックス使ってますが将来DataGridviewにGrapeCityのGridみたいな機能が付加されることはないでしょうか
325:デフォルトの名無しさん
09/04/30 11:46:10
高機能すぎると独禁法が面倒なんだ
326:デフォルトの名無しさん
09/04/30 14:35:30
コンポーネントは機能が少ないほど良い。
327:デフォルトの名無しさん
09/04/30 19:31:39
×コンポーネントは機能が少ないほど良い。
○コンポーネントは機能が洗練されているほど良い。
328:デフォルトの名無しさん
09/04/30 21:23:18
>>326機能ゼロが最高だよね。
329:デフォルトの名無しさん
09/04/30 21:52:40
せめてAlt+F4で終了する機能ぐらいはつけてくれ
330:デフォルトの名無しさん
09/04/30 22:54:12
ListView を View == Details で使っていて、
選択された行をタブ区切りでクリップボードに転送してみようと思っているのですが
簡単な方法もしくは、一般にListViewからクリップボードへの定型的なやり方ってありますか?
331:デフォルトの名無しさん
09/04/30 23:02:53
1パターンしかないと思うが 細かい差異はあるかも知れんけど
332:デフォルトの名無しさん
09/05/01 02:27:08
C++で
const int data[] = {1, 2, 3, 4};
のようにやっていたのを
C#で書き直したいんだけど、
const int[] data = {1, 2, 3, 4};
とか
const int[] data = new int[]{1, 2, 3, 4};
って書くと文句言われる。
int[] data = {1, 2, 3, 4};
なら、文句言われなくなるんだけど、
C#でconst配列の初期化ってどうすればいいの?
333:デフォルトの名無しさん
09/05/01 02:29:31
そんなもの無い
dataそのものへの代入不可ならreadonly
要素の変更不可ならReadOnlyCollection<T>でラップ
334:デフォルトの名無しさん
09/05/01 02:31:20
private readonly int[] data = new int[] {1,2,3,4};
335:デフォルトの名無しさん
09/05/01 11:22:09
>>334
配列の要素に書き込めます
336:デフォルトの名無しさん
09/05/01 11:37:53
>C++で
>const int data[] = {1, 2, 3, 4};
は要素の書き換え可なの?
337:デフォルトの名無しさん
09/05/01 12:22:30
>>336
それは
int const data[] = ...
と同義だから、constはintに掛かってて、要素は書き換えられない。
338:デフォルトの名無しさん
09/05/01 13:03:46
スレ違いだが、
>>336
要素の書き換えは不可。
>>337
前半がウソ。それは同義ではない。
339:337
09/05/01 13:40:55
ごめん適当に書いたんだけど、C++とCで違いがあるの?
リンケージ変わったりとか?
340:デフォルトの名無しさん
09/05/01 14:16:41
static または auto に宣言しているなら変わらないかと、つか C# スレですが
専門のスレで聞いた方が良いで
341:デフォルトの名無しさん
09/05/01 14:21:46
>>335
readonly System.Collections.ObjectModel.ReadOnlyCollection<int> data = Array.AsReadOnly(new int[] { 1, 2, 3 });
こうかな、使ったことないんで自分で確かめてくれ。
342:デフォルトの名無しさん
09/05/01 14:23:28
読み取り専用その他、各種アダプタ類は、class に static 関数として定義されている事が多いんで、いろいろ見てくらはい。
343:デフォルトの名無しさん
09/05/01 16:36:37
メインのフォームから別スレッドを起動して、そのスレッドからフォームのテキストボックスにアクセスすると
CrossThreadMessagingExceptionが投げられるのですが、どのように回避するのが良いでしょうか?
344:デフォルトの名無しさん
09/05/01 16:42:06
コントロール スレッド でぐぐれ
345:デフォルトの名無しさん
09/05/01 17:48:18
スレッドをAbort()した後に、同じスレッドをStart()すると、
ThreadStateException
{"スレッドが実行中か、または終了しています。再起動できません。"}
が投げられます。
一度Abort()したスレッドを再開するにはどうすればよいでしょうか?
毎回new Threadをし直す必要があるのでしょうか?
できれば、new Threadはアプリ起動時に1度だけで済ませたいです。
346:デフォルトの名無しさん
09/05/01 18:00:27
メッセージどおり、Abortしたら再起動はできない
つーかAbortなんか使っちゃダメ SuspendとかResumeとかも禁止
フラグとかでスレッド自身が自分の状態を管理するようにする
別にThread作りなおしてもかまわんとは思うが
347:デフォルトの名無しさん
09/05/01 18:08:39
自分も独学でフラグで誤魔化したので、
スレッドの待機をメッセージが無い.NETでどうするか疑問だった
マジでみんなフラグ管理で逃がしてるの?
348:デフォルトの名無しさん
09/05/01 18:48:39
>>346
Resume、Suspendは「使用しないでください」と書いてありますが、Aboteには書いていません。
何故、Abortを使うのはダメとおっしゃっているのでしょうか?
349:デフォルトの名無しさん
09/05/01 18:52:43
>>348 マジ?どこどこ??
350:デフォルトの名無しさん
09/05/01 18:56:26
>>348
メモとかに書いてるっしょ どこで終了するか分からないからオブジェクトが不完全な状態になりうるとか
更には確実に終了されるかどうか保証できないとか実にやばそうな匂いが漂ってくる
351:デフォルトの名無しさん
09/05/01 19:14:36
>>349
Visual C# Express 2008のインテリセンス
>>350
そうは書いていないようです
352:デフォルトの名無しさん
09/05/01 19:26:48
インテリセンスて
ヘルプの解説見ろよ……
353:デフォルトの名無しさん
09/05/01 19:35:28
>>352
ヘルプの解説でも、
SuspendとResumeの項には
「メモ : このメソッドは,互換性のために残されています。」
「[ObsoleteAttribute("Thread.Resume has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. URLリンク(go.microsoft.com)", false)] 」
とありますが、
Abortの項にはありません。
詳しくはヘルプをご覧ください。
354:デフォルトの名無しさん
09/05/01 20:21:44
Thread.Sleep() に Timeout.Infinite を渡す。
再開は Thread.Interrupt() で ThreadInterruptedException をスローさせる。
355:347
09/05/01 21:40:05
さんくす
Thread.Interruptのコード例でsleepSwitchフラグの位置がイマイチ納得いかなかったけど
>>354に書いてあるように使うよ
356:デフォルトの名無しさん
09/05/01 22:04:03
>>347
一般にはフラグは使わない、イベントやセマフォやミューテックスの類を使って制御する。
フラグは簡単にミスするしバグりやすいよ、CPUパワーは無駄にするし、スレッドの実行優先順位も狂って非効率になる。
357:デフォルトの名無しさん
09/05/01 22:10:40
再開はそれでいいんだけど休止をどう伝えるのかイメージつかないんですが
358:デフォルトの名無しさん
09/05/01 22:25:42
>Thread.Interruptのコード例でsleepSwitchフラグの位置
デバッガで確認したけど、Thread.SpinWait(10000000);の行には行かないね。
シングルコアだとJoin呼ぶまでスレッド動かないからだね。
試しにInterrupt()のあとでThread.Sleep()入れてメインスレッドをスリープ待機に
入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
マルチコアだと動かないんじゃないか?このサンプル。
359:デフォルトの名無しさん
09/05/01 22:48:07
>>357
メモリ操作オンリーの計算なら止めてしまっても問題ないと思うが
普通にいろいろなリソースを操作しているなら勝手なタイミングで止められたらマズくね?
もちろん上記のような特殊な状況があるならそれこそSuspendしちまっても全然問題ないと思われますけど。
普通の状況では、イベントを確認して問題なければそこで止める。
360:デフォルトの名無しさん
09/05/01 23:04:40
Sleepする前にInterruptされていたら停まらないでThreadInterruptedException起こすし
問題ないかを確認するのはInterruptする側でしろということじゃないかな。
361:デフォルトの名無しさん
09/05/01 23:07:19
なんつーか、AbortにしてもInterruptにしても、これらの操作はスレッドに対する最終手段だぜ
普通に使うものじゃない
362:デフォルトの名無しさん
09/05/01 23:09:02
同期を使わないなんてアリエナイ。
363:デフォルトの名無しさん
09/05/01 23:11:25
いや、開発するアプリの種類によるか・・・
スレッド自体、使わない人は使わないんだし。
364:デフォルトの名無しさん
09/05/01 23:11:48
スレッドの外部から停止再開させたいなら、同期オブジェクトを使おうが
結局フラグ的な使い方をすることになりそうな気がする。
365:デフォルトの名無しさん
09/05/01 23:13:55
>>364
フラグだとvolatile付け忘れたり、メモリーバリア忘れたり、素人には難しいぞ。
366:デフォルトの名無しさん
09/05/01 23:23:06
ManualResetEvent だともろフラグだ。
そういえばBackgroundWorkerの実装をみると
volatileもmemorybarrierも使ってなかったのを思い出した。
367:デフォルトの名無しさん
09/05/01 23:24:28
つかEventはマルチスレッド用のフラグですから
セマフォはマルチスレッド用のカウンタですから
368:358
09/05/02 03:35:46
嘘こいてた。
>入れちゃうとThread.SpinWait(10000000);がThreadInterruptedException起こすし。
起きない。そもそも待機してない風?
>スレッドを iterations パラメータで定義した時間の間待機させます。
ってヘルプにあるのに・・・ある・・・定義した時間って単位はいくらだ?フェムト秒?
Causes a thread to wait the number of times defined by the iterations parameter.
・・・誤訳かよ!
待機とブロックと中断の用語がなんか変な気もするし。日本語ヘルプはだめすぐる。
369:デフォルトの名無しさん
09/05/02 03:40:54
WCFとかAzureの質問ってここでしていいのかな。
Azure SDKのdevelopment fabric上でWCFサービスを動かすと、
127.0.0.1からはアクセスできるのに、自分のホスト名から叩くとアクセスできなくて、
俺の設定ミスなのかAzure SDKのバグなのか分からないんだけど。
解決策を知ってる人がいたら教えて欲しい。
370:デフォルトの名無しさん
09/05/02 03:56:03
切り分けしようぜ
371:デフォルトの名無しさん
09/05/02 03:56:30
手元に無いんで試してないがエスパーしてみると
リスナーでIPAddress.Anyとすべきところがそうなってないとか
372:デフォルトの名無しさん
09/05/03 10:20:58
>設定ミスなのかAzure SDKのバグ
自分のプログラムが悪いとはこれっぽっちも考えてないのね
373:デフォルトの名無しさん
09/05/03 11:22:10
>>372
「俺」って言うのは日本語で「自分」を示す一人称の一つだよ。
374:デフォルトの名無しさん
09/05/03 11:42:24
設定ミスと考えてるってことはプログラムは悪くないと思ってるってことだろ
375:デフォルトの名無しさん
09/05/03 11:44:41
設定はプログラムでするだろ
376:デフォルトの名無しさん
09/05/03 12:15:09
何言い返してんだよ、本人か?
そうでなけりゃ、自分のプログラムミスを設定ミスと言い直してごまかす人か?
377:デフォルトの名無しさん
09/05/03 12:58:12
あ、回答どうも。
>>370
がんばってみたんだけど無理だった。。
とりあえず、MS提供のサンプルで同じことが起こるのは確認済み。
別環境でやっても同じく。
>>371
なるほど。そういうオプションがあるのか。
IISでその辺設定するにゃどうしたらいいんだろ。調べてみますわ。
>>372
ランタイムの初期化って設定って言いませんかねぇ。
あと、言うの忘れてたけど.svc使ってIISの機能でホスティングさせてたんで。
378:デフォルトの名無しさん
09/05/03 13:43:49
WCFはIISでホスティングさせているか否かでだいぶ違うから、
そういう大事なことは先に言えよな。
あとはトランスポートになに使ってるかかな、BasicHttpBindingとかそんなの。
379:377
09/05/03 14:05:03
失礼(´・ω・`)
バインディングはBasicHttpBindingにしてる。
ウィザードのデフォルトはWebHttpBindingだけど、
それだとそのまま使うとなんか例外投げたので。
とりあえず、MSの開発者側も認識している既知の問題としては、
WCFアプリをAzureにうpすると、自分のホスト名を、
ユーザが使うロードバランサのアドレス(URLリンク(***.cloudapp.net))ではなく、
分散環境内でアプリが実際にロードされている鯖(URLリンク([guid].cloudapp.net))のもの
として認識してするせいで、それをendpointとしてWSDLを生成してしまう、
というのはどっかで見かけたけど、それがこの問題とも関連しているのかよく分からない。
380:デフォルトの名無しさん
09/05/03 14:06:36
ちなみにこれ。
URLリンク(code.msdn.microsoft.com)
381:デフォルトの名無しさん
09/05/03 14:10:18
内部識別子でWSDLを公開している様子
URLリンク(wcfazure.cloudapp.net)
URLリンク(wcfazure.cloudapp.net)
けど、ローカルで動かす分には鯖名自体は(もちろん)合ってるから関係ないはずではあるんだけど。
382:デフォルトの名無しさん
09/05/04 15:59:03
まずはIISで動かしているのかASP.NET開発サーバーで動かしているのか確認かな。
後者なら127.0.0.1(localhost)しか受け付けない。
タスクトレイにASPNET開発サーバーアイコンが表示されているようなら後者。
IISで動いているなら、コンピューターの管理からIISの設定を確認する。
まずWEBサイトの識別のIPアドレスで「未使用のIPアドレスすべて」になっているかどうか。
ここが127.0.0.1になっていればそれでしか繋がらない。
次にこのアプリの仮想ディレクトリを確認でセキュリティ関係に矛盾がないか確認。
よくやってしまうのが、統合認証+匿名認証の設定になっていて、
WEBで公開しているディレクトリにIUSR_xxxxのアクセス許可がないケース。
統合認証で認証された場合は問題ないが、匿名の場合にアクセス拒否を食らう。
383:デフォルトの名無しさん
09/05/04 17:09:52
>>382
ありがとう。
いま、手元に環境がないので、後日確認してみて報告しますわ。
384:デフォルトの名無しさん
09/05/04 18:30:41
C#でテキストを1行ずつ読み込み、条件に合った行を取得するような簡単なものを組んでいるのですが、
条件に合った行から連続する3行とかを取得するにはどうすれば良いのですか。
初歩的かもしれませんが、ご教示願います。
385:デフォルトの名無しさん
09/05/04 18:32:17
>>384
とりあえず下の場合の動作は?
テキスト
1234
1234
1234
abcde
abcde
abcde
条件: 1234
386:デフォルトの名無しさん
09/05/04 18:37:32
>>384
条件に一致した行のインデックスとって自分でそこから2行読めば?
387:デフォルトの名無しさん
09/05/04 18:41:59
なんかJavaより面倒そう
388:デフォルトの名無しさん
09/05/04 18:42:02
var result = new List<string>();
int flag = -1;
foreach (string line in lines)
{
if (条件に合ってる行の場合)
{
flag = 0;
}
if (flag =! -1)
{
result.Add(line);
flag++;
if (flag > 3)
{
flag = -1;
}
}
}
389:デフォルトの名無しさん
09/05/04 18:50:20
=! だと・・・?
390:デフォルトの名無しさん
09/05/04 19:08:04
grepと同じ挙動ならこんな感じか
IEnumerable<string> Grep(IEnumerable<string> source, string pattern, int after) {
int n = 0;
foreach (var line in source) {
if (line.Contains(pattern)) n = after + 1;
if (n > 0) {
n--;
yield return line;
}
}
}
391:デフォルトの名無しさん
09/05/04 19:25:31
>>384
bbbが条件だとして、そこから3つを取得
string[] list = { "aaa", "bbb", "ccc", "ddd", "eee" };
var result = list.SkipWhile(s => s != "bbb").Take(3);
392:デフォルトの名無しさん
09/05/04 19:44:16
linqを使いたいお年頃なんですね
393:384
09/05/04 20:03:01
返事が遅くなりました。
1234
aaa
bbb
ccc
2345
ddd
eee
fff
のようになっていまして、ReadLineで順に読んでいって、1234を発見したときに、
aaa、bbb、cccの3行を取得するようにしたいです。
1234の行は取得できるのですが、その次の行を読んでbreak;の方法がいまいちわかりません。
394:デフォルトの名無しさん
09/05/04 20:10:11
もし1234が見つかったらのifステップ中は
ReadLine();
ReadLine();
ReadLine();
じゃだめなの(;´Д`)
395:デフォルトの名無しさん
09/05/04 20:10:39
>>393
1234が2回以上あらわれることはあるか、
また1234に続く3件のうちに1234が含まれていた場合の扱いは?という確認だろ。
そういうことはありえないという条件でもよいのだが。
その条件が確定すれば簡単だよ。
396:デフォルトの名無しさん
09/05/04 20:16:30
すみません。おそらくすごい初歩的なことだと思います。
検索する行(この場合は1234)は、他の行には一切ありません。
>>394さんの3回記述をするのは、次の2行も取得できるということですか?
Webはいろいろ調べてみたのですが、1行ずつ読み込む方法しか書いてなかったもので。
397:デフォルトの名無しさん
09/05/04 20:30:44
>>385はスルーですかそうですか
398:デフォルトの名無しさん
09/05/04 20:31:52
>>391はスルーですかそうですか
399:デフォルトの名無しさん
09/05/04 20:33:15
>>398
いやまて391は流石に役に立たないだろう根本的な部分で
400:384
09/05/04 20:41:24
>>385を書かれた時点で自分の伝えたいことが伝わってないことがわかり、をれを参考にして例示を上げてみました。
スルーするつもりはありませんでしたのでご容赦ください。
今>>394の方法でやってみたところ、思った通りの挙動が確認されました。
まだ本片手で勉強している最中ですので、このような質問内容になったことをお詫びいたします。
みなさん、ありがとうございました。
401:デフォルトの名無しさん
09/05/04 20:59:57
ReadLine()は
今まで読んだ行の位置からスタートして
次読み込む行を調べて
その行に移動して
その行に書いてあることを読んで
今読んだ行を覚えておいて
読んだ内容を返す
っつー動作をするんじゃね?
402:デフォルトの名無しさん
09/05/05 17:19:16
ちなみに和布蕪(めかぶ)は, 作者の好物です.
403:デフォルトの名無しさん
09/05/07 00:49:52
.net framework って、普通1.1なの?
2.0や3.0, 3.5って企業や業務アプリで使ってないノア?
404:デフォルトの名無しさん
09/05/07 00:52:12
使っていいよ。
405:デフォルトの名無しさん
09/05/07 00:53:08
2.0は十分なシェアあるだろうが可能な限り低いバージョンでやるべきだろ
406:デフォルトの名無しさん
09/05/07 01:03:04
ほとんど2.0じゃないかな。1.1まではベータ版みたいなものだし。
407:デフォルトの名無しさん
09/05/07 01:10:24
FrameworkClientProfileで開発しとけば色々便利
408:デフォルトの名無しさん
09/05/07 01:22:03
俺様メモからの引用
--
.NET Framework 3.5 Client Profile
3.5 SP1のサブセット
インストール可能な環境は
Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP(SP2以降)
であるが、さらに次の条件が付加されるため実質XP(SP2以降)だけが対象となる。
フルセットの.NET Frameworkが導入されていないこと。(2.0以降だけでなく1.1や1.0も!)
フルセットの.NET Frameworkがすでに導入されている場合に
Client Profileのインストーラは3.5SP1フルセットのインストールを行う。
409:デフォルトの名無しさん
09/05/07 01:40:15
3.5 SP1
410:デフォルトの名無しさん
09/05/07 01:41:20
3.5 SP1 フルインストールってすごい長いんだよな・・・
411:デフォルトの名無しさん
09/05/07 02:18:57
>>394で正解とか他の解答者がさすがにかわいそうすぎたw
412:デフォルトの名無しさん
09/05/07 02:19:21
Silverlightで皆幸せ
413:デフォルトの名無しさん
09/05/07 03:58:32
和暦のカレンダーコントロールが必要になった
めんどくさいからだれか知ってたらサンプルのページ紹介か作ってくれw
サードパーティはバグに引っぱられるからかるからなるだけ使いたくねえ…
もう和暦とか辞めればいいのに
西暦で統一してぇ・・・
414:デフォルトの名無しさん
09/05/07 04:07:32
天皇制がある限り無理
415:デフォルトの名無しさん
09/05/07 07:10:32
面倒だけどそんなに手間じゃないよな
416:デフォルトの名無しさん
09/05/07 11:28:41
まあ、「今後は」西暦に統一したとして、
過去に作った分にまで遡及させるのは無理だから
実際に和暦が消えるのは数十年後よ。
417:デフォルトの名無しさん
09/05/07 11:37:04
太陽暦移行後だけでいいなら簡単だろうな。
418:デフォルトの名無しさん
09/05/07 11:59:10
普通は平成、昭和、大正、明治をサポートすれば大丈夫なんだろうけど、
お寺の過去帳データベースを作ったときはまいったな。
419:デフォルトの名無しさん
09/05/07 13:47:29
和暦とか旧暦とか六曜とか月齢とかまとめて計算してくれるクラス欲しいな
海外ローカルも含めて国際カレンダークラスみたいなもの。
420:デフォルトの名無しさん
09/05/07 13:50:57
暦計算だけならCalendarクラス使えばいいだろう。
六曜や月齢はないが。
421:デフォルトの名無しさん
09/05/07 17:17:40
和歴はあってもイイけど業務で使うのは辞めて欲しい
役所が一生懸命使ってる限りは無理だろうけどさ
422:デフォルトの名無しさん
09/05/07 17:36:57
和暦に命をかけてるんじゃないかってほどこだわってた客がいたな
昭和何年何月何日は存在しないから入力できないようにしてくれとか
結果的にあってんだからいいんだよ!
423:デフォルトの名無しさん
09/05/07 18:14:23
世界のローカル暦サポートなんて、Unicodeの比じゃない難事業だぞ。ヨーロッパ各国に限っても、
ユリウス暦からグレゴリウス暦の移行期は国ごとに日付が違うし、ユリウス暦の初期は閏年が
いつだったのかわからないし、ユリウス暦導入前は最高神祇官が勝手に閏年を決めるし、一方
ギリシアではポリスごとに暦が違うし……
日本だって南朝と北朝で暦が違っていたり、暦書がなくて暦を復元できない時代があったり、
ああもう面倒くせえ
424:デフォルトの名無しさん
09/05/07 18:16:23
旧暦の暦の正当性は閏月とかあってとてもじゃないけど保障できない。
さきの過去帳DBなんだけど、古いのはもう計算じゃ出せなくてテーブルで持つしかなかった。
古いのは書き写したときのミスとかいろいろあってもう記述がいい加減なんだよね。
咸豊とか中国の元号が出てきたときにはもう勘弁してください状態だった。
南北朝や九州年号はさすがになかった・・
425:デフォルトの名無しさん
09/05/07 19:35:09
さすがだな、おまえらw
”和暦のカレンダー”だけでここまで穿り返すとはwww
426:377
09/05/07 19:43:50
>>382
今日いろいろ調べてみた。
結果としては、Development Fabricは内部でASP.NET開発サーバを使っているのではないか、
という感触を持った(サービスが自分をホストしている鯖の情報を取る方法を知らないので確定的ではないけど)。
AzureのドキュメントにはIISを使ってるって書いてあるし、ASP.NET開発サーバアイコンも表示されていないんだけど、
IISにアクセスログを吐かせてみても、127.0.0.1:81を叩くときだけログに残らないし、
よく考えると、80番の設定で起動してるのに81番で起動するのは、IIS以外に鯖を起動した上でホストしている証拠かな、と。
そうなると、ホスト名がつかえないのは、現状では「仕様」ということになるんだと思う。
とりあえず、CTPの文字が外れるまではこのままなんだろうなぁ、というオチにしておく。
みんな、いろいろ教えてくれてありがとう。
427:デフォルトの名無しさん
09/05/07 20:20:27
すみません、
HTML文からタグのみを取り出す関数はありませんか?
逆に言うと、HTML文のタグ以外を削除するような関数
のことですが。
428:デフォルトの名無しさん
09/05/07 20:32:18
安易に考えたらXML名前空間の機能使って取り出すとか?
429:デフォルトの名無しさん
09/05/07 20:34:59
関数はないな
正規表現使えばタグの抽出だけなら比較的簡単だ
>>428
XHTMLじゃない限りほぼパース不可能だよ
430:デフォルトの名無しさん
09/05/07 20:35:48
酷いHTML読まされる事考えるなら、MSHTML使うのが一番楽じゃないかね
431:デフォルトの名無しさん
09/05/07 20:56:10
SgmlReader っていうのもある。
432:デフォルトの名無しさん
09/05/07 21:04:57
CommitChanges()はパフォーマンス面で悪かったりする?
普通に多用していいもの?
433:432
09/05/07 21:42:45
ああスレ間違えた
434:デフォルトの名無しさん
09/05/08 00:20:25
>>427
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
435:デフォルトの名無しさん
09/05/08 00:26:09
System.Windows.FormsのHTML DOMはWebBrowserなしだと普通には作れないのが難
標準でwebスクレイピングライブラリとか作られんかのう
436:デフォルトの名無しさん
09/05/08 00:31:13
寺とかちょっとした歴史の勉強だなw
437:デフォルトの名無しさん
09/05/08 00:31:51
プログラムにフォルダ名が入っているのですが、いれないようにするにはどうすればいいですか?
438:デフォルトの名無しさん
09/05/08 00:34:01
SilverLight
439:デフォルトの名無しさん
09/05/08 00:37:25
>>435
んじゃ、これ。
URLリンク(htmlagilitypack.codeplex.com)
440:デフォルトの名無しさん
09/05/08 00:38:35
すんません、書きなおします
プログラムをバイナリエディタでみたところプログラム内にフォルダ名が書き込まれているのですが、
ビルド時、かきこまれないようにするにはどうすればいいですか?
441:デフォルトの名無しさん
09/05/08 00:38:55
>>437
相対パス使うか、定義ファイルにパス書くか、レジストリにパス書く。
442:デフォルトの名無しさん
09/05/08 00:39:43
>>440
リリースビルド & .pdb を作らないようにすればいいんじゃなかったっけ?
443:デフォルトの名無しさん
09/05/08 00:40:43
あ、ありがとうございます
ビルドー詳細設定でデバッグ情報をnoneにしたらいけました
あせった><
444:デフォルトの名無しさん
09/05/08 00:48:43
ビルドーってディルドーに似てる
445:デフォルトの名無しさん
09/05/08 02:31:26
2000年問題に対応したとき、「なんでこんなややこしい閏年の置き方をするんだ!」とか
思ったものの、よく勉強してみたら、現行暦がいかに単純で合理的か納得したw
446:デフォルトの名無しさん
09/05/08 06:10:15
>>445
日本の季節感にはまったくあってないけどな
昔は一番寒い時期が1月1日で新年を迎えると暖かくなる一方だった
戦争に負けたアジアは所詮白人のおまけということだな
447:デフォルトの名無しさん
09/05/08 07:14:01
>>446
おじいちゃん乙
448:デフォルトの名無しさん
09/05/08 07:21:58
>>446
中国行って旧正月でも祝ってればいいんじゃない
449:デフォルトの名無しさん
09/05/08 07:22:24
そのせいで地方によってはいくつかの行事は月遅れでやることが多いけどな。
ひな祭り、七夕、盂蘭盆会などなど。
450:デフォルトの名無しさん
09/05/08 10:56:45
なんか思いっきりスレチ方向へ進んでないか?ww
451:デフォルトの名無しさん
09/05/08 12:22:22
じゃあディルドーの話に戻そう
452:デフォルトの名無しさん
09/05/08 23:07:53
三叉路まで戻って別の違う道に進んだみたいな。
453:デフォルトの名無しさん
09/05/08 23:17:29
ディルドゥーなら喜んで食いついたのに
454:デフォルトの名無しさん
09/05/09 13:32:15
vbでいうところの
for i=0 to 4
label(i)="abc"
next
みたいな
ループの添字で複数の連番的なオブジェクトを指定するにはどうしたらいいのでしょうか
オブジェクトに番号振るっていう状態をどういうのかがわからなくて調べられないです
1日いろいろ探してみましたが思いつく宛が詰まってしまったのでヒントが欲しいです
455:デフォルトの名無しさん
09/05/09 13:35:24
配列に入れておいて、あとは同じように。
456:デフォルトの名無しさん
09/05/09 15:23:13
ありがとうございます
457:デフォルトの名無しさん
09/05/09 21:20:30
質問です
フォームのテキストラベルにH2Oと入れたいんだけど2を下付きにするにはどうすればいいのですか?
Hのラベル、2のラベル、Oのラベルを3個並べてお茶を濁してきたけど、詳しい方どうか教えてください。
458:デフォルトの名無しさん
09/05/09 21:23:57
そうやるしかない
459:デフォルトの名無しさん
09/05/09 21:30:23
自前で描画するしかないな Paintイベント使って
460:デフォルトの名無しさん
09/05/09 21:30:36
>>457
U+2082 ₂ SUBSCRIPT TWO
461:デフォルトの名無しさん
09/05/09 22:04:02
>>457
文字を書いてつくったイメージを貼り付ければいいじゃん
462:デフォルトの名無しさん
09/05/09 23:36:39
H₂0
な なるほど!thx
463:デフォルトの名無しさん
09/05/09 23:44:44
リッチテキスト
464:デフォルトの名無しさん
09/05/09 23:48:55
₀₁₂₃₄₅₆₇₈₉
465:デフォルトの名無しさん
09/05/12 11:40:49
ComboBoxの項目の表示色を項目内容によって変えるとき
DrawItem()でDrawString()すれば良いんだけど。
ComboBoxの数が多いのでユーザコントロールにするとしたら
どこでDrawString()すればいいんだろう?
OnDrawItem()で直接書いちゃっていいのかな?
466:デフォルトの名無しさん
09/05/13 23:19:39
その前にやってみれば?
467:デフォルトの名無しさん
09/05/14 01:11:13
>>465
OnDrawItemでいいよ。
468:デフォルトの名無しさん
09/05/14 09:36:16
ありがとう。
OnDrawItem()でうまくいきました。
ついでに背景色とかも変更してみます。
469:デフォルトの名無しさん
09/05/14 16:20:55
指定したディレクトリ以下のすべてのファイルを効率的に列挙していく場合どのクラス、メソッド使うのがいいですか?
GetFilesみたいにリストを作って返すのではなくWin32APIのFindFirstFile/NextFile相当のものが使いたいんですが。
470:デフォルトの名無しさん
09/05/14 17:01:05
Linq
471:デフォルトの名無しさん
09/05/14 17:08:21
FindFirstFile/NextFile
472:デフォルトの名無しさん
09/05/14 17:18:48
.NETは非コンテナに対するイテレータが弱すぎる
473:デフォルトの名無しさん
09/05/14 17:29:26
yieldがありゃ十分だろ
474:デフォルトの名無しさん
09/05/14 17:30:22
>>469
.NET Framework 4.0 のGetFiles
475:デフォルトの名無しさん
09/05/15 02:24:16
実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
その手のライブラリなど、ご存知の方いますでしょうか? Reflection で自前
で再帰するしかない?
476:デフォルトの名無しさん
09/05/15 02:42:10
CodeProjectとか探せばありそうな予感。
まぁ実装してもたいした手間じゃな下げだけど。
477:デフォルトの名無しさん
09/05/16 13:13:47
>>475
>実行時の object 階層を値込みで表示用の tree にまとめ上げたいんだけど、
object階層の意味がよく分からないけど、
Visual Studioのウォッチウィンドウみたいな感じで
インスタンスの情報を展開してくれるのが欲しいってこと?
だったらオブジェクト参照が循環している場合もあるので注意かな。
シリアライザ/デシリアライザみたいにグラフとして扱うか、
ウォッチウィンドウみたいにクリックするまで子ノードの評価を行わないといった
工夫が必要になると思う。
478:475
09/05/16 16:25:07
>>476
いや、それが結構面倒くさい。CodeProject はなさそうでした。
>>477
なるほど、シリアライズして XML を使うのもありですね。
どうもありがとう。
479:デフォルトの名無しさん
09/05/16 16:58:37
ソースいじくれるのならExpandObjectConverterでPropertyGridとかがお手軽じゃね
480:90
09/05/16 20:36:16
すいません、教えてください。
ユーザコントロールを作成していますが、
既存の型を使用した場合は問題ないのですが、enum型を定義して
使用すると、このコントロールを使用するプログラムで
デザイン時に初期値を選んだ場合は問題ないのですが他の候補(この場合type2)を
セットすると
「'System.Windows.Forms.Control.ControlCollection' に 'xxxComboBox' の
定義が含まれておらず、型 'System.Windows.Forms.Control.ControlCollection' の
最初の引数を受け付ける拡張メソッドが見つかりませんでした。
using ディレクティブまたはアセンブリ参照が不足しています。」のエラーになります。
481:デフォルトの名無しさん
09/05/16 20:39:20
名前を間違えました。90のかた申し訳ありません。
ソースはこんな感じです。
namespace Controls
{
public partial class xxxComboBox : ComboBox
{
public enum DrawingMode : int
{
type1 = 0,
type2 = 1
}
private DrawingMode _ItemDrawingMode;
[Category("Custom")]
[DefaultValue(typeof(DrawingMode), "type1")]
[Browsable(true)]
public DrawingMode ItemDrawingMode
{
get { return _ItemDrawingMode; }
set { _ItemDrawingMode = value; }
}
482:デフォルトの名無しさん
09/05/16 20:40:31
private Color _FirstBGColor;
[Category("Custom")]
[DefaultValue(typeof(Color), "White")]
[Browsable(true)]
public Color FirstBGColor
{
get { return _FirstBGColor; }
set { _FirstBGColor = value; }
}
public xxxComboBox()
{
InitializeComponent();
_ItemDrawingMode = DrawingMode.type1;
_FirstBGColor = Color.White;
}
...
}
使用する側では参照設定にこのdllを指定しています。
FirstBGColorプロパティは他の色に変更しても正しくビルド・実行できます。
DraingModeのプロパティをtype2に変更してビルドすると上記の
エラーがでます。
エラー箇所を見ると
this.xxxComboBox1.ItemDrawingMode = Controls.xxxComboBox.DrawingMode.type2;
の行が解決できないようです。
using Controls;を加えても同じです。
ControlCollectionに追加するにはどのメソッドを使用すればいいのでしょうか?
483:デフォルトの名無しさん
09/05/16 22:32:52
使う側を
this.xxxComboBox1.ItemDrawingMode = 1;
にしたらエラーでないよね?
484:デフォルトの名無しさん
09/05/16 22:41:13
何もおかしなことはない。エラーメッセージの通り
this.Controls は Control.ControlCollection クラスのインスタンスだろ
485:480
09/05/17 08:30:40
>>483, 484
ありがとうございます。
this.xxxComboBox1.ItemDrawingMode = 1; は型が違うのでエラーになります。
呼び出し側でusing Controls;を定義して、コードで(例えばForm1_Load内で)
xxxComboBox1.ItemDrawingMode = xxxComboBox.DrawingMode.Type2;
のように書けば、正常にビルド・実行可能です。
ただし、先程書いたようにデザイナからプロパティ値を変更すると
エラーになります。ControlCollectionにxxxComboBoxを追加して
導出してやらないといけないのかと思いますが、やり方が分かりません。
486:デフォルトの名無しさん
09/05/17 09:23:29
名前空間にglobal::Controlsなんてのはやめようよ
せめてライブラリ名.Controlsに
487:480
09/05/17 11:08:57
お騒がせしました。解決しました。
そうだよな、namespaceの名前を変えよう・・・
ということでControlsからmalib.Controlsにnamespaceを変更したら
ちゃんと動作しました。
488:デフォルトの名無しさん
09/05/20 21:40:44
この言語笑うしかないわw いい意味で。
今C#の勉強の意味もこめてC#のいろんな機能をフルに利用するつもりで
ちょっとしたプログラムを作っているんだが
本当にC++、Javaから発展してきた言語とは思えん。
まず、DataGrid使って表を作る。
row.SetValues(1,2,3)とやることで、一行のデータを一気に入れられる。
そこで一行全部の背景色をつけたいと思った。
SetValuesと同じように、row.SetStyle(style)とやりたかったが、
残念ながらSetStyleはセルごとしかなかった。
DataGrid(正確にはDataGridViewRow)になんでSetStyleが無いんだよ!って
怒るような事例なのに、拡張メソッドを使うことで継承を利用せずに
いとも簡単にrow.SetStyle()を付け加えることができるとはw
489:デフォルトの名無しさん
09/05/20 23:09:50
>>488
それでC#にケンカ売ってるつもり?
まさかそんなわけないよねwww
490:デフォルトの名無しさん
09/05/20 23:13:11
C#はあれだよあれ
メロンパン言語だ
491:デフォルトの名無しさん
09/05/20 23:25:01
どう見ても誉めてるじゃん
492:デフォルトの名無しさん
09/05/20 23:36:57
コンポーネントと言語をごっちゃにして、的外れだけどな。
493:デフォルトの名無しさん
09/05/21 00:24:35
うん
C# の話じゃなくてフレームワークの話だな
494:デフォルトの名無しさん
09/05/21 00:25:41
C#じゃなくてWinFormsの話だな。
C#はソースが読みやすいとか、一貫した仕様でスッキリしてて覚えやすいとか色々あるけど、
何よりVSっていう最強のIDEが付っきりで開発支援してくれるのが最大のアピールポイントだと思う。
VSが無ければ他の言語でいいけど、一回VS+C#で慣れると他の言語やる時にかなりメンドクサイ。
・・・あれ、ここって相談室だよな?
495:デフォルトの名無しさん
09/05/21 00:34:35
C#ならまずdelegateを褒めたいな。リスナめんどい。
496:デフォルトの名無しさん
09/05/21 00:42:09
Enumerable.DistinctにはなぜFunc<TSource, TSource, bool>を受け取るオーバーロードがないんだ
497:488
09/05/21 00:44:37
>>492
> コンポーネントと言語をごっちゃにして、的外れだけどな。
言っとくけど、言語の話だよ。
mix-inといえばわかるかな?
(標準ライブラリの)クラスに、メソッドを後付できる。
という言語仕様。
498:デフォルトの名無しさん
09/05/21 00:47:05
拡張メソッドは便利だな、で終わる話なのに、つらつら書かれても・・・
ってことを言ってるんだと思うよ。
499:デフォルトの名無しさん
09/05/21 00:48:35
俺「拡張メソッドは便利だな」
他の人「そうだな」
で終わってくれればいいのに、
コンポーネントとかWinFormsの話だなとか
間違ったこと言い出すからレスせざるを得なかったんだよw
500:デフォルトの名無しさん
09/05/21 00:49:48
>>497
あきらかに主題の文章量と副題の文章量の比がおかしいww
おまえは女かwwwwww
501:デフォルトの名無しさん
09/05/21 00:51:06
>>499
先に言っとく。基地外(500など)は無視したほうがいいよw
502:デフォルトの名無しさん
09/05/21 00:52:42
>>501
おけw
間違ったことを何も言っていないのに、
なんで変なやつがまとわりついてくんだか。
こちとら本格的にC#はじめて五日目だ。なめんじゃねーぞw
503:デフォルトの名無しさん
09/05/21 00:54:31
それでは次の型どうぞ~
504:デフォルトの名無しさん
09/05/21 01:01:24
System.Collections在住 : ArrayList さん
最近みんなジェネリック、ジェネリックって言って僕を呼んでくれないんです。
昔はあんなにちやほやされてたのに・・・。
これから僕はどうしていけばいいんでしょうか。
505:デフォルトの名無しさん
09/05/21 01:02:54
つまらん
それでは次の型どうぞ~
506:デフォルトの名無しさん
09/05/21 01:42:30
ブラウザの機能が安定しません。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
たったこれだけの実装ですが、googleのページがすぐに表示されるときと
ずっとまっ白でまったく表示されない時があります。
環境は、XPProSP2、IE6です。
どなたか解決方法を知りませんか?
507:デフォルトの名無しさん
09/05/21 01:47:34
つける薬は無い
508:デフォルトの名無しさん
09/05/21 01:48:23
ロード後に Navigate しても状況は一緒?
509:デフォルトの名無しさん
09/05/21 01:54:11
ロード後にというのがよくわかりませんが、
ボタンをひとつつけて、その中でNavigateしても状況はかわりません。
非常に安定しないんです。
510:デフォルトの名無しさん
09/05/21 01:56:19
ウェブブラウザーコントロールは一度「about:blank」を表示してから
目的のページを表示するんが一般じゃなかったっけ?
511:デフォルトの名無しさん
09/05/21 02:04:35
>>510
書き忘れましたが、それも試して効果はありませんでした。
public Form1()
{
InitializeComponent();
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.google.co.jp)");
}
512:デフォルトの名無しさん
09/05/21 02:06:14
じゃあ、無理じゃね? 素直にリロードしてもらえよ。
513:デフォルトの名無しさん
09/05/21 02:13:33
わかりました。
自分でもかなり調べてダメだったので、諦めることにします。
ありがとうございました。
514:デフォルトの名無しさん
09/05/21 02:51:04
前にAxWebBrowser使ってた時に俺もそんなことあったな。Navigateするタイミングだと思うんだけど。
起動時にNavigateするようにした時に稀にあった。
とりあえず、起動時にいきなりNavigate使う時はコンストラクタじゃなくてLoadイベントなり登録してそこでやった方がいいと思う。
それでこの症状が直るわけではないと思うけど。
515:デフォルトの名無しさん
09/05/21 12:03:16
>>506
webBrowserだけじゃなくて
IE6のそのものが、ずっと真っ白のままで表示されないことがあるんだが・・・
AVGのリンクスキャナを停止してからは少しマシになったかも?
普段はChromeを使っているから見なかったことにしてるけど。
516:デフォルトの名無しさん
09/05/21 14:18:15
>>506とおんなじコードで試してみたけど、
何度やっても問題なく表示されるな。
環境はXPProSP2、IE6、VS2008Pro
517:デフォルトの名無しさん
09/05/21 14:49:26
webBrowser1.BusyがTrueのときそうなるんじゃないか?
518:デフォルトの名無しさん
09/05/21 15:58:51
>>515
ウィルス対策ソフトは切ってます。
>>516
ほんの2日ほど前まで私もその環境でしたが、なぜか動きません。
XPProSP3、IE8、VS2008Exにしましたが、改善はありません。
>>517
ちょっと見てきます。
519:デフォルトの名無しさん
09/05/21 16:02:12
取り敢えず514な
System.Windows.Forms.WebBrowserはコントロール上に乗って無くても大丈夫なように作られてるけど一応
520:デフォルトの名無しさん
09/05/21 16:23:25
>>517
■PG
public Form1()
{
InitializeComponent();
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
webBrowser1.Navigate("about:blank");
webBrowser1.Navigate("URLリンク(www.yahoo.co.jp)");
Console.WriteLine("IsBusy:" + webBrowser1.IsBusy);
}
■出力
IsBusy:False
'Test.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll' が読み込まれました
IsBusy:False
■結果
画面まっ白
>>514
LoadイベントでやってもThread.sleep(5000)をnavigateの前後に入れてもまっ白になることが多々ありました。
521:デフォルトの名無しさん
09/05/21 18:07:17
Shownを使え
522:デフォルトの名無しさん
09/05/21 22:09:23
IE でダメなら、WebBrowser でもダメだろよ。
523:デフォルトの名無しさん
09/05/21 22:32:09
ReadStateがcompleteになるまで待ったほうがいいんじゃないかな?
524:デフォルトの名無しさん
09/05/21 22:49:46
ContextMenuStripに追加したToolStripMenuItemの
DropDownItemsに追加したToolStripMenuItemのイメージ余白の消し方を教えてください。
1階層目はShowImageMarginをFlaseにすれば消せるのですが
2階層目以降のToolStripMenuItemは余白が出たままになってしまいます…。
525:デフォルトの名無しさん
09/05/22 01:41:24
>>313さんのMecabの返り血をAnisで受けると文字化けするんですけど、
文字化けしない方法をどなたか教えてください orz
526:デフォルトの名無しさん
09/05/22 01:44:57
キャー!
527:デフォルトの名無しさん
09/05/22 01:46:46
PtrToStringAuto だとどうなる?
528:デフォルトの名無しさん
09/05/22 02:00:25
>>527
こんななりました。。
?慣???麩????????????弊(ry
529:デフォルトの名無しさん
09/05/22 02:26:54
Shift_JIS(CP932)をUTF-8と誤認識してるんじゃね。
530:デフォルトの名無しさん
09/05/22 03:09:18
俺はこれでできた
[DllImport("libmecab.dll")]
extern static int mecab_new2(string arg);
[DllImport("libmecab.dll")]
extern static IntPtr mecab_sparse_tostr(int m, byte[] str);
[DllImport("libmecab.dll")]
extern static void mecab_destroy(int m);
int mecab = mecab_new2("");
this.textBox2.Text = Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Unicode.GetBytes(
Marshal.PtrToStringUni(mecab_sparse_tostr(mecab, Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(
this.textBox1.Text))))))).Replace("\n", "\r\n").Replace("\r\r\n", "\r\n");
mecab_destroy(mecab);
531:デフォルトの名無しさん
09/05/22 06:06:52
これはひどいコード・・・
532:デフォルトの名無しさん
09/05/22 06:24:15
なんのためのマーシャリングなのかって感じだな
533:デフォルトの名無しさん
09/05/22 14:52:19
printPreviewDialog1.Bounds = this.Bounds;
printPreviewDialog1.ShowDialog();
こう書いても何故かthisと重なって表示してくれない
大きさは反映されるのに位置が自動的に決定されてしまう
解決方法知ってる方いたら教えてください
534:デフォルトの名無しさん
09/05/22 15:08:59
ウィンドウの初期位置を指定するプロパティがあるからそれをManualだったかなんかにする
535:デフォルトの名無しさん
09/05/22 15:32:25
PrintPreviewDialogにStartPositionプロパティは無いみたいです
536:デフォルトの名無しさん
09/05/22 15:40:11
.NET Framework クラス ライブラリ
PrintPreviewDialog..::.StartPosition プロパティ
537:デフォルトの名無しさん
09/05/22 15:49:14
インテリセンスに出ないので無いと思ってましたが頑張って手打ちしたら出来ました
ありがとうございました
538:デフォルトの名無しさん
09/05/22 15:55:42
>頑張って手打ち
ワロタ
気持はわかる
539:デフォルトの名無しさん
09/05/23 18:31:31
>>424 クソワロタ
540:デフォルトの名無しさん
09/05/24 01:39:48
笑い事じゃねえよ!
541:デフォルトの名無しさん
09/05/24 11:01:56
いや、声出して笑っちゃったよw
ユニークな仕事だなw
542:デフォルトの名無しさん
09/05/24 12:58:03
たぶん日本で唯一だy。食いっぱぐれなくていいな。
543:デフォルトの名無しさん
09/05/24 14:30:22
\拍手を打つ仕事があるときいてやってきました/
544:デフォルトの名無しさん
09/05/24 16:14:58
ListBoxの、選択されたアイテムを囲っている破線を消したいのですが可能でしょうか?
なぜか一瞬だけ、選択していないアイテムに破線が出るので消したいと思っています
545:デフォルトの名無しさん
09/05/24 16:45:38
>>544
独自描画にすれば消せるんじゃないかな。
546:デフォルトの名無しさん
09/05/26 10:30:51
その破線はキーボードフォーカスの存在を見せるためにある。
勝手に消されると状況によってはユーザーが混乱すると思うが
それでもいいなら>>545の言うようにオーナードローしては。
547:デフォルトの名無しさん
09/05/29 20:30:10
label.Text = "Value: ";
このようなValueを表示するラベルを貼りました。
スペースの後に増減する数字を代入していくのですが、どうやるのがいいのですか?
"Value: "が無い場合は単純で、
labal.Text += i.ToString();
でよかったのですが、、
548:デフォルトの名無しさん
09/05/29 20:45:57
>>547
labal.Text += i.ToString(); = labal.Text = labal.Text + i.ToString();
549:デフォルトの名無しさん
09/05/29 20:49:05
>>547
string.Format
550:デフォルトの名無しさん
09/05/29 22:01:44
if(i==0)
label.Text = "Value: 0"
else if
....
551:デフォルトの名無しさん
09/05/30 17:38:53
コンストラクタ名のとこにクラス名書かなきゃならないという無様な仕様は
未来永劫そのままなの?
552:デフォルトの名無しさん
09/05/30 17:59:09
そりゃ、そんな根幹にかかわるところ変更はできないだろ。
嫌なら新しい言語作るしか。
553:デフォルトの名無しさん
09/05/30 18:11:25
不自然かもしれないけどC++やJavaで十分に受け入れられてるからな
はじめの頃のC#ではキーワードを少なくすることが重視されてたみたいだし
554:デフォルトの名無しさん
09/05/30 18:23:57
Javaの、ソースファイル名とpublicクラス名を同じにしとかないとエラーだよーん。
の舐めた仕様よりはマシになってるとは思う。
555:デフォルトの名無しさん
09/05/30 18:34:15
>>551
同感。同じことを2度書くのは無駄だよな
もう.ctorでいいのに
556:デフォルトの名無しさん
09/05/30 18:39:31
まあ、元々がC++プログラマーを逃がさないようにする目的があったから、
あの構文は変えようがないでしょ。
C# 開発者的に、C++ との互換性重視しすぎて失敗したなぁと思う部分もちらほらあるみたいなんで、
今よりさらにもうちょっと .NET が普及したら、その辺りなおした新言語を作るのもありかもしれないけど。
557:デフォルトの名無しさん
09/05/30 18:43:24
Font Font = new Font
558:デフォルトの名無しさん
09/05/30 18:44:46
>>557
var Font = new Font();
559:デフォルトの名無しさん
09/05/30 18:45:32
newはインテリセンスがなきゃ発狂する構文だが、あるから我慢できるレベル。
var使う事自体が冗長
560:デフォルトの名無しさん
09/05/30 18:50:41
>>559
いやー、var は要るよ。
宣言と代入は分けたい。
new なくすとすると、例えばどういう構文?
C++ のスタック割り当て時みたいに、クラス名() だけとか?
561:デフォルトの名無しさん
09/05/30 18:53:18
Python みたいに font = Font() とか書けたら嬉しさのあまり自決する
562:デフォルトの名無しさん
09/05/30 18:55:01
>>561
それはなぁ、型名と同じ名前のプロパティ定義できる C# だと文法的にあいまいになりそう。
563:デフォルトの名無しさん
09/05/30 18:57:39
後からの拡張とか考えると、new とか var とかの構文解析の起点になる部分は削らない方がいい。
font = Font() なんて認めたら、多分、後から機能足せなくて泣く。
564:デフォルトの名無しさん
09/05/30 19:13:55
結局コンストラクタの構文は無駄?必要?
565:デフォルトの名無しさん
09/05/30 19:16:03
>>561
それ出来るとIntelliSenseの暴発を招くから、今の型推論によるvarでの定義がバランス的にちょうどいい。
566:デフォルトの名無しさん
09/05/30 19:16:07
今のC#の方向性考えると必要。
C#の原型とどめないような改変が許されるんなら別にどっちでも。
567:デフォルトの名無しさん
09/05/30 19:19:12
キーワードconsを導入すれば万事解決
568:デフォルトの名無しさん
09/05/30 19:31:22
ぶっちゃけなれればどうでもいい
569:デフォルトの名無しさん
09/05/30 19:50:07
>>565
同感、C#は強く強くインテリセンスを意識した文法であって欲しい。
でないと、今のライブラリでさえ全体を憶えきれないのにこういうサポート外されたら気絶する。
570:デフォルトの名無しさん
09/05/30 21:19:51
何でPythonがはやってるんだ?
前に来た時はDが話題だったような…
571:デフォルトの名無しさん
09/05/30 22:39:22
個人的にはもう少し型を意識したJavaScriptのような言語がはやって欲しいな。
572:デフォルトの名無しさん
09/05/30 22:43:12
>>571
JavaScriptは十分はやってるだろ
573:デフォルトの名無しさん
09/05/30 22:47:18
PowerShellいいぞ。PowerGUIのコード補完との相性もかなり良好。
$a = [xml]"<data>foo</data>"
$a.
で候補にdataが出てくるんだぜ。
ソースコードじゃなくプロンプトで実行しながらじゃないと駄目だけど。
574:デフォルトの名無しさん
09/05/30 23:02:46
「C# .NETアプリケーション開発 徹底攻略 C# 3.0/.NET Framework 3.5対応」
という本で、FormのLoadイベントはコンストラクタ完了よりも先に実行される(ことがある?)
とか書かれてるんだけどほんとにあるの?
どうもこの本思い込みで書いてるような部分も見られてちと怪しんだが…
575:デフォルトの名無しさん
09/05/30 23:31:51
InitializeComponents で子コントロールにプロパティを設定する際に、子から
親フォームが呼ばれてLoadされることが危惧されている。
576:デフォルトの名無しさん
09/05/30 23:38:37
そのフレームワークいいのかな
設計が甘いのでは?
577:デフォルトの名無しさん
09/05/30 23:44:14
甘いねぇ。
578:デフォルトの名無しさん
09/05/30 23:47:51
>子から親フォームが呼ばれてLoadされる
ってどういう状態かわからん…
579:デフォルトの名無しさん
09/05/30 23:49:48
んーマルチスレッドと例外絡みのこと書いてあるとこもでたらめだしなー
580:デフォルトの名無しさん
09/05/30 23:51:20
ちゃんと引用したらいいと思うよ
581:デフォルトの名無しさん
09/05/31 00:11:54
>>574
うろ覚えだけど、
Win32だと、CreateWindow()内で、WM_CREATEを直接呼び出してたような気がする
(CreateWindow()の復帰値はWM_CREATEの復帰値に依存する)
なので、
- C#のFormのコンストラクタ内で内部的にCreateWindowの呼び出しを行う
- FormのLoadはWM_CREATEに相当する
の2つの条件が成り立てば
>FormのLoadイベントはコンストラクタ完了よりも先に実行される
は、成り立つかもしれない
582:デフォルトの名無しさん
09/05/31 00:19:12
子が初期化待たないで親を Visible = true したら起きた。
でも、普通しねえよなぁ、こんなことwww
583:デフォルトの名無しさん
09/05/31 00:19:31
>>581
そんなこと考えるまでもなくマネージドだけで成立するよ、意味があるかどうかは別として
public class Form1 : Form {
public FFFF() {
Ctrl ctrl = new Ctrl();
this.Controls.Add(ctrl);
ctrl.Do();
Debug.WriteLine("Ctor");
}
protected override void OnLoad(EventArgs e) {
Debug.WriteLine("OnLoad");
base.OnLoad(e);
}
}
public class Ctrl : Control {
public void Do() {
Form form = this.FindForm();
if (form != null) form.Show();
}
}
相互参照はやっかいだね
584:デフォルトの名無しさん
09/05/31 00:22:05
namespace WindowsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
MessageBox.Show("end of init");
}
private void timer1_Tick(object sender, EventArgs e) {
Visible = true;
}
private void Form1_Load(object sender, EventArgs e) {
MessageBox.Show("Form.Load");
}
}
}
でタイマのintervalは1。
585:デフォルトの名無しさん
09/05/31 00:31:27
その前に
コンストラクタでこんなことしていいんか
586:デフォルトの名無しさん
09/05/31 00:38:47
そもそもそんなこする方がやばいんだから
しないように修正するべきだろう。
587:デフォルトの名無しさん
09/05/31 00:39:33
フォームをNewしたらいきなり表示されるとか、冗談ではないわ。
588:デフォルトの名無しさん
09/05/31 00:46:51
しないように済む方法を指導しないテキストがクズだな。
589:デフォルトの名無しさん
09/05/31 00:46:50
引用した方がいいんだが、何せ立ち読みで読んだだけなんで、すまんね。
しかし、デリゲートの非同期実行でEndInvokeせずに、なんと例外が無視されてしまうのだ!!
みたいなこといって、非同期実行するメソッド内で即座にコントロールにInvokeして、これで例外をとれる
っておまえそれ非同期実行の意味全然ないだろうがよとか、こんなの見るとなんか書いてあることが信用できない。
590:デフォルトの名無しさん
09/05/31 01:04:13
あー、エスパーすると、非同期実行すると例外取れないから同期しましょう、
と書いてあるのか?
591:デフォルトの名無しさん
09/05/31 01:11:44
そういうこと
592:デフォルトの名無しさん
09/05/31 01:17:58
その本でスレッド周りに何書いてあるのか、ちょっと気になってきたww
593:デフォルトの名無しさん
09/05/31 01:39:23
意外と好評な書評も。
URLリンク(mag.autumn.org)
594:デフォルトの名無しさん
09/05/31 02:11:24
んー今はどうかわからんけど、
Formは2回以上ShowDialogすると動作保証されない
だった気がするけどな。
ナレッジに出てなかったっけな…