Flash CS3 ドキュメンテーション |
|||
| Flash の拡張機能 > C レベルの拡張性 > C 関数の統合 > サンプルの 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