No.1ベストアンサー
- 回答日時:
私もレスを楽しみにしていたのですが、付きませんね。
レスがないと、削除されますので、当て馬代わりに。
私も GTK+ でやろうとしていますが、環境がまだです。
それに、通信関係は畑が違うので、ご希望にはそえませんが、
これまでの移植への感触では、
1.API が対応していれば、その部分は容易でないでしょうか。
MFC が使ってあると、ちょっと難題かも。
2.リソースでカバーしていると、面倒でしょう。
3.GUI になると、再構成が必要になる可能性があります。
サンプルを見ると、絵文字で表示している例があり、
ちょっとぞっとしています。
ソースが公開されている UNIX からの移植は多そうですが、
逆は、例が少ないというか、やっている人が少ないというか、
余程、覚悟が必要な気がしています。
Linux をインストールして、ドライバなどないと作動しないことがあり、
win のを出している会社に聞くと、サポートなしというところが、
(まだ)多そうなので、移植が進むと助かると期待しています。
お返事ありがとうございます。
やはりGUIが絡むと厄介そうですね....
プロジェクト自体の詳細はまだわからないのですが、
念のためにGUI回りを調べて勉強してみます。
後、mcWalkerさんはGTK+ でGUIを構築されるようですが、Solarisの場合どうなるのでしょうか?
お恥ずかしい話なのですが、私はUNIXでGUIの
アプリを作ったことがありません。色々調べていると
MotifやらTCL/TK?など色々あり
どれから手をつければよいのかわかりません。
mcWalkerさんがGUI環境構築にGTK+ を選定したのは
どういった理由なのでしょうか?
No.3
- 回答日時:
すみません。
ご参考になるかどうかわかりませんが、
以前に、ご質問の場合とはまったく逆の、
Unix→Windowsの移植をしました。
Sorarisということですので、
UnixのSocketはバークレイ準拠のものと考えてよいのでしょうか?
ソケットですが、基本的な流れは同じですが、
Windowsではソケット扱いが根本的に違いますよね。
バークレイでselectを使うソケットの同期があるように
WindowsにもWSAAsyncSelectやWSPAsyncSocketがありました。
バークレイではソケットのハンドルに対してselectするのに対し
Windowsでの同期の対象はハンドルというよりウィンドウ自体で、
同期の通知をウィンドウのイベントで受けるようになっています。
またWindows版にもバークレイ的扱いをするselect関数があるのですが
動作がまったく違う動きをするので注意が必要です。
賛否両論の意見ではありますが、
MFCで元のソースが実装されているなら
差ほど移植は難しくないと考えてよいと思います。
私は今は無きWinsockやTranpetの開発供給元であった
stardast社のご協力を得てお仕事をしたことがあります。
結果的に移植の要は、socketのシステムに付随する箇所を
見ないで、中身だけを追ったほうがやりやすいということでした。
たとえばメールサーバーを作るときは、
RFCに付随してプロトコルをチェックしますよね。
で、実際の送受信の処理を書くわけですが、WindowsとUnixでは
根本的にシステムの考え方が違うためsoketを見つめてしまうと
とても大変なわけです。
なので、実際に送信されるデータ、実際に受信されるデータのみに
的を絞って抽出し、ソケットの重要なところは飛ばして
別ソースに搾り出して行きます。
勿論、元のソースがあった場所のマーキングはしておきます。
クリティカルな送受信の処理だったら対処が大変ですからね。
あとは、本来のシステムの仕様を忘れて、
→ ここが肝心です、忘れてしまうのです!
本当にクリティカルな部分を調べ、双方に実装の違いと
利点を見出して移植先のシステムの該当する箇所に
抽出したコードを載せて行きます。
すると案外簡単に行ったりします。
Sorarisならバークレイベースのはずですから
バークレイベースのソケットは仕組みも見た目も単純で悩むことなんてありません。
Sun Microsystemsの仕事をした経験からですが、
SorarisでGUIといえば、SunのベンダーではMotifというものを使います。Suntools等が含まれています。
そこではソケットはバークレイベースです。
Soraris4辺りからSystem5ベースで若干変わりましたが
そんなに違いはありません。GUIであってもWindowsの様にシステムとAPIが密接に絡みつくことが無いのでとてもスマートに出来ています。
ご参考になりましたでしょうか。
何か具体的な例でもあればよいのですが
申し訳ありません。
お返事ありがとうございます。
やはり仕様の部分と通信の部分を切り分けを行うことが
重要ですね。仕様の部分は変わらないので、通信の部分
の両プラットフォームの違いを把握することが肝心ですね。
nobeさん貴重な情報をいただき誠にありがとうございます。
No.2
- 回答日時:
私は趣味のプログラミングの方ですが、多少、参考になれば。
GUI の種類は、会社の方針とか、一緒に仕事をしているとかで
制約があるかと思いますが、そうでなければ、一番流布して
いるものが、分からないとき聞けるというので、よいでしょう。
GTK+ を取りあえず選んだのは、行っている本屋で見たせいです。
(タダでいろいろ揃いそうな点も決め手でした)
Wide Studio とかも漁ったのですが、皆さん難渋しているみたいで、
もう少し後かなと思いました。
Windows でいうところの message 処理が、GTK+ ではちょっと
面倒な印象を持っています。
余計なことですが、Macintosh から転向したもので、どれも
違和感を否定できません。できるはずだとAPIなど探してしまいます。
(検索手段がそろっているってのも欠かせませんね。)
2度もお返事をいただきありがとうございます。
>一番流布しているものが、分からないとき聞けるというので、よいでしょう
たしかにそうですね。わからない部分などを聞くこともできるし、
バグの情報なども豊富だと思うので、
まだ完全な仕様は固まっていないのですが、いい機会なのでGUI回りを
調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード BIOSの次にno option to boot toと表示されWindowsが起動できません 6 2022/05/20 23:19
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 不妊 不妊治療アプリについて 2 2023/03/05 09:50
- 政治 臓器移植の法律はアメリカと同じにするべきではないですか? 2 2023/02/11 14:03
- 不妊 不妊治療で胚盤胞2個移植 1 2023/04/10 17:27
- 文学・小説 臓器移植がテーマの本を探しています。小説だとありがたいです。 現在日本では、脳死状態の人の臓器を家族 2 2022/12/19 21:17
- Windows 10 新しく購入したWindowsパソコンのディスクの容量を変更しています。 Cドライブの容量が元々1TB 9 2023/08/09 16:39
- Excel(エクセル) エクセルからスプレッドシートに数式を移植で起こるエラーについて。 2 2023/08/05 10:56
- その他(悩み相談・人生相談) 理想の働き方ができる仕事と 好きな仕事、あなたならどちらを選択しますか? 私の理想の働き方 ・国や働 4 2023/07/17 19:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル VBA でのCOMポート...
-
TCP/IP通信時のサーバーからの受信
-
recv関数でフリーズしてしまう
-
ソケットのクローズについて
-
FAX自動送信について
-
VB6のwinsockでconnectできない
-
UdpClient 送信元のIPアドレ...
-
Socket通信の0バイト受信について
-
サーバーソケットを開いたまま...
-
相手のIPアドレスを取得する方法
-
Winsockで接続待ちタイムアウト...
-
ソケットのrecvの戻り値が0
-
ソケット通信 同じポート番号...
-
緯度、経度の 10進法と 60進法...
-
Macターミナルで実行中のプログ...
-
C言語で、メモリを解放しないで...
-
バックグラウンドのプロセスの...
-
メッセージBOXの「はい」「いい...
-
DoEvents関数って何?
-
C言語における再帰呼び出しの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
UDP通信におけるbind関数について
-
recv関数でフリーズしてしまう
-
VB6のwinsockでconnectできない
-
UDP通信する時に、相手にどうや...
-
ソケット通信 同じポート番号...
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
ソケットを用いた1対多通信につ...
-
Winsockで接続待ちタイムアウト...
-
ソケットでクライアントのipア...
-
ソケットのクローズについて
-
相手のIPアドレスを取得する方法
-
SIPがNATを越えられない理由
-
Socket通信の0バイト受信について
-
CreateFile関数でCOMポートが開...
-
Connectエラーが出てしまう・・...
-
同じLAN内パソコンのIPアドレス...
-
送信したデータの一部が文字化...
おすすめ情報