• 締切済み

UNIXからC++.NETへの移植

UNIXのソースをC++.NETへの変換(移植)をするにはどうすればいいでしょうか? よろしくお願い致します。

みんなの回答

  • joe-
  • ベストアンサー率34% (11/32)
回答No.5

Linuxとwindowsの通信方法の違いを見るには、 http://www.geekpage.jp/programming/linux-network/ http://www.geekpage.jp/programming/winsock/ の2つを見比べてみてはいかがでしょうか。 現在使っているUNIXがLinuxで無い場合でも、UNIX系OSとLinuxの通信方法はほぼ一緒なので問題ないと思われます。 ただ、windowsコードに移植するときに、通信部分以外が結構はまるかもしれません。例えば、「snprintfが無い!」と叫んでしまうかも知れません。また、もとコードがX11系GUIを使っていたり、特定のキャラクタデバイスを使っていたりすると大部分の書き直しを覚悟した方が良いかもしれません。

回答No.4

自動的に変換する事は無理。 ソースコードを持っていると言う事は、それは自作?それともオープンソース? 自作なら移植はどーすればいいか分かると思うんだけど。 UNIX ではそのソースをメイクして使ってるんじゅないの?Windows 用のメイク環境HPにあるかもよ。 そのアプリとソースの出所が分かればアドバイスしやすいんだけどね。。。。

funky_gramer
質問者

補足

自作ですがどう移植すればいいのかわかりません・・・

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> UNIXのソースをC++.NETへの変換 まさかとは思いますが、Visual C++.NETを使用して、何らかのUNIX OS自体を移植するということでしょうか? もしその場合、CygwinのようにWindows上のアプリケーションとしてUNIX OSを実現するのか、Windowsとは切り離された形でUNIX OSを起動させるのかを選択しなければなりません。 単にUNIX上で動作するアプリケーションの移植であれば、場合によっては小手先の修正でも何とかなる可能性もありますし、大幅な修正が必要になる可能性もあります。 UNIX向けのデバイスドライバの場合は、おそらく作り直しになるかと思います。 実際のところは、どんなものを移植したいのでしょうか? # 字面からはOS自体の移植と読み取れるのですが...

funky_gramer
質問者

補足

ありがとうございます。 UNIXでソケット通信のアプリを使用していたのですが、機種の切替でWindowsに変更になったので、C++.NETで変換して使用ができればと思うのですが・・・

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

C++.NETと書かれているので、開発環境としてはVisual C++ .NET(おそらく2003)を念頭に置かれているのだと思いますが、POSIXサブシステムを使用する場合、Visual C++ .NETは単なる「統合エディタ」として使うことになります。 というのも、付属している膨大なウィザードやライブラリはすべてWin32サブシステムで使用することを前提としたもので、POSIXサブシステムを前提としたものは一切ないからです。またVisual C++ .NETの統合環境下ではPOSIXサブシステム向けにコンパイル・リンクを行うことすらできません。 Visual C++ .NETのツール(コンパイラcl.exeやリンカlink.exe)をコマンドライン上で呼び出して自力でコンパイル・リンクを行うことは可能ですが、それを行うくらいならば他のPOSIX向けツールを使用するほうがよっぽど楽かと思います。 さて、POSIXサブシステムに向けて移植しようとされているのは、おそらく「UNIXからの移植の場合POSIXサブシステムを利用すると楽」のような感じの記述を見られたからだと思います。 それは実は非常に古い記述で、現在ですとPOSIXサブシステムに代わる「Interixサブシステム」というものがあります。InterixサブシステムはMicrosoft Windows Services for UNIX (SFU)に含まれており、別途インストールする形になっています。 Interixサブシステムがどういうものかは 「Microsoft Windows Services for UNIX 3.0日本語版」 Interixサブシステムの導入で、UNIXとのさらに高い互換性とパフォーマンス改善を達成 http://www.atmarkit.co.jp/fwin2k/productreview/sfu30/sfu30_01.html をご覧ください。またWindows Services for UNIXについては 「Windows Services for UNIX 3.5 製品概要」 http://www.microsoft.com/japan/windows/sfu/productinfo/overview/default.asp をご覧ください。 SFUにはgcc等のツールも付属しており、またPOSIXサブシステムよりInterixサブシステムのほうがUNIXに対する互換性が高いので、UNIXからの移植であればSFUを使用してInterixサブシステムに向けて移植するほうが楽かと思います。基本的には「Windowsへの移植」というより「系統の違うUNIXへの移植」というイメージになります。 他にはCygwinという、また別のWindows向けUNIX互換(類似)環境に向けて移植する、という方法もあります。どちらが良いとは私には判断できないので、興味がありましたら調べてみてください。

