[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/30 10:09 / Filesize : 144 KB / Number-of Response : 598
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2014/04/05(土) 22:08:28.72 ID:l3iN8hNI]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part110
toro.2ch.net/test/read.cgi/tech/1388377636/

■関連スレ
C#, C♯, C#相談室 Part82
toro.2ch.net/test/read.cgi/tech/1386763696/

■コード貼るなら↓使ってください
ideone.com/

2 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 22:25:28.14 ID:dnqr6Oke]
>>1

3 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 22:57:18.91 ID:HfzhZYKB]
>>1
おつ!

4 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 23:00:41.23 ID:4PQFLBxx]
>>1おっさん

5 名前:前971 mailto:sage [2014/04/05(土) 23:34:54.89 ID:fZTxo1xf]
OnBeforeNavigateで調べたんですがBeforeNavigateはNET1.1ではあるようなんですがC#2010では見つかりませんでした
vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
これはVC#2005みたいですが、VC#2010でもNavigatingイベントを使うんですか?
あと基底コンストラクタに渡す引数がないのに明示的に:base()を使う必要ってあるんですか?

6 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 23:47:54.72 ID:dnqr6Oke]
BeforeNavigateは別のクラスAxWebBrowser使うときの話
うん
別にない

7 名前:デフォルトの名無しさん mailto:sage [2014/04/05(土) 23:52:08.44 ID:dnqr6Oke]
あ、そこに書いてるようにNavigatingで必要な情報足りないなら
やっぱりDWebBrowserEvents2::BeforeNavigate2とか使う必要があるよ

8 名前:デフォルトの名無しさん mailto:sage [2014/04/06(日) 12:13:20.73 ID:B8PUb7p+]
Visualはもうないんだから外せよ

9 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 17:50:25.12 ID:6uHQfqYj]
フォームが非アクティブになった時に、フォームとその子コントロールの明度を一括で下げたいんですがどうすればいいのでしょうか

10 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 17:59:07.70 ID:3UJhq+PE]
WinFormにそんなシャレオツ機能は存在しない
フォームのクライアント領域内ならともかくタイトルバーとかはシステム側の領域だし
FormをDisableにすれば一部の彩度は下がるけどな



11 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 20:53:56.62 ID:wKuIb640]
シャレオツw

12 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 23:51:01.19 ID:6uHQfqYj]
>>10
透明度下げることで対処しようと思います
ありがとうございました

13 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 22:15:26.21 ID:cT60U4kI]
Form上にコントロールを1000個程度配置してスクロールさせると、フリーズします。
WindowsXP, 7 ではスムーズに動いていたのが、Windows8.1にした途端起き始めました。

1000個というのはPictureBoxなのですが、これをButtonに変更して1000個表示するだけの
テスト用アプリを作ってもやはり発生します。

グラボのドライバを最新にしたり、システムのプロパティの視覚効果などを変更してみても
改善されません。

これが自分のPCの固有の問題か、Win8.1に共通の現象かを切り分ける方法ってありますか?
1000個も配置するという設計がおかしいのでしょうが…

14 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 22:19:41.79 ID:fmWss6Bj]
1000個も配置するのが問題

15 名前:デフォルトの名無しさん mailto:sage [2014/04/08(火) 22:58:41.96 ID:cT60U4kI]
やっぱりそうですよね

16 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 01:42:52.07 ID:Ks/JGiSE]
わらた

17 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 01:56:19.82 ID:SM981zJv]
>>13 試しに動作確認してしんぜよう。ソース送レ

18 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 02:40:54.14 ID:4evLHR2U]
>>17
普通にフォームのプロジェクト作成して、ロードイベントに以下を書いて、

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
Button btn = new Button();
btn.Top = i * 24;

this.Controls.Add(btn);
}
}

それからForm1のAutoScrollをtrueにしただけなのですが…。

19 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 10:40:06.97 ID:+JqWH5tw]
>>13
安直だが、FrameWorkを両方4.5で動かしてみるとか

20 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 15:41:18.28 ID:fBP+BGwa]
重くしないとハードが売れない



21 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 12:20:18.64 ID:HRaWKIoy]
WPFならハンドル食わないらしいから試してみれば?

22 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 15:04:18.17 ID:nYklgNp5]
コンボボックスの値を変更したら、もう一つのコンボボックスと値を交換しようとしているのですが、途中からおかしくなります。
参照している値を間違えてしまっているのでしょうか?よろしくお願いします。

ComboBox[] comBox = new ComboBox[2];
private void Form1_Load(object sender, EventArgs e){
comBox[0] = comboBox1;
comBox[1] = comboBox2;
for (int i = 0; i < 2; i++)
comBox[i].DropDownClosed += new EventHandler(comBox_DropDownClosed);

for (int i = 0; i < 2; i++){
comBox[0].Items.Add(i);
comBox[1].Items.Add(i);
}
comBox[0].SelectedIndex = 0;
comBox[1].SelectedIndex = 1;
}

private void comBox_DropDownClosed(object sender, EventArgs e){
int index = -1;
for (int i = 0; i < comBox.Length; i++)
if (comBox[i].Equals(sender) == true){
index = i;
break;
}

int intSel = Convert.ToInt32(comBox[index].SelectedText); // 選択していた番号
int intDest = Convert.ToInt32(comBox[index].SelectedItem); // 変更先

comBox[intDest].Text = comBox[intSel].Text; // 入れ替える
}

23 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 19:53:41.63 ID:b/gE/MKY]
>>21
VirtualizingStackPanelとか使えば、そもそも1000個もいらないんだけどな。

24 名前:デフォルトの名無しさん mailto:sage [2014/04/10(木) 20:45:40.51 ID:mP4FkQtt]
ナニコレ
WPF?

25 名前:デフォルトの名無しさん mailto:sage [2014/04/11(金) 09:09:51.97 ID:+5PGJ+FS]
VSのC#です。

26 名前:デフォルトの名無しさん [2014/04/12(土) 13:36:56.16 ID:QXbrFFBS]
C#で音声認識を扱いたいんですがどれをどう使えばいいのかさっぱりわかりません
おすすめの方法があれば教えて下さい

27 名前:デフォルトの名無しさん [2014/04/12(土) 16:51:06.63 ID:K9bTN6Ty]
>>26
無料のやつは、認識率悪くて使い物にならんよ。

本気でやりたいなら、
100万とかする業務用のソフト買いな。

28 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 17:41:14.47 ID:9BhBrkhV]
プログラマなら認識率がどれくらいか見当つくよな
IMEの誤変換なんて可愛いもの
そもそも一体何に使いたいのか

29 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 19:14:54.67 ID:kHAj/7de]
>>26
キーワードだけ教えてやる。
2文字目はSだ。

30 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 19:24:50.54 ID:gqk0H39S]
GoogleのAPIを叩く



31 名前:デフォルトの名無しさん [2014/04/12(土) 19:53:09.57 ID:kaC5V1Cc]
日本版エシュロン。

32 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 20:35:38.46 ID:rzyqPrtx]
モサドに技術供与受けろや

33 名前:デフォルトの名無しさん mailto:sage [2014/04/12(土) 22:10:52.95 ID:NOz3Q708]
Microsoft Speech Platform

34 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 05:51:21.92 ID:VrI+9WRO]
Microsoft Bob

ネーミングのセンスがさすがマイクロさんやな

35 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 06:17:44.86 ID:qYmwgSBw]
Robert!
Bob: Oh! That's me

Robert の別称

36 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 11:13:57.20 ID:PYHY3KdE]
「C#」は当初かなり違和感のある名前だったけどすっかり浸透しちゃったな
天下のMSがこの名前で出してコケたら大恥だった
D(笑)

37 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 11:40:41.79 ID:Ughvqkdn]
Microsoftはいつもネーミングが糞
comも.netも検索しにく過ぎ

38 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 19:53:33.31 ID:x/KLDcUY]
2009年にもなってGoとか名前をつけるどこぞに比べれば…まあどんぐりの背比べだな

39 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 22:03:26.85 ID:JRCCH/EO]
>>37
VB6の検索しにくさはガチ

40 名前:デフォルトの名無しさん mailto:sage [2014/04/13(日) 22:14:24.92 ID:Ughvqkdn]
>>39
vb6はそもそも情報自体が少ないからね
さらにvb.netのせいで探しにくくなった



41 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 03:59:00.92 ID:7M5WCkF4]
練習として複数のPictureBoxに、高速で複数の画像を入れ替えまくってみたんですが
private void button1_Click(object sender, EventArgs e)
{
 Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop(){
 for (int i = 0; i < 1000; i++)
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
  Thread.Sleep(50);
 }
}
ときどき下のようなエラーが出ます。
これは、単純にPictureBoxの描画処理が終わらないまま次の描画を始めようとしたためでしょうか?
同一スレッド内の問題だからか、PictureBoxをlockしてみても改善しません。
実際この通りの動作をさせるわけではないですが、高速で画像を更新することはあると思うのでこのままだと気持ち悪い・・・。

>型 'System.InvalidOperationException' のハンドルされていない例外が System.Drawing.dll で発生しました
>追加情報:オブジェクトは現在他の場所で使用されています。

42 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 04:40:22.32 ID:CBNE2ubH]
threadからFormをいじろうとするとそうなるんじゃなかったか?

kawakawa2000.jugem.jp/?eid=55

こんなんだったかな

43 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 05:56:06.53 ID:+kBgZJjN]
回答: UIスレッド以外からコントロールに触んなボケェ

44 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 13:35:26.08 ID:Rj6AhJf8]
delegateで描画させた方がいいね
後はとりあえずPallarel.forでコントロール別に分けた方がマルチスレッドになって
タスクマネージャでCPU利用率見た時にとりあえず嬉しいw

45 名前:41 mailto:sage [2014/04/14(月) 13:39:40.86 ID:7M5WCkF4]
ありがとう、デリゲートとinvokeってここで使うのか。
ついでに、サンプルプログラムを見ているとthisが何を指しているかよくわからないことがあるんだけど
thisが何を指すか調べる方法ってあります?

46 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 13:42:19.94 ID:CBNE2ubH]
thisはその関数が走っている時の関数自身じゃないの?
classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね

47 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 13:44:54.89 ID:CBNE2ubH]
例えばボタンの文字列をスレッドから書き換える
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop()
{
//for (int i = 0; i < 1000; i++)
//{
// button1.Text = "new text";
// Thread.Sleep(50);
//}
SetText("New Text");
}
private delegate void SetTextCallback(string msg);

private void SetText(string msg)
{
if (button1.InvokeRequired)
{
Invoke((MethodInvoker)(()=> {
button1.Text = msg; // "Hello, world";
}));

return;
}

// 以下本来の処理
button1.Text = msg;
}
}

48 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 13:47:28.80 ID:CBNE2ubH]
あ、もちろん参照先のページにも書いてあったと思うけど、UIはスレッドセーフじゃないので
マルチスレッドで動かしても、勝手にMutex掛かるよ

49 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 14:32:41.71 ID:7M5WCkF4]
えーと、thisについてよくわからないのは・・・
例えば>>47のInvokeってthisが省略されてますよね?
この場合、thisはFormを指してるのでいいのかな・・・というのを確認する方法ってあるかなと。
慣れると自明に思えるのかもしれませんが、まだ戸惑うことが多いので確認方法があるとうれしいのです。

50 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 14:33:20.46 ID:+kBgZJjN]
>>48
>thisはその関数が走っている時の関数自身じゃないの?
>classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね

初心者は答えなくていいよ。マジで。



51 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 14:35:58.41 ID:+kBgZJjN]
>>49
クラスメソッド内のthisはそのクラスのインスタンスを指してるんだよ。

52 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 17:30:10.70 ID:CBNE2ubH]
初心者が間違った答えをしてもいいじゃん
お前みたいなでかいツラされて不快になるよりマシ

53 名前:41 mailto:sage [2014/04/14(月) 17:31:10.51 ID:7M5WCkF4]
ありがとう、重ねて質問失礼します。
Invokeを利用することでエラーは回避できました。
ですが、スレッド実行中にフォームを閉じるとエラーが起こるようになりました。
this.IsHandleCreatedやthis.IsDisposedでフォームの存在を確かめてからInvokeを実行させようとしてみたのですがうまくいきません。
どのように回避したらいいのでしょうか。
下は、>>41のloop()内にInvokeを反映させたものです。
ループ実行中にフォームを閉じると、
>追加情報:破棄されたオブジェクトにアクセスできません。
のエラーが出ます。

for (int i = 0; i < 1000; i++)
{
 if(this.IsDisposed)break;
 this.Invoke((MethodInvoker)delegate()
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
 });
 Thread.Sleep(50);
}

54 名前:41 mailto:sage [2014/04/14(月) 17:40:58.42 ID:7M5WCkF4]
むしろ、スレッド実行中にフォームを閉じさせない、
あるいはフォームのデコンストラクタでスレッド実行を停止するのが正しい方向性なのかな?

55 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 17:59:22.80 ID:GRbiX2xU]
>>54
スレッド実行を停止させるとデッドロックするな

56 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 18:58:37.52 ID:+mkYAk9j]
スレッドは理解があやふやな奴が使うとバグ発生機になるな

57 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 19:41:21.08 ID:GRbiX2xU]
>>56
ガチで1次元(時間軸)上のスパゲッティコードが出来上がるw
今回の例でもInvokeの仕組み、WindowsのGUIモデル(少々)、volatile、ロックあたり押さえといて欲しい

58 名前:デフォルトの名無しさん mailto:sage [2014/04/14(月) 21:11:44.44 ID:xiJSquwx]
Windows7 api codepack使って音楽ファイルのタグ拾っていたんだが、
謎のAccess Violationが発生して3日悩んだが
なんとなく32bitでコンパイルしたら治りやがった

59 名前:デフォルトの名無しさん mailto:sage [2014/04/15(火) 09:10:47.46 ID:eg/wih/V]
x86にしてみるとか最適化を外してみると、謎の不具合が解消されることが稀に良くある

60 名前:デフォルトの名無しさん [2014/04/15(火) 09:14:04.10 ID:iSGwDvUA]
>初心者が間違った答えをしてもいいじゃん
>お前みたいなでかいツラされて不快になるよりマシ

これは酷い



61 名前:デフォルトの名無しさん mailto:sage [2014/04/15(火) 09:52:27.96 ID:b3iAuu/a]
モヒカンが聞いたら大変なことになるな

62 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 09:14:38.36 ID:Wy9kGQMK]
WORDの文章にフォームやコントロールを画像として張り付けたいのですが、何か良い方法はありますでしょうか?

support.microsoft.com/kb/316384/ja
このサイトを参考に作成したのですが、画像の作成や貼り付けはありません。

msdn.microsoft.com/ja-jp/library/ms178792.aspx
msdnになりますと、画像ファイルの読み込みのみあります。

コントロールを一度画像ファイルに保存してから読み込めば良いのでしょうが、
それでは毎回画像ファイルを作成する必要があり、あまりスマートでは無いので
直接画像としてコントロールを張り付け出来るような方法がありましたら、よろしくお願いします。

63 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 09:39:36.36 ID:8awiXMyd]
クリップボード経由とか
docxならOpen XML SDK使うとかで埋め込めるだろうけどまずフォーマット理解するところからになるな

64 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 09:59:48.79 ID:jh5A/a7z]
Word文書じゃないけど

using( Bitmap bmp = new Bitmap( this.Width, this.Height ) )
{
 this.DrawToBitmap( bmp, new Rectangle( Point.Empty, this.Size ) );
 Clipboard.SetDataObject( bmp );
 RichTextBox rb = new RichTextBox();
 rb.Paste();
 rb.SaveFile( @"C:\Users\hoge\Desktop\test.doc" );
}

とか。位置指定とか考えだすと面倒くさくて死ぬるな

65 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 10:04:25.73 ID:jh5A/a7z]
>>62
つか
msdn.microsoft.com/ja-jp/library/ms178792.aspx
のリンク先見てにSelectionオブジェクトを取得してPasteすればクリップボード経由で挿入できるな

66 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 11:45:22.88 ID:wJUsRdtr]
>>59
「良く」なのか「稀」なのかはっきりせい!
と、突っ込むところまでが遠足

67 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 12:10:13.15 ID:Wy9kGQMK]
>>63-65
クリップボード経由で出来ました、ありがとうございます。

68 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 18:41:47.03 ID:o1DhIOoD]
VisualC#2010ですが
Form1.cs[デザイン]でフォームのサイズを設定してその数値を
プロパティのSystem.Drawing.Sizeに入れても数値がズレるのは何故なのでしょうか。
ClientSizeをSystem.Drawing.Sizeにバインドしています。

69 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 18:57:54.81 ID:RT2B6Kf1]
>>68
日本語でおk

