C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[12]: VB.NETで「VIX」と同等のソフトは作れますか?


(過去ログ 33 を表示中)

[トピック内 17 記事 (1 - 17 表示)]  << 0 >>

■16274 / inTopicNo.1)  VB.NETで「VIX」と同等のソフトは作れますか?
  
□投稿者/ 姫路城 (1回)-(2008/04/02(Wed) 12:35:21)

分類:[雑談] 

2008/04/02(Wed) 12:38:43 編集(投稿者)
2008/04/02(Wed) 12:37:28 編集(投稿者)

素人プログラマーです。

HTML、CGI、VBA、VB6、VB.NETと趣味で覚えてようやくプログラムのことが少しわかってきたので、
ちょっと教えていただきたいです。
今、有名な画像フリーソフトの「VIX」みたいなアプリをVB.NETで作ろうとしています。
エクスプローラと画像の表示もなんとかできるようになって、
形の上ではVIXみたいになってきました。
ただ、速度や安定性の問題で全く及びません。
そこで、皆さまに教えていただきたいのが

VB.NETで「VIX」と同等のソフトは作れますか?

同じというのは
 エクスプローラ
 サムネイル
 印刷操作
の軽快さ、安定感などです。

また、今から皆さまがVIXみたいな画像ビューアを作られるとしたら、どの言語を使われますか?
やはり、C++なのでしょうか。



引用返信 編集キー/
■16275 / inTopicNo.2)  Re[1]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (19回)-(2008/04/02(Wed) 12:37:29)
2008/04/02(Wed) 12:39:15 編集(投稿者)

No16274 (姫路城 さん) に返信
> 素人プログラマーです。
>
> HTML、CGI、VBA、VB6、VB.NETと趣味で覚えてようやくプログラムのことが少しわかってきたので、
> ちょっと教えていただきたいです。
> 今、VB.NETで有名な画像フリーソフトの「VIX」みたいなものを作ろうとしているのですが
> エクスプローラと画像の表示もできるようになって、形の上ではVIXみたいになってきました。
> ただ、速度や安定性の問題で全く及びません。
> そこで、皆さまに教えていただきたいのが
>
> VB.NETで「VIX」と同等のソフトは作れますか?
>
> 同じというのは
>  エクスプローラ
>  サムネイル
>  印刷操作
> の軽快さ、安定感などです。
>
> また、今から皆さまがVIXみたいな画像ビューアを作られるとしたら、どの言語を使われますか?
> やはり、C++なのでしょうか。

パフォーマンスさえ気にしなければどの言語でも作れます。
ですから、私がやるのならばアセンブリ言語とCですね。
あと、アセンブリ言語+Dもいいかもしれませんね。
引用返信 編集キー/
■16326 / inTopicNo.3)  Re[1]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 倉田 有大 (172回)-(2008/04/02(Wed) 20:56:00)
> VB.NETで「VIX」と同等のソフトは作れますか?
>
> 同じというのは
>  エクスプローラ
>  サムネイル
>  印刷操作
> の軽快さ、安定感などです。
>
> また、今から皆さまがVIXみたいな画像ビューアを作られるとしたら、どの言語を使われますか?
> やはり、C++なのでしょうか。

速度以外は、VB.NETで同等にはできるでしょう。ぶっちゃけVBで出来ないことはAPI呼び出せばいいだけで。
私はC#でがんばってつくってます。
まあ、そら速度を追求するとVC++には勝てんかと。画像を操ると関数呼び出しのオーバーヘッドすら
気になってくるかもしれませんし。
引用返信 編集キー/
■16330 / inTopicNo.4)  Re[2]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ Azulean (53回)-(2008/04/02(Wed) 22:52:02)
>軽快さ、安定感などです。
.NET系はコントロールが重いという印象がありますね。
作りやすさではなかなか良いと思うのですが。

>また、今から皆さまがVIXみたいな画像ビューアを作られるとしたら、どの言語を使われますか?
>やはり、C++なのでしょうか。
速度がどうしても欲しいとか、OSの縛り等がない限り、C#が選択肢となるでしょう。
C++で作り込むのは手間がかかると思うようになってしまいましたし…。



