|
封装了一个启动线程的函数,最多可传递15个参数
然后调用子程序的时候,最多可以传递15个参数
我是直接判断了十几次,大佬们有啥循环简洁的代码吗
|
线程_启动多参_整型 | 整数型 | | |
子程序指针 | 整数型 | | | | 参数1 | 整数型 | | | | 参数2 | 整数型 | | | | 参数3 | 整数型 | | | | 参数4 | 整数型 | | | | 参数5 | 整数型 | | | | 参数6 | 整数型 | | | | 参数7 | 整数型 | | | | 参数8 | 整数型 | | | | 参数9 | 整数型 | | | | 参数10 | 整数型 | | | | 参数11 | 整数型 | | | | 参数12 | 整数型 | | | | 参数13 | 整数型 | | | | 参数14 | 整数型 | | | | 参数15 | 整数型 | | | | 线程ID | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | pAddr | 整数型 | | | I | 整数型 | | | params | 整数型 | | 0 | hThread | 整数型 | | |
pAddr = 取指针_整数型 (子程序指针 )加入成员 (params, 子程序指针 )变量循环首 (4, 8 × 15, 8, I )如果真 (指针_读整数 (pAddr, I + 4 ) = 1 )加入成员 (params, 指针_读整数 (pAddr, I )) 变量循环尾 ()pAddr = LocalAlloc ( #LMEM_ZEROINIT, 4 × 取数组成员数 (params )) 如果真 (pAddr ≠ 0 ) 计次循环首 (取数组成员数 (params ), I )指针_写整数 (pAddr, (I - 1 ) × 4, params [I ])计次循环尾 ()hThread = CreateThread (0, 0, 到整数 (&内部_回调函数_线程_启动多参_整型 ), pAddr, 0, 取指针_整数型 (线程ID )) 返回 (hThread)|
内部_回调函数_线程_启动多参_整型 | 整数型 | | |
pAddr | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 子程序指针 | 整数型 | | | size | 整数型 | | | offset | 整数型 | | | 如果真 (pAddr ≠ 0 )size = LocalSize (pAddr )子程序指针 = 指针_读整数 (pAddr, 0 )offset = 4 判断 (size = offset × 1 )调用子程序_汇编 (子程序指针 )判断 (size = offset × 2 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 )) 判断 (size = offset × 3 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 )) 判断 (size = offset × 4 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 )) 判断 (size = offset × 5 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 )) 判断 (size = offset × 6 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 )) 判断 (size = offset × 7 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 )) 判断 (size = offset × 8 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 )) 判断 (size = offset × 9 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 )) 判断 (size = offset × 10 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 )) 判断 (size = offset × 11 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 )) 判断 (size = offset × 12 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 )) 判断 (size = offset × 13 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 ), 指针_读整数 (pAddr, 48 )) 判断 (size = offset × 14 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 ), 指针_读整数 (pAddr, 48 ), 指针_读整数 (pAddr, 52 )) 判断 (size = offset × 15 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 ), 指针_读整数 (pAddr, 48 ), 指针_读整数 (pAddr, 52 ), 指针_读整数 (pAddr, 56 ), )判断 (size = offset × 16 )调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 ), 指针_读整数 (pAddr, 48 ), 指针_读整数 (pAddr, 52 ), 指针_读整数 (pAddr, 56 ), 指针_读整数 (pAddr, 60 )) 调用子程序_汇编 (子程序指针, 指针_读整数 (pAddr, 4 ), 指针_读整数 (pAddr, 8 ), 指针_读整数 (pAddr, 12 ), 指针_读整数 (pAddr, 16 ), 指针_读整数 (pAddr, 20 ), 指针_读整数 (pAddr, 24 ), 指针_读整数 (pAddr, 28 ), 指针_读整数 (pAddr, 32 ), 指针_读整数 (pAddr, 36 ), 指针_读整数 (pAddr, 40 ), 指针_读整数 (pAddr, 44 ), 指针_读整数 (pAddr, 48 ), 指针_读整数 (pAddr, 52 ), 指针_读整数 (pAddr, 56 ), 指针_读整数 (pAddr, 60 )) LocalFree (pAddr )返回 (0)
|
|