A 回答 (5件)
- 最新から表示
- 回答順に表示
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.3
- 回答日時:
> UNIXのソースをC++.NETへの変換
まさかとは思いますが、Visual C++.NETを使用して、何らかのUNIX OS自体を移植するということでしょうか?
もしその場合、CygwinのようにWindows上のアプリケーションとしてUNIX OSを実現するのか、Windowsとは切り離された形でUNIX OSを起動させるのかを選択しなければなりません。
単にUNIX上で動作するアプリケーションの移植であれば、場合によっては小手先の修正でも何とかなる可能性もありますし、大幅な修正が必要になる可能性もあります。
UNIX向けのデバイスドライバの場合は、おそらく作り直しになるかと思います。
実際のところは、どんなものを移植したいのでしょうか?
# 字面からはOS自体の移植と読み取れるのですが...
この回答への補足
ありがとうございます。
UNIXでソケット通信のアプリを使用していたのですが、機種の切替でWindowsに変更になったので、C++.NETで変換して使用ができればと思うのですが・・・
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/s …
をご覧ください。またWindows Services for UNIXについては
「Windows Services for UNIX 3.5 製品概要」
http://www.microsoft.com/japan/windows/sfu/produ …
をご覧ください。
SFUにはgcc等のツールも付属しており、またPOSIXサブシステムよりInterixサブシステムのほうがUNIXに対する互換性が高いので、UNIXからの移植であればSFUを使用してInterixサブシステムに向けて移植するほうが楽かと思います。基本的には「Windowsへの移植」というより「系統の違うUNIXへの移植」というイメージになります。
他にはCygwinという、また別のWindows向けUNIX互換(類似)環境に向けて移植する、という方法もあります。どちらが良いとは私には判断できないので、興味がありましたら調べてみてください。
No.1
- 回答日時:
そのままでいい部分はそのままにしておき、そのままでは具合の悪い部分は.NET用に書き換えればいいです。
この回答への補足
ありがとうございます。
新規作成でプロジェクトを作成し、UNIXソースを読み込めばよろしいでしょうか?
C++.NETではプログラム作成でWindowsアプリ等ありますが、どれでも可能でしょうか?
MSDNにUNIXからWin32への移植の説明があったのですがPOSIXサブシステムを使用して移植とありましたがPOSIXサブシステムの使い方がわかりません。
お手数おかけしますがご教授よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルからスプレッドシートに数式を移植で起こるエラーについて。 2 2023/08/05 10:56
- iOS Unix実行ファイルの開き方 1 2022/06/07 12:47
- Microsoft ASP ASP.NETや.NET、C#とかVBとか 2 2022/05/16 21:16
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- 物理学 移流熱拡散方程式の解き方 フーリエ変換 1 2022/08/15 15:25
- 不妊 胚盤胞移植後の体調について 1 2022/08/24 16:03
- CPU・メモリ・マザーボード BIOSの次にno option to boot toと表示されWindowsが起動できません 6 2022/05/20 23:19
- ガーデニング・家庭菜園 家庭菜園の野菜について 8 2023/04/22 17:55
- JavaScript ブックマークレットについて 2 2022/10/09 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
C言語をコンパイルするとコンピ...
-
実行後にコンパイルに失敗しま...
-
ヘッダーファイル『windows.h』...
-
math.hに含まれる関数が使えない
-
[COBOL] ソースの復帰
-
MVSマシンで0C7でABENDしたので...
-
printf()関数の括弧を二重にし...
-
「逆コンパイル」ってできるん...
-
同じEXE・同じファイルで解析結...
-
<math.h>ヘッダを入力している...
-
ビープ音が鳴りません・・・
-
Cのソースを毎回コンパイルし...
-
lhafileをインストールしたい
-
自作DLLの中身を暗号化
-
Verilog_HDLでのdefineとifdef
-
#defineとconstについて
-
C#で char型とstring型の比較で...
-
gccでc++プログラムをコンパイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
共有ライブラリの内容確認について
-
シリアル通信の受信待ちについて
-
C#で char型とstring型の比較で...
-
64ビットのlinuxで32ビットメモ...
-
Verilog_HDLでのdefineとifdef
-
math.hに含まれる関数が使えない
-
自作DLLの中身を暗号化
-
C言語で作ったらWindowsでもMac...
-
実行後にコンパイルに失敗しま...
-
lhafileをインストールしたい
-
c言語です コンパイルした時に...
-
ビープ音が鳴りません・・・
-
すべてのリビルド: 0 正常、 0 ...
-
gcc バージョン違いによるコン...
-
Cのコンパイルでコメントアウト...
-
CLRアプリと通常のアプリとの違い
-
「インクルードファイル 'pthre...
-
MVSマシンで0C7でABENDしたので...
おすすめ情報