70 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 19:23:09.06 ID:4/4/+OZx]
ListBoxにマイコンピュータの一覧を表示させる方法ありませんか?



71 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 19:40:31.94 ID:fX4bKwvJ]
あります

72 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 19:50:27.85 ID:o1DhIOoD]
>>69
フォームデザインの画面でフォームのサイズを調節してそのサイズの数値を
アプリケーション設定項目に入力してもフォームのサイズが同じにならないのです
アプリケーション設定項目のサイズの数値とフォームデザイン画面のプロパティのサイズの数値が一致せず、
片方をいじると片方の数値が変化してしまいます

73 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 19:56:12.90 ID:yQi7dKzk]
言わんとしてることは分かるが
ClientSizeってミソなんだろ
デザイナに表示されてるのは非クライアント領域も含んでると

74 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 20:10:32.77 ID:s5kasKNy]
それもあるが>>72はそもそもアプリケーション設定が何なのか分かってないとしか

75 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 20:40:31.81 ID:jh5A/a7z]
>>72
Form.SizeとClient.Sizeの違いとか

76 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 20:41:11.58 ID:jh5A/a7z]
既出だったなごめんなさい

77 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 22:27:57.36 ID:+VUax7lD]
マイコンピュータの一覧って事はマイコンピュータが複数あると
いう謎環境なのか

78 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 23:02:59.71 ID:4/4/+OZx]
分かる人いなさそうだね残念

79 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 23:07:45.45 ID:+VhpgL3Y]
ドライブの一覧とは違う情報を取りたいの?
それならたぶん、API叩かないといけない

80 名前:デフォルトの名無しさん mailto:sage [2014/04/16(水) 23:17:51.65 ID:4/4/+OZx]
>>79
散々ググった結果ShellAPIを使えば出来るんじゃないかなというのは分かったんだけど
難しくて何かいい方法あったりしないかなと思って質問したんだよね

自分で試行錯誤してみますありがとう



81 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 00:30:58.60 ID:yVkbU7bN]
WMIでいけないか?

82 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 10:16:41.51 ID:3ZJR1sBx]
ここみるよろし
msdn.microsoft.com/ja-jp/magazine/dd861346.aspx

SHGetKnownFolderItemでマイコンピューターを表現するIShellItem取得

IShellItem.BindToHandlerでそのIShellFolderを取得

IShellFolder.EnumObjectsでIEnumIDList取得して、IEnumIDListで内容を列挙

83 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 10:52:57.28 ID:s16FfDLr]
NumericUpDownでHexaDecimal=trueにして
小文字のアルファベットを入力中にタイマーなどでその値を取得すると
小文字が大文字に変換されます。

そこまでは良いのですが、同時にカーソルがいちばん左に移動してしまいます。
するとabcdと打ったつもりが、DCBAとなってしまいます。

小文字が大文字に変換されたときにカーソルを移動しないようにするには
どうすれば良いですか?

何かをオーバーライドすれば良いのでしょうか?

84 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 11:23:17.40 ID:CRM5LnHb]
助けてください。

弥○なんかの販売管理ソフトで、伝票入力画面の下部にあるリスト部分って
入力すると自動的に(しかも複数テキストボックス&複数行)追加されますが、
ああいう動作を実現するにはどのコントロールを使えばいいんですか?

85 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 11:25:43.70 ID:CRM5LnHb]
>>84 の言語書き忘れました。C#です。

86 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 11:25:58.93 ID:gmrG8BhO]
標準コントロールには存在しない

87 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 11:31:42.82 ID:CRM5LnHb]
FlowLayoutPanelとかTableLayoutPanelを駆使して、
その中にTextBox配置して、みたいな感じで方向性はあってますかね?

この方法をやろうとして数時間躓いてます。

88 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 11:44:30.79 ID:CRM5LnHb]
>>86
自己解決というか、レスをもらったことで少し理解しました。
こういうのを実現するライブラリが販売されてたんですね。
導入を検討しようと思います。
ありがとうございました。

89 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 12:09:39.88 ID:cV35zYaX]
>>81-82
ありがとう参考にします

90 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 13:07:07.79 ID:umXeCPzC]
>>87
複数テキストボックスをユーザーコントロールにまとめてやればFlowLayout案でも簡単だと思う



91 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 13:27:22.33 ID:TvKM2fdI]
>>84
Visual Basic Power PacksのDataRepeater コントロールはどうだろう

92 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 19:52:18.24 ID:WDbWaLnY]
//コマンドラインを配列で取得する
string[] cmds;
cmds = System.Environment.GetCommandLineArgs();
dobon.net/vb/dotnet/programing/commandline.html

フォームとコマンドプロンプトの両方で使えるようにしたいのですが、
フォームは正常に動作して、コマンドプロンプトの時で容量もほとんど使わないのにメモリ不足って出るのは、下のが原因と考えて良いのでしょうか?

大容量の RAM が搭載されていると、メモリ不足を示すエラー メッセージが表示される
support.microsoft.com/kb/253912/ja

93 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 20:14:05.96 ID:3ZJR1sBx]
Windows2000以降のコマンドプロンプトの話なら関係ないだろ

他の部分にバグがあるんだろ
ミニマムコードで試してみそ

94 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 20:51:33.80 ID:BiFRjuqF]
www.nicovideo.jp/watch/nm6049209
この動画を落としたswfファイルをフォームに貼り付けた
Shockwave Flash Objectで再生できないのはなぜなのでしょうか?
コードはこんな感じです。
axShockwaveFlash1.LoadMovie(0, @"f:\test.swf");
axShockwaveFlash1.Play();

95 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 21:09:02.94 ID:WDbWaLnY]
>>93
ありがとう。
System.IO.Path.GetDirectoryName(strCmd[0]);
で、コマンドプロンプトだとフォルダ名が取得出来無かったから、C:\に書き込もうとしてエラーになってた。

96 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 21:20:50.59 ID:umXeCPzC]
それがなぜメモリ不足になるんだ?

97 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 21:36:04.77 ID:WDbWaLnY]
最初に中の処理だけ外したらメモリ不足ってエラーが出たから、これだと思い込んでた・・・。
あとはコントロール配列にしてたくらいだけど、
イベントの追加とかはコマンドプロンプトでは関係ないからメモリ不足の表示って出る物かな?

98 名前:デフォルトの名無しさん mailto:sage [2014/04/17(木) 21:44:36.61 ID:N1Srpcxj]
まず、エラーってなんのこと?
例外がでるんなら、どの位置ででてるかわかるだろ

99 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 06:55:54.45 ID:gGWuEQS3]
なぜメモリ不足になる、で思い出したが、Image.FromFileで
ファイルのイメージ形式が有効ではありません。
または
GDI+ はファイルのピクセル形式をサポートしません。
の場合、OutOfMemoryExceptionが発生する
ってのも意味不明
msdn.microsoft.com/ja-jp/library/stf701f5%28v=vs.110%29.aspx

100 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 07:23:17.77 ID:xhIZwZfQ]
それはGDI+がE_OUTOFMEMORY返してくるから



101 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 07:54:35.47 ID:gGWuEQS3]
誤解させてすまん
根っこが意味不明なだけでそれは知ってる

102 名前:デフォルトの名無しさん [2014/04/18(金) 08:18:16.94 ID:5ZSBe340]
そりゃメッセージの通りでGDI+で読み込めない形式のファイルを読もうとしたんだろ
WPFのImaging APIを試してみては

103 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 09:34:42.55 ID:2myBQDOJ]
>>90
ありがとうございます。
実は、なんとかFlowLayoutで実現できちゃいました。かなりめんどくさかったですが。
でもユーザーコントロールって知らなかったので、一つ賢くなりました。
たしかにこれを使った方が簡単そうな気がします。
試してみますね。

104 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 13:52:00.58 ID:VeXCOOSA]
>>99
イメージサイズの算出に関わる部分のヘッダが壊れてて異常値を返すんじゃね

105 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 16:32:12.19 ID:OieI8ueO]
モニタの最大解像度が変わると、フォームのサイズはそのままでコントロールのサイズだけ変わってしまいます。
AutoScaleはFalse、AnchorはTop,Leftになっているのですが、
他に止める為に確認するところはありますでしょうか?

106 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 18:20:17.89 ID:nOqcQsid]
>>105
言ってる事がよくわからんがAnchorをTop left Right Bottomにしてみ

107 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 19:19:21.02 ID:VWFZLBWt]
今のモニタって最大解像度を変更できるのか
なにそれECOモード?w

冗談はさておき、何言ってるか分からないからコード晒してくれ

108 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 20:20:03.91 ID:xLsMteBI]
DPIのことかな

109 名前:デフォルトの名無しさん mailto:sage [2014/04/18(金) 20:20:30.41 ID:RJoHb8Nd]
DPIの話かな?

110 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 08:56:53.25 ID:F+1f3Ibj]
なんで未だにUI単位系mmにしないんだろう?



111 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 12:44:18.87 ID:wssCKxB6]
そりゃ物理的なDPIが違っても同じ表示にするためだろ
40型FHDと24型FHDとかな

112 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 13:16:35.70 ID:F+1f3Ibj]
DPmmって言いにくいから。
はい、次の方〜

113 名前:デフォルトの名無しさん [2014/04/19(土) 14:45:37.73 ID:FZlACFeu]
下のような配列とListを用意して

var sourceList = new string[] { "a", "a", "b", "c", "a", "b", "c" };
var outList = new List<string[]>();

sourceList の文字列"a"と"b"だけを
下のような感じでoutList に格納したいです。
{ "a", "a", "b", "a", "b" }

for文で地道に検索すれば実現できるのですが、
配列のデータが大きくなると、
配列のインデックスを0から全て突き合わせるので、
結構遅くなっていきます。

何かスマートなやり方はあるでしょうか?

114 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 14:56:23.05 ID:nSzj8sir]
for文使って要素の方がstring[]?
どうせArray.Resizeとか乱射してるんじゃないの?

115 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 15:16:43.12 ID:wssCKxB6]
パフォーマンス問題でサンプルコード貼らないのはなんなの?
一度たりともコーディングでミスしたことがない人なの?

116 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 15:19:34.36 ID:FN+T31Li]
今時のPCで速度が問題になるような処理だと思いにくいし、ベタにやる以上に効率的な
処理があるとも思えんよな。

強いて言えば、(ほとんどありえないシナリオだけど)文字列の比較を参照の比較で
代替して問題がなければかなり効率があがるような気が

117 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 15:49:38.35 ID:CsG29AJe]
>>116
string.Intern使ってやってみたよ
aからzの繰り返し、5000万件のstring[]から、aとbをList<string>へ抽出
配列からリストを作る部分で、Intern250ms、ベタなのは800ms
Internは配列作るのが遅く全体ではベタの方が速かった
ちなみにインターンプールの解放タイミングよく分からないから勧められない
パラレルも試したが(Listの同期のせいで?)2000ms

118 名前:デフォルトの名無しさん [2014/04/19(土) 16:45:21.85 ID:eQm7EaOg]
並列化処理の手段がいくつもあって理解が追いつきません。

A new Thread( new ThreadStart()):基本的な並列化
B ThreadPool.QueueUserWorkItem():スレッドプールを利用した並列化
C Task.Factory.StartNew():スレッドプールを利用した並列化
D Parallel.Invoke():スレッドプールを利用した並列化。引数としてメソッドを複数入れられる

A以外は常にバックグラウンドスレッド?
どの方法でもAutoResetEventでの待機・再開は利用できるが、A以外ではabort()での強制停止ができず、CancellationTokeを使う必要がある。
以上の理解で合っていますか?
他にも気を付けるべき特徴があれば教えてください。

119 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 16:48:21.98 ID:nSzj8sir]
タスクはUIスレッドでも動かせる

120 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 16:50:43.65 ID:mBoNBXfe]
>>118
その中ではっきり並列化を目的としてるのはInvokeだけだ
他は並列化にも使えるというだけ
特にTaskはParallelの対極に位置するもので、並列化というより非同期処理に使う



121 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 17:05:43.85 ID:mBoNBXfe]
Parallelは呼び出し元をブロックして枝分かれして全部終わったら合流して再開するという
典型的な並列処理のパターン(いわゆるfork-join)に特化してる。
Taskはタスクベースプログラミングといって、ひとまとまりの手続きを纏めて非同期に実行していくパターンで、スレッドを使うとは限らない。
あとの2つは低レベルな制御を必要とする場合以外は必要ない(自分でこういう枠組みを作るときとか)

122 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 17:08:03.94 ID:wssCKxB6]
abortを忘れろ
使うなと書いてあるだろ

123 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 17:14:46.82 ID:z8Jb6CLl]
誰に言ってるんだよこの命令口調バカw
頭おかしいんじゃねえの本当

124 名前:デフォルトの名無しさん [2014/04/19(土) 18:29:26.35 ID:2PY1bkDd]
>>113
これまさに、LINQの出番じゃね?望むパフォーマンスが出るかわからないけど。

125 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 18:35:31.19 ID:eQm7EaOg]
基本はTaskとParallelでいいんですね。
>>122
MSDNでSuspendやResumeは非推奨でしたが、abortもそうなのですか?
あくまで非常停止として使うべきで、基本はスレッド内で終了させた方がいいというようなことは見かけましたが。

126 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 19:17:41.81 ID:WYLdWJWU]
普通に考えて強制終了にリスクがないはずがないし、外部から終了させることが可能なスレッドを
あえて強制終了する意味があるはずがないと思うんだけど...

abortなんて、稀にデッドロックするバグがあるアンマネージドなライブラリの関数を
呼び出す時以外に使ったことないよ俺は。

127 名前:デフォルトの名無しさん [2014/04/19(土) 19:35:06.62 ID:GVfgk0hH]
小保方貼子ファンクラブ
anago.2ch.net/test/read.cgi/actress/1397313324/

128 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 19:40:06.51 ID:lky2D+JG]
>>124
普通はLINQ使うかな。データ数が多いならベタに書くが
ttp://ideone.com/6rwuVD

129 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 21:28:01.14 ID:+cER51WV]
>>123
死ねよ

130 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 21:28:45.04 ID:+cER51WV]
パフォーマンス求めてLINQを使うわけじゃないっしょ



131 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 22:26:39.08 ID:F+1f3Ibj]
>>129香典くれ

132 名前:デフォルトの名無しさん mailto:sage [2014/04/19(土) 22:44:30.17 ID:mBoNBXfe]
もしサンプル通り一文字だけなんだったらcharにすれば爆速よ
一文字でなく最大でも数文字程度なら固定長で一つのchar配列に全部並べてもいい
メモリアクセスの効率が大幅に改善される
ビチクソ汚いから本当に本当に速度が必要な場合の最終手段な

133 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 15:52:05.98 ID:uC0F2C8m]
>>116,117,124,128,132
おいみんな>>113をよく見ろ
>>114は気付いていたみたいだが、outListの型はList<string[]>だぞ
どうやら、みんなの考えた方法では113の要求している仕様に合っていないみたいだw

134 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 16:01:27.98 ID:ylaqUWX4]
何をどうよく見ろなのかさっぱり分かりませんがw

135 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 16:29:48.16 ID:zk/lLqrY]
>>118なんですが、
Threadを利用した場合は、スレッドの状態の確認としてThreadStateが利用できました。
Taskを利用した場合は、独自に変数を設定してスレッドの状態を確認するのでしょうか?
スレッドが起動中かどうかを示す変数、スレッドが終了したかどうかを示す変数など。

136 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 17:17:05.16 ID:ow3IcQU9]
Threadなんか気にせずにTaskのプロパティを確認するべきだし、
どうしてもThreadの状態を知りたいならThread.CurrentThreadを見ればいい

137 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 19:42:31.74 ID:zk/lLqrY]
ThreadStatusと同じようにTaskStatusがあるんですね。
どうもありがとうございました。

138 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 17:28:24.12 ID:ymTJYPUR]
VS2013でOpenCVをやろうと思って
whoopsidaisies.hatenablog.com/entry/2013/10/25/005953
ここを参考にしてこのように書いて(写して)コンパイルはできたのですが
ideone.com/ITS6Ms
var img = OpenCV.Net.CV.LoadImage(@"C:\test\test.jpg", OpenCV.Net.LoadImageFlags.AnyColor);
の所で以下のような例外が出ました

型 'System.TypeInitializationException' の初回例外が OpenCV.Net.dll で発生しました
追加情報:'OpenCV.Net.Native.NativeMethods' のタイプ初期化子が例外をスローしました。

画像はC:\test\test.jpgにあります
どうすればいいですか?

139 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 17:33:38.20 ID:y0NArLUJ]
opencvのdllがみつからないんだろ

140 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 17:40:48.58 ID:usiNmkk/]
>2013/12/15にOpenCvSharpにも使いやすいNuGetパッケージが公開された.この記事で紹介するOpenCV.NetよりもOpenCvSharpのほうがおすすめ