>ですから、私がやるのならばアセンブリ言語とCですね。
「アセンブリ言語」とか聞くと、アセンブラで書くのでしょうか。
それともマネージで生成される「アセンブリ」から、VB.NETやC#といった言語を指しているのでしょうか。
前者ならとてもハードルが高いと思います。

#参考:http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%E8%A8%80%E8%AA%9E

引用返信 編集キー/
■16331 / inTopicNo.5)  Re[3]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ シャノン (362回)-(2008/04/02(Wed) 23:25:56)
No16330 (Azulean さん) に返信
> >軽快さ、安定感などです。
> .NET系はコントロールが重いという印象がありますね。
> 作りやすさではなかなか良いと思うのですが。
>
> >また、今から皆さまがVIXみたいな画像ビューアを作られるとしたら、どの言語を使われますか?
> >やはり、C++なのでしょうか。
> 速度がどうしても欲しいとか、OSの縛り等がない限り、C#が選択肢となるでしょう。
> C++で作り込むのは手間がかかると思うようになってしまいましたし…。

そうでもないですよ。
.NET Framework には、画像のサムネイルを作る機能なんて(少なくともエクスプローラと同等のものは)ないので、COM を使わなきゃならないんですが、COM を使うということに限っては C++ の方がずっと向いてます。
でも、UI を C++ で作るのは面倒なので、そこで C++/CLI の出番ですかね。
C++ で COM を使うライブラリを作って、C# で UI を作って、C++/CLI で両者を取り持つとか。
いや、やったことないですけどね。
引用返信 編集キー/
■16332 / inTopicNo.6)  Re[4]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (29回)-(2008/04/02(Wed) 23:52:56)
2008/04/03(Thu) 00:02:06 編集(投稿者)

シャノンさんが言った構成が王道だと思います。
自分ならばCとアセンブリですが、
姫路城さんにお勧めすのならばVB.NET or C#でGDI+の組み合わせです。
素人でいきなり商用ソフトに匹敵するのは無理なので、
マイクロソフト公式解説書のプログラミングWindows上下(VB.NETかC#はお好み)を読んで、
一機能ずつ点検しながら作るといいと思います。
サムネイルや印刷機能はプログラミングWindows下巻に載っています。
だけど、本格的なのを望むのならばいつかWin32のお世話になると思います。
その時は覚悟しましょうねw
引用返信 編集キー/
■16334 / inTopicNo.7)  Re[4]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 倉田 有大 (173回)-(2008/04/03(Thu) 00:00:22)
> .NET Framework には、画像のサムネイルを作る機能なんて(少なくともエクスプローラと同等のものは)ないので、COM を使わなきゃならないんですが、COM を使うということに限っては C++ の方がずっと向いてます。
> でも、UI を C++ で作るのは面倒なので、そこで C++/CLI の出番ですかね。
> C++ で COM を使うライブラリを作って、C# で UI を作って、C++/CLI で両者を取り持つとか。
> いや、やったことないですけどね。

最近、VC++の話題がおおかったので、ちょっとVC++いじってみました。
げげ、C++/CLIって、こんなんだったのか!
マネージドとアンマネージドがむっちゃ簡単に共存しているやん!
マネージ拡張C++は難しそうで、まったく近寄る気にならなかったのですが、これはすごい。
なんか、フリーソフトをC++/CLIで作り直したいという欲が・・
引用返信 編集キー/
■16336 / inTopicNo.8)  Re[4]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ Azulean (54回)-(2008/04/03(Thu) 00:41:33)
2008/04/03(Thu) 00:43:29 編集(投稿者)

> .NET Framework には、画像のサムネイルを作る機能なんて(少なくともエクスプローラと同等のものは)ないので、
> COM を使わなきゃならないんですが、COM を使うということに限っては C++ の方がずっと向いてます。
IShellFolderやIExtractImageのインターフェースをC#で書き直しているコードを見ましたが、あれが楽かっていうともちろん否定します。
COMのインターフェースを改めてC#で書き直すというのは手間がかかり、間違えるリスクもあって手に負えません。