funky_gramer
質問者

補足

ありがとうございます。 POSIXサブシステム、Interixサブシステムを使用しないで検討します。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

そのままでいい部分はそのままにしておき、そのままでは具合の悪い部分は.NET用に書き換えればいいです。

funky_gramer
質問者

補足

ありがとうございます。 新規作成でプロジェクトを作成し、UNIXソースを読み込めばよろしいでしょうか? C++.NETではプログラム作成でWindowsアプリ等ありますが、どれでも可能でしょうか? MSDNにUNIXからWin32への移植の説明があったのですがPOSIXサブシステムを使用して移植とありましたがPOSIXサブシステムの使い方がわかりません。 お手数おかけしますがご教授よろしくお願い致します。

関連するQ&A

  • C言語(Windows)からUNIXに移植したことある人

    C言語(Windows)からUNIXに移植したことある方はいらっしゃいますか? ある方がいらっしゃいましたら、移行の仕方等教えて下さい。その際の 注意点等ありましたらお願いします。 やろうとしていることは、Windowsの通信制御アプリをSolarisに 移植です。なのでWinsock関係などの情報が知りたいです。 通信制御アプリなのでCUIだと思いますが、もしGUIの場合UNIXではどうなるのでしょうか?

  • C言語(UNIX)からVB・VC・C++に移植したことあるかた

    C言語(UNIX)からVB・VC・C++に移植した ことあるかたいませんか? ある方がいらっしゃいましたら、移行の仕方等教えて下さい。その際注意点等ありましたらお願いします

  • UNIX/Cについて

    今度仕事の都合でUNIX/Cでのプログラミングを行うことになったんですが、 C言語とUNIX/Cの違いがよくわかりません。 C言語を知っていれば、UNIX/Cはできるんでしょうか?

  • UNIXでC++での書く場所

    UNIXでC++やってるんですが、どうやってプログラム書く画面開くんですか?一生のお願いですから誰か教えてください あと、プログラムのコンパイルかけるときはどうすればいいんですか? 本当にお願いですから教えてください

  • UNIX CからのJAVA起動について。

    いつもお世話になっております。 OS:UNIX、 言語:C言語で、JAVAで作成したクラスを引数を渡して起動したいのですが、やり方がわかりません。 実現可能なのかもよくわかりません。 UNIX開発は今回が初めてで困っております。 参考ソースや参考URLがありましたら、教えてください。 よろしくお願いいたします。

  • UNIX上でのODP.NETについて

    UNIX上にOracleをインストールした場合、 ODP.NETは、インストールされるのでしょうか。 ⇒インストールすることができるのでしょうか。 この、UNIX上でOracleをインストールしたときに、 ODP.NETのバージョンは、どのように確認を すればよいか教えて頂けないでしょうか? ご教授の程、よろしくお願い致します。

  • UNIX CプログラマがC++を学ぶには

    僕は今までUNIX上でC言語を使用し開発をしてきました。 しかし、次の仕事からマイクロソフトのVisualStudioのC++で開発するようになったのですが、 全くクラスの考えかたとか、C++の関数がわかりません。 自分のような今までUNIX Cを使用していた人間が、C++を学ぶに最適な 本があったらご紹介ください。

  • unix-c と linux-c の違いは?

    以前unix-cの仕事をしていましたが今度linux-cの仕事をすることに なりました。 以前:unix(solaris)C言語 今回:linux(redhat)C言語 この2つの大きいな違い等がありましたらおしえてください。

  • 全角→半角変換 C UNIX

    言語:C++ OS:UNIX お世話になります。 ご存知でしたらお力をお貸しください。 今、 入力力された全角のアルファベット・数字・ひらがな・カタカナを 半角アルファベット・数字・ひらがな・カタカナに変換し さらに、規定の記号以外は削除するプログラムを作らなくてはいけない状況です。 Cも経験が浅い為、いろいろググってみたのですが 見つかってもLCMapStringくらいで、これではC++とUNIX環境では動かなくて 非常に困っています ご存知の方、どなたか教えていただけないでしょうか。

  • UNIXでのプログラム

    UNIXでのプログラム UNIXで、例えばC+のソフト等を動かすには、どのようにしたら良いのでしょうか? C+のソフトをコンパイルしたものを単にデレクトリー上に置けば良いのでしょうか? この辺りを解説した本があれば、ご紹介願います。 UNIXのコマンドを解説した本はあるのですが、プログラムをどのように作って動かすかの部分が分からないので宜しくお願い申し上げます。

専門家に質問してみよう