Date: 2005-01-20
Tags: wz, python

WZマクロからPythonコードを実行する

WZ Editor のマクロから Python コードを実行するためのDLLを作ってみた。

WZマクロの例:

int main(TX* text)
{
        printf( "1: %d\n", fnPygw("pywz","func1","teststrings") );
        printf( "2: %d\n", fnPygw("pywz","func2","teststrings") );

        char* code = "reduce(lambda x,y:x+y,[x for x in range(0,10)])";
        printf( "3: %d\n", fnPygw("pywz","func3", code) );

        return 0;
}

呼び出されるPythonコードの例:

func1 = lambda x: len(x)
func2 = lambda x: 15
def func3(x):
        return eval(x)

実行結果:

1: 11
2: 15
3: 45

実行結果が説得力に欠けるな‥‥。

WZマクロ側から指定できるのは今のところ 呼び出すPythonモジュール名 , モジュールの関数名 , 引数となる文字列 だけで、返値はint決め打ちだから、あんまり複雑なことはできない。でも可能性はあるかも。

file: pygw20050119.lzh