#COMはスレッドモデルもめんどくさいですなぁ。

> でも、UI を C++ で作るのは面倒なので、そこで C++/CLI の出番ですかね。
> C++ で COM を使うライブラリを作って、C# で UI を作って、C++/CLI で両者を取り持つとか。
まさにそれをやっています。
速度的な問題でC#じゃ耐えられないところをC++/CLIに置き換える。あるいは過去の資産をラッピングする。

しかし、UI層をC++/CLIで書くのはやはりいけてないなぁと感じますね。なるべくC++/CLIで書く範囲を狭めるべく、検討していますけれども。
引用返信 編集キー/
■16338 / inTopicNo.9)  Re[5]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (31回)-(2008/04/03(Thu) 00:52:12)
COMでのレジストリ扱いとか、IDLとか、TLBとか・・・COMはやっぱり避けたいですね。
資料も大半は廃刊で手に入らない事ですしね。
引用返信 編集キー/
■16372 / inTopicNo.10)  Re[6]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 姫路城 (2回)-(2008/04/03(Thu) 22:07:13)
いろんなレスをありがとうございます。

とりまとめると、VB.NETの機能だけではVIXは実現不可能で
C++/CLI または GDI+を 併用することで、ある程度は近づけるということですね。

>ネタ好き さん
マイクロソフト公式解説書のプログラミングWindows
を見に行きましたが、時間があればぜひともやってみたいのですが
なかなか、趣味の時間だけでどうにかなりそうな気がしませんでした

今、VB.NETで実現できていない挙動で解決したい問題としては
・エクスプローラ(風)ツリーの挙動が不安定
・印刷に異常に時間がかかる 一枚12秒程度
です。  

これらの実現にも、やはり C++/CLI または GDI+は必須でしょうか。
引用返信 編集キー/
■16378 / inTopicNo.11)  Re[7]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (32回)-(2008/04/03(Thu) 23:37:39)
2008/04/03(Thu) 23:47:25 編集(投稿者)

No16372 (姫路城 さん) に返信
> いろんなレスをありがとうございます。
>
> とりまとめると、VB.NETの機能だけではVIXは実現不可能で
> C++/CLI または GDI+を 併用することで、ある程度は近づけるということですね。
>
> >ネタ好き さん
> マイクロソフト公式解説書のプログラミングWindows
> を見に行きましたが、時間があればぜひともやってみたいのですが
> なかなか、趣味の時間だけでどうにかなりそうな気がしませんでした
>
> 今、VB.NETで実現できていない挙動で解決したい問題としては
> ・エクスプローラ(風)ツリーの挙動が不安定
> ・印刷に異常に時間がかかる 一枚12秒程度
> です。  
>
> これらの実現にも、やはり C++/CLI または GDI+は必須でしょうか。

一つ誤解をしていますGDI+の大半はSystem.Drawingライブラリとして.NET Frameworkに実装されております。
ですから、かなり高度な事をしない限り、これで大丈夫なはずです。
印刷についてはプロファイリングをして、
具体的に印刷のどの部分が時間を要しているのか考えるとよいと思います。
ただ、ハードウェアのスペックが影響しているのかもしれませんので、
まずはプリンタの説明書を読むことをお勧めします。
そして印刷時に余分な動作をしていないかよくコードを読んでみましょう。
ツリーについては、よく状態が把握できていませんのでアドバイスできませんが、
具体的に何をどうすればどうなるのかを観察して問題点を探りましょう。
マイクロソフト公式解説書については、時間がかかるかもしれませんが、
少しずつ興味のある部分だけでも読むことをお勧めします。
全体的に考えた場合、それが時間短縮となります。
引用返信 編集キー/
■16384 / inTopicNo.12)  Re[8]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 姫路城 (3回)-(2008/04/04(Fri) 07:45:20)
> かなり高度な事をしない限り、これで大丈夫なはずです。

サムネイルの生成と写真ウインドウの表示だけですので、大丈夫かもしれませんね

>具体的に印刷のどの部分が時間を要しているのか考えるとよいと思います。

