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

くだすれC#(Part2)

■ このスレッドは過去ログ倉庫に格納されています
0001毛の生えたブリーフNGNG
このスレッドは

「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

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

少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。

前スレッドはこちら
http://pc3.2ch.net/test/read.cgi/tech/1023766485/l50
0002デフォルトの名無しさんNGNG
2get
0003デフォルトの名無しさんNGNG
3get?
0004デフォルトの名無しさんNGNG
C#で作られた、一番大規模なソフトは?
MSがC#で作った、一番凄いソフトは?
0005毛の生えたブリーフNGNG
C#で「フォームデコードプログラム」を作成したいのですが、それらしき
クラスを見つけたのですが使い方が今ひとつわかりません(類似クラスがあって
使い分けが分からない)

どなたかミニ解説をおねがいします。
0006デフォルトの名無しさんNGNG
>>4
VisualStudio.NET
0007デフォルトの名無しさんNGNG
>>6
あれ、C#なの?
0008デフォルトの名無しさんNGNG
あ、C#かどうか知りたかったのか・・・
.NETはどの言語で書かれてるか分らんからなあ・・・
0009デフォルトの名無しさんNGNG
>>5

自分もこれを知りたい。

System名前空間のWebクラスで宣言されたメソッドを使うことまでは分かるけど、

using System. と打ってインテリセンスを起動させてもWebクラスが出てこない。

手書きして using System.Web; としたらコンパイルエラーがでる。

でもWebクラスがSystem名前空間にあることはヘルプを見れば一目瞭然。何がいけないのだろう。
まさか、Standerd版ではクラスの一部が省かれているとか・・・・。
0010デフォルトの名無しさんNGNG
>>9
参照の追加
0011デフォルトの名無しさんNGNG
>>9 前スレにもあったな、参照の追加しろよな。
しつこいから教えてやる。プロジェクトメニューを見てみな。

