No.2ベストアンサー
- 回答日時:
MacOS X用のアプリケーションをWindowsでは実行できないでしょう。
Windows用のアプリケーションとは、intel 386互換のCPUまたはAMD x64互換のCPU上で、MicrosoftのWindows OSにて動作するプログラムを指します。
MacOS X用のアプリケーションとは、IBM/Motrola PowerPC G3以降のCPU上で、Mac OS Xにて動くプログラムを指します。
CPUのアーキテクチャも違えばOSもまったく違うため、機械語オブジェクトプログラムにもライブラリにも実行プログラムにも互換性はありません。
Mac用に作成された機械語(C等からコンパイルされたものも含む)アプリケーションは、Windows上で利用することは出来ません。
当然逆にWindows用に作成された機械語アプリケーションは、Mac上で利用することは出来ません。
総じて言えば、MacとWindows、Linux等の異なるOperating System(以下OS)間では、同じCPUを使用していたとしても、原則としてアプリケーションを相互に交換することは出来ません。
結論としては、
「MacとWindowsの間に、互換性は99.99%ない。ただし、万が一、熟練したプログラマが、十分に気をつけてプログラミングした場合のみ残りの0.01%になる(機械語レベルで互換になる)可能性がある。*1」
となります。
注:
*1 機械語レベルで互換にすることは可能かもしれないが、動作まで同じにするためには使える命令がほとんどないため「特に何もしない」プログラムや、「必ず暴走する」プログラムでしかありえないだろう。
この回答への補足
分かりやすい説明ありがとうございます。つまり実質アプリケーションの互換は不可能ですね。新しく思いついたのですが、例えばMacで作ったソースをWinに取り込み、Win上でコンパイルして利用することは可能なのでしょうか?
補足日時:2005/05/03 11:40No.5
- 回答日時:
*1に対する注が抜けてました。
注:
*1 メモリのエンディアンが違う
#include <stdio.h>
int main()
{
int i; // forのindex
long l; // long(32bit)
short s; // short(16bit)
char *c; // char pointer
l = 0x12345678;
s = 0x1234;
c = (char *)(&l);
printf("l=%x\n", l);
for(i = 0; i < sizeof(long); i++)
{
printf("c[%d]=%x\n", i, c[i]);
}
c = (char *)(&s);
printf("s=%x\n", s);
for(i = 0; i < sizeof(short); i++)
{
printf("c[%d]=%x\n", i, c[i]);
}
}
このプログラムを実行すると、変数がどのように格納されているのかわかります。
intel(IA-32)アーキテクチャ(リトルエンディアン)
l=12345678
c[0]=78
c[1]=56
c[2]=34
c[3]=12
s=1234
c[0]=34
c[1]=12
Motorola(PowerPC)アーキテクチャ(ビッグエンディアン)
l=12345678
c[0]=12
c[1]=34
c[2]=56
c[3]=78
s=1234
c[0]=12
c[1]=34
No.4
- 回答日時:
> 例えばMacで作ったソースをWinに取り込み、Win上で
> コンパイルして利用することは可能なのでしょうか?
Macに依存する(cocoaやtoolkitなど)機能を使わないで、CPUの構造(メモリのエンディアンが違う*1)にも注意していれば、可能です。
MacOS Xには、gcc+libcがあります。
Windows上でもMingWやCygwinなど、gcc+libcがありますので、この部分であれば互換を取ることはさほど難しくないでしょう。
ただし、ウィンドウプログラミングはOpenWinやGTKなどの両方の環境で利用できるライブラリを利用する等少し工夫しなければなりません。
No.3
- 回答日時:
基本的には異なる環境の間での互換性は
CPUの違いとOSの提供する機能の違いに大別されます。
両方の違いを吸収できる開発方法として
JAVAが存在します。
また、C言語では移植性が高いのですが
あくまでも移植性の話で
MC68000シリーズやPowerPCシリーズから
ix86シリーズへの移植は手間がかかります。
また、OSの機能として、たとえば画面描画だけをとっても
まったく違うわけで、Mac,Win両方で動くゲームなどは
普通に作ることはできません。
いちおう、共用化されたライブラリーがあれば
それを使って開発することは可能ですが
CocoaやDirectXなどは、それぞれのOS特有のもので
異環境との互換性についての便宜は一切無いと言えます。
ありがとうございます。CPUとOSが違うとどうしようもないみたいですね。JAVAではちょっとできないことがありそうなので、やはり実行したいPCのOSに合わせて作ります
No.1
- 回答日時:
> 「AppleScript Studio」を使った、Cocoaアプリケーションというのは、Winで起動するすることは可能なのでしょうか?
「AppleScript Studio」については詳しくないので正確なことはわかりませんが、一般的には無理だと思います。Windows上で動くAppleScriptのインタープリタでも自作すればできるのでしょうが?(もしかすると既にあるかもしれませんが、私は知りません)
> MacでC又はC++で作ったアプリケーションはWinで利用可能なのでしょうか?
これはちょっと複雑です。
まず、CodeWarriorやGCC等のクロスコンパイラを使って、Mac上でWindows向けのアプリケーションを作った場合は、当然Windowsで利用可能です。
次に、Mac上で動作するアプリケーションの場合、コンソールアプリやクロスプラットフォームのツールキットを使用して開発したアプリケーションであれば、ソースレベルで互換性を持たせることは可能です(Windows用にコンパイルし直す必要はあります)。
また、CINTのようなC/C++インタープリタを利用するのであれば、そのままで再利用できる可能性もあります。
ありがとうございます。少々初心者には辛い専門用語があったんですが、そのおかげで言葉の意味をいろいろ勉強できました。しかしちょっと自分の能力の許容範囲を超えていそうなので、Macで使うアプリはMacでWinで使うアプリはWinで作ったほうがいいですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Mac OS Parallels Desktop for Mac 2 2023/06/22 04:32
- Mac OS mac使いの無線事情 3 2023/05/26 02:30
- CAD・DTP vectorworks、winとmacでデータを共有する場合 1 2023/02/20 16:41
- マウス・キーボード ブルートゥースキーボードの互換性 7 2022/12/11 11:12
- ノートパソコン おすすめwinノート 2 2023/05/24 06:12
- その他(教育・科学・学問) 「、」を「,」(カンマ)で綴っている文献って、何故そうしているんですか? 7 2022/11/30 19:59
- 関西 新快速は青春18きっぷの利用者のためにあるのですか? 3 2023/07/23 15:22
- セキュリティソフト ウイルスセキュリティソフト 1 2022/07/12 13:14
- マウス・キーボード macからリモートデスクトップでwindowsに接続した際のキーボード配列 3 2023/07/10 08:40
- Word(ワード) office2013のPIPC(Win.8→10)でoffice2013が再インストールできない 2 2023/08/28 17:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visual Studio 有料と無料比較
-
C#で作ったWinアプリをタブレッ...
-
vba 時間の引き算 例えば 15:00...
-
「読み込み違反」が起きたとき...
-
アウトルックが起動しているか...
-
ManagementClassが見つからない。
-
Windows PowerShellでC言語を実...
-
Visual Studio 「AnyCpu」について
-
リムーバブルディスクのフォー...
-
VBAでOutlookを終了させたい Ex...
-
印刷ダイアログを表示させない方法
-
ミニチュアCDの作り方を教えて...
-
Designer.vbは直接コードをいじ...
-
Pythonのコードをexe化
-
visual studio 2013 エラー
-
意味不明の実行時エラーで困っ...
-
Internet Explorer にURLを引...
-
java
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Visual Studio 有料と無料比較
-
vb.net2019 でFORMが出ない
-
visual studio community2017 ...
-
ダイアログボックスのタブコン...
-
Windowsデスクトップアプリケー...
-
VS2017で出力DLLのサイズが小さ...
-
C#で作ったWinアプリをタブレッ...
-
CSocketのOnReceive()
-
VC++6.0 で 16bit アプリケーシ...
-
VBとVCとDelphiのよいところ、...
-
vb.netでのアプリケーションを...
-
アプリケーションとコンテンツ...
-
16ビットアプリケーションの解析
-
Visual C++ 2008 Express Editi...
-
COMポートからのデータ取得方法
-
vba 時間の引き算 例えば 15:00...
-
アウトルックが起動しているか...
-
Visual Studio 「AnyCpu」について
-
印刷ダイアログを表示させない方法
-
excel vbaから実行するexe実行...
おすすめ情報