これについては、
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=860707&SiteID=7
この掲示板を見て、VB.NETでは印刷速度が遅いのは仕様かと思ったのですが
やり方によっては速度改善の方法はあるのでしょうか

>ツリーについては、よく状態が把握できていませんのでアドバイスできませんが

がんばればVB.NETだけの機能でVIX程度のパフォーマンスの
エクスプローラツリーを実現することができるということでしょうか


> マイクロソフト公式解説書については、時間がかかるかもしれませんが、
> 少しずつ興味のある部分だけでも読むことをお勧めします。

ううむ・・・ 仕様書みたいでちょっとつらいそうでしたので
簡単なWIN32の使い方 みたいなタイトルを探してみまーす ( ̄∇ ̄;)

引用返信 編集キー/
■16405 / inTopicNo.13)  Re[9]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (35回)-(2008/04/04(Fri) 13:58:47)
2008/04/04(Fri) 13:59:43 編集(投稿者)

No16384 (姫路城 さん) に返信
> がんばればVB.NETだけの機能でVIX程度のパフォーマンスの
> エクスプローラツリーを実現することができるということでしょうか

プログラミングWindowsでエクスプローラツリーもどきの解説があります。
それにパフォーマンスを求めてはなりません。
まずは基礎を作ってみる事が大切です。
パフォーマンス向上の手順は次の方法がお勧めです。

0・ソースをヴァージョン管理ソフト下に置く。
1・作る
2・バグを直す
3・プロファイルでパフォーマンスのボトルネックを捜す。
4・アルゴリズムを見直す。
5・改めて測定する。

これが大事です。
引用返信 編集キー/
■16407 / inTopicNo.14)  Re[9]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 倉田 有大 (174回)-(2008/04/04(Fri) 14:40:13)
> がんばればVB.NETだけの機能でVIX程度のパフォーマンスの
> エクスプローラツリーを実現することができるということでしょうか

そんなにVB.NETでのツリー表示おそいのですか?
引用返信 編集キー/
■16458 / inTopicNo.15)  Re[10]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (39回)-(2008/04/06(Sun) 16:12:30)
No16407 (倉田 有大 さん) に返信
>>がんばればVB.NETだけの機能でVIX程度のパフォーマンスの
>>エクスプローラツリーを実現することができるということでしょうか
>
> そんなにVB.NETでのツリー表示おそいのですか?

おそらく、全て画像を一度に表示しているのでは?
引用返信 編集キー/
■16576 / inTopicNo.16)  Re[11]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ 姫路城 (4回)-(2008/04/08(Tue) 12:33:47)
>>そんなにVB.NETでのツリー表示おそいのですか?

> おそらく、全て画像を一度に表示しているのでは?

VIXみたいにサムネイルをカタログファイルに格納する方法がわかりませんので縮小画像をキャッシュしてませんので画像の表示は遅いです。
エクスプローラは少しずつ改良しているうちに、だんだん安定してきましたが、エクスプローラのようにリアルタイムにファイル名やフォルダ名の変更に対応してなかったりします。
でも、みなさまのレスの雰囲気を見る限りでは、エクスプローラに限りなく近いものをVB.NETで実現することはできそうな気がしてきました。
引用返信 編集キー/
■16581 / inTopicNo.17)  Re[12]: VB.NETで「VIX」と同等のソフトは作れますか?
□投稿者/ ネタ好き (51回)-(2008/04/08(Tue) 13:21:24)
No16576 (姫路城 さん) に返信
> >>そんなにVB.NETでのツリー表示おそいのですか?
>
>>おそらく、全て画像を一度に表示しているのでは?
>
> VIXみたいにサムネイルをカタログファイルに格納する方法がわかりませんので縮小画像をキャッシュしてませんので画像の表示は遅いです。
> エクスプローラは少しずつ改良しているうちに、だんだん安定してきましたが、エクスプローラのようにリアルタイムにファイル名やフォルダ名の変更に対応してなかったりします。
> でも、みなさまのレスの雰囲気を見る限りでは、エクスプローラに限りなく近いものをVB.NETで実現することはできそうな気がしてきました。


ヒント:イベントとデリゲート
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -