No.8ベストアンサー
- 回答日時:
> ActiveTclで作った場合はLinuxやSoralisで動作するのでしょうか?
少なくともそれぞれの環境でコンパイルしなおす必要があります。
また、各環境に依存したコードを書いていると、コンパイルしなおすだけではすまなくなります。
もし、コンパイルしなおすことも不可なのだとすると、Cという選択は正しくないかもしれません。
わずかに可能性があるとすれば、CINTのようなインタープリタを使うぐらいでしょう。その場合、WildCという拡張機能を使えば、Tcl/Tkと混在させることが可能です。本来であれば、CINTにはROOTが相性がよいのですが、これまたC++になってしまいますので。
回答ありがとうございます。
どっちにしろ、OS個別のバイナリデータを作らなければならないという事ですね。
大まかに理解しました。頑張ってやってみます。
No.7
- 回答日時:
>no.3の方がCは対応していないと仰っているのですが、どうなのでしょうか?
Win32 APIはC言語からの利用が可能です。
Win32 API等のOS依存する処理を直接Callせずに
自作の関数を経由する様にすれば、環境依存する部分
を差し替える事で複数の環境に対応できるプログラム
を作成する事ができます。
汎用モジュールとして一般公開をするのでなければ
必要な処理のみ作れば良いのでそれほどの負担には
ならないと思います。
#一応、Win32 APIのみを使用してプログラムが
#作成できる程度の力量は必要とされますが....
データベースを使用するプログラムを作成する場合
も同様で、データベースの種類やバージョンに依存
する部分を直接記述せずに共通関数を経由してCall
する様にすればOSやデータベースに依存性する部分
が低くメンテナンスも楽なプログラムになります。
回答ありがとうございます。
知識不足で仰っている意味が分からないのですが、
Win32APIを使用して画面表示を行う際に、
OSの種類を判別してからCallするサブ関数によって呼び出すと言うことでしょうか?
実は画面表示を行えるソフトを一度も作った事がないのでWin32API自体は難しいのかどうかは分かりません。
作成するOSはWindowsなのでソフト自体は作れるのですが、使用するのがWin,Linux,Soralisの3つ以上なので
最初から全て互換できる方が望ましいです。
とはいえ、確かに修正できる部分が少ないければ問題ないかもしれません。
ありがとうございました。
No.6
- 回答日時:
> no.3の方がCは対応していないと仰っているのですが、どうなのでしょうか?
こちらにもコメントします。
参考URLの内容を読めば分かるように、WideStudioは、C++を使ってCのように書けるというだけであり、本当にCが使えるわけではありません。
また、実際にはC++特有の文法も多用していますし、見た目には現われなくても、C++であればCとは別の注意点も多数あり、それらに気を配らなければなりません。(例:POD型以外の扱い、例外安全保障など)
参考URL:http://www.widestudio.org/ja/builder-doc/1-1.html
回答ありがとうございます。
C++は勉強していない為、後回しになるかと思います。
一応インストールして使える状態にはしましたので、勉強しつつ使いたいと思います。ありがとうございました。
No.5
- 回答日時:
#3です。
> インストール時にIncludeフォルダに含まれているtcl.hやtk.hをインクルードするだけでいいのでしょうか?
ライブラリをリンクする必要があります。参考URLにmakeの仕方が掲載されていますが、Windowsの場合はライブラリ名にバージョンを含める必要があります。その点に注意して、適当に読み替えてください。
また、DLLやsoのあるディレクトリにPATHを通しておかなければなりません。Linuxのほとんどのディストリビューションでは、インストーラで自動的にTcl/Tkやその拡張パッケージ(TcllibとかTkImgとかBWidgetとか)をインストールできるはずです。Windowsであれば、ActiveTclを使うのが簡単でしょう。
ビルドの方法は、(Tcl/Tkに限らず)何を使っても、どうしてもある程度環境に依存してしまいます。
参考URL:http://www.geocities.jp/urano343/dir4/tapi29.html
回答ありがとうございます。
ソフトそのものを作るより、環境を整える事に時間がかかりそうです・・・
今使っているOSはWindowsなのですが、ActiveTclで作った場合はLinuxやSoralisで動作するのでしょうか?
No.4
- 回答日時:
WideStudio
http://www.widestudio.org/ja/index.html
http://www.widestudio.org/ja/wsinfo.html
>WideStudio/MWTは、Windows95/98/Me/NT/2000/Xp、WindowsCE、
>PocketPC、Linux、 FreeBSD、 SOLARIS、 MacOSX(X11が必要
>です)、BTRON、T-Engine、μCLinux(X11無し)上で動作するGUI
>アプリケーションを構築するための C/C++、Java、Perl、Ruby、
>Python、Ocaml の純国産のオープンソースのデスクトップアプリ
>ケーション統合開発環境です。
各OS環境毎に対応する共通ライブラリを作り、その共通
ライブラリを利用してプログラムを作成する事によりOS
に依存しないソフト開発を可能にします。
この様な事を実現する為には、例えばMS Windowsの場合は
Win32 APIの様な最も基本的なシステムコールを使用する
必要が有ります。
サポートプラットフォーム詳細とソフトウェア構成
http://www.widestudio.org/ja/software.html
No.3
- 回答日時:
CでマルチプラットフォームのGUIアプリを作るのであれば、GTK+を使うか、Tcl/Tkを使うのがよいと思います。
マルチプラットフォームのGUIツールキットはいろいろ出回っていますが、ほとんどが(Cではなく)C++用です(QtとかwxWidgetsとかFOXとか)。中には、Cに対応しているかのように記述されていても、実際にはC++でなければ使えないものもあるので要注意です(例: WideStudio)。参考までに、Tcl/Tkを使ったHello, World!を書いておきます。
#include <tcl.h>
#include <tk.h>
int main(int argc, char *argv[])
{
Tcl_Interp* interp = Tcl_CreateInterp();
char script[] = "pack [label .l -text \"Hello, World!\"]";
Tcl_FindExecutable(argv[0]);
Tcl_Init(interp);
Tk_Init(interp);
Tcl_Eval(interp, script);
Tk_MainLoop();
return 0;
}
回答ありがとうございます。
とりあえず、Tcl/TkのバイナリデータをDLしてインストールしてみました。
結構簡単なのでこれでやってみたいとおもうのですが、C言語として動かす方法が分かりません。
インストール時にIncludeフォルダに含まれているtcl.hやtk.hをインクルードするだけでいいのでしょうか?
No.2
- 回答日時:
C縛りというのなら こういうライブラリを使うしかないね
http://www.wxwidgets.org/
縛りでないのなら「java」だとかの、そもそも環境依存せずに動いているようなのを使うのが妥当じゃないかな。
javaならCに似ているような所が沢山あるから、Cが有る程度判るのならそんなにとっつきにくくない筈だしNo1の言うGUIの部分もjavaの方が簡単にできるよ
No.1
- 回答日時:
アプリの画面って例えばWindowsOS内で動作しているIEだとか電卓などでしょうか?
おそらく、OSに依拠せず作成するGUIアプリはできないのではないでしょうか。。。
※GUIとは:http://e-words.jp/w/GUI.html
GUIアプリはOSの処理を利用して作るプログラムですので、OSの使用している関数などを利用することになるかと思います。
すでに作成しているようですが、CUIプログラムであればテキストベースですので、作成は可能かと思いますがね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Windows 10 Windows10搭載の画面録画 容量を小さくする方法ありますか? 3 2022/06/21 09:45
- インターネット広告・アフィリエイト アフェリエイトサイト 作成について 5 2022/05/13 21:31
- Wi-Fi・無線LAN 映像も音声も記録出来る無料動画キャプチャソフトを教えて下さい。 3 2023/05/12 16:20
- フリーソフト アイコンとして保存アプリが不調 2 2022/04/16 06:39
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- 画像編集・動画編集・音楽編集 YouTubeの動画編集についてお伺いしたいのですが現在スマホでCapCutを使って編集をしているの 1 2023/01/25 20:39
- Windows 10 どうしたらパソコンに詳しくなれる?? 5 2022/04/04 19:09
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- 会計ソフト・業務用ソフト 会計ソフトを探してます。 4 2022/08/17 08:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
きれいなコード vba vbaを勉強...
-
ソースコード改造 msペイント
-
MFC,C++/CLI,C#の共存
-
空elseの有無
-
変数・オブジェクト名に漢字使用
-
プログラミングのコード量に関...
-
正しい五十音順について
-
Notepad++の関数リスト表示でC...
-
0除算して、落ちるプログラムと...
-
傾いた四角形内の範囲の条件式
-
VBAでユーザーフォームが自動的...
-
デジタル時計のアルゴリズム
-
Excelで4096点以上のFFTの方法
-
あるプログラムのコマンドライ...
-
C++でアボート(Abort)で処理が...
-
65536は2の何乗なのでしょうか?
-
60進数の四則計算
-
【JAVA】数字をひし形に出力す...
-
C# 再帰よるスタックオーバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
空elseの有無
-
C言語(gcc), Linux, FTPプログ...
-
プログラミングのコード量に関...
-
クリップボードを排他的に利用...
-
「ルーチン」という言葉の意味
-
COBOLのCALL文がいまいちつかめ...
-
PCの時刻精度
-
きれいなコード vba vbaを勉強...
-
例外処理があまり使われない理...
-
パーレー法のプログラムについて
-
変数・オブジェクト名に漢字使用
-
MFC,C++/CLI,C#の共存
-
テキストの折り返し処理について
-
ソースコード改造 msペイント
-
ノベルゲームを作成中なのですが、
-
ベンダーでBVを使って開発し...
-
BIOSってどんなCPUで処理してる...
-
VBからシャットダウンさせる方法
-
CGI/Perlという本はありますがC...
おすすめ情報