サンプルの DLL 実装

"ExtendingFlash/dllSampleComputeSum" フォルダの ZIP ファイルと SIT ファイルには、サンプルの DLL 実装があります。サンプルの実装を参照してください。次の操作を実行することで、実際に DLL を構築せずにプロセスを確認できます。

このセクションでは、サンプルの開発について説明します。このケースでは、DLL は 2 つの数値を追加する 1 つの関数のみを含んでいます。C コードは、次の例のようになります。

// C のソースコード
// DLL または共有ライブラリを "Sample" という名前で保存します。
#include <windows.h>
#include <stdlib.h>

#include "mm_jsapi.h"

// サンプルの関数
// JavaScript 関数のすべての実装でこのシグネチャが必要です。
JSBool computeSum(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv, jsval *rval)
{
    long a, b, sum;

    // 正しい数の引数が渡されたことを確認します。
    if (argc != 2)
        return JS_FALSE;

    // 2 つの引数を jsvals から longs に変換します。
    if (JS_ValueToInteger(cx, argv[0], &a) == JS_FALSE ||
        JS_ValueToInteger(cx, argv[1], &b) == JS_FALSE)
            return JS_FALSE;

    /* 実際の作業を実行します。 */
    sum = a + b;

    /* 戻り値を jsval としてパッケージ化します。 */
    *rval = JS_IntegerToValue(sum);

    /* 正常に終了したことを示します。 */
    return JS_TRUE;
}

このコードを作成した後で、DLL ファイルまたは共有ライブラリを作成し、それを適切な "Configuration/External Libraries" ディレクトリに格納します。C 関数の統合を参照してください。次に、次のコードを使用して JSFL ファイルを作成し、"Configuration/Commands" ディレクトリに格納します。JSFL ファイルの保存を参照してください。

// 上で定義した C 関数を実行する JSFL ファイル。
var a = 5;
var b = 10;
var sum = Sample.computeSum(a, b);
fl.trace("The sum of " + a + " and " + b + " is " + sum );

DLL 内で定義された関数を実行するには、Flash オーサリング環境で [コマンド]-[サンプル] を実行します。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00004604.html