0012デフォルトの名無しさんNGNG
VisualStudio.NET統合環境(VB、VC++、C#)は全部C#で書かれてるらしいね。
なんかの本で読んだ気がする。
0013デフォルトの名無しさんNGNG
>>12
何の本?
フォームデザイナーなど一部かと。
0014デフォルトの名無しさんNGNG
ListViewを詳細表示にした場合に、各カラムにアイコンや、
任意の画像を表示したいのですが、可能でしょうか?

ダウンロード中のファイルの一覧をアイコンとともに表示し、
かつ、ダウンロードの状況をパーセンテージでグラフ表示し
たいのですが、、、

各行毎にアイコンを1つ表示するのは簡単にできるのですが、
複数表示したり、グラフを表示する場合のやり方がわからない
です。

よろしくおながいします。

0015デフォルトの名無しさんNGNG
>>14
無理にやればできないことはないが、まあ無理だと思ったほうがいいな。
オーナードローを普通に使えるListBox使う方がまし。
0016デフォルトの名無しさんNGNG
>>15
でも、結構、メーラとか2ちゃんぶらうざとかで、同じような
処理をやっているソフトがいっぱいあるのですが、どうやっている
のでしょうか?

オーナードローという機能でできるのでしょうか?

ちなみに、ListBoxって複数列はできないですよね?

よろしくおながいします。

0017デフォルトの名無しさんNGNG
>>16 ちょっとは自分でしらべろよ。
だから.NETじゃ普通には無理ってことだよ。
サンプルが
http://www.codeproject.com/cs/miscctrl/sortedlistview.asp
にあるからみてみ。
0018デフォルトの名無しさんNGNG
エクスプローラスタイルのインターフェースのサンプルって無いですか?
ドキュメントにはMFCを使ったVC++用の説明しか無いんです(;´д`)
0019521NGNG
>>18
ご希望のものはSplitterとか?
0020デフォルトの名無しさんNGNG
>>18
ms-help://MS.VSCC/MS.MSDNVS.1041/vbcon/html/vbtskcreatingintricateuserinterfacewithwindowsapplicationobjects.htm
0021DimensionNGNG
C#でもOpenGLは使えるのでしょうか?またはOpenGLの代替えのようなソフトはあるのでしょうか?
GDI+がそうなのでしょうか?3次元画像を扱うつもりなので誰か分かる方お願いします。
002216NGNG
>>17
サンクスコ。
0023デフォルトの名無しさんNGNG
>>21
http://csgl.sourceforge.net/
どうぞ。
DirectXとか。どっちにしても.NET Framework内にはない。
0024デフォルトの名無しさんNGNG
>>21
DirectX9には.NETサポートが入る予定。
β版触ったけどなかなかイイ感じだったよ。
0025デフォルトの名無しさんNGNG
すいません質問です。

Explorer風なディレクトリ選択ダイアログを作りたいのですが、
SHGetFileInfoのラッパーにドライブ文字やフォルダパスを渡して
アイコンリソースを取得すると、フォルダアイコンは全部開いた
フォルダのアイコンになります。
閉じたフォルダのアイコンはどうやって取得すればよいですか?
0026デフォルトの名無しさんNGNG
ツリービューでノードをダブルクリックしたときに
ノードの開閉が行われないようにするにはどうしたらいいでしょうか?
0027デフォルトの名無しさんNGNG
ageちゃうぞー
0028デフォルトの名無しさんNGNG
誰も書き込まないの?

>>26
TreeViewのBeforeExpandイベントを拾って、TreeViewCancelEventArgsのCancelプロパティをtrueにするというのはどう?
ただし、これだとダブルクリック以外でも開かなくなるけど。
002926NGNG
>27
サンクス
でもなにやっても開かんのでつかえないっす。
ほかの方法でやりたかったことを実現させたのでいいんですけど。

それにしても、このスレ、さびれてますねぇ。
0030デフォルトの名無しさんNGNG
Image.PropertyItemsでexifのタグを取ろうと思うんですが、
Cybershot Uのファイルから読んだイメージでPropertyItemsプロパティに
アクセスすると、
「値をNullにすることはできません。
パラメータ名: source」
というNullArgumentExceptionが発生してしまいます。

exifを読むツールやwindowsXPの画像のプロパティでみるとなんの問題
もなく読めます。これってバグでしょうか。
バグにしても、 プロパティで例外がハンドルされてないのもどうかと
思うけれど…。
0031デフォルトの名無しさんNGNG
タブブラウザのサンプルってないですかね・・・?
0032デフォルトの名無しさんNGNG
using System.Windows.Forms;
class TabBrowserSample : Form
{
  public TabBrowserSample() : base()
  {
    TabControl container = new TabControl();
    container.Dock = DockStyle.Fill;
    base.Controls.Add(container);

    TabPage page = new TabPage();
    page.Dock = DockStyle.Fill;
    container.Controls.Add(page);

    AxSHDocVw.AxWebBrowser browser = new AxSHDocVw.AxWebBrowser();
    browser.Dock = DockStyle.Fill;
    browser.BeginInit();
    page.Controls.Add(browser);
    browser.EndInit();

    browser.GoHome();
  }
  [System.STAThread]
  public static void Main(string[] args)
  {
    Application.Run(new TabBrowserSample());
  }
}
0033デフォルトの名無しさんNGNG
> AxImp C:\WINNT\system32\shdocvw.dll
で AxSHDocVw.dll SHDocVw.dll 作って
> csc TabBrowserSample.cs /r:AxSHDocVw.dll
な。
0034デフォルトの名無しさんNGNG
>>32 33
ありがとーございます。こんな厨くさい質問に・・・。
0035デフォルトの名無しさんNGNG
ここはくだすれだからな。気にするな
0036デフォルトの名無しさんNGNG
便乗ですいませんが>>33ってどういうことなんでしょうか?
BeforeNavigate2 イベントを直していてSHDocVw.dllがいるって怒られるんですがよくわからないです。
0037デフォルトの名無しさんNGNG
$ AxImp.exe /?
Microsoft (R) .NET ActiveX Control の Windows フォーム アセンブリ ジェネレータ用
[Microsoft .Net Framework, Version 1.0.3705.288]
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.


指定された OcxName で定義された ActiveX コントロールを囲む Windows フォーム
コントロールを生成します。

使用法 :
AxImp OcxName [オプション]
オプション :
/out:ファイル名 作成されるアセンブリのファイル名です。
/publickey:ファイル名 厳密な名前の公開キーを持つファイルです。
/keyfile:ファイル名 厳密な名前のキー ペアを持つファイルです。
/keycontainer:ファイル名 厳密な名前のキー ペアを持つキー コンテナです。
/delaysign 厳密な名前の遅延署名を強制します。
/keyfile または /keycontainer と共に使用されます
。
/source Windows フォーム ラッパーの C# ソース コードを
生成します。
/nologo AxImp が著作権表示をしないようにします。
/silent AxImp が正常操作のメッセージを非表示にします。
/verbose その他の情報を表示します。
/? または /help この使用法を表示します。
003836NGNG
ありがとうございます。
コマンドラインからはできたんですが、.netのvisualC#上からはできないのでしょうか?
0039デフォルトの名無しさんNGNG
>>38
VisualStudioは持ってないから知らん。過去ログにあった気がする
0040デフォルトの名無しさんNGNG
>>38
ソリューションエクスプローラの参照設定に
AxSHDocVw.dllを追加すればよろし
0041デフォルトの名無しさんNGNG
>38
> コマンドラインからはできたんですが、.netのvisualC#上からはできないのでしょうか?

vs.netでやるなら
ツールボックス→ツールボックスのカスタマイズ→COM→Microsoft web browserを追加
で、追加された地球アイコンをポトペタすればいいです。axshdocvw.dllも
自動で作ってくれます。
0042デフォルトの名無しさんNGNG
便乗ですけど、aximpすると
SHDocVw.dllが指定したディレクトリにコピーされてからAxSHDocVw.dllが同じディレクトリに作られますよね。
で、コピーで作られたSHDocVw.dllはAxSHDocVw.dllを使うときに必要なんでしょうか?

削除してもOKですか?
0043デフォルトの名無しさんNGNG
winnyで何度vs.net落としてもウィルス入ってたりして一向に勉強する環境が整わない。
0044デフォルトの名無しさんNGNG
>>32
VBのソースかとオモタ。
0045デフォルトの名無しさんNGNG
>42
配布した先でもそのディレクトリを参照するようにマニフェストに書かれてるんじゃないのか?
大体同じライブラリファイルは違う物として捉えるのが.NET流儀。
0046デフォルトの名無しさんNGNG
C#ってVC#が無いとできないの?
0047デフォルトの名無しさんNGNG
SHDocVw.WebBrowser_V1 の BeforeNavigate でイベントを拾ってるんですが、Urlはどうやって受け取るのでしょうか?
0048デフォルトの名無しさんNGNG
類似画像を検索して削除するようなソフトを作ってみようかと思って
googleで検索してたのですが、難しい論文かjpegのアルゴリズムぐらいしか
ヒットしなくて困っています。
よくあるフリーのソフトはどのようなアルゴリズムで作られてるのでしょうか?
説明しているサイトがあれば教えて頂けないでしょうか?


0049デフォルトの名無しさんNGNG
>48

ここでそんなこと聞いている段階で、すでに無理かと思われ。
005048NGNG
>49
何が無理?
0051デフォルトの名無しさんNGNG
画像処理スレで聞いてみたら?
0052デフォルトの名無しさんNGNG
んでC#(Visual C#)ってどういう位置付けにこれからなってくの?
Cの発展系みたいに言われるけどCや++とあきらかに違うし。
単独で浮いた存在としてMSが広めていくのか、
VBを置き換えようとしているのか、
あるいは開発に金かけられない中小企業とかが自前でやるツールになるのか、
どう捉えたらいいん?
マジレスきぼんぬ。
(厨な揚げ足レスいらん。でもageてね)
0053毛の生えたブリーフNGNG
「とりあえず大抵の用途に対応できるWindowsアプリケーション公式開発言語」

として広まっていくでしょう。以前からWinアプリ開発はVC++がメインでVBは
サブの位置づけでしたが、これからはC#がメインで、VBやVC++は廃れていくでしょう。
とくにVC++から真っ先にC#への移行が強制されそうですね。
0054デフォルトの名無しさんNGNG
C#ってポインタがないんですか?
名前は違っても間接参照するような機能はありますよね?
0055デフォルトの名無しさんNGNG
>>53
VBつかいのオレはどうすりゃいいんだ・・・
0056デフォルトの名無しさんNGNG
>>54
unsafeならポインタを使える。
0057デフォルトの名無しさんNGNG
>>56
すいません。unsafeってなんですか?
0058毛の生えたブリーフNGNG
フフフ まさに本スレにふさわしい質問です。


0059毛の生えたブリーフNGNG
話変わって、最近いろいろとC#関連の書籍が発売されるようになりました。
データベースやWebアプリには興味がないのでそれ専用の書籍は購入していませんが、
それ以外の「入門」と記した書籍はほとんど全て購入してざーっと読んでみました。

まったくC#の概要を知らない人には「独習C#」をおすすめします。
独断と偏見かもしれませんが、この本を読んであとはペゾルト本へ移行すれば
OKかなと思っています。
0060デフォルトの名無しさんNGNG
>>53
VBは死亡、VC++はその性格上地味に生き続けていくよ。
C#がメインはその通り。
0061デフォルトの名無しさんNGNG
>>59=神林 靖
0062デフォルトの名無しさんNGNG
>53
あんがと
VB使いに話したら、固まったよ
0063デフォルトの名無しさんNGNG
ったくVBは死亡とか言ってるやつが死亡だよ
0064デフォルトの名無しさんNGNG
>63
それは細々とでも生き残っていくって意味でっか?
それとも?
0065デフォルトの名無しさんNGNG
>>53
アプリでもゲームとかCGツールとか数値計算とかは今後もVC++じゃないのかな?
CPUパワーを無尽蔵に消費するアプリや特殊リソースを使うアプリは、
とてもではないが、C#には無理だ。
まあ、おおむねのアプリはC#に移行することは間違いないと思うけどね。
あとVBは生き残ると思うよ、これだけのユーザーと遺産は捨てられん。
いずれも衰退しないと思う。
0066デフォルトの名無しさんNGNG
ってかVB程度にしかC#流行んないと思う。
0067デフォルトの名無しさんNGNG
質問です。
ListView内の各ListViiewItemにToolTipを付けたいのですが,
ListViewItemはControlではないので付けられません。
どうすればよいのでしょうか?
0068デフォルトの名無しさんNGNG
すいません、質問です。
VBでいうところのディレクトリリストボックスみたいなものはないでしょうか?

TreeViewでも同じような事ができるのですが、フォルダとかの
アイコンのイメージを自前に作らないとだめみたいなので・・・・
みなさんはどうやってますか?
システムが使用してるアイコンを取り込んだりしてるのでしょうか?

何をしたいのかというと、ユーザーの人にフォルダを選択させたいんです。
ですから、ダイアログボックスだとファイル選択しかできないのでだめですし、

意味不明な分かもしれないですが、何卒よろしくお願いします。
0069デフォルトの名無しさんNGNG
>>68
.NET Framework 1.0ならAPIのSHBrowseForFolderで。
.NET Framework 1.1なら、System.Windows.Forms.FolderBrowserDialog
使うとか。
0070デフォルトの名無しさんNGNG
こんなのも一応ある。

http://www.codeproject.com/cs/miscctrl/folderbrowser.asp
http://www.codeproject.com/cs/miscctrl/folderseldlg.asp
0071デフォルトの名無しさんNGNG
早期のレスありがとうございます。
>69

SHBrowseForFolderはヘルプで見たのですが、
ちょっと難しくて意味がわからなかったです

>http://www.codeproject.com/cs/miscctrl/folderbrowser.asp
これもサイトが英語でちょっとわからなかったです

いろいろ調べて頂いたのに申し訳ないです。
0072デフォルトの名無しさんNGNG
ってことはVB程度にまた資産をばらまいていくのか。。
007368NGNG
いろいろ検索してて次の方法でいけるみたいです
SHBrowseForFolderと比べると、「新規フォルダ」を作成できるなど
機能面・デザイン共に向上していますね

public class myfne : FolderNameEditor
{
public void Show()
{
FolderBrowser fb = new FolderBrowser();
fb.ShowDialog();
}
}

こんな感じのクラスを作っておいて、

private void ShowBrowseFolder()
{
myfne fne = new myfne();
fne.Show();
}

こんな感じでやれば、FileDialogでいけるみたいです。
0074デフォルトの名無しさんNGNG
>>68
某所よりコピペ。

(1) APIのSHBrowseForFolder関数を呼び出して利用
(2)デザイン時用のクラスである
System.Windows.Forms.Design.FolderNameEditorクラスを
継承したクラスを作成して利用
(3) .NET Framework 1.1の
System.Windows.Forms.FolderBrowserDialogクラスを利用
(4) ShellオブジェクトをInteropで利用
(5) それっぽいものを自作

[HOW TO] C# を使用して [フォルダの参照] コモン ダイアログ ボックスを
ラップするマネージ コンポーネントを実装する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;JP306285
007568NGNG
>>74
またまた、詳しいレスありがとうございます!
ただ、継承というのも今さっき学んだばかりのもので
理解に苦しみますががんばってみます。
「APIのSHBrowseForFolder関数を呼び出して利用」これ自体の
やり方がわからないもので・・・・・

あと、>73でのやり方で一応できたのですが、それをtreeViewに反映するやり方が
イマイチわからず悩んでおります。
>74でのやり方もたぶんダイアログでの参照の仕方だと思うのですが・・・

TreeViewにフォルダ(アイコンも)を表示させて、そのフォルダをユーザーが選択して、
「ファイル一覧」という自前のボタンをクリックすると、サブフォルダにあるファイルも
検索されlistviewに表示する。。。というのをやりたいのです。
これって結構高度なプログラミング要求されるのでしょうか・・・(汗

もう少し勉強して出直してきます。
レス下さった方々ありがとうございました。
007668NGNG
追記ですが、持っているソフトは
単体のVC#と.NET Framework 1.0です
0077デフォルトの名無しさんNGNG
「マーシャル(Marshal)」の言葉の意味がよく分からないんだけど、
どういう意味?
Marshallingするってどういう意味?
英和辞典引いてもよく分からん。
0078デフォルトの名無しさんNGNG
VC++は良い言語だけど
たぶん、廃れていくと思う あんま開発効率良くないから

今は環境が整ってないけど
将来的には VB→VB.NET 
        java→ C# ってなってくと思うよ
        VC++→

C++にできてC#にできない事って基本的にはないし
潜在的なバグの出やすさとかリソースに対する対応が段違い

今はまだまだFrameWorks、.NET自体がバグだらけだけど
多分、その時代も長くないと思うから
騙されたと思ってC#やっとけ
0079デフォルトの名無しさんNGNG
C++にできてC#にできない事は高いパフォーマンスがあります。
これが必要な分野のアプリには向かないです。
無理してやるとソースがグチャグチャになって、かえって開発効率が悪くなります。
そういうところをやってない人にはわからないと思いますが・・・
ちなみに自分は実際にC#も使って開発しています、実際にやっての結論です。
そういう訳でなくなることは無いと思いますよ。
0080デフォルトの名無しさんNGNG
C#やった奴、数年後に「騙された!」と叫んでるに65536カノッサ。
0081デフォルトの名無しさんNGNG
どの話も平行線だ
適材適所で行けば良いだろ
0082デフォルトの名無しさんNGNG
「(特定の)言語に固執するとロクな事がない」と、
名無しさん♯氏が以前云ってたような気がする。
0083デフォルトの名無しさんNGNG
.NET Framework SP2をインストールしようとしたら、
メーターが2ついった所で止まるんです
どうすればいいでしょ?
0084FNGNG

質問なんですが、
BMPがテキストになったファイルを
もう一度画像ファイルとしてピクチャーボックスに
表示するにはどうしたらいいのでしょうか?
0085デフォルトの名無しさんNGNG
>>84
マルチは氏ぬ以外に生きる道は無い。

C#スレでまともに答えちゃったよ。マルチだったとはな。
0086デフォルトの名無しさんNGNG
俺の.NET自体がインスコできねー。
ログみると何度やっても途中でとまっちゃうよ〜
んま〜OSと.NET自体がわ○物なんで気にしないけどね。
それより勉強できないことが無性に悔しい!!!
008783NGNG
OSの重要なアップデートをしないとだめだとわかりw2k_sp3をインストール
しようとしたらこれも、終了手順のとこでフリーズ・・・
それでも一応SP3になったようなので再度FRAMEWORK SP2をインストしようと
するとやはり2つ目の目盛りでフリーズ・・
ノートン入ってるのですが無効にしてても問題あったりするのでしょうか?

どなたかご助言お願いします。
0088デフォルトの名無しさんNGNG
これってjavaの後継機だな。
明らかにC++と違う。
でも冠にはCとなってる。

タイガー�T型 → 後継機なし
パンサー   → タイガー�U型

みたいな感じだね。実際に。。。
0089デフォルトの名無しさんNGNG
>>87
つーかヤタラメッタラとノートン先生が反応しませんか?
0090>>88NGNG
つけたし
タイガー�T型(C++) → 後継機なし
パンサー(java)  → タイガー�U型(C#)
0091デフォルトの名無しさんNGNG
>>90
C#以外を撲滅させたいだけなんですね。(w
0092デフォルトの名無しさんNGNG
>>90
回線切って首吊って死ねよ
0093デフォルトの名無しさんNGNG
質問です!
C#で●を描きそれを動かす
g.DrawEllipse(RedPen, ball.Position.X,ball.Position.Y,10,10);
このようにしてフォームにじかに描き、タイマーを使って
ボールを動かしているんですが、描画がちらつきます〜。
バッファリングなどちらつきを抑えたいのですがC#ではどのように
するのですか?おわかりになる方よろしくおねがいします。
0094デフォルトの名無しさんNGNG
>>93
裏画面用Bitmapオブジェクトを作って、
そこから取得したGraphicsオブジェクトに描画、
全部描画し終わったら、最後にほんちゃんのGraphicsオブジェクトに
DrawImageメソッドでそのBitmapオブジェクトを描画。
009583NGNG
自己レス

やはりノートンが怪しいと思いアンチウィルス、ノートンセキュリティをアンインストしようとすると
途中で止まり、「frameworkのインストールは中断されています」みたいなエラーが
でました。
やっとこさ両方ともアンイストすると、W2KSP2もFRAMEWORKSP2もインストできました。

最初、FRAMEWORKインスト中にノートン無効にしてなかったためにこのようなことになってしまいました。
そもそも、注意書き読んでいればこういうことにはならなかったのですが・・

わたしみたいなバカな人がいるかもしれないのでレスしときました
0096デフォルトの名無しさんNGNG
>>77
「整列させる。整理する。」
漏れ的には、データ型間の対応付けをするようなイメージしかないけど、
その認識であってるのか自信なし。実際どうなんでしょう。詳しい方お願いします。

MarshalAsAttributeクラスとかおもしろそうだけど、よくわからん。
Marshalクラスもおもしろいんだが・・・。
0097デフォルトの名無しさんNGNG
C#マスターしたぞ
ここでお世話になったお返しにくだらない質問片っ端から答えてやる
さあ、質問しろ

0098デフォルトの名無しさんNGNG
>>97
96と77の質問に、鮮やかに答えてくれ。
0099デフォルトの名無しさんNGNG
>>97
マスターするというのは最低限同じ言語を自分で作れるラインだぞ
同じものを作ろうとすると自分がいかに言語使用を理解せず
その気になっていただけというのが分かる
0100デフォルトの名無しさんNGNG
>99まあ固いこといわず
100げっちゅ
0101デフォルトの名無しさんNGNG
言語使用
■ このスレッドは過去ログ倉庫に格納されています