2013年9月9日月曜日

【なでしこ】お、イベント発生成功!

どうもプログラムが間違っていたらしく、DLLでイベント発生成功!。思ってた
通り、

------ここから------

    if (arg1->VType == varGroup)
    {
        ret = pfnako->nako_group_findMember(arg1, "発生した時");
       
        if (ret->VType != varNil)
        {
            pfnako->nako_group_exec(arg1, "発生した時");
        }
        else
        {
            /*Do Nothing*/
            ;
        }
    }

------ここまで------

の様なコード書いておいて、なでしこ側で

------ここから------

 ■テストグループ
 ・{イベント}発生した時

G1とはテストグループ
G1→発生した時は~
 「イベント発生」と表示
 
DLL引数ダンプ(G1) /*ここでDLLの関数をコール。グループを渡す*/

------ここまで------

と、やってやると、テストグループのイベントをDLL側からコールできました(^^)。
これで今までなでしこ→DLLの一方方向なコールシーケンスしか出来なかった
けど、DLL→なでしこなコールシーケンスも書ける!。ただし、一旦なでしこ定義の
関数に処理が渡ってること考えると、スレッドセーフではない気はします。
セマフォとか同期処理を上手く入れてやればDLL側のスレッドでもコールできる
かも…。