
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ランキング
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
C#でTreeViewのCheckBoxのサイ...
-
visual studio 2022でのC#プロ...
-
略語の読み方について
-
c言語
-
C言語の関数のextern宣言
-
【C言語】全角文字の配列を、全...
-
最初に聞かれたこと
-
C言語 関数、変数の宣言について
-
あってる
-
C言語のことです。写真(見にく...
-
プログラミング言語についてc++...
-
UART通信の取説で,left floati...
-
パソコン
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C++でデスクトップGUIアプリ開...
-
C言語について。
-
C言語 解答について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VS2017で出力DLLのサイズが小さ...
-
C#で作ったWinアプリをタブレッ...
-
visual studio community2017 ...
-
auのBREW開発でのエミュの動作...
-
VB2010 ネットに繋ぐ方法
-
ダイアログボックスのタブコン...
-
MFC:MDIにおけるビューのアク...
-
VBとVCとDelphiのよいところ、...
-
16ビットアプリケーションの解析
-
Visual Studio 有料と無料比較
-
COMポートからのデータ取得方法
-
Windowsデスクトップアプリケー...
-
画像をGIF形式にするのってライ...
-
MacとWinの互換性
-
vb.net2019 でFORMが出ない
-
VC++のプロジェクト指定
-
vb.netでのアプリケーションを...
-
CSocketのOnReceive()
-
アプリケーションとコンテンツ...
-
VC++6.0 で 16bit アプリケーシ...
おすすめ情報