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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Socket通信の0バイト受信について
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
ソケットのrecvの戻り値が0
-
エクセル VBA でのCOMポート...
-
recv関数でフリーズしてしまう
-
UdpClient 送信元のIPアドレ...
-
UDP通信について
-
ソケットのクローズについて
-
ソケット通信
-
VB6のwinsockでconnectできない
-
【ajax】 XMLHttpRequestオブジ...
-
VC++でのソケット通信について
-
ソケットプログラミングで・・
-
空きポートの取得方法
-
ソケット通信の送受信遅延-02 ...
-
Socket通信での通信異常について
-
MFCソケットについて
-
オンラインゲームの設計
-
Winsockで接続待ちタイムアウト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
Winsockで接続待ちタイムアウト...
-
UDP通信におけるbind関数について
-
VB6のwinsockでconnectできない
-
ソケットのrecvの戻り値が0
-
ソケットのクローズについて
-
UDP通信する時に、相手にどうや...
-
Socket通信の0バイト受信について
-
recv関数でフリーズしてしまう
-
ソケット通信 同じポート番号...
-
CreateFile関数でCOMポートが開...
-
Connectエラーが出てしまう・・...
-
ソケットでクライアントのipア...
-
ソケットを用いた1対多通信につ...
-
UdpClient 送信元のIPアドレ...
-
WinSockでの通信プログラムがう...
-
SIPがNATを越えられない理由
-
ソケットプログラミングに関す...
-
相手のIPアドレスを取得する方法
おすすめ情報