|
|
Log In | Not a Member? |
Contact ADC |
| < Previous PageNext Page > |
異なるSDKを使って同じソースコードをビルドする場合は、使用されているSDKに応じてコードを条件付きでコンパイルする必要が生じることもあります。これを行うには、プリプロセッサディレクティブとAvailabilityMacros.hで定義されているマクロを使います。
Important: AvailabilityMacros.hは、10.2以降のSDKのCarbonフレームワークとCocoaフレームワークによって自動的にインクルードされますが、10.1 SDKではインクルードされません。これらのマクロを10.1 SDKと併せて使用したい場合は、通常、プロジェクトのプレフィックスヘッダに次の行を追加することによって、手動でファイルをインクルードする必要があります。
#include <AvailabilityMacros.h>
この行を追加しないと、他のSDKでは正常にビルドされるコードが、10.1 SDKでビルドすると無症状のまま失敗します。
たとえば、Listing 2-1に示した関数を、10.2.8 SDKを対象に(または、他のデベロッパによって、10.2を使用し、SDKを使用せずに)コンパイルする必要があるものとします。HIAboutBox関数を参照するだけでもコンパイルが失敗するため、10.3のヘッダファイルを使用するのでない限り、コード全体を除外する必要があります。次のようなコードでこれを行うことができます。
void MyAboutBox(void) |
{ |
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) |
if(HIAboutBox != NULL) |
{ |
HIAboutBox(NULL); |
} |
else |
{ |
#endif |
// 以前のテクノロジーでバージョン情報ボックスを表示するための大量のコード |
#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) |
} |
#endif |
} |
この方法を使えば、ソースファイルをネイティブの10.1または10.2システム上で(または10.1または10.2のSDKを使って)コンパイルエラーなしでビルドできます。
| < Previous PageNext Page > |
Last updated: 2005-11-09
|
Get information on Apple products.
Visit the Apple Store online or at retail locations. 1-800-MY-APPLE Copyright © 2007 Apple Inc. All rights reserved. | Terms of use | Privacy Notice |