⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen.pl

📁 使用环境VC++ 6.0
💻 PL
字号:
while( <> )
{
    chomp();

    if( /(.*)\(/ )
    {
        printf("LONG WINAPI $_\n");
        $fname = $1;
        $argc = 0;
    }
    elsif( /\);/ )
    {
        printf(")\n{\n");

        # Example:
        # static FunctionPointer<LONG (WINAPI*)(HCALL, LPCSTR, DWORD)> fp(g_hinst, "lineAccept");
        # return fp.Trace(fp()(a0, a1, a2));

        printf("    static FunctionPointer<LONG, LONG (WINAPI*)(");
        for( $i = 0; $i < $argc; $i++ )
        {
            if( $i ) { printf(", "); }
            printf("$argv[$i]");
        }
        
        printf(")> fp(g_hinstThat, \"$fname\");\n");
        printf("    return fp.Trace(fp()(");

        # Print args
        for( $i = 0; $i < $argc; $i++ )
        {
            if( $i ) { printf(", "); }
            printf("a$i");
        }    

        print "));\n}\n\n";
    }
    elsif( /[a-zA-Z0-9_]/ )
    {
        if( $argc )
        {
            printf(",\n");
        }

        printf("$_ a$argc");
        $argv[$argc] = $_;
        $argc++;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -