FlashRuntimeExtensions.hとFlashRuntimeExtensions.libを用意します。
この2つのファイルは、FlashBuilder4.5インストールディレクトリの中にあります。
FlashRuntimeExtensions.h
例)C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\air3.0r1\include
FlashRuntimeExtensions.lib
例)C:\Program Files\Adobe\Adobe Flash Builder 4.5\sdks\air3.0r1\lib\win
DLLの作成
1.Win32プロジェクトを選択後、アプリケーションの種類からDLLを選択します。
2.プロジェクト名は、ANEConnectで作成します。
3.ソリューションエクスプローラより、FlashRuntimeExtensions.hとFlashRuntimeExtensions.libを
インクルードします。
4.stdafx.hに#include "FlashRuntimeExtensions.h"をインクルードします。
// stdafx.h : 標準のシステム インクルード ファイルのインクルード ファイル、または // 参照回数が多く、かつあまり変更されない、プロジェクト専用のインクルード ファイル // を記述します。 // #pragma once #include "targetver.h" #define WIN32_LEAN_AND_MEAN // Windows ヘッダーから使用されていない部分を除外します。 // Windows ヘッダー ファイル: #include <windows.h> // TODO: プログラムに必要な追加ヘッダーをここで参照してください。 #include "FlashRuntimeExtensions.h"
5.dllmain.cppに処理を記述します。
// dllmain.cpp : DLL アプリケーションのエントリ ポイントを定義します。 #include "stdafx.h" #include <stdlib.h> #include <string.h> extern "C" __declspec(dllexport) void ExtInitializer( void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet ); extern "C" __declspec(dllexport) void ExtFinalizer( void* extData ); void ContextInitializer( void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet ); void ContextFinalizer(FREContext ctx); FREObject getParameter( FREContext ctx, void* funcData, uint32_t argc, FREObject argv[] ); BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } __declspec(dllexport) void ExtInitializer( void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet ) { *extDataToSet = NULL; *ctxInitializerToSet = &ContextInitializer; *ctxFinalizerToSet = &ContextFinalizer; } __declspec(dllexport) void ExtFinalizer(void* extData) { return; } void ContextInitializer( void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet ) { *numFunctionsToTest = 1; FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*1); func[0].name = (const uint8_t*)"getParameter"; func[0].functionData = NULL; func[0].function = &getParameter; *functionsToSet = func; } void ContextFinalizer(FREContext ctx) { return; } FREObject getParameter( FREContext ctx, void* funcData, uint32_t argc, FREObject argv[] ) { FREObject retObj; FREResult result; uint32_t len; const uint8_t* message; char sendMessage[128] = "ANEConnect from "; len = strlen((const char*)argv[0])+1; result = FREGetObjectAsUTF8(argv[0],&len,&message); strcat_s(sendMessage,128,(const char*)message); FRENewObjectFromUTF8(128,(const uint8_t*)sendMessage,&retObj); return retObj; }
6.ソリューションのビルドを行い、ANEConnect.dllを作成します。
How i can use unicode string with FRENewObjectFromUTF8(128,(const uint8_t*)sendMessage,&retObj);
返信削除Regards.
There are no "FRENewObjectFromUnicode"
返信削除After the conversion to UTF-8 UNICODE, FRENewObjectFromUTF8 How do you use to?