# C++ ライブラリ

> C++ ライブラリ を使用して、Tapjoy を Cocos2d-x やその他のネイティブ C++ ゲームプロジェクトに統合します。

Unity Offerwall は、Android NDK と C++ を使用する Cocos2d-x などの開発環境で C++ API を提供します。

Tapjoy の Android SDK によって提供される C++ API は、Tapjoy の iOS SDK の C++ API と互換性があります。

## NDK モジュール##ndk-modules

C++ ヘッダーファイルとライブラリを提供する NDK モジュールは、Offerwall SDK に含まれています。Tapjoy の NDK モジュールのパスを NDK\_MODULE\_PATH として追加します。

```java title="Java"
ndk-build NDK_MODULE_PATH=../../TapjoySDK_Android/Library/modules
```

## Cocos2dx##cocos2dx

コロン (:) で区切られた `NDK_MODULE_PATH` を `proj.android/build_native.sh` に追加します。

```java title="Java"
 # proj.android/build_native.sh
...
if [[ "$buildexternalsfromsource" ]]; then
    echo "Building external dependencies from source"
    "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
       "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source:../../TapjoySDK_Android/Library/modules"
else
    echo "Using prebuilt externals"
    "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
       "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt:../../TapjoySDK_Android/Library/modules"
fi
```

以下のモジュールのいずれかを使用します。

## 静的ライブラリモジュール##static-library-module

アプリケーションライブラリを静的ライブラリモジュールにリンクします。

fiverocks\_static モジュールを追加します。

アプリプロジェクトから、Tapjoy API 統合ソースコードをビルドする Android.mk ファイルに tapjoy\_static モジュールを追加します。

```java title="Java"
make
 ...
 include $(CLEAR_VARS)
 ...
 LOCAL_STATIC_LIBRARIES := tapjoy_static
 ...
 include $(BUILD_SHARED_LIBRARY)
 ...
 $(call import-module,tapjoy)
 ...
```

JavaVM を定義します。

`tapjoy_static` モジュールには JavaVM オブジェクトが必要です。`JNI_OnLoad` の関数定義を探し、`Tapjoy::setJavaVM` メソッドを追加します。

```java title="Java"
  #include "TapjoyCpp.h" // Tapjoy C++ API
 ...
 jint JNI_OnLoad(JavaVM *vm, void *reserved) {
     ...
     JniHelper::setJavaVM(vm);
     tapjoy::Tapjoy::setJavaVM(vm);
     ...
 }
```

## 共有ライブラリモジュール##shared-library-module

共有ライブラリモジュールを使用することもできます。これは JavaVM を必要としません。

`tapjoy_shared` モジュールを追加します。

アプリプロジェクトから、Tapjoy API 統合ソースコードをビルドする Android.mk ファイルに `tapjoy_shared` モジュールを追加します。

```java title="Java"
make
...
include $(CLEAR_VARS)
...
LOCAL_SHARED_LIBRARIES := tapjoy_shared
...
include $(BUILD_SHARED_LIBRARY)
...
$(call import-module,tapjoy)
...
```

共有ライブラリモジュールの依存関係の問題を解決します。
Tapjoy ライブラリを使用するアプリケーションライブラリをロードする前に、`Tapjoy.loadSharedLibrary()` を呼び出します。

```java title="Java"

import com.tapjoy.Tapjoy;

  static {
    Tapjoy.loadSharedLibrary();
    System.loadLibrary("YourAppLibrary");
  }
```

## C++ API##c++-api

`TapjoyCpp.h` ヘッダーファイルを使用します。

```java title="Java"

 #include "Tapjoy/TapjoyCpp.h" // Tapjoy C++ API

using namespace tapjoy;

  Tapjoy::trackEvent("some event");
```

## プライバシー##privacy

詳細は [こちら](../advanced/user-privacy) を参照してください。

### API##api

```cpp
TJPrivacyPolicyHandle policyHandle;
policyHandle = TJPrivacyPolicy::getPrivacyPolicy();
TJPrivacyPolicy::subjectToGDPR(policyHandle,true);
TJPrivacyPolicy::setUserConsent(policyHandle, "1″);
TJPrivacyPolicy::setUSPrivacy(policyHandle, "1YNY");
TJPrivacyPolicy::belowConsentAge(policyHandle, true);
```