冒頭でOpenCvSharpを勧めてるのに、なんでOpenCV.Netを使ってるのか



141 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 19:11:53.17 ID:S3aB0oZF]
NuGetとかいうケッタイなものは使いたくないのです

142 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 19:52:37.79 ID:KEGmYWwQ]
エビナゲットって最近見ないな

143 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 22:23:30.19 ID:oS0xRoz1]
プロジェクトやソリューションを管理するためのライブラリってありますか?
ExcelみたいにVSのプログラムを作りたいんですが

144 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 23:11:54.98 ID:d3T4wTxV]
今のVSはCOMインターフェイスが廃止されたからExcelのオートメーションと同じことはできない
VSの拡張機能として作れば同じようなことはできるが、VSのプロジェクトってMSBuildに入力するための単なるXMLファイルなのでわざわざVSを動かすまでもない
MSBuildのスキーマだけ持ってきてそれに従ってXMLを吐くのは簡単だし
必要ならMSBuildのAPIも使える

145 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 23:24:42.06 ID:d3T4wTxV]
念のため言っておくがcsprojはxlsxみたいな複雑怪奇なフォーマットとは訳が違うぞ
自分でテキストエディタで開いて見てみるのが早いが、ごくシンプルで普通なファイルだ
テンプレートを用意しといて必要なものだけ動的に突っ込む形にすれば簡単に作れる

146 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 13:05:37.13 ID:HFvXP4YQ]
コンボボックスに似たコントロールで右の部分が▼でなく
□で中に...と書いてあるコントロールの名前は何でしょうか?

147 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 13:10:05.49 ID:XBfi1btF]
単にテキストボックスとボタン組み合わせてるだけじゃないの?

148 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 14:40:38.90 ID:UaMCQHcx]
単にテキストボックスとボタン組み合わせてるだけだな

149 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 14:50:16.86 ID:gNtRiMca]
決め付けはよくない

150 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 18:02:04.37 ID:UE2PHjX0]
>>146
どんなやつよ。
ちょっと想像がつかないからコモンコントロールじゃないっぽいが
具体例がほしいな



151 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 19:26:39.75 ID:kADKmax/]
>>150
わからないとか冗談だろ
ファイル名テキストボックスとファイルダイアログ表示ボタンをくっ付けたやつだろjk

152 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:22:54.33 ID:kRq+wL8H]
いまVB.netでプログラミングしてるのですが
C#に移行するとどんなメリットがありますか?

153 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:27:01.60 ID:COSeIpGW]
アンセーフなコードが書ける
どんどん差がなくなってきてる
最近は真面目にそれぐらいしか差がない

154 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:28:38.63 ID:w4l4IAka]
Roslynの登場でさらに差は縮まる
C#,VB.NETの両方読めるようにしとくと情報が見つけやすい

155 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:30:33.98 ID:qzRdlrJo]
>>152
C#でプログラミングする必要はないが、C#が読めるようになると世界が広がる
C#が読めれば数々のオープンソースプロジェクトのソースが読めるしJavaも読める
また、一般にWebに転がってるC#の情報はVBより品質が高い
C#に無い機能は即ちVBでも使ってはいけない機能なので、それが分かっていれば実際使うのがVBだとしても高品質なコードが書けるようになる

156 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:33:58.18 ID:kADKmax/]
VB.NetはデフォだとVB6時代の悪しき慣習を引き継いでいるからなぁ
フォームのシングルトンインスタンスにクラス名でアクセス出来るのとかまだあるんだっけ?

157 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:34:08.54 ID:kRq+wL8H]
ありがとん

158 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:34:09.41 ID:COSeIpGW]
大事なことを忘れていた
情報検索がしやすいメリットは大きいね
下手くそなコード書く人が少ないのも助かる

159 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:35:12.43 ID:kRq+wL8H]
とりあえずVBと併せてC#もやってみます

160 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 00:41:08.86 ID:3zL5Y6EA]
>>152
結局出来ることはほとんど違わないけど、VBのラムダ式とかジェネリックとか
AddressOf...とかの冗長さにイラっとしてるならそれから解放される。

あと、このスレでもそうだけどVBに偏見持ってる人は少なくないから、
メンタル的にはその辺も大きいねw



161 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 00:45:47.04 ID:JkkhAF2N]
っていうか、コード書いてみて初めて分かる細かい違いは実は結構あるけど、
移行っていうほど大げさなもんじゃない。

VBが普通に書けるなら1週間でC#もスラスラ書けるようになるはず。

162 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:02:34.08 ID:Jwmg0nMc]
>>160
偏見じゃなくて公式だ
MS自身がが先陣切ってVBerを馬鹿にしてるからなあ

163 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:14:29.84 ID:moWamiRQ]
>>162
公式だから偏見じゃないとはちょっと…

自分もVBからC#に移ったが、情報やサンプルの多さは本当に助かってる
職場ではVBA使うからたまに混乱するが

164 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 01:57:22.43 ID:oEVDmUMc]
>>160
偏見ってたとえば?

165 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 03:45:53.21 ID:L+2rWq+F]
>>164
MS自身がが先陣切ってVBerを馬鹿にしてる とか

166 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 07:03:44.22 ID:aQjOrdcV]
VB.NETは数値計算とか例外処理で旧VBの仕様を引きずっているのでILが汚い
機能が同等だとしてもあえて選ぶ意味は無い

167 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 07:27:58.18 ID:B15hE1J5]
決裁権持ってる奴はいまだにBASIC(とPHP)は学習コストが低いと思ってるから
あるいは元VBerで信仰心があったり

公平な選択なんて有り得ないんですよ
例えそれが自分の首を締めても

168 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 08:23:37.10 ID:x9LZX8vX]
別にできることはたいして変わらないんだから、好きな方使えばええやんか

169 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 08:38:33.73 ID:Wz2QSiNm]
VB使ってると自分の将来が不安になる

170 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 09:30:35.84 ID:oEVDmUMc]
VBはStrConv使える



171 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 10:12:07.52 ID:8Svp1K2C]
偏見持ってるのは一般人も同じじゃね?
VBで作るって言うと遅くなるとかバカにされるけど、C#で作るって言うと安心するとか尊敬される
知らない人ほど「Basicって名前は遅くてCって名前は速い」と思ってるから性質が悪い

172 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 12:43:00.67 ID:To415BTT]
VC#で新しくプロジェクト作ったりしたら
static void Main(string[] args)
{
}
見たいになってるけど、デフォルトで
static void Main(string[] args) {
}
こうするように出来ますか?

173 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 12:54:41.59 ID:Wav400Iz]
VSのメニューの「ツール」→「オプション」→「テキストエディター」→「C#」→「書式設定」→「改行」

少なくともうちのExpressちゃんだと

174 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 13:02:10.40 ID:To415BTT]
>>173
ありがとうございます

175 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 13:14:45.44 ID:HlzGISme]
C#でつくられたDLLを使うときにVBだと
outのやつとかうまく行かない時ある

176 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 17:00:14.97 ID:gE6F061n]
VBで作られたDLLをC#から呼ぶとき
インデックスつきプロパティとかどうすんだろ

177 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 18:38:59.62 ID:hEaBYDdC]
VB.NetがC#より打鍵量が多いのも、コンパイル後のサイズが大きいのも、
パフォーマンスがC#より悪いのも、ヘルパーメソッド由来の妙なバグがあるのも全部事実であって偏見ではない

178 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 20:26:11.53 ID:TDgs+IDt]
VB の癌は Module
MS にはとっとと切り捨てて欲しい

>>176
get_プロパティ名(インデックス)、set_プロパティ名(インデックス, セット値) でいける

179 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:13:30.39 ID:Wvay+xfF]
>>170
VBのメリット、これしか見つからないな。

180 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:17:47.88 ID:9b5aah45]
まあStrings.StrConvメソッドはC#からでも使えるんだけどな



181 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:38:48.86 ID:aQjOrdcV]
Microsoft.VisualBasic.dllだとFileLogTraceListenerを一番よく使う

182 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:05:07.94 ID:gnPWMjpt]
>>179
そんなことはないと思うが、2008の頃からは何を書くにもとにかく冗長という
欠点ばかりが目立つようになってしまった。

183 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:30:13.86 ID:aQjOrdcV]
昔からReadOnly PropertyとかAddHandler, AddressOfとかDirectCastとかそんな感じだったでしょ
リフレクション多用するライブラリが増えてきて表面化しただけじゃないの
自動実装プロパティもC#にしかない時期だし

184 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:30:18.44 ID:O6CdnXOc]
allocconsole だな

185 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:32:30.95 ID:Jwmg0nMc]
>>182
2008からはVBチームがVB嫌いのヘジたんの傘下に入ったからね

186 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:59:59.59 ID:20pXoq+z]
>>170
バグ生産機を使うなバカ

187 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 01:31:15.85 ID:ql05jL4b]
>>186
すまん軽率だった
これ見て使ってしまう奴が居ないとも限らんしな

188 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:30:02.51 ID:4wdRys5m]
MessageBoxIconに自分の用意したbitmapを表示させるにはどうしたらいいですか?

189 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:44:58.88 ID:YxnFmXEY]
無理

それっぽいフォームを自分で作る
文字列を描画したときのサイズを計算してフォームの大きさ変えたりとか楽しいぞ
さあ作れ

190 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 20:58:57.16 ID:nZNRS/HT]
無理ってことはないと思うけど自作した方が早いね。
そうでなくてもOS標準のはモーダルにしか出来ないしいろいろ使いづらい。



191 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:15:44.44 ID:DE2OqBZn]
カーソルがピタット止まって気持ち悪い

192 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:20:16.41 ID:DE2OqBZn]
誤爆った

public struct A{
public static string str;

public struct B{
public static string str_b1;
public static string str_b2;
}

public class Class{
public string c_str;
}
public static Class C = new C();

public static Class[] D = new D[2]{
new D(),
new D()
};
}

こんな構造体があるとして

A.B.str_b1;
A.B.str_b2;
A.C.c.str;
A.D[0].c_str;
A.D[1].c_str;

foreach的な感じで値取得ってできない?

193 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:20:46.50 ID:YxnFmXEY]
>>190
無理ってことはないと思うならやってみろよハゲ
ちなみにあれMessageBox APIを呼んでるだけなんすよヅルムケが

194 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:35:37.91 ID:FFtq7Y66]
>>193
正直、お前さんみたいな馬鹿丸出しな奴は相手にしたくない人種なんだが。

恐らくこれと同じ手法でいける。
msdn.microsoft.com/en-us/library/ms996463.aspx

195 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:37:47.16 ID:YxnFmXEY]
>>192
それらの静的フィールドをyield return で返すIEnumerable<strign>なプロパティを書けばできるけど
意味があるかどうかはおいといて
つかそれ構造体の意味なくね?

196 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:41:48.71 ID:YxnFmXEY]
>>194
すこしは自分でコード書いてみたら?
同じ手法でいけるって……全然試してないでしょあなた

197 名前:デフォルトの名無しさん [2014/04/24(木) 21:43:57.76 ID:vQpzgEp0]
>>192
foreach使うための、インターフェースの実装はわかりますよね?
あとは、イテレータ使えばできるはずです。

198 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:49:14.36 ID:VsJIW2Qh]
>>196
馬鹿だろお前。
だったらてめえでやれ馬鹿。

199 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 22:02:34.00 ID:dPj9fjlZ]
メッセージボックスもウインドウだから、フックかければ改造はできる。
ただ、意味はないからやらないだけだ

200 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 15:25:09.99 ID:IiOsF4m2]
昔はC#からEXCEL呼ぶのがとてつもなく面倒だったから、VB使う余地があったんだけどね



201 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 20:53:42.84 ID:1OgLRHsj]
>>200
オートメーションは今でもVBの方が向いてるよ。
Option Strict Offの唯一の見せ場といってもいいぐらい

202 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 20:59:41.66 ID:H8Us4HAR]
>>201
つdynamic

203 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:05:02.54 ID:OpA3+M3d]
dynamicとオプション引数でもう完全に遜色なくなったねー

204 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:10:59.66 ID:H8Us4HAR]
あとrefパラメータへの値渡しな

205 名前:デフォルトの名無しさん [2014/04/25(金) 21:18:49.00 ID:E6t4nrBH]
>>202-203
いや、例えばRange.Valueをdoube[,]として出し入れする、なんて芸当はVBしかできない。

206 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 21:27:17.50 ID:BeYqZeZk]
それエラーチェックをサボってるだけでは

207 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 22:19:49.65 ID:+sbVSSo6]
激しくどうでも良いことだけど、Excel形式で出力するライブラリは沢山あるのに
Word形式で出力できるライブラリが殆ど無いのが納得いかない。

208 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 22:32:43.08 ID:v98LkHcr]
2とか知らないけど発売してるの

209 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 23:05:26.63 ID:K/dO+JDF]
そろそろ初心者から脱出したいんですけど、どういうアプリを作ればいいでしょうか?
連番画像ダウンローダー、目覚ましなどは作りましたが、次に作るものが思い浮かばないです・・・

210 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 23:15:10.41 ID:BeYqZeZk]
IQueryable



211 名前:デフォルトの名無しさん [2014/04/26(土) 01:10:31.85 ID:L7zgrAvH]
C#って何が出来れば上級者なの?

212 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 01:12:25.53 ID:EJb9DXTR]
作りたい物をきちんと作れるなら

213 名前:デフォルトの名無しさん [2014/04/26(土) 01:41:03.89 ID:fIjhv7f7]
>>209
擬似ウイルス

214 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 07:48:18.18 ID:tBhXDM1B]
足し算する計算機を作った
俺はもうC#上級者

215 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 09:57:25.18 ID:6xIFFq9Q]
>>209
画像レタッチソフト

216 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 12:06:32.30 ID:we+cBXG7]
>>209
マクロにC#を使える軽量高機能テキストエディタ

217 名前:デフォルトの名無しさん [2014/04/26(土) 12:39:09.88 ID:4Y2pKqPs]
/// <summary>
/// 指定したmdbファイルに対してSQLを実行します。
/// </summary>
/// <param name="sql">実行するSQL文です</param>
/// <param name="dataSource">mdbファイルの絶対パス</param>
/// <returns>0:正常終了 1:dataSource未設定 2:SQL文がない -1:システムエラー</returns>

こういうコメントを、関数仕様書のようにまとめる事ができる
お勧めツールはありますでしょうか?

218 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 12:51:59.56 ID:Qdi0GyvQ]
以下、たかがサンプルに対する本筋から逸れたどうでもいい突っ込みをどうぞ↓

219 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:04:22.85 ID:EJb9DXTR]
>>218
1つの関数にopenからsql実行まで全部いれないでもうちょっと別けろよ

220 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:14:14.44 ID:yjIemKHI]
Sandcastle



221 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 13:26:01.94 ID:Fm5sej5/]
returnsの書き方に違和感

222 名前:デフォルトの名無しさん [2014/04/26(土) 13:49:19.87 ID:4Y2pKqPs]
>>219
openからsql実行まで一連の処理を一つの関数にまとめていると
何か不都合が出てくるのでしょうか?

なるほど、という不都合が。

223 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:32:06.24 ID:rj2lEW1Q]
エラーなら例外使うべきだな

224 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:36:25.19 ID:Qdi0GyvQ]
どうですか?
笑えないほど予告通りですね

225 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 15:38:21.79 ID:ZzzaXJVH]
むしろチミが召喚したという

226 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:28:10.91 ID:we+cBXG7]
>>220で答え出てた

>>222
File.ReadXXXなんかもあるし、これで全部賄おうって話じゃなけりゃ問題ないでしょう
それより処理結果をintで返すのは誰に教わったの?そいつぶん殴ったらいいよ
処理結果なんて誰も見ない
SQLがnullだった場合?呼び出す側はこれnullかも・・・って思いつつ呼び出さないよな、だったら事前チェックするから
想定してないのにnullって言われてもどうしようもない
だから対処できるメソッドまで例外を投げるんだよ、回復とか通知とか出来るところまで
ArgumentNullExceptionを投げるようにして、例外説明用のタグもあるからそれ使おうか

227 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:32:22.76 ID:lFCRVMF1]
SQL実行しといて行数すら返さないってINSERT専用なの?

