関数一覧3
色々試してみた。
#module m0 x, y, z #modinit int #modterm #defcfunc func1 str, int, local, double, var, array, label #modfunc func2 #global #uselib "hoge" #func hoge1 "hoge1" int, var, str, wstr, sptr, wptr #cfunc hoge2 "hoge2" double, float, pval, comobj, bmscr, prefstr, pexinfo, nullptr #usecom testcom "{00000000-0000-0000-0000-000000000000}" #comfunc hoge3 0 int, var, str, wstr, double #comfunc hoge4 1 float, pval, bmscr #include "hspcmp.as" #cmpopt optcode 0 mref hspctx, 68 dupptr hsphed, hspctx.0, 96 // hspctx.hsphed / sizeof HSPHED ds_ptr = lpeek( hspctx, 12 ) // hspctx.mem_mds max_ds = lpeek( hsphed, 28 ) // hsphed.max_ds dupptr ds, ds_ptr, max_ds linfo_ptr = lpeek( hspctx, 832 ) // hspctx.mem_linfo max_linfo = lpeek( hsphed, 52 ) // hsphed.max_linfo if max_linfo : dupptr linfo, linfo_ptr, max_linfo finfo_ptr = lpeek( hspctx, 840 ) // hspctx.mem_finfo max_finfo = lpeek( hsphed, 60 ) // hsphed.max_finfo dupptr finfo, finfo_ptr, max_finfo minfo_ptr = lpeek( hspctx, 836 ) // hspctx.mem_minfo max_minfo = lpeek( hsphed, 68 ) // hsphed.max_minfo dupptr minfo, minfo_ptr, max_minfo if max_linfo { mes "* LINFO" for i, 0, max_linfo, 16 // sizeof LIBDAT == 16 flag = lpeek( linfo, i + 0 ) nameidx = lpeek( linfo, i + 4 ) hlib = lpeek( linfo, i + 8 ) clsid = lpeek( linfo, i + 12 ) ;mes "flag = " + flag mes strf( "name = %s", ds_ptr + nameidx ) ;mes "hlib = " + hlib ;mes "clsid = " + clsid next } mes "* FINFO" for i, 0, max_finfo, 28 // sizeof STRUCTDAT == 28 index = wpeek( finfo, i + 0 ) subid = wpeek( finfo, i + 2 ) prmindex = lpeek( finfo, i + 4 ) prmmax = lpeek( finfo, i + 8 ) nameidx = lpeek( finfo, i + 12 ) size = lpeek( finfo, i + 16 ) otindex = lpeek( finfo, i + 20 ) proc = lpeek( finfo, i + 24 ) funcflag = proc out = strf( "%s", ds_ptr + nameidx ) is_ctype = index == 0xfffe if index >= 0 { is_ctype = ( otindex & 4 ) != 0 } if is_ctype : out += "(" : else : out += " " repeat prmmax if cnt : out += ", " mptype = wpeek( minfo, ( prmindex + cnt ) * 8 + 0 ) gosub *gettypename out += refstr loop if is_ctype : out += ")" mes out next ;mes "* MINFO" for i, 0, max_minfo, 8 // sizeof STRUCTPRM == 8 mptype = wpeek( minfo, i + 0 ) subid = wpeek( minfo, i + 2 ) offset = lpeek( minfo, i + 4 ) ;mes "mptype = " + mptype ;mes "subid = " + subid ;mes "offset = " + offset next stop *gettypename switch mptype case 0 : return "none" case 1 : return "var" case 2 : return "str" case 3 : return "double" case 4 : return "int" case 5 : return "struct" case 7 : return "label" case 0xffff : return "local" case 0xfffe : return "array" case 0xfffd : return "var" case 0xfffc : return "float" case 0xfffb : return "structtag" case 0xfffa : return "str" case 0xfff9 : return "modvar" case 0xfff8 : return "pval" case 0xfff7 : return "bmscr" case 0xfff6 : return "var" case 0xfff5 : return "modinit" case 0xfff4 : return "comobj" case 0xfff3 : return "wstr" case 0xfff2 : return "sptr" case 0xfff1 : return "wptr" case 0xfff0 : return "prefstr" case 0xffef : return "pexinfo" case 0xffee : return "pdpminfo" case 0xffed : return "nullptr" case 0xffec : return "modterm" swend return "unknown"
* LINFO name = hoge name = name = hspcmp.dll * FINFO m0 structtag, local, local, local __init modvar, int __term modvar func1(str, int, local, double, var, array, label) func2 modvar hoge1 int, var, str, wstr, sptr, wptr hoge2 double, float, pval, comobj, bmscr, prefstr, pexinfo, nullptr comobj, int, var, str, wstr, double comobj, float, pval, bmscr _hsc_ini@16 bmscr, str, int, int _hsc_refname@16 bmscr, str, int, int _hsc_objname@16 bmscr, str, int, int _hsc_compath@16 bmscr, str, int, int _hsc_comp@16 int, int, int, int _hsc_getmes@16 var, int, int, int _hsc_clrmes@16 int, int, int, int _hsc_ver@16 int, int, int, prefstr _hsc_bye@16 int, int, int, int _hsc3_getsym@16 int, int, int, int _hsc3_messize@16 var, int, int, int _hsc3_make@16 bmscr, str, int, int _hsc3_getruntime@16 var, str, int, int _hsc3_run@16 var, int, int, int _pack_ini@16 bmscr, str, int, int _pack_view@16 int, int, int, int _pack_make@16 int, int, int, int _pack_exe@16 int, int, int, int _pack_opt@16 int, int, int, int _pack_rt@16 bmscr, str, int, int _pack_get@16 bmscr, str, int, int _aht_ini@16 bmscr, str, int, int _aht_stdbuf@16 var, int, int, int _aht_stdsize@16 var, int, int, int _aht_source@16 pexinfo, nullptr, nullptr, nullptr _aht_makeinit@16 int, int, int, int _aht_make@16 var, str, int, int _aht_makeend@16 bmscr, str, int, int _aht_makeput@16 bmscr, str, int, int _aht_getopt@16 var, str, int, int _aht_prjsave@16 bmscr, str, int, int _aht_prjload@16 bmscr, str, int, int _aht_getprjsrc@16 pexinfo, nullptr, nullptr, nullptr _aht_getprjmax@16 pexinfo, nullptr, nullptr, nullptr _aht_prjload2@16 pexinfo, nullptr, nullptr, nullptr _aht_prjloade@16 pexinfo, nullptr, nullptr, nullptr _aht_getpage@16 pexinfo, nullptr, nullptr, nullptr _aht_setpage@16 int, int, int, int _aht_parts@16 pexinfo, nullptr, nullptr, nullptr _aht_getparts@16 pexinfo, nullptr, nullptr, nullptr _aht_findstart@16 pexinfo, nullptr, nullptr, nullptr _aht_findparts@16 pexinfo, nullptr, nullptr, nullptr _aht_findend@16 pexinfo, nullptr, nullptr, nullptr _aht_listparts@16 pexinfo, nullptr, nullptr, nullptr _aht_propupdate@16 pexinfo, nullptr, nullptr, nullptr _aht_getexid@16 pexinfo, nullptr, nullptr, nullptr _aht_getpropcnt@16 var, int, int, int _aht_getprop@16 var, int, int, int _aht_getpropid@16 var, str, int, int _aht_getproptype@16 var, int, int, int _aht_getpropmode@16 var, int, int, int _aht_setprop@16 bmscr, str, int, int _aht_sendstr@16 var, int, int, int _aht_getmodcnt@16 var, int, int, int _aht_getmodaxis@16 var, int, int, int _aht_setmodaxis@16 int, int, int, int _aht_delmod@16 int, int, int, int _aht_linkmod@16 int, int, int, int _aht_unlinkmod@16 int, int, int, int