こんにちわ
OS: Windows 10
MS Visual Studio 2015 でC#やVBを使えば簡単にGUIを実装できるが、
その他の言語(C++, VC++)でGUIを実現するためにどうすれば良いのでしょうか。
----------
GUI : Graphical User Interface
MS WindowsでGUIを実装方法?
Re: MS WindowsでGUIを実装方法?
・「Microsoft Foundation Class」を使う。
https://ja.wikipedia.org/wiki/Microsoft ... tion_Class
基本的に有償。無償版はライセンス条件が厳しいらしい。
・「Windows API」を使う。
https://ja.wikipedia.org/wiki/Windows_API
無償だが、少し難易度が高い。
私は両方使ったことがありますが、最近のバージョンには疎いです。
業務で使うならMFCの無償版は難しそう。MFCの有償版がよいのでは。
個人で使うなら、費用面でWindows APIを選ぶしかないかと。
ちなみに私は長らく業務でMFCを使ってなく、
個人でWindows APIを使っています。
参考)
Windows SDK編 第1部
http://www.kumei.ne.jp/c_lang/index_sdk.html
いずれにしてもGUIの実現については、C#やVBの方が色々楽だと思います。
https://ja.wikipedia.org/wiki/Microsoft ... tion_Class
基本的に有償。無償版はライセンス条件が厳しいらしい。
・「Windows API」を使う。
https://ja.wikipedia.org/wiki/Windows_API
無償だが、少し難易度が高い。
私は両方使ったことがありますが、最近のバージョンには疎いです。
業務で使うならMFCの無償版は難しそう。MFCの有償版がよいのでは。
個人で使うなら、費用面でWindows APIを選ぶしかないかと。
ちなみに私は長らく業務でMFCを使ってなく、
個人でWindows APIを使っています。
参考)
Windows SDK編 第1部
http://www.kumei.ne.jp/c_lang/index_sdk.html
いずれにしてもGUIの実現については、C#やVBの方が色々楽だと思います。
Re: MS WindowsでGUIを実装方法?
たいうち 様
早速お返答ありがとうございます。
「有償」、「難易度が高い」ってどっちもいやな事ですね!笑
両方とも「コスト」と言われます==中小企業の場合。
それからライセンスの管理も我々にとって面倒な負担です。
ご提供いただいたリンクを勉強させていただきますが、
第三の方法はないでしょうか。
早速お返答ありがとうございます。
「有償」、「難易度が高い」ってどっちもいやな事ですね!笑
両方とも「コスト」と言われます==中小企業の場合。
それからライセンスの管理も我々にとって面倒な負担です。
ご提供いただいたリンクを勉強させていただきますが、
第三の方法はないでしょうか。
Re: MS WindowsでGUIを実装方法?
◎DXライブラリ(ディーエックス・ライブラリ)というものがありC言語入門レベルでも使える便利なもので日本人が開発し資料も充実していて分かり易いです。
Wikipedia には
「ライブラリを教材として授業に使用する大学や専門学校もある ほか、独自に作成した派生ライブラリを活用している事例もある」
「ゲーム開発用に設計されたライブラリのため、ゲーム開発における関連技術を中心にサポートしている。一方で、一般的なアプリケーションの開発に必要なウィジェット(コントロール)はサポートされていない」
とかかれている。
私のホームページhttp://cswin10.nisinippon.com/cs/cs1/vs ... /dx01.html参照ください。
ここhttp://dixq.net/g/に詳しい説明があります。
◎その他 VisualC++ /CLR
私のホームページhttp://powershell-vb-memo.nisinippon.com/c.cpp.html参照ください。
わたしはこれで勉強しました。入門時からまとも動くものを作れるので参考書をみて作るだけで理解できたのですが今はあまり使われなくなっています。(C#のC++版でC#を知っていれば分かり易い)
◎最近の技術 VisualC++ /CX
Windows Desktop だけでなくスマホ等の開発ができます。xamlを使いDirectXという技術(をOSレベルで使用:WinRTというWindows8以降)を使います。今勉強中ですね。
Wikipedia には
「ライブラリを教材として授業に使用する大学や専門学校もある ほか、独自に作成した派生ライブラリを活用している事例もある」
「ゲーム開発用に設計されたライブラリのため、ゲーム開発における関連技術を中心にサポートしている。一方で、一般的なアプリケーションの開発に必要なウィジェット(コントロール)はサポートされていない」
とかかれている。
私のホームページhttp://cswin10.nisinippon.com/cs/cs1/vs ... /dx01.html参照ください。
ここhttp://dixq.net/g/に詳しい説明があります。
◎その他 VisualC++ /CLR
私のホームページhttp://powershell-vb-memo.nisinippon.com/c.cpp.html参照ください。
わたしはこれで勉強しました。入門時からまとも動くものを作れるので参考書をみて作るだけで理解できたのですが今はあまり使われなくなっています。(C#のC++版でC#を知っていれば分かり易い)
◎最近の技術 VisualC++ /CX
Windows Desktop だけでなくスマホ等の開発ができます。xamlを使いDirectXという技術(をOSレベルで使用:WinRTというWindows8以降)を使います。今勉強中ですね。
Re: MS WindowsでGUIを実装方法?
C++がまともに使える人ならC#もわりと余裕でしょうし、
C++で実装するコストの大きさ >>> C#覚えるコストの大きさ になるでしょうね。
コードを芸術作品にするわけでもないでしょうし、C++でやるならそれなりの理由がないと苦労するだけになりそうです。
ttyさんがなんの目的で C++を使ってGUIやりたいのか、が出てこないと正解は出てこないかと思います。
C++で実装するコストの大きさ >>> C#覚えるコストの大きさ になるでしょうね。
コードを芸術作品にするわけでもないでしょうし、C++でやるならそれなりの理由がないと苦労するだけになりそうです。
ttyさんがなんの目的で C++を使ってGUIやりたいのか、が出てこないと正解は出てこないかと思います。
Re: MS WindowsでGUIを実装方法?
皆さん
お返事ありがとうございます。
自分はアニメやゲームを開発業者ではなく、機械制御系ですね。
ただ高度なGUIが必要です。
GUIの実装が大変面倒臭いで、そしてできれば異なるOS上でも通用できるようソースコードで実装したいのです。VBやらC#などは特定会社の言語で、利用したくないです。
純粋なCやC++なら、国際的な規格であるので、一社の都合で勝手に変更できません。
ただし、CやC++で強力なGUIを作れるかどうか疑問ですけれども。
WindowsのAPIやMFCを利用するのは大変でしょう。
より便利なGUI LIBないでしょうか。
できれば、「GUIデザイナー」のようなツールが提供してくれるのは理想です。
GUIデザイナーとは
コードを人手で書くのではなく、VBのようにGUIフォームやwidgetのサイズやら位置を
ビジュアル的に操作によって決めて、自動コード生成してくれるというやつ。
「GUIデザイナー」がなければ、複雑な構成のGUI実装は苦痛ですね。時間も大変。
お返事ありがとうございます。
自分はアニメやゲームを開発業者ではなく、機械制御系ですね。
ただ高度なGUIが必要です。
GUIの実装が大変面倒臭いで、そしてできれば異なるOS上でも通用できるようソースコードで実装したいのです。VBやらC#などは特定会社の言語で、利用したくないです。
純粋なCやC++なら、国際的な規格であるので、一社の都合で勝手に変更できません。
ただし、CやC++で強力なGUIを作れるかどうか疑問ですけれども。
WindowsのAPIやMFCを利用するのは大変でしょう。
より便利なGUI LIBないでしょうか。
できれば、「GUIデザイナー」のようなツールが提供してくれるのは理想です。
GUIデザイナーとは
コードを人手で書くのではなく、VBのようにGUIフォームやwidgetのサイズやら位置を
ビジュアル的に操作によって決めて、自動コード生成してくれるというやつ。
「GUIデザイナー」がなければ、複雑な構成のGUI実装は苦痛ですね。時間も大変。
Re: MS WindowsでGUIを実装方法?
そういう事ならQtがお勧めです。業務でLinux用に勉強会にもいって検討していた事もあるしここで数回質問に答えたのでWindows10版もつかってみました(無料版)。デザイナーもあって強力ですよ。
https://ja.wikipedia.org/wiki/Qt
https://ja.wikipedia.org/wiki/Qt
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: MS WindowsでGUIを実装方法?
> VBやらC#などは特定会社の言語で、利用したくないです。
と言う意味がよく分かりません。
開発元はマイクロソフトですが、C++だってJAVAだってC#だって日々進化していますよ。
自分が行いたいことにマッチした最も効率的な言語があるのであればそれを学ぶべきです。
> ただし、CやC++で強力なGUIを作れるかどうか疑問ですけれども。
> WindowsのAPIやMFCを利用するのは大変でしょう。
何故そう思うのですか?
WIN32APIを使えばなんだって出来るでしょう。
MFCは知り合いの小学生でも使っています。何故大変だと思うのですか?
と言う意味がよく分かりません。
開発元はマイクロソフトですが、C++だってJAVAだってC#だって日々進化していますよ。
自分が行いたいことにマッチした最も効率的な言語があるのであればそれを学ぶべきです。
> ただし、CやC++で強力なGUIを作れるかどうか疑問ですけれども。
> WindowsのAPIやMFCを利用するのは大変でしょう。
何故そう思うのですか?
WIN32APIを使えばなんだって出来るでしょう。
MFCは知り合いの小学生でも使っています。何故大変だと思うのですか?
Re: MS WindowsでGUIを実装方法?
Math様
貴重な情報ありがとうございます。
Qt ですね。
これから真面目に調べます。
Dixq (管理人) 様
お返答ありがとうございます。
VBやC#という言語の仕様の策定はMS勝手みたいですね。
例えばVB6と現在のVBと全然通じない==仮令同じ文でも意味や結果が違うとか、それに開発環境は
XPでなければならないとか。。。
結局これまで長い間開発してきたAPが利用できなくなってしまいました!
C#も基本MS世界の話ですよね。
私の経験からすれば、メーカの装置や製品のためのソフト開発はWindows離れ傾向があります。
LINUX系が多いーーー将来もっと多いはず。
そうしたら、直にMFCやMSのAPIで実装したら、形式的にも移植性がなくなります。
少なくともプログラマーとして他のGUIの実装方法を勉強しなければなりません。
時間、コスト、きつさ。。。
それから直接APIでGUI設計しようとしたら、大変です。特に複雑に構成するGUIの設計の場合、
サイズや位置合わせ、外観様子など全部コードで試すのは苦痛でつまらなすぎでしょう。
重大なあるいは高度な科学技術的なアルゴリズムなら難しくても挑戦すべきですが、
GUIのようなものの実装に時間と苦労を費やすのは個人的な価値観に合わないような感じですね。
なので、GUI designerのようなビジュアルツールが不可欠だと思います。
あくまで個人偏見かもしれないので、異議やご批判に大歓迎です。
またどうぞ宜しくお願いします。
貴重な情報ありがとうございます。
Qt ですね。
これから真面目に調べます。
Dixq (管理人) 様
お返答ありがとうございます。
VBやC#という言語の仕様の策定はMS勝手みたいですね。
例えばVB6と現在のVBと全然通じない==仮令同じ文でも意味や結果が違うとか、それに開発環境は
XPでなければならないとか。。。
結局これまで長い間開発してきたAPが利用できなくなってしまいました!
C#も基本MS世界の話ですよね。
私の経験からすれば、メーカの装置や製品のためのソフト開発はWindows離れ傾向があります。
LINUX系が多いーーー将来もっと多いはず。
そうしたら、直にMFCやMSのAPIで実装したら、形式的にも移植性がなくなります。
少なくともプログラマーとして他のGUIの実装方法を勉強しなければなりません。
時間、コスト、きつさ。。。
それから直接APIでGUI設計しようとしたら、大変です。特に複雑に構成するGUIの設計の場合、
サイズや位置合わせ、外観様子など全部コードで試すのは苦痛でつまらなすぎでしょう。
重大なあるいは高度な科学技術的なアルゴリズムなら難しくても挑戦すべきですが、
GUIのようなものの実装に時間と苦労を費やすのは個人的な価値観に合わないような感じですね。
なので、GUI designerのようなビジュアルツールが不可欠だと思います。
あくまで個人偏見かもしれないので、異議やご批判に大歓迎です。
またどうぞ宜しくお願いします。
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: MS WindowsでGUIを実装方法?
色々論点がずれててどう回答したらいいのか分かりませんが、Windows用のアプリを作りたいんですよね?
Linuxの話が出てくるのは何故ですか?
マルチプラットフォームで動作させたいのですか?
またC++でGUIのフレームワークについて国際的に標準化なんてされていませんよ。
windowsで動くアプリを作りたいならマイクロソフトが決めたことに従わなければならないのは当然です。
Macで動くアプリならXcodeにObjective-c、Swiftなどアップルに従うべきでしょう。
そう言うことにとらわれたくないならマルチプラットフォームに対応したQtの選択肢はありますが仰る論点から行けばいつQtの仕様が変わるか分からないから怖くて手が出ません。何をするにしても勉強し続けて行かなければならないのは変わりません。
C++だってJAVAだってC#だって時代とともに非推奨APIやメソッドは常に出てくるわけで、
常に最新の仕様を学んでいく必要があります。
そういう新しいことを常に学びたくないなら、その人は技術者に向いていないです。
Linuxの話が出てくるのは何故ですか?
マルチプラットフォームで動作させたいのですか?
またC++でGUIのフレームワークについて国際的に標準化なんてされていませんよ。
windowsで動くアプリを作りたいならマイクロソフトが決めたことに従わなければならないのは当然です。
Macで動くアプリならXcodeにObjective-c、Swiftなどアップルに従うべきでしょう。
そう言うことにとらわれたくないならマルチプラットフォームに対応したQtの選択肢はありますが仰る論点から行けばいつQtの仕様が変わるか分からないから怖くて手が出ません。何をするにしても勉強し続けて行かなければならないのは変わりません。
C++だってJAVAだってC#だって時代とともに非推奨APIやメソッドは常に出てくるわけで、
常に最新の仕様を学んでいく必要があります。
そういう新しいことを常に学びたくないなら、その人は技術者に向いていないです。
Re: MS WindowsでGUIを実装方法?
tty さん
> 「有償」、「難易度が高い」ってどっちもいやな事ですね!笑
> 両方とも「コスト」と言われます==中小企業の場合。
> それからライセンスの管理も我々にとって面倒な負担です。
ttyさんがプロなのか初心者なのか判らなかったので
「少し難易度が高い」と書きましたが、
プロならば難易度については気にするほどのことはないと思いますよ。
技術の寿命についても、Windows APIは長い方ではないかと。
私が20年ほど前に作ったプログラムは結構普通に動いていますよ。
DBに接続できなくなり作り直すことになったプログラムなどもありますが、
VC6の頃に作ったプログラムでも、GUI関連ではほとんど問題は出ていません。
# 今選択するとしても、Windows APIが最良と言ってるわけではないですが、
# 現時点でC/C++から、これほどの寿命を期待できる方法があるのかなと。
> 「有償」、「難易度が高い」ってどっちもいやな事ですね!笑
> 両方とも「コスト」と言われます==中小企業の場合。
> それからライセンスの管理も我々にとって面倒な負担です。
ttyさんがプロなのか初心者なのか判らなかったので
「少し難易度が高い」と書きましたが、
プロならば難易度については気にするほどのことはないと思いますよ。
技術の寿命についても、Windows APIは長い方ではないかと。
私が20年ほど前に作ったプログラムは結構普通に動いていますよ。
DBに接続できなくなり作り直すことになったプログラムなどもありますが、
VC6の頃に作ったプログラムでも、GUI関連ではほとんど問題は出ていません。
# 今選択するとしても、Windows APIが最良と言ってるわけではないですが、
# 現時点でC/C++から、これほどの寿命を期待できる方法があるのかなと。