228 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 16:42:25.86 ID:Cr6T5VXg]
おしっこも出るよ(´・_・`)

229 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:17:16.99 ID:Gwme6n+H]
>>226
>処理結果なんて誰も見ない

それを言うなら、呼び出したメソッドが例外投げるなんて「誰も想定しない」
とも言えるわけでどっちもどっちだと思うよ。

むしろエラーコード方式の方が、そのメソッドではエラーが発生しうることをコード上で
明示できる分優れているとすら言える。

ただ>>217はエラーコードに今時マジックナンバーを使ってる点は問題。
そこはenumか例外オブジェクトを返すようにした方がいいと思う。

230 名前:デフォルトの名無しさん [2014/04/26(土) 17:36:23.19 ID:19vcZYji]
C#に限った話ではないのかもしれないけど

静的ではないクラスの中に定義したメソッドは
そのクラスのインスタンスを作成するたびに メモリ上に展開されるの?

だとしたら
主にデータを保持するために使うクラスには出来る限りメソッドを定義しないようにして
メソッドはそれを提供する専用のクラスに分割して書いたほうが良いの?

インスタンスの量が増えてくるとメモリの使用量が気にならないかなぁ・・・と
まぁC#でメモリの使用量なんて気にしても仕方ないのかもしれませんがよろしくお願いします.



231 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:40:40.90 ID:9En+Yllw]
ポインタしかもたんだろ

232 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 17:41:26.63 ID:lFCRVMF1]
んなわけないだろ

233 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:00:36.35 ID:oIIaUmxU]
OOP言語(というか実行環境か)でインスタンスごとに独立した実行コードが
割り当てられるような間抜けな実装してるものなんてあるのか?

誰が考えてもありえない話としか思えないが

234 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:04:16.55 ID:Qdi0GyvQ]
vtableでくぐれ

235 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:14:29.64 ID:lFCRVMF1]
CLRではメソッドテーブルだ

236 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 18:26:31.95 ID:NVDEc6dD]
>>217
ためしにDoxygen

237 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:31:07.43 ID:+q1cG7mf]
>>229
例外オブジェクトを返す?本気?

238 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:34:09.18 ID:GZ073aKT]
C#でTwitterクライアントを作りたくて検索したんですが情報が古かったりして出来ません

オススメや参考にしたサイト等あれば教えてください、お願いします

239 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:37:36.64 ID:lFCRVMF1]
そのライブラリーはIDが64ビット化したのに対応してないんじゃない?

240 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 20:42:52.62 ID:7/lzVZ3W]
>>237
例外オブジェクトの存在価値が投げられること、ただそれだけだ思ってるのならただの固定観念。



241 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:15:39.82 ID:lFCRVMF1]
投げないならExceptionより軽量高速で誤解を招かない選択肢が一杯ある

242 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:21:36.37 ID:iOeXFZ4R]
中学生か。
そういう批判のための批判なら要らない。
軽量かどうか、誤解を招くかどうか、どちらもそれが例外オブジェクトかどうかとは無関係。

243 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:26:28.10 ID:lFCRVMF1]
あえて使う理由は何?と聞いてるんだけど

244 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:31:09.99 ID:L2eR/wTD]
あえて例外オブジェクトを使えなんてどこに書いてある。
俺はマジックナンバーではなくenumか例外オブジェクトを返せと書いた。
要するにただ「使える」と言ってるだけだ。

2chで言ってもしょうがないが本当中学生じみた幼稚な奴だな。

245 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:39:05.02 ID:sw3OTzY3]
例外オブジェクトを戻値にする場合って呼び出し側でどうやってハンドリングするの?
Go言語みたいにするの?

246 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:43:07.54 ID:lFCRVMF1]
>>244
じゃあ聞くけどマジックナンバーと比較して例外を使うのの何が優れてると思ってるの?
型検査になるから列挙型のように選択肢も絞れないし、動作もマジックナンバーより遅いし
基本エラーを表す型しかないから成功のステータスを細分化できないんだけど

エラーメッセージが付加できる点ぐらいしかメリットがないと思うよ

247 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:49:55.75 ID:yjIemKHI]
おとなしく例外を投げろよ
SQLの実行が100%成功するわけないことぐらい誰でもわかるだろ

248 名前:デフォルトの名無しさん mailto:でもgoogleのコーディング規約では‥ [2014/04/26(土) 21:53:17.85 ID:UjMxSJz5]
エラーコードは戻り側で無視したらそこでおしまい
例外ならば(例外を食ったりしなければ)普通最上位までまき戻る
あと例外を階層的にクラスで扱えばいろいろ便利だね ideone.com/Q5h8n1#li_GQnaUK
C++、Java でも例外をとりいれているし、

エラーコードなんて過去の遺物じゃないかな

249 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 21:58:49.85 ID:Qdi0GyvQ]
ここまで燃えるとは予想外ワロタ

250 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:09:27.96 ID:2szqXR0/]
>>248
よくある議論だけど、最初から言ってるように、戻り値(エラーコード)ではなく
例外機構を使ったからって、呼び出し側がエラーを想定しなかった場合のリスクに違いはない。

上位まで戻るって、意図的にそうした場合は別として、そうでない場合に
想定されてない例外に対して適切な回復処理なんか出来るわけないでしょ。



251 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:19:49.67 ID:2szqXR0/]
突っ込まれる前に言っとくけど、例外を投げることの利点はプログラムを
強制終了させるパワーを持っていることで、だから回復不可能なエラー発生時には
積極的に例外を投げる意味があるけど、それ以外の場合は本来別に例外を投げることに
固執する意味なんてたいしてないんだよね。

むしろエラーコード方式だと他の値が返せなくなるからという程度の理由しかない。

252 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:31:03.25 ID:yjIemKHI]
詳しいエラーメッセージをのせられない
追加情報をのせられない
おきた場所のスタックトレースが取得できない
InnerExceptionみたいのができない
エラーの発生しうるメソッドを実行するたびに戻り値を確認する必要がある
回復可能なエラーで失敗を想定しないと停止されないので、そのまま適切でない処理が続行される危険がある

とか

253 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 22:52:46.46 ID:lFCRVMF1]
実行エンジンや他人のライブラリが例外を投げてくる可能性は消えないので例外処理をしないという選択肢がありえない
両方やりたいならお好きにどうぞ

254 名前:デフォルトの名無しさん mailto:sage [2014/04/26(土) 23:03:12.36 ID:+q1cG7mf]
>>251
その理屈から引数nullとシステムエラー(なんだよそれ)をエラーコードで良いと判断したの?
システムエラーが返された時どうしたらいいの?
俺なら無視しちゃうな

255 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 00:00:20.60 ID:miy+8Evc]
共通関数って、最初に引数チェックしてダメだったら例外投げるよな

引数例外もしくはContractsとか使って

256 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 00:08:02.95 ID:dy7wqSER]
どうでもいいけどHttpWebRequestで404の時とかにWebException投げるのやめて欲しい
もともとネットにつながらないとかホストが見つからないという時だけ投げて欲しい

257 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 03:24:50.79 ID:oLsNKogN]
>>250
想定しないエラーについては上位に投げる(キャッチしない)のがC#の基本的なエラー処理の考え方だぞ
例外投げるのは意図的に捕捉しない限り勝手に上位に伝播する
自分で処理できるエラーだけ捕捉するのはエラーコードでもいいが、それ以外を上位に投げるのにエラーコードは不向きだ

258 名前:デフォルトの名無しさん [2014/04/27(日) 10:37:42.14 ID:/A+wJ+qi]
★質問したいこと
「default(T)」は値なの?型なの?
(下記のコードがうまくいかない理由は?)

★状況
public class Range<T> where T : IComparable<T>
{
&nbsp; &nbsp; public T Begin { get; set; }
&nbsp; &nbsp; public T End { get; set; }
&nbsp; &nbsp; public bool Contains(T t)
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; return (Begin == default(T) || Begin.CompareTo(t) <= 0)
&nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (End == default(T) || 0 < t.CompareTo(End));
&nbsp; &nbsp; }
}
Begin == defualt(T)のとこで「演算子 '==' を 'T' と 'T' 型のオペランドに適用することはできません。」
とか、表示されます。

T d = default(T);とか書いてみて、もちろんエラーは出ない。
さらに、if( Begin == d ) {...}とか書いてみると、 上記のエラー。

259 名前:258 [2014/04/27(日) 10:39:06.66 ID:/A+wJ+qi]
>>258
あれっ!HTMLエンコードしすぎちゃった!

260 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 10:58:40.25 ID:jKbi43u9]
>>217
blogs.msdn.com/b/sandcastle/

Visual Studio に同梱してもいいと思うんだが。



261 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 11:05:42.81 ID:PjLFHi1Y]
>>258
IComparableでも==は使えない

262 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 11:22:51.99 ID:LKRXtHDC]
Equals使えばいいんじゃねえの

263 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 12:03:22.28 ID:LKRXtHDC]
default(T)がnullだった時に落ちないようにしなきゃいけないとすると
静的メソッドの

object.Equals(object, object) っていうのが使えるのかな

でもdefault(T)との比較は値型のときの動作が怪しいよな

264 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 12:13:25.13 ID:Yz145qkP]
EqualityComparer<T>.Defaultとかそういうのがあって

265 名前:258 [2014/04/27(日) 12:48:31.67 ID:/A+wJ+qi]
>>261-264
とりあえずこうしてみます。
>>263案で。
みんなありがとう。
public class Range<T> where T : IComparable<T>
{
public T Begin { get; set; }
public T End { get; set; }
public bool Contains(T t)
{
return (object.Equals(Begin, default(T)) || Begin.CompareTo(t) <= 0)
&& (object.Equals(End, default(T)) || 0 < t.CompareTo(End));
}
}

266 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 13:36:23.26 ID:miy+8Evc]
Contains の実装間違ってるっぽいが大丈夫?

後、default(値型)は、値型の初期値(≒0)になるよ

267 名前:デフォルトの名無しさん mailto:sage [2014/04/27(日) 21:38:52.33 ID:Q9kXtU28]
Tでもnullとの==比較だけはできるんだけど
Tが値型の場合は常にfalseになる

268 名前:デフォルトの名無しさん [2014/04/27(日) 21:44:11.91 ID:LKRXtHDC]
マジで?!

初めて知った・・・

269 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 08:05:57.00 ID:fMEOKfxX]
Actionめちゃくちゃ便利じゃないか
古い情報のデリゲートを使ったり、イベント使ったりして
途中でわけがわからなくなってたがこれ使ってすんげーシンプルにかけるようになった

270 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 09:52:55.43 ID:tJSAUBZt]
ActionとかFuncとかは単なる作り付けのデリゲート
便利なのはラムダ式



271 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 16:02:15.95 ID:fMEOKfxX]
今気づいたけどID出るようになってるね
これでキチガイが暴れなくなったね

272 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 16:10:50.88 ID:HVeqsQe1]
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄

273 名前:デフォルトの名無しさん [2014/05/01(木) 16:53:11.58 ID:BD8IvZOZ]
C#のLinqでは、Like句は使えないのでしょうか?

下のようなVB.NETプログラムをC#で書きたいのですが、
Likeは無いと怒られます。

Dim filter As String = "*マ*"
'データソースの作成
Dim animals = New String() {"ライオン", "ウマ", "ポチ"}
'LINQで処理を定義
Dim results = From animal In animals Where animal Like filter

274 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 16:57:52.59 ID:uhEglYyp]
うん、使えない

275 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 17:01:22.57 ID:uhEglYyp]
あ、Like演算自体はMicrosoft.VisualBasic.CompilerServices.LikeOperator.LikeStringメソッドで実現できるよ
クエリの句として使えないだけで

276 名前:デフォルトの名無しさん [2014/05/01(木) 17:12:26.68 ID:BD8IvZOZ]
そうなんですか
残念

クエリ式は、VB.NETの方が優れてる気がしますね

277 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 17:16:43.77 ID:uhEglYyp]
よく考えたらLikeはクエリ式とは関係ないただのVBの演算子だった
まあクエリ式なんてついでに乗っけてみた程度だからどうでもいいよ

278 名前:デフォルトの名無しさん [2014/05/01(木) 17:19:01.49 ID:Hl+E0h9B]
クエリ式見るだけで吐き気がする
どうしてドットで繋がないんだ
可読性下がるだけだろ

279 名前:デフォルトの名無しさん [2014/05/01(木) 17:27:43.28 ID:BD8IvZOZ]
ちなみに、>>273と同等のコードは、
C#だと、どのように書けるでしょうか?

書くことが出来ないとは
思えないのですが。。。

280 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 17:29:47.35 ID:HVeqsQe1]
VBやってろよ
気を揉まなくて済むぞ



281 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 17:31:14.67 ID:uhEglYyp]
var results = animals.Where(animal => LikeOperator.LikeString(animal, filter));
var results = from animal in animals where LikeOperator.LikeString(animal, filter);
どっちでも好きに

282 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 17:32:05.24 ID:uhEglYyp]
ってそういえばselect必須だったっけ
var results = from animal in animals where LikeOperator.LikeString(animal, filter) select animal;

283 名前:デフォルトの名無しさん [2014/05/01(木) 17:34:59.06 ID:Hl+E0h9B]
>>279
var results = animals.Where(animal => Regex.IsMatch(animal, ".*マ.*"));

こんな感じ?

これだと正規表現がすごく遅そうでやばそうかな

284 名前:デフォルトの名無しさん [2014/05/01(木) 18:01:32.04 ID:BD8IvZOZ]
>>282

ご回答ありがとうございます。

ただ、下記のようなコードを書いたのですが、
「動的な式のコンパイルに必要な1つ以上の型が見つかりません。」
と怒られてしまいます。

using Microsoft.VisualBasic.CompilerServices;

string filter = "*マ*";
dynamic animals = new string[] {"ライオン","ウマ","ポチ"};
var results = from animal in animals where LikeOperator.LikeString(animal, filter) select animal;

素人質問で恐縮ですが、
どの辺がいけないのでしょうか?

よろしくお願いします。

285 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 18:03:34.36 ID:uhEglYyp]
なんでdynamicなんだよ

286 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 18:04:42.61 ID:HVeqsQe1]
だから言ったのに

287 名前:デフォルトの名無しさん [2014/05/01(木) 18:06:08.51 ID:Hl+E0h9B]
ダイナミック
ダイクマー

288 名前:デフォルトの名無しさん [2014/05/01(木) 18:49:10.15 ID:BD8IvZOZ]
>なんでdynamicなんだよ

あっ、本当だ。
失礼しました。

ただ、下記のようなコードを書くと、
全ての要素がヒットしてしまいました。

var filter = "*マ*";
var animals = new string[] {"ライオン","ウマ","ポチ"};
var results = from animal in animals where LikeOperator.LikeString(animal, filter, Microsoft.VisualBasic.CompareMethod.Binary) select animal;

なかなか難しいなと思いました。

289 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 19:58:52.39 ID:R3+I0L0F]
死ねと思いました

290 名前:デフォルトの名無しさん mailto:sage [2014/05/01(木) 20:04:27.43 ID:JPPdbDCn]
コードままでウマしかヒットしなかったけど釣りか?



291 名前:デフォルトの名無しさん [2014/05/02(金) 00:24:04.56 ID:Z8O9F4B6]
すみません、クイックウォッチのソースを見ていました
結果ビューを見たら、ちゃんとウマだけヒットしていました

C#を始めて3日目の超初心者なので、
初歩的な間違いをしておりました

このデータを、どう配列に取り込もうか考え中ですが、
それくらいなら自力解決できると思います

ご教授ありがとうございました

292 名前:デフォルトの名無しさん [2014/05/02(金) 00:35:51.86 ID:Z8O9F4B6]
クエリ式って、エクセルからオブジェクトを一気に取り込んで
あいまい検索する時とか、凄く便利そうですが、
メジャーじゃないんでしょうか?

エクセルVBAの構文が見難かったので、
C#でやる方法を色々調べている時に、
便利そうだと思ったのですが、
情報がほとんど無かったので。。。

293 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 00:48:05.73 ID:tBX44kWl]
メジャーじゃないですね

294 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 02:41:15.92 ID:5msgSlqj]
今時エクセル絡ませるのはマイナーの部類ですね

295 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 02:42:06.91 ID:5msgSlqj]
データベースに桐を使ってるレベルです

296 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 10:52:35.09 ID:ht5JWCls]
マイナーかどうかはおいといて、結局 C# 経由で VBA のメソッドを使うことにならん? それ。

297 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 12:13:38.02 ID:4eRBcMfb]
Like相当なら
StartsWith()、EndsWith()、Contains() でいいべ

298 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 16:54:12.21 ID:dSQl/o1w]
Visual C# 2013
.NET Framework 4.5

数値と文字列の組を、数値の降順で表示したいのですが
↓より簡単な方法はないでしょうか
https://ideone.com/OmRl1j

数値の重複はあり、重複した数値のソート順は問いません

299 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 17:01:30.08 ID:ntw0y3bI]
組なんだったら一つのクラスにまとめればいいじゃん

300 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 18:05:33.78 ID:hJb5Y+9v]
var DayMon =new List<Tuple<int,string>>{Tuple.Create(31,"Jan"),Tuple.Create(28,"Feb"),.....}.OrderBy(t=>t.Item1);

foreach(var dm in DayMon)
{
Console.WriteLine("{0} {1}", dm.Item1,dm.Item2);

}



301 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 18:10:50.51 ID:dSQl/o1w]
クラスを作るという方法も考えたんですが、もっとお手軽にできないかと

https://ideone.com/wAaleA
↑ちょっとKeyValuePairが長いですが、これで行こうかと思います

>>300
ちょっと検討してみます

302 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 18:37:49.20 ID:dSQl/o1w]
>>300
ideoneではコンパイルできませんでしたが、VC#2013では結果が正しく表示されました
https://ideone.com/qen38H

OrderByは使えなかったのでSortで代用しています
タプルもKeyValuePairも似たような感じですが、若干ソースが見やすくなったかと
ありがとうございました

303 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 21:16:13.38 ID:lNHwVscw]
OrderByは拡張メソッドでUsing System.Linqが無いと使えない
private void Form1_Load(object sender, EventArgs e)
{
var lst = CreateList(new { Id = 0, Name = "" });
lst.Add(new { Id = 31, Name = "Jan" });
lst.Add(new { Id = 28, Name = "Feb" });
lst.Add(new { Id = 31, Name = "Mar" });
lst.Add(new { Id = 30, Name = "Apr" });

foreach (var item in lst.OrderBy(t => t.Id))
{
Console.WriteLine("{0}{1}", item.Id, item.Name);
}
}
private List<T> CreateList<T>(T val)
{
return new List<T>();
}

304 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 23:44:12.05 ID:FeJk+PKM]
>>298
enum

305 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 23:59:39.01 ID:0wxqsA8J]
多少工夫が必要だがDictionaryの初期化子って手も

306 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 00:03:57.75 ID:KZJ62BJo]
>>302
コードが短ければいいってものじゃないと思うけど
>>300みたいなのってパッと見てわかりやすいとは思わないわ
あまりにも抽象的過ぎて

これもさ、例えばlistを別のクラス、プロジェクトで利用したいってなったとき
t.Item1の見た目でどんな意味の値が入っているかわからないじゃない?
一つのメソッド内でしか使わない使い捨てならいいけどさ

public class Month
{
public int Name{get;set;}
public int Days{get;set;}
}

foreach (var mon in months)
{
Console.WriteLine("日数:{0} 月:{1}", mon.Days, mon.Name);
}
コードは長くなるけど、このほうがわかりやすいでしょ?

307 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 00:17:35.06 ID:KZJ62BJo]
>>303
これもさ、例えば曜日などのメンバーを追加したり、メソッドを追加したくなったらどうすんのって話
全部書き換えなきゃいけなくなる

308 名前:デフォルトの名無しさん [2014/05/03(土) 00:20:14.92 ID:JUyABsGs]
自然に実装するのが一番だね

309 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 00:29:10.18 ID:KZJ62BJo]
暦なんて普遍的なものなんだから十分クラスとしてあってもよいもの
年によって月の日数も変化するし、曜日もほしくなる
カレンダークラスというのがほしくなるかもしれない
容易に拡張すると予測されるようなものを、
その場しのぎで柔軟性のないコードで実現したとしても
わかりやすい、使いやすいにはならないと思う

310 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 00:44:39.43 ID:axBvBMhe]
何か講釈してるけどDateTimeFormatInfoとかCalendarとか知らないのかな



311 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 01:11:56.28 ID:KHkxCjGP]
こういう人には関わらない方が良い

312 名前:デフォルトの名無しさん [2014/05/03(土) 02:25:42.67 ID:/0tPcitL]
pngをicoに変換するソフト作ってみたくて調べてたら
ToIcon名前空間ってのを見つけたんだけど、こいつのマニュアルがいくら探しても出てきません
どこかに載ってるページとかありませんか?

313 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 02:40:53.67 ID:zB11sd0u]
どこでToIconてのを見つけたんだ?

314 名前:デフォルトの名無しさん [2014/05/03(土) 02:55:54.29 ID:/0tPcitL]
VisualStudioの候補で出てきた

315 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 06:04:12.62 ID:XhsVJdhh]
ぐぐる様で出てこないということは存在しないということ


画像ファイルを読み込んでIconオブジェクト作成して
Icon.Saveで作れないこともないけど、単一サイズしか作れないし色数も変になるから
実質的には自分で書かないと

316 名前:298 mailto:sage [2014/05/03(土) 12:32:42.87 ID:0tTnhsBI]
いろいろご意見ありがとうございます

https://ideone.com/zEwVxf
整理した結果、汎用方式で行こうと思います

>>303
動かしてみて参考にさせていただきました

>>306
単純に表示する順序を入れ替えたいだけなので、一つのメソッド内でしか使わない使い捨てです

317 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 13:32:06.08 ID:O1mw8o44]
>>316
2度とくん中洲

318 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 14:12:12.94 ID:7V85CoD7]
>>278
何もわかってないんだな

319 名前:デフォルトの名無しさん [2014/05/03(土) 23:11:16.87 ID:RQXoEmML]
パラメータ化クエリをトランザクション処理したいのですが、上手く動きません。
何が悪いのか、超が付く初心者なので、とんと見当がつかず。。。
ご指摘のほど、よろしくお願いします。
var cmdList = new List<OleDbCommand>();
OleDbCommand command = new OleDbCommand();
var plam1 = new System.Data.OleDb.OleDbParameter("@param", System.Data.OleDb.OleDbType.Integer);
plam1.Value = "2535";
command.Parameters.Add(plam1);
cmdList.Add(command);
command = new OleDbCommand();
var plam2 = new System.Data.OleDb.OleDbParameter("@param", System.Data.OleDb.OleDbType.Integer);
plam2.Value = "2539";
command.Parameters.Add(plam2);
cmdList.Add(command);
using (var cn = new OleDbConnection())
{
 cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\test.accdb";
 cn.Open();
 OleDbTransaction transaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);
 try
  {
  foreach (OleDbCommand cmdSet in cmdList)
  {
  cmdSet.Connection = cn;
  cmdSet.CommandText = "DELETE FROM t_家計簿 WHERE [No] = ?";
  cmdSet.ExecuteNonQuery();
  }
  transaction.Commit();
  }
}

320 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 00:10:55.38 ID:QUU6NeMv]
とりあえずコマンドのTransactionが未設定じゃないかな



321 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 00:27:31.63 ID:I+QWjdQ8]
まず普通にSQL通すとこからやって、パラメタとトランザクションは
別々に試して両方できてから合わせては?

322 名前:デフォルトの名無しさん [2014/05/04(日) 00:52:37.14 ID:WZQbe0KN]
>とりあえずコマンドのTransactionが未設定じゃないかな

調べてみたら、まさにその通りでした。
初心者らしい、初歩的なミスでお恥ずかしい。

ありがとうございました。

323 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 08:07:19.84 ID:zFJPqZSx]
.Net4.5から追加されたSystem.IO.Compression.ZipArchive
クラスについてご教授下さい。
smdn.jp/programming/netfx/fcl/System.IO.Compression.ZipArchive/
↑サイトなどを参考にさせて頂いて
ファイルやディレクトリの圧縮・展開等ができることは確認しました。

この時、例えば大きなファイルを圧縮するような場合
プログレスバーを表示させたりする事も考えられますが
圧縮や展開の進捗を得る方法というのはありますでしょうか?
フリーのライブラリなどでは可能なものもありますが
あくまで、このクラスを使用する前提の場合
どういった方法が考えられますでしょうか。
よろしくお願い致します。

324 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 08:16:33.82 ID:izVfMrBs]
Stream使って読み書きするんだからそこで適当に通知すればいいだろ

325 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 08:20:35.08 ID:zFJPqZSx]
ありがとうございます。
FileStreamクラスで似たような事をした事があったので
もしかしたら可能かとは思ったのですが
なにぶん初心者サンデープログラマなもので
うまい事できずにいました。
可能だというお墨付きを頂けたので
もうちょい頑張ってみます。助かりました。

326 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 09:24:10.11 ID:zFJPqZSx]
元ストリームのLengthプロパティを取得して、それに対してReadByte・WriteByteメソッド
で書き込む度に進捗を報告するようにできました。助言いただけたおかげです。
ありがとうございます。またよろしくお願いします。

327 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 10:48:12.54 ID:IPFrsn/P]
どういたまして

328 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 10:58:36.66 ID:y/VTbq9Y]
ローカル変数に属性ってつけられない感じ?

329 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 11:05:12.18 ID:izVfMrBs]
うん
というか付けてどうするんだ

330 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 13:23:29.95 ID:MX2IhFCN]
闇属性 外部から不可視になる



331 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 13:48:25.06 ID:8U+RhpvH]
水属性 参照型は値型に、値型は参照型になる

332 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 16:04:29.40 ID:c3Q0rGbO]
ヘンタイ属性 お前ら

333 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 17:04:07.99 ID:mi+P20vl]
なんかキモい流れ

334 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 11:01:32.36 ID:xSUe5qhE]
中ニ病でも.NETがしたい

335 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 11:25:59.65 ID:6XNtQ4R5]
>>207
Excelはやたらとあるのに、Word関係の情報少ないよな・・・
同じ感覚で文章出力出来るかと思って安易に受けたら、ちょっとしたことでもえらく苦労した記憶が

336 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 22:51:07.44 ID:unuMLq/O]
まともな文書になると普通はお好みのスクリプトとTeX使うからね
オフィスなんか使うバカに情報発信はできないからドキュメントが少ないのは仕方が無いよ

337 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 02:36:28.02 ID:CO6CxSEW]
(´・∀・`)ヘー それでそれで?

338 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 04:15:33.16 ID:prlxKI3U]
エクセラとかワールドとかコンマネッツとか
ここは難しいインターネッツですね

339 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 06:47:52.33 ID:m/3Cotp7]
c#Nativeのデスクトップアプリ作れるやつは
いつ頃出るんでしょうか?

340 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 06:54:20.47 ID:0Ta/ZJrX]
我々が生きているうちに拝むことはないでしょう



341 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 07:08:15.84 ID:m/3Cotp7]
>>340
それは確かですか?
c#Native出たら使いづらいc++やめてc#一本で
行きたいんですが。

342 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 07:59:05.22 ID:FbSc8Swp]
>>335
まあ、文章の処理ならテキストでやるし、出力の一部変えたいだけなら差し込み印刷あるし、ちゃんとした組版やるには力不足で色々面倒だし...
昔、Word に入力されてる表を Excel に転記したいと言う依頼で一寸触ったきりだな ⇒ Word VBA

343 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 08:43:59.98 ID:NviPB3le]
.NETの入ってないWindowsはもう無いしWin8ストアアプリなら.NETはネイティブ扱い
もう完全にネイティブだよ

344 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 19:51:14.67 ID:XvpxJEVk]
> .NETの入ってないWindowsはもう無いしWin8ストアアプリなら.NETはネイティブ扱い
> もう完全にネイティブだよ

何言ってんのか全然わからん
誰か訳してくれ

345 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 19:54:17.27 ID:OiZYTZUA]
ランタイムが不要なバイナリはネイティブだ!
って言いたいんだろ。何言ってるのか全然分からんなw

346 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 20:35:36.17 ID:7Gl9qGxi]
ネイティブの定義が曖昧

347 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 21:26:01.92 ID:wftUG4Xi]
OSがサポートしてればネイティブ
ランタイムが必要ならネイティブじゃない

348 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 21:36:58.45 ID:7Gl9qGxi]
msvcrが動的リンクだとネイティブじゃないと

349 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 21:58:55.52 ID:wftUG4Xi]
その通り

350 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 22:08:47.73 ID:OiZYTZUA]
マジにそう思ってそうだな



351 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 22:23:42.93 ID:01rpyJ3E]
IEでサポートされてるからJSもネイティブ

352 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 22:44:22.12 ID:dPnVK8av]
ネイティブインディアン

353 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 22:50:08.44 ID:dmrdHCKV]
世界一周してインドに着いたぞ
土人が居るぜ?きっとインド人だ
残念アメリカ大陸でした
じゃぁネイティブインディアンだね
インド人もびっくり

354 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 23:35:24.92 ID:wftUG4Xi]
ネイティブと否ネイティブの違いなんかないよ
突き詰めれば全てネイティブな命令で動いてるからね

355 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 23:45:03.13 ID:XvpxJEVk]
>>354
コーヒー吹いたw

356 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 23:54:04.43 ID:unkGA5W+]
>>347
OSがサポートするってのとランタイムが必要ってのは排他的な概念なのか?

357 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 00:24:22.85 ID:uV5nbiP8]
ターゲットをWindows7以降と考えると
標準インストールの3.5はもはやOSの一部

システムDLLに依存するかGACのDLLに依存するかの違いでしかない

358 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 00:28:44.62 ID:iw87ytFg]
> ターゲットをWindows7以降と考えると
> 標準インストールの3.5はもはやOSの一部

だから何で無理やり仮定するんだよ
MSの努力を無駄にするなw

.NET自体ネイティブじゃないのにランタイム云々言われても

blogs.msdn.com/b/hirosho/archive/2010/01/09/managed-native-net-framework.aspx

しかしネイティブな命令ってどんな命令なんだ?
気になって寝られない

359 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 00:46:12.13 ID:buRKsp6U]
二進数の事だよ

360 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 00:56:59.62 ID:uV5nbiP8]
ああ、Vistaってまだサポート残ってたんだな
ngenサービス起動で実質ネイテイブってことでOK?

>>347
VCのってmsvcrtに依存してるやつ多くね?
あと2008 Redestribute入れろってよく怒られる

ネィテイブ信奉者には
CDとかUSBに書き込んで起動でOS介さずに
動くプログラムを作ってもらいたい。
USB売ってファミコンみたいなビジネスできないかな



361 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 01:21:56.66 ID:JQaGUgSW]
Microsoft .NET Nativeとか出てくるんだから、今の .NET はネイティブじゃないんじゃないの。

362 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 06:09:37.34 ID:O/hcGSXl]
OSがサポートしてればネイティブ論法なら.batはどうなるの

363 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 06:43:01.93 ID:4zx449Wa]
ネイティブってことだろうな
VCでビルドしたもんはほとんどが非ネイティブw

364 名前:デフォルトの名無しさん [2014/05/09(金) 07:17:50.07 ID:cCUVEC+A]
ランタイムを介さないで、CPUのインストラクションコードで、OSのAPI直接呼び出して実行されるプログラムをネイティブと呼ぶなら、そんなカテゴリは無意味になりつつある。

まず、CPUの速度向上で、ランタイムのオーパーヘッドが問題になることが、無くなった。

ガベージコレクションのように、ライブラリのリンクより、ランタイムで実行した方が効率のいいサービスが一般化している。

OSの低レベルなAPIはランタイムでラップしないと、セキュリティホールが発生しやすいし対応しにくい。

近年は、ブログラムやシステムの複雑化や肥大化が進んでいるから、実行効率より保守性や移植性を優先すべきになった。


つまり、デスクトップ環境においては、ネイティブなコードに拘る意味が無い時代になったんじゃないかな。少しさみしいけど。

365 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 07:33:46.00 ID:4zx449Wa]
>>364
.NETのことも.NET nativeのことも、なんもわかってないなw

366 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 07:37:23.14 ID:k6RX7FOd]
スマホアプリ作りの世界だと
ネイティブ=プラットフォーム依存
非ネイティブ=プラットフォーム非依存
で括られることが多いみたいだね
だからAndroidのJavaモドキはネイティブでUnityのC#は非ネイティブ

367 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 07:38:44.53 ID:yGvDvFNw]
変な希望を捨ててC++使ってればいいんだよ

368 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 08:29:16.28 ID:giBvEpb/]
C++11や14の機能みておもしろくなったなーとは思う
けど、どうせ使うのはC#かと思って手が出せないな

369 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 12:04:13.73 ID:HTr67Xym]
そこでまさかのC++/CLI

370 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 13:15:40.54 ID:YiLzwXxL]
それだけはないわ



371 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 14:49:24.40 ID:Mr0Sp7Ii]
nativeを土着と訳せば >>366 で問題ない

372 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:43:03.89 ID:k6RX7FOd]
つまりC#はエイリアンか

373 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:56:12.53 ID:NDcf6f8g]
>>366
darvik(VM)上で動くコードをネイティブって言う人見たことないぞ。
>非ネイティブ=プラットフォーム非依存
こんなこと言う人はもっと見たことない。

374 名前:デフォルトの名無しさん [2014/05/09(金) 20:18:57.37 ID:v/oaYztB]
C#マシンみたいなの作ればええんか?

375 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 20:22:28.06 ID:7rX/IBWU]
AndroidででネイティブっていうとNDKだね

376 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 21:01:57.37 ID:iw87ytFg]
仮に.NETがネイティブだったとしてなんかいいことあるのか
主張自体の意味が分からん

377 名前:デフォルトの名無しさん [2014/05/09(金) 21:05:29.92 ID:E9SfM4pV]
ネイティブだと時間かけてコンパイルできるから
最適化がカリカリに効いて超早くなるらしいね

378 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 21:19:32.89 ID:4zx449Wa]
難読化が不要になるかもしれない
anycpu向けにネイティブも含むって形のビルドだと不要にならないが

379 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 22:19:04.91 ID:aGSQbVG9]
ネイティブっていうのはもともとのとか生まれたところのとかいう意味だったはず
つまりWindows上でビルドされたアプリケーションはすべてネイティブなのだ!!!

380 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 23:03:28.43 ID:WJR4c6c3]
ΩΩΩ<な、なんだってー!!



381 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 23:47:40.08 ID:YiLzwXxL]
まあ、JIT でコンパイルされたコードとか悩ましいものもあるからなぁ

382 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 07:43:33.83 ID:rYs4anx5]
>>377
ngenは起動時間短縮も含めてかなり高度なAOT最適化がかかるよ
経験があれば感覚的に分かってるもんだが、
ネイティブのコンパイルって時間かけたからってそんなに速くなるもんじゃない
コンパイル時間ってほとんどIOだしな

383 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 13:47:56.20 ID:m/AO6ufT]
実際はおそらくいまだに実現してないと思うけど、.NETが出たときネイティブコンパイルに対する
JITの利点として挙げられたのが「実行環境のCPUの命令セットに対応した最適化が可能になる」
だったのを知らない奴がいるねw

384 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 14:35:11.11 ID:Om1HfajV]
いきなりそんなちんけな知識披露してどうしたいんだ? (w

385 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 17:29:27.79 ID:libkbDSO]
その調子で UCSD p-System を褒め称えてんくれたまえ

386 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 23:34:14.22 ID:JsdyMFBf]
C++14なんて出来たのか
学生で暇だったから11まではなんとか着いて行ったが
仕事で.NETに毒されてもう勉強する気にはなれんなぁ

387 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 23:44:30.25 ID:+eAN56dx]
>>383
そのx86系向け以外の実装がなかなか出てきてくれないのがなー
Xamarinくらいだっけ?実用的なの

388 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 23:49:21.32 ID:smOEHBq/]
IA64とかARM(CF、WP、RT)とかあるだろ

389 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 01:27:29.19 ID:U/KhMBzc]
>>387
いや元々は必ずしもそんな大風呂敷な話じゃないよ。
というのはx86って一口に言っても最大公約数的な部分以外の命令は共通じゃない。

390 名前:デフォルトの名無しさん [2014/05/14(水) 00:47:16.22 ID:K0yI8GQ1]
C#でブラウザを操作しようとしていますがエラーが出てしまいます。
WebBrowserコントロールではなくIEを直接操作したいです。

以下コードを実行したところエラーが出てしまいました。
IEを直接操作する場合には、 getElementById("***"); の
コードを使う事は出来ないのでしょうか?


≪コード≫
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
mshtml.IHTMLElementCollection mshtml_ec;
mshtml_ec = ie.Document.getElementById("id_test"); ←ここでエラー

≪エラー ≫
型 'mshtml.HTMLDivElementClass' の COM オブジェクトを
インターフェイス型 'mshtml.IHTMLElementCollection' にキャストできません。

IID '{3050F21F-98B5-11CF-BB82-00AA00BDCE0B}' が指定されたインターフェイスの
COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、
この操作に失敗しました: インターフェイスがサポートされていません
(HRESULT からの例外:0x80004002 (E_NOINTERFACE))。



391 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 00:49:50.84 ID:emzrQeCt]
mshtml.HTMLDivElementClass div = ie.Document.getElementById("id_test");

392 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 01:05:18.64 ID:4vw7qdQU]
イメージ的にはこれしてるからエラーになる
int element;
int[] collection;
collection = element;  ←エラー
collection[0] = element; ←エラーではない(初期化されてないのは気にするな

393 名前:デフォルトの名無しさん [2014/05/14(水) 03:12:41.94 ID:bi1kolXx]
>>391 >>392

mshtml.HTMLDivElementClass div = ie.Document.getElementById("id_test");
     ~~~~~~~~~~~~~~~~~~~~~~
このコードに置き換えたところ

Interop type 'mshtml.HTMLDivElementClass' cannot be embedded.
Use the applicable interface instead.


というエラーが出てしまいます。どうやら HTMLDivElementClass 自体が
認識されていない様ですが皆さんの環境では普通にビルド通るのでしょうか?

394 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 04:00:10.69 ID:k2UyUu49]
>>393
id_testは<div>なのか?
getElementByIdが返してるもの良く確認してみろよ

395 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 08:38:22.58 ID:ICklhj5Y]
IHTMLDivElement辺りのインターフェイス使えば

396 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 12:08:24.76 ID:lHqltGg+]
TからSomeClass<T>に変換するジェネリックなimplicit operatorを作るには
どのように書けば良いですか?

397 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 12:16:58.20 ID:ICklhj5Y]
SomeClass<T>にそのまま書けば良いんじゃない? とりあえず4.5なら通った

398 名前:デフォルトの名無しさん [2014/05/14(水) 12:18:55.70 ID:0F7NlhK7]
>>394 >>395
mshtml.HTMLDivElementClass div;
//Interop type 'mshtml.HTMLDivElementClass' cannot be embedded. Use the applicable interface instead

そもそもこの定義をするだけでエラーが出てしまいます。

399 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 12:41:44.92 ID:lHqltGg+]
すいません、ミニマムコードを簡略化しすぎました。

SomeClass1を継承したSomeClass2<T>があって、
Tから変換されたSomeClass2<T>をSomeClass1として返すoperatorが
ほしいです。

400 名前:393 [2014/05/14(水) 13:05:07.85 ID:0F7NlhK7]
どなたか >>398 のエラーを解決してくださいm(-_-)m



401 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 13:10:20.17 ID:4vw7qdQU]
>>400
social.msdn.microsoft.com/Forums/en-US/f938ac22-08cf-430e-b13f-c63b50f1943c/error2interop-type-mshtmlhtmldocumentclass-cannot-be-embedded-use-the-applicable-interface?forum=csharplanguage

402 名前:393 [2014/05/14(水) 15:53:27.07 ID:0F7NlhK7]
>>401
結局、InternetExploreを直接操作する場合には

ie.Document.Getelementbyid();

使えないってことですか?

403 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 15:58:33.20 ID:ICklhj5Y]
>>402
>>395
HTMLDivElementでもいいけど

404 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 16:00:14.37 ID:4vw7qdQU]
使えるって。エラー原因も書いてあるじゃん

405 名前:デフォルトの名無しさん [2014/05/14(水) 22:19:20.87 ID:hc7I7FLC]
>>403 >>404 ありがとうございます。出来ました!

406 名前:デフォルトの名無しさん [2014/05/15(木) 08:23:27.55 ID:yeWrapbB]
横からだけど、あれってどういうときに埋め込みCOMを使えないの?
なんとなくクラスじゃなくてインターフェイスにしたら行けたような記憶はあるんだけど
具体的にはどういう仕組なんですか

407 名前:デフォルトの名無しさん [2014/05/16(金) 01:13:32.52 ID:i/xGMuQU]
指定したIDの取得が出来たかどうかを判定する為に
以下コードを記述したのですがエラーになってしまいます。
この場合、どういう風に記述すれば良いのでしょうか?


【コード】
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
if (ie.Document.getElementById("WS2m") != System.DBNull) ← エラー

【エラー】
'System.DBNull' is a 'type', which is not valid in the given context

408 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 01:31:59.80 ID:tdv/NjoT]
is

409 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 04:25:55.78 ID:iWose0vD]
なぜでこれで大丈夫だと思ったのか逆に聞きたい

410 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 09:26:59.63 ID:z9IT6DkQ]
if (ie.Document.getElementById("WS2m") != null)
じゃないの?



411 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 09:32:42.61 ID:WHbqzO3I]
>>407
DBNullと比較したいならDBNull.Valueだろ
なんでDBNullが出てきたか知らないけど。
キミが書いたコードは値と型を比較してるからコンパイルできないのね

412 名前:デフォルトの名無しさん [2014/05/16(金) 11:11:03.95 ID:qpQIOLBV]
IEを自動巡回するプログラムでメモリリークする場合の対処法ありますか?
MSが配布している「Windows Server 2003 Resource Kit Tools」というツールの中に含まれている「empty.exe」を実行するように組み込んだのですが、
2〜3時間起動させておくとメモリがとんでもないことになっています。
何か対策あれば教えてください。

413 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 13:33:39.95 ID:VAV/Ywcf]
empty.exeでぐぐると頭悪そうなブログが大量に引っかかるな

あなたIEのオートメーションで質問してる人でしょ?
COMオブジェクトを適切にMarshal.ReleaseComObjectしてないとそうなると思うよ

414 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 13:44:57.44 ID:wDpDXYS0]
定期的にプログラム再起動させたらいいw

415 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 14:28:13.57 ID:WW/l1jAv]
ほう、こんなツールがあったのか
しかしこれをメモリ開放ツールと宣伝するのはいかがなものか

416 名前:デフォルトの名無しさん [2014/05/16(金) 14:36:51.56 ID:dX1r0FTl]
>>410 >>411
if (ie.Document.getElementById("hoge") != DBNull.Value) ・・・(X)
{
  // ie.Document.getElementById("hoge") 指定IDの取得が出来た場合の処理
  ブロック:A
}
else
{
  // ie.Document.getElementById("hoge") 指定IDの取得が出来なかった場合の処理
  ブロック:B
}

上記の様にコードを修正しました。
すると、指定したIDの取得が出来た場合には(X)の部分で次のエラー
メッセージが表示されます。

演算子 '!=' を 'mshtml.HTMLDivElementClass' と
'System.DBNull' 型のオペランドに適用することはできません


出来なかった場合には、エラーはDBNull.Valueで正常に判定され
ブロック:Bに入ります。

以上を踏まえどういうコードを書けばIDが取得出来た場合、出来なかった場合とを
きっちりと判定する事が出来ますでしょうか?

417 名前:416 [2014/05/16(金) 15:21:57.53 ID:dX1r0FTl]
どうしても解決出来ません。
何とかお教えください。

418 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 15:27:29.07 ID:VAV/Ywcf]
DBNullなんてどこから出てきたの?
nullと比較しろって>>410が書いてるけどそれは確かめたの?

きちんと基本から勉強したほうがいいよ
IEとかじゃなくてC#の文法からさ

419 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 15:28:40.77 ID:VAV/Ywcf]
一度変数に受けたらどうよ。。

var element = ie.Document.getElementById("hoge");
if( element != null )
{
 ...
}
else
{
 ...
}

420 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 15:36:36.90 ID:+9XdxNxU]
! DBNull.Value.Equals(...)



421 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 15:38:49.49 ID:3SEf4bpg]
>>419
スクレイピングとかでぐぐれば

422 名前:デフォルトの名無しさん [2014/05/16(金) 17:56:19.30 ID:ymohds+z]
>>418 >>419 >>420
ありがとうございます。>>419で解決しました!

因みにですが、
var element C#なのに型の宣言をせずに変数を定義する事が出来るのですね。


>>421
スクレイピングでぐぐってヒットするブログですが作者の
オナニーコードだらけで参考になるページがありませんでした。

423 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:08:22.53 ID:MfiAbdMM]
隣のスレからvar厨とアンチvarを動員すべき?

424 名前:デフォルトの名無しさん [2014/05/16(金) 18:19:25.77 ID:ymohds+z]
>>423
よくわからないけど、型定義いらんの?

425 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:23:57.81 ID:gv27ESQ0]
>>424
型定義が要らないんじゃなくて、型を指定しなくてよい
コンパイラ様が型を推測して決定してくれる

426 名前:デフォルトの名無しさん [2014/05/16(金) 18:54:07.73 ID:oTvEFO9A]
>>425
>コンパイラ様が型を推測して決定してくれる
凄く心配です。大丈夫なんですかね。コードの記述方法として

427 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:03:06.75 ID:5Dsd57Kf]
相談室の方で侃々諤々やってたから見てくると良いよ

428 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:48:26.77 ID:EwsF+ox0]
>>426
DBNullとNullの違いも分からないレベルなら
全く心配する必要ないから安心してください

429 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 19:55:42.13 ID:XsRxTYeM]
varのおかげで彼女が出来ました

430 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 20:54:47.74 ID:T9bJjjvZ]
かなり初歩的な事だと思いますが教えて下さい<m(__)m>
C#です。


private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = ((Button)sender).Text;


ボタンをクリックすると、そこに入力されている文字が
『textBox1』に表示される文だと思うのですが、

((Button)sender).Text;

ここの部分はなぜこのようになるのでしょうか?

(Button)sender => これはsenderをButton型にキャストしている?

((Button)sender).Text; => なぜ().Text このTextの前の括弧も必要なのですか?


長文すいません<m(__)m>



431 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 20:56:46.78 ID:VAV/Ywcf]
ずぶの初心者がIEオートメーションとかやりだして
dynamicだらけになると教育上よろしくないとは思う

432 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 21:01:50.46 ID:VAV/Ywcf]
>>430
>(Button)sender => これはsenderをButton型にキャストしている?

はい。

>((Button)sender).Text; => なぜ().Text このTextの前の括弧も必要なのですか?

メンバーアクセス演算子(.)のほうが演算子の優先順位が上なので
(Button)sender.Text
と書くと
(Button)(sender.Text)
の意味になっちゃうからね。sender(object型)にはTextなんてメンバーはないからこの場合コンパイルエラー。

433 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 21:09:28.95 ID:5Dsd57Kf]
括弧が増えるのが嫌で、キャスト失敗可能性がないところでもつい
(sender as Button).Text
ってas演算子を使ってしまう

434 名前:430 mailto:sage [2014/05/16(金) 21:11:50.84 ID:T9bJjjvZ]
>>432
早速の回答ありがとうございます!
なるほど、そういう事だったんですね!

ここがなぜそうなるのかずっと分らなくて困ってましたw

ありがとうございました<m(__)m>

435 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 23:33:00.07 ID:H9byKZWo]
d.hatena.ne.jp/yjochi/20140516#1400218482
AssemblyInfo以外に端末固有で埋め込まれる情報ってないんだっけ?

436 名前:デフォルトの名無しさん [2014/05/17(土) 14:00:31.48 ID:QUUNT5cx]
>>428
回答するだけの知識が無いのですね。
正直にそうおっしゃっていただければ良いものを。

437 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 15:51:04.81 ID:bGHl19aa]
>>436
そういうパターンもあるが流石にコレは違うだろ
DBNull知っててもなんの自慢にもならんしな

438 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 19:55:39.06 ID:Sq+cRhDG]
質問させてください。

C#でTreeViewとTextBoxを使ったアウトラインプロセッサを作ろうと思っています。
以下の様な設計になると思うのです。

//ノードの内容を保持するクラス
public class myClass
{
public string Title { get; set; } //ノードのタイトル
public string Contents { get; set; } //ノードの内容
}

1 myClassのインスタンスをTreeNode.Tagに代入する。
2 TextBoxを使ってmyClass.Titleが変更されたらTreeViewに表示されている該当ノードのテキストを更新する。

この場合、((myClass)TreeView.SelectedNode.Tag).Titleが変更されるたびに
TreeView.SelectedNode.Text = ((myClass)SelectedNode.Tag).Title;
とする必要がありますよね。
TreeView内ノードのTagのプロパティが変更された通知をTreeViewで受け取ってイベントを起こす、というのは、どういう実装になるのでしょう。
TreeViewかTreeNodeをオーバーライドする必要があるのか?
それぞれを継承したコントロールを作るべきなのか?
あるいは設計が間違っているのか?

ご意見をうかがいたいです。どうぞよろしくお願いします。

439 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 20:09:47.62 ID:uBMVVO4L]
TreeNodeを継承したクラスを作るかな

ちなみに質問なんだけど
ノードは子ノードを持たないのかな?

440 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 20:12:07.75 ID:LIsFRLLH]
イベント通知は
public event EventHandler TitleChanged;
private string _Title;
public string Title{
 get{return _Title;}
 set{
  if(value!=_Title){
   _Title=value;
   if(TitleChanged!=null) TitleChanged(this,EventArgs.Empty);
  }
 }
}

が基本
イベントはINotifyPropertyChangedを使うのが普通だけど



441 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 20:29:37.40 ID:Sq+cRhDG]
>>439
ええっ、持ちます。何か問題があるんですか……?

>>440
どうもありがとうございます。やってみます。

442 名前:デフォルトの名無しさん [2014/05/17(土) 23:10:58.28 ID:wL9K2nHt]
ゆうちゃん事件で.NETアプリにはコンパイルした環境の情報が知らぬ前に埋め込まれてるって言ってたな

443 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 23:17:41.09 ID:iBaM0QV5]
>>442
それなら、回りくどい立証など必要ないはずだが、コンパイルだってリモートでできるから無意味だよなw

444 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 23:46:19.11 ID:LIsFRLLH]
試しに空exeをコンパイルしてみたら16バイト違う箇所があったからGUID埋めてるんだろうな

445 名前:デフォルトの名無しさん [2014/05/17(土) 23:58:33.92 ID:QUUNT5cx]
ゆうちゃんかわいそう

446 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 00:34:23.47 ID:krGu/iNt]
>>443
署名してなきゃいくらでも弄れそうだが証拠になんのかな

447 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 08:27:27.43 ID:8NF5w4j9]
GUIDから環境の情報を取り出すのは不可能
今のコンパイラが埋め込むGUIDは完全ランダム

448 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 08:47:28.12 ID:4DaHWzr8]
gui部分だけqtを使いたいのですが一番シンプルなスレットセーフの
作り方を教えてください。

qtイベント周りが馴染めない・・・

449 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 09:51:39.63 ID:VTr3IL1L]
スレチ

450 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 12:43:55.68 ID:rnQSzLo4]
>>447
このPCでビルドしたらこのGUIDが埋め込まれる。だからこのGUIDと同じGUIDが埋め込まれてたらそのPCだ
って判断してたと思うんだけど、毎回GUIDが変わったりしてそれができなくなったのか?



451 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 16:43:38.42 ID:0bx4PTQ0]
そもそも埋め込まれるGUIDって属性とかで指定できるんじゃないのか?

452 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 00:27:02.82 ID:/VRh8m5q]
GUIDなんて自分で簡単に書き換えられるじゃんバカなの?

453 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 00:41:36.09 ID:vP4RlhBD]
そりゃ変更できるよ。変更したもしくはそのまま変更しなかったGUIDが
比較対象のソフトもしくは開発環境と一致する可能性がどんだけあるんだって話だよ。バカなの?

454 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 05:33:09.82 ID:nxdI4+Ig]
変更しなかった、ランダムな値が一致する率は低いだろうけど
指定した値に変更出来るんじゃって話だぞ

一致するように変更して偽装出来るんじゃないかって話だろ、バカなの?

455 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 07:13:42.59 ID:tIfFnZmg]
素人探偵様は晩ご飯の推理でもしてろ

456 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 17:49:01.81 ID:MpNqRu0Y]
これで有罪確定だな。
以前片山の質問に答えたかもしれないから罪悪感あんだよね。

457 名前:デフォルトの名無しさん [2014/05/19(月) 22:45:34.31 ID:FLEQJh3I]
簡単な画像処理プログラムを作っています。
openFileDialog1.ShowDialog()でファイルから画像を読み込む際、ダイアログ上で画像のサムネイルをダブルクリックして決定すると、
たまたまダイアログの背後に隠れていたpictureBox1のMouseUpイベントが反応してしまいました。
これを回避する方法はありますか?

458 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 23:39:10.23 ID:ZuQxAEmV]
マジだ知らんかったわ

459 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 01:18:08.42 ID:rgNkrX1X]
MouseDown後のMouseUpのみ処理するようにすれば済むけど、
泥臭いし後から意図をくみ取りにくいな。

460 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 03:08:08.84 ID:l8495QE8]
C++使えるのにわざわざC#でウィルス作成する理由なんてあるの?
身分証明書付きで犯行予告送るようなもんじゃんw



461 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 03:14:41.97 ID:f9YPeLav]
コピペだらけでC#を碌に使えない奴がC++でウイルスを作れるわけないだろ。

462 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 04:23:21.41 ID:7+uR1JPv]
ウイルス作り慣れてるならC++なんだろうけど
初めてやるようなもんは、C#の方が開発時間短くすむ

463 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 07:03:13.53 ID:l/MaaGVr]
ここで話さないと死ぬのかてめーは
死ぬか?今

464 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 09:36:21.71 ID:lETONsi7]
>>463
ゆうちゃん乙

465 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 13:00:25.93 ID:fbMM1sIr]
>>457
DobuleClickイベントは2回目のMouseUpを受け取って初めて成立するもんだろ・・・
Windowsの設定を変えてシングルクリック操作に統一してしまえw

MS> バグだけど直せない
https://connect.microsoft.com/VisualStudio/feedback/details/692962/

466 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 13:30:12.03 ID:7+uR1JPv]
馬鹿っぽいけどbuttonup受信用のダミーフォームを下に開いとけば簡単に解決しそう

467 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 18:03:25.74 ID:lETONsi7]
透明フォームはマウスイベント拾わないからダメかと

468 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 18:31:15.07 ID:lvkbfHG0]
ダイアログを表示する前にフラグたてておく

最初のMouseDownでフラグを下げるようにして
フラグがたってるときのMosueUpは破棄

で解決やん

469 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 18:32:01.00 ID:lvkbfHG0]
増江アップ……

470 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 20:18:32.63 ID:BlDb7c/c]
>>468
>>459



471 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 20:45:52.40 ID:lETONsi7]
じゃあ継承だな

472 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 21:59:07.61 ID:/BZAV6I+]
Rx…

473 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 22:06:30.13 ID:wdE7nCB8]
ステートフルな操作になるのでRxでやることではないだろ
それを言うならasync

474 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 22:47:04.01 ID:z0N+xEYi]
俺もC#でウイルス作っちゃうぞ はい

System.IO.File.Delete("C:\")

475 名前:デフォルトの名無しさん [2014/05/20(火) 23:09:16.22 ID:eq9LTubx]
最近、C#の継承の仕方が分かったのですが、
ハッカーとして警察に捕まるレベルになったでしょうか?

476 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 23:15:28.47 ID:brd7BZh9]
冤罪のリスクがあるから今すぐVBエンジニアに転職した方がいい

477 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 23:19:31.02 ID:wdE7nCB8]
もしVB製ウィルス被害が問題になったら
世の中のVBドカタは本気でそういうこと言い出しそう

478 名前:デフォルトの名無しさん [2014/05/22(木) 03:08:29.96 ID:QIcUg8Dq]
Debug.WriteLineですがあくまでもデバッグ時に使うコードですよね?
別にビルドが完了して実行モジュールにする際には
消した方が良いのでしょうか?

動作には関係が無いのでそのままデバッグコードを
残していても問題が無いのかなぁーと思いまして

479 名前:デフォルトの名無しさん [2014/05/22(木) 03:12:23.80 ID:6uPwquR0]
ほっとくと際限なく増えるから俺は消す

480 名前:デフォルトの名無しさん mailto:rr [2014/05/22(木) 09:37:59.45 ID:T9dtrulV]
メディカルサイト歯科相模原.日吉サンテラス歯科.藤沢なのはな内科 スマイル歯科.亀有 リリオ歯科.八王子 アクロスみなみの歯科.足立 ハート歯科新宿くろさか歯科熊本ファミリー歯科伊勢原桜台歯科森林公園滑川モール歯科横浜いちょう歯科.小田原めぐみ歯科ホワイトスタイ



481 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 09:45:06.90 ID:EDjucqfY]
>>478
リリースビルドならコンパイルされないから見づらくならない程度にのこしとけ

482 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 11:48:23.22 ID:jxaWow30]
残す理由が無ければ消す
コメントと同じくきちんとメンテされなければ有害

483 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 11:56:22.32 ID:J69IBQnE]
VS2012で作ったプロジェクトをVS2010で開く方法ってあります?

484 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 19:47:26.98 ID:bw4eV9eT]
slnファイルのバージョン書き換えで

485 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 20:02:54.09 ID:J69IBQnE]
>>484
出来ました、ありがとうございます

486 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 23:21:58.64 ID:M0DqzqG/]
C++のテンプレートパラメータのように
ジェネリック引数に数値を使うことはできないのかな?

487 名前:デフォルトの名無しさん mailto:sage [2014/05/22(木) 23:26:24.56 ID:ECkRJuZ0]
無理
今時そんなことで速くはならんよ

488 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 20:47:48.22 ID:Fzc1d2cw]
プロジェクト構成ファイルを操作するためのライブラリはありますか?
地道にMSBuildの仕様を調べてXML操作するしかないのでしょうか?

489 名前:デフォルトの名無しさん mailto:sage [2014/05/24(土) 22:42:15.93 ID:Wl2IpIUu]
いやMSBuildというのはそのライブラリそのものだよ
.NETに入ってるMicrosoft.Build.〜のDLLと名前空間を使う
まあVSに生成されたXMLをベースにしてXML操作するほうが簡単だと思うけどね

490 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 15:59:32.50 ID:607flr5t]
JaneStyleのスレ欄やスレ一覧はフォーカスがなくてもホイールでスクロールできますが、
このときフォーカスが移動していません
(タブ部分をスクロールした場合はフォーカスが移動するようですが)

これと同様に、任意のControlにあるフォーカスを移動することなく、
別のControlをホイールでスクロールする方法はありませんか?
スクロール対象は今のところ以下のクラス(を継承したクラス)ですが今後増えるかもしれません
 (Rich)TextBox、WebBrowser、TreeView、DataGridView、
 TabControlのタブ及び中身、ComboBox、NumericUpDown、

※ちなみにテキストエディタと専ブラを足して2で割ったようなものを作るのが目的で、
 UIをできるだけJaneに近づけようとしてます



491 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 16:00:45.02 ID:xRi2p+wu]
ある

492 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 16:27:18.55 ID:607flr5t]
即答ありがとうございました
質問する時は時間帯を考えたほうがいいことが分かりました

493 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 16:36:07.92 ID:+O+pC0c3]
>>490
ホイールの移動量をフォームで取得して
コードで直接任意のコントロールのスクロールバーを移動させればいいよ

494 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 16:42:55.10 ID:b4+7ngHB]
IMessageFilter実装してWM_MOUSEWHEELでマウス位置のコントロール探してSendMessage

495 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 17:01:02.36 ID:4JTDEA8b]
>>490
やったことないのでただの言いっぱなしだけど、SPY+で見る限りコントロールの親のフォームは
入力フォーカスがあるコントロールより先にWM_MOUSEWHEELを受け取るようだから、
WndProcでこれを横取りしてマウスポインタの下のコントロールに投げてやればいいんじゃないの?

もちろんこの場合、少なくとも単純な実装では、逆に別のコントロールで入力フォーカスがあるときでも
ホイールのイベントを受け取れなくなってもしまうと思うが。

496 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 17:13:57.25 ID:607flr5t]
>>493
以下の方法で軽く試したら期待通りの動きをしてくれそうです
ありがとうございました

フォームのMouseWheelイベントに次のイベントハンドラを設定
private void Form_MouseWheel(object sender,MouseEventArgs e){
if( targetControl.ClientRectangle.Contains(targetControl.PointToClient(Cursor.Position)) ) {
// targetControlのスクロール処理
}
}
また、他のすべてのフォーカスを取りうるControlには次を設定
private void Control_MouseWheel(object sender,MouseEventArgs e) {
Form_MouseWheel(sender,e);
}

>>494-495
回答ありがとうございます
上記の方法では「すべてのControlに〜」の作業が面倒なので、その方法も調べてみます

497 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 17:20:34.56 ID:xRi2p+wu]
フォームとコントロールをそれぞれ継承して処理したほうがスッキリすると思う

498 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 17:26:09.59 ID:JNcJNPEt]
スレッドにフックかけちゃったほうが楽だろ

499 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 22:34:20.28 ID:ZAxnvFu2]
こういうお節介な処理を組み込んだGUIって使いにくいし保守も面倒だよね
GUIは可能な限りシンプルで余計なことをしないものが良いよ

500 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 22:39:40.33 ID:WRqaympE]
それで済んだら世の中のSEPGはほとんど失業するんだけどな
客がクソ細かいことに拘ってSEが無駄に複雑な要件を作り上げることで成り立つ業界だ



501 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 23:20:54.59 ID:RbuUC3oO]
一理はあるけどそれは言い過ぎだな。
それ以前に、>>490のいうような要件は今時のUIとしてはそんなに変則的なものじゃないように思う。

502 名前:デフォルトの名無しさん mailto:sage [2014/05/25(日) 23:31:33.60 ID:A1ke70fM]
今時とかそんなものはどうでもいい
俺の知らない物は全て「普通」ではないのだ

分かるかいこの意味

503 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 00:29:29.79 ID:JU7KLL2g]
松鶴家千とせ、ですね

504 名前:490 mailto:sage [2014/05/26(月) 00:51:42.84 ID:jkQwR0J8]
>>494を参考に検索ワードを変えて探したところドンピシャな記事を見つけました
ttp://someprog.blog.fc2.com/blog-entry-8.html
おかげで目的を達成できました

遅くなりましたが回答していただいた方、改めてありがとうございました

505 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 05:01:54.51 ID:Rz2xugPO]
>>499
ワンボタンマウスのMacでも使ってろ。

506 名前:デフォルトの名無しさん [2014/05/26(月) 09:39:10.38 ID:C5RAjArj]
Internet Explorerを自動操作していて特定の条件の際に
ie.Quit();   を実行してもブラウザが閉じない場合があります。
その際には、Internet Explorerのプロセスも生きたままです。

一体何が原因なのでしょうか?


どうしても原因を突き止めることが出来ません。

507 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 09:41:12.71 ID:QBzBPwJ7]
相談室の方で答えたネタなのだが

508 名前:506 [2014/05/26(月) 09:51:23.52 ID:C5RAjArj]
>>507
解決につながる回答を得られなかったのでここでも質問させてもらってます。

509 名前:デフォルトの名無しさん [2014/05/26(月) 09:52:38.71 ID:C5RAjArj]
>>507
396 名前:デフォルトの名無しさん[sage] 投稿日:2014/05/18(日) 04:22:37.98 ID:gCeF58LB
アウトオブプロセスのCOMサーバプロセスのサーバの寿命が気になるなら
・途中で手に入ったCOMオブジェクトすべてにMarshal.ReleaseComObject
・COMオブジェクト入れてた変数は全部参照を切ってGC.Collect×2
のどっちかが必要


こちらですか?
見落としてました。すみません。
再度試してみます。

510 名前:506 [2014/05/26(月) 09:57:49.91 ID:C5RAjArj]
取り敢えず、GC.Collect(); を使う方法を試したのですがIEが閉じません。。。
ie = null; の実行で参照も切れていると思っているのですが如何でしょうか?

ie.Quit();
ie = null;

GC.Collect() ;
GC.WaitForPendingFinalizers() ;
GC.Collect();



511 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 10:16:35.99 ID:Rz2xugPO]
また遠隔ウィルスでも作っているのか?

512 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 10:23:13.08 ID:QBzBPwJ7]
如何でしょう言われても知らんがな
とりあえずインスタンス作ってすぐQuitするところから始めてみれば

513 名前:デフォルトの名無しさん [2014/05/26(月) 10:31:42.35 ID:C5RAjArj]
>>511
黙れ片山

>>512
>とりあえずインスタンス作ってすぐQuitす
画面遷移したり、ボタンをクリックしたりと一連のブラウジングを行った後でQuitすると
閉じない場合があります。

514 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 10:32:53.03 ID:dlApJPlM]
>>506
特定の条件で起こる現象なんだから、その特定の条件ってのが原因だろjk
まずその特定の条件ってのを説明しろよ

515 名前:コード@ [2014/05/26(月) 11:03:16.41 ID:C5RAjArj]
以下のコードを実行すると、ブラウザが開き続けてしまいます。
ie.Quit(); をしているので本来は閉じないといけないのですが、、、


SHDocVw.InternetExplorer ie;
mshtml.IHTMLElementCollection mshtml_ec;
do
{
   ie = new SHDocVw.InternetExplorer();
string url = "yahoo.co.jp";
ie.Navigate(url, null, null, null, null);
ie.Visible = true;
while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy)
{
Application.DoEvents();
}

//検索ワードを入力
mshtml_ec = ie.Document.getElementsByTagName("input");
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
if (i_ele.getAttribute("id") != null)
{
string chk_id = i_ele.getAttribute("id");
if (chk_id == "srchtxt")
{
i_ele.setAttribute("value", "まんこ汁");
break;
}
}
}

516 名前:コードA [2014/05/26(月) 11:04:09.70 ID:C5RAjArj]
//検索ボタンを押下
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
if (i_ele.getAttribute("value") != null)
{
string chk_value = i_ele.getAttribute("value");
if (chk_value == "検索")
{
i_ele.click();
while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE || ie.Busy)
{
Application.DoEvents();
}
break;
}
}
}
   ie.Quit();
}while(true);


全くもって原因が不明です。他の方の環境でも再現できる筈です。

517 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:12:10.53 ID:82lch4Bs]
それWindows95のときからある不具合だから諦めろ

518 名前:515 516 [2014/05/26(月) 11:15:12.13 ID:C5RAjArj]
>>517
まじっすか、、、どうしようもないですか?

519 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:49:20.08 ID:QBzBPwJ7]
DoEventsやってるってことはUIスレッド? なのに無限ループ?

520 名前:515 516 [2014/05/26(月) 14:40:56.05 ID:C5RAjArj]
>>519

>>515 >>516 のコードは
こーいうコードを書いて実行するとブラウザが次々と閉じずに
開き続けてしまう、という事を再現する為のコードです。

なので、ループ処理は気におして頂かなくとも結構です。



521 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:56:36.39 ID:9Q4aKYkp]
Marshal.ReleaseComObjectは試したのか低能

522 名前:デフォルトの名無しさん [2014/05/26(月) 16:33:04.93 ID:4133VdBN]
>>521
 
>>510 これでダメだからいってるのですが。

523 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 17:40:40.25 ID:va4aBdBW]
>>522
そもそもこのコードビルドできないんだけど...

ついでに苦言。
サービス精神なのかどうか知らないが"まんこ汁"とか止めてくれ。
2ch見てる奴が全員こういう幼稚なノリが好きとか思ってるのならそれ勘違いだと思うけど。

524 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 17:54:03.59 ID:bnFeY7rL]
死ななきゃ治らない馬鹿の相手をするより重要なことはないのか君は

525 名前:デフォルトの名無しさん [2014/05/26(月) 17:58:49.66 ID:4133VdBN]
>>523
検索ワードはプログラムには関係ありません。
ビルド通りますよ。

このコードで100%ブラウザが閉じない不具合を再現出来ます。
誰かこの不具合の対処方法を教えてください。

IEのプロセス削除は最終手段として考えています。

526 名前:デフォルトの名無しさん [2014/05/26(月) 17:59:37.67 ID:4133VdBN]
絵〇画像を自動でダウンロードするプログラムを速く完成させたいのでお願いします!!

527 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:12:48.06 ID:QBzBPwJ7]
とりあえず参照が面倒だったんでType.GetTypeFromProgIDとdynamicに差し替えたけど
無限ループだからそりゃいつまでもiexplore.exeは落ちないよね、としか

528 名前:デフォルトの名無しさん [2014/05/26(月) 18:32:59.37 ID:pvygPOwn]
>>527
ええと。あのコードを実行すると普通であればInternet Explorerは1つのみ
起動 > 閉じる を繰り返してプロセスは1つのみ
となる筈が永遠と増えて行くんです。


1つ起動していたブラウザが2・3・4・・・etc


これをしない様にしたいのです。

529 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:36:03.98 ID:QBzBPwJ7]
じゃあ再現しなかったわ

530 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 18:42:23.37 ID:82lch4Bs]
IEは問題だらけだから、ある程度抑えることはできても完全に防ぐことはできない。諦めるしかないってw



531 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:17:22.27 ID:dlApJPlM]
!=と||とどっちが優先度高いんだっけ?

532 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:46:47.58 ID:9Q4aKYkp]
GCとMarshal.ReleaseComObjectはなんの関係もないんだが
まあいいっかIDであぼーんするわ

533 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 19:49:17.32 ID:SINryHCe]
>>531
||のが高かったらif(a != b || c != d)がコンパイル通らん

534 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 20:22:20.31 ID:dlApJPlM]
||って思ったより優先順位低いんだな

>>533
var a = true; var b = true; var c = true; var d = true;
if (a != (b || c) != d)
{
Console.WriteLine("TRUE");
}
else
{
Console.WriteLine("FALSE");
}
if (a != b || c != d)
{
Console.WriteLine("TRUE");
}
else
{
Console.WriteLine("FALSE");
}
コンパイルは通りそうだぞ

535 名前:デフォルトの名無しさん [2014/05/26(月) 20:44:19.66 ID:mCxtmcL/]
>>529
絶対嘘

100%再現するから

536 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 20:50:34.29 ID:dlApJPlM]
>>535
非標準のコンポーネントの詳細も書いてないし
環境もバージョンも書かんと何言ってるんだか

537 名前:デフォルトの名無しさん [2014/05/26(月) 20:53:07.43 ID:mCxtmcL/]
>>536
ビルドが通らないとか参照の仕方もしらないの?

そこまで説明しないといけないのかなぁ。

538 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 21:15:50.73 ID:82lch4Bs]
>>535
IEのバージョン、セキュリティ設定、実際にDLされるHTML(yahooIDのログイン状態)、BHOインストール状況など
によって変わるのに、
どうして100%再現するって言い切れるんだよ。全環境()で試したのか?

539 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 21:50:44.66 ID:SINryHCe]
>>534
そりゃboolなら通るだろ…

540 名前:デフォルトの名無しさん [2014/05/26(月) 22:36:45.64 ID:UuEHX9kM]
ie.Quit()の問題は仕事でやってかなり詳細に知っているけど
質問者の態度が気に入らないので教えないことにする



541 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 22:52:06.10 ID:nOrYSY4c]
>>540
奇遇だな

542 名前:デフォルトの名無しさん [2014/05/26(月) 22:53:59.00 ID:4FQEHWVJ]
>>540
ふぅーん。口だけならだれだって言えるから。

543 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 07:24:30.04 ID:r/M42T4V]
そうだね(笑)

544 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 09:11:54.76 ID:IeZvrdJj]
うちでは再現率は100%ではなかった

545 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 09:47:08.95 ID:E81Kc0WH]
口の悪いやつになんでわざわざ答えなきゃならんのか、
って思うよな。
後からきた経験者が答える機会も潰して損しかしてない質問者

546 名前:デフォルトの名無しさん [2014/05/27(火) 11:29:39.78 ID:W5P1i6tp]
>>544
嘘付おつ

>>545
では解決方法があったらぜひともお教えください。

547 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 12:47:16.15 ID:0EhNzMtu]
あーあ、コミュニケーションで損するタイプだな…
そんな言われ方して回答を寄せてくれる人がいるんだろうか…

548 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 12:52:57.93 ID:Oftvh7Y1]
半年くらいしてからキャラ変えて出てきたら?

549 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 12:56:32.14 ID:cxeUEEZL]
そもそもなんで素直にWebBrowserコントロール使わないんだろうな

550 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 13:15:54.93 ID:eBlMd5xN]
それ使っても同じだよ。原因そこじゃないから



551 名前:デフォルトの名無しさん [2014/05/27(火) 17:02:57.30 ID:+tr3QBuS]
>>550
何か良い方法はありませんか?

552 名前:デフォルトの名無しさん [2014/05/27(火) 21:51:09.60 ID:mRwKuMKj]
WPFのUIが小奇麗なので、
ガントチャートを作ってみたいと思ったのですが、
D&Dでタスク管理の横棒?を伸縮させるには、
どのような方法が考えられるでしょうか?

553 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 22:00:55.29 ID:DD/vw00f]
ガントチャートなんかHTML5なら優秀なライブラリが沢山あるよ

554 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 22:06:37.31 ID:E81Kc0WH]
WPFのD&Dは基本自力実装
一応Thumbとかあるけど

555 名前:デフォルトの名無しさん [2014/05/27(火) 22:08:36.61 ID:mRwKuMKj]
>>553
会社のパソコンがIE8なので、
HTML5は諦めてます。

556 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 22:11:25.64 ID:E81Kc0WH]
ガントチャートなんて四角だけで表現できるからIE8なら余裕

557 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 22:20:29.92 ID:6er5Tx/3]
質問に答えられないなら黙っとけよ

558 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 22:34:41.94 ID:DD/vw00f]
答えるもクソも「そういう風に作る」としか答えようがないからな
Adornerでハンドル作るのが正攻法だけど、それはあくまでWPFの設計に則った方法ってだけで
低レベルな仕組みなのでやっぱり面倒だよ
WPFのフレームワークはあまり気にしないで使い方を限定してゴリゴリ自力実装しちゃうのが結局一番簡単

559 名前:デフォルトの名無しさん [2014/05/27(火) 23:31:39.53 ID:mRwKuMKj]
WPFはXMLで動きのあるアプリが作れそうなので、
D&Dに対応したガントチャートも簡単に作れると思ったのですが、
やはり難易度は高いのですね。

せっかくなので、精進したいと思います。

560 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 01:00:29.59 ID:8Whh6uVJ]
精通してから来てね



561 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 04:14:47.97 ID:SHrGmvrs]
ここは初心者用のスレです

562 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 04:54:12.51 ID:bnZ7463i]
WPFはオワコン。

563 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 15:02:28.64 ID:lHhqz9Ih]
pdfからテキストデータを抽出する方法を教えて下さい

564 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 15:13:22.62 ID:hTKClsRx]
昔、生データから検索するやつ作ったときはかなり大変だった気が。
ググったらこういうのあるんだな

PDFをテキストファイルに変換する
d.hatena.ne.jp/veveve/20100111/1263208458

565 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 15:15:48.07 ID:EmUl6u0+]
>>563
PDF作成と違って、非常に難易度が高い。俺は自力の画像認識以外で読んだことない
PDFの権限設定、PDFのレイアウト、PDFのバージョン、実際のPDFの複雑さなんかによって
どの方法で実現できてどの方法が効率いいのかが決まる

・自力でPDFファイルからてごりごり読む
・PDFを扱うライブラリから読み出す
・adobeのSDK使って読みだす
・変換できるソフトや開けるソフト、変換サービス使う
・adobe reader画面から直接コピペ
・OCRソフトなどを使って読む
・自力の画像認識で読む

566 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 18:12:42.05 ID:zVPVrg22]
popplerで無理なら費用対効果に見合わないから諦める
誰かが開発費払ってくれるならともかく

567 名前:デフォルトの名無しさん [2014/05/28(水) 20:27:28.04 ID:bRRFYvET]
C#で現在起動しているエクスプローラーを全て閉じるには
どういうコードをかけば良いでしょうか?


例えば、 
c:\hoge_1
c:\hoge_1\hage_1

c:\hoge_2
c:\hoge_2\hage2


と4つのエクスプローラーが起動しいてる場合に4つともプログラムで終了させたいです。

568 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 20:37:58.29 ID:CRVEx+G9]
EnumWindows APIでトップレベルウィンドウを列挙して
ウィンドウクラス名が"CabinetWClass"なウィンドウにWM_CLOSEを投げるとか
昔はExploreWClassなんてクラス名もあったようだが

別の方法: IShellWindows::FindWindowSWでSWC_EXPLORERなウィンドウを見つけて閉じまくる

569 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 20:44:40.52 ID:bnZ7463i]
またウイルスでも作ってるのか。
外からエクスプローラ閉じるとか悪意あるプログラムしか思いつかんわ。

570 名前:デフォルトの名無しさん [2014/05/28(水) 21:05:12.21 ID:bRRFYvET]
>>569
片山お前と一緒にすんなボケ

>>568
ありがとうございます。試してみます。



571 名前:デフォルトの名無しさん [2014/05/28(水) 22:08:52.10 ID:bRRFYvET]
>>568
ありがとうございます!やりたい事が出来ました!!

572 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 22:53:23.98 ID:Z+ReeR99]
C#でandroidアプリ作りたいんですけど
無料で作る方法はないですか?

573 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 23:01:25.73 ID:llUj2n/x]
Unity
もしくはASP.NET MVCでWebベース

574 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 23:18:59.39 ID:EmUl6u0+]
Xamarin使ってるけどC#で作るのはマゾいよ。ほぼすべてjavaと同じだけど資料が少ないから疲れる
ほかのプラットフォームとソース共有したいのでなければ素直にjava使った方がいい

575 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 23:33:11.15 ID:llUj2n/x]
Xamarinセコいんだよ
せめてUnityみたいなライセンス体系にすれば間違いなくスタンダードになれるのにな
OSS文化から生まれた組織は今やすっかりプロプライエタリに傾倒して見る影もない

576 名前:デフォルトの名無しさん [2014/05/28(水) 23:34:52.10 ID:9p7tg2Sa]
Xamarin for VSって無料じゃないの?

577 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 00:46:01.42 ID:REuu9koM]
10万円ぐらいだっけ?

578 名前:デフォルトの名無しさん [2014/05/29(木) 06:27:28.72 ID:ZtWTRp16]
ID:C5RAjArj
ID:bRRFYvET

警察に通報しておこう。

579 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 09:18:55.61 ID:iAYH6GXX]
エクスプローラの閉じ方を教えています、って通報すんの?

580 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 10:49:48.16 ID:BtOWecue]
>>578
それは気づかなかったw



581 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 10:52:58.62 ID:SN8diILy]
今回のは証拠隠滅のやりかた聞いてたのか

582 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 11:42:50.85 ID:Mo2aVKPk]
ウィンドウ閉じたら消える証拠って……

583 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 11:58:44.38 ID:BzM20fyM]
えろ画像フォルダってことか・・・

584 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 14:05:48.90 ID:mvy8YiUU]
自分で試すと、閉じるのが面倒だから教えろってことでしょ

585 名前:510 [2014/05/29(木) 14:37:24.44 ID:wSZPgil+]
578 名前:デフォルトの名無しさん[] 投稿日:2014/05/29(木) 06:27:28.72 ID:ZtWTRp16
ID:C5RAjArj
ID:bRRFYvET

警察に通報しておこう。



↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
 
 やましい事は、一つもねーから警察別に来ても良いからさっさとやれwwwwwwwwwwwww

 お前が悪戯通報でぱくられるリスクの方が高いと思うぞwwwwwwwwwwwwwwwwwwwwwww

 早くやれwwwwwwwwww


↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

586 名前:デフォルトの名無しさん [2014/05/29(木) 14:52:44.67 ID:ZtWTRp16]
ID:C5RAjArj
ID:bRRFYvET 

こいつらマジヤバイと思う。安心してネットもできねーよ。

587 名前:デフォルトの名無しさん [2014/05/29(木) 14:55:07.02 ID:ZtWTRp16]
ID:ZtWTRp16 

こいつサイコパスだよ。こいつには何も教えるなよ。

588 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 14:59:44.03 ID:BtOWecue]
おまえは基地外w

589 名前:デフォルトの名無しさん [2014/05/29(木) 15:19:01.07 ID:ZtWTRp16]
いやおまえがキヂカイだよ。一体どういう用途でアプリがシェルを殺す必要があるんだ?
そこまで言うなら ID:BtOWecue が教えればいいのに何で教えてあげないの?

低スキルの低脳初心者だから?w

590 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 15:34:11.10 ID:Mo2aVKPk]
>>587
>>587
>>587
>>587



591 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 16:12:39.02 ID:BtOWecue]
>>589
>>568-571って言ってんじゃん。つまり終わってるんだよ。頭も悪いな
しかもウインドウを閉じる処理であってシェル殺すんじゃないんだよ。どんだけ初心者?

592 名前:デフォルトの名無しさん [2014/05/29(木) 16:43:55.67 ID:wSZPgil+]
バカ同士仲よくしろよ

593 名前:デフォルトの名無しさん [2014/05/29(木) 16:44:50.80 ID:sB+QOSLF]
\           /     /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  争  も  _   /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _   争   _
_  え  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,     _    え   _
_   : . と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,   _    :   _
_  :      _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _   :    _
             〃  /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,
/          \   /.: :/.: : : : /l : |/Гト、       / |_,ノ0:::ヽ : : :i : : : : :′ /        \
 /  |  |  \    | .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,  / | | \
              ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : : ′            ,ィ /〉
                |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : : :,          / レ厶イ
                 ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : : ′        /   ⊂ニ、
                い、: :\/   ̄ ̄                 ', : : i : : : : : : : : ,     _, -‐'    ⊂ニ,´
    r 、  _          ヽ: :〈        <  ̄ フ         |: : : ! : : : : : : : :′,.-‐T   _,. -‐'´ ̄
    くヾ; U|           | : \                   /| : : :i : : : : :_, -‐'    |  /
   r―'   ヽ、             | : : : \               イ: : :| : : :i_,. -‐       |/
    `つ _   ̄ ̄Τ`ー―-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'              |

594 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 17:07:47.60 ID:0wOQzE5z]
昼間から元気な奴ら…

595 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 22:32:28.17 ID:fB/59IAE]
           ∧_∧
        ,-、<    >    さてと・・・
       <ヽと  屑 )    お札を乾かすニダ・・・
       `´ (__○_ノ

596 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 01:10:51.26 ID:VMFeJkpe]
サイコパスだらけだな。

597 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 05:05:43.41 ID:iU8Ve7Yv]
>>596
サイコパスは作られた概念‥






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<144KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef