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

📄 typemap.win32

📁 UNIX下perl实现代码
💻 WIN32
字号:
JavaVM *		T_JPTROBJJNINativeMethod *	T_JPTROBJconst char *		T_PVconst jbyte *		T_JMEMconst jchar *		T_JMEMjarray			T_JPTROBJjboolean		T_IVjboolean *		T_JMEMjbooleanArray		T_JPTROBJjbyte			T_IVjbyte *			T_JMEMjbyteArray		T_JPTROBJjchar			T_IVjchar *			T_JMEMjcharArray		T_JPTROBJjclass			T_JPTROBJjdouble			T_NVjdouble *		T_JMEMjdoubleArray		T_JPTROBJjfieldID		T_JIDSIGjfloat			T_NVjfloat *		T_JMEMjfloatArray		T_JPTROBJjint			T_IVjint *			T_JMEMjintArray		T_JPTROBJjlong			T_NVjlong *			T_JMEMjlongArray		T_JPTROBJjmethodID		T_JIDSIGjobject			T_JPTROBJjobjectArray		T_JPTROBJjshort			T_IVjshort *		T_JMEMjshortArray		T_JPTROBJjsize			T_IVjstring			T_JSTRINGjthrowable		T_JPTROBJjvalue *		T_JVALUELISTINPUTT_JMEM	{	    $var = ($type)SvPV($arg,tmplen);	    ${var}_len_ = (jsize) tmplen / sizeof(${subtype});	}T_JSTRING	if (SvROK($arg)) {	    $var = ($type)(void*)SvIV(SvRV($arg));	}	else	    $var = ($type)env->NewStringUTF((char *) SvPV($arg,PL_na))T_JVALUELIST	if (SvROK($arg)) {	    AV* av = (AV*)SvRV($arg);	    if (SvTYPE(av) == SVt_PVAV) {		I32 maxarg = AvFILL(av) + 1;		$var = makeargs(sig, AvARRAY(av), maxarg);	    }	    else		croak(\"$var is not an array reference\");	}	else	    croak(\"$var is not a reference\")T_JIDSIG	{	    $var = ($type)SvIV($arg);	    sig = (char*)SvPV($arg,PL_na);	}T_JPTROBJ	if (SvROK($arg) && SvOBJECT(SvRV($arg))) {	    IV tmp = SvIV((SV*)SvRV($arg));	    $var = ($type) tmp;	}	else	    croak(\"$var is not of type ${ntype}\")OUTPUTT_JMEM	sv_setpvn((SV*)$arg, (char*)$var, (STRLEN)${var}_len_ * sizeof(${subtype}));T_JSTRING	{	    static HV* ${var}_stashhv_ = 0;	    if (!${var}_stashhv_)		${var}_stashhv_ = gv_stashpv("java::lang::String", TRUE);	 	    sv_bless(		sv_setref_iv($arg, Nullch, (IV)(void*)${var}),		${var}_stashhv_); 	}T_JIDSIG	sv_setiv($arg, (IV)(void*)$var);	sv_setpv($arg, (char*)sig);	SvIOK_on($arg);T_JPTROBJ	sv_setref_pv($arg, \"${ntype}\", (void*)$var);# basic C types#	int			T_IV#	unsigned		T_IV#	unsigned int		T_IV#	long			T_IV#	unsigned long		T_IV#	short			T_IV#	unsigned short		T_IV#	char			T_CHAR#	unsigned char		T_U_CHAR#	char *			T_PV#	unsigned char *		T_PV#	caddr_t			T_PV#	wchar_t *		T_PV#	wchar_t			T_IV#	bool_t			T_IV#	size_t			T_IV#	ssize_t			T_IV#	time_t			T_NV#	unsigned long *		T_OPAQUEPTR#	char **			T_PACKED#	void *			T_PTR#	Time_t *		T_PV#	SV *			T_SV#	SVREF			T_SVREF#	AV *			T_AVREF#	HV *			T_HVREF#	CV *			T_CVREF#	#	IV			T_IV#	I32			T_IV#	I16			T_IV#	I8			T_IV#	U32			T_U_LONG#	U16			T_U_SHORT#	U8			T_IV#	Result			T_U_CHAR#	Boolean			T_IV#	double			T_DOUBLE#	SysRet			T_SYSRET#	SysRetLong		T_SYSRET#	FILE *			T_IN#	FileHandle		T_PTROBJ#	InputStream		T_IN#	InOutStream		T_INOUT#	OutputStream		T_OUT#	bool			T_BOOL###############################################################################	INPUT#	T_SV#		$var = $arg#	T_SVREF#		if (sv_isa($arg, \"${ntype}\"))#		    $var = (SV*)SvRV($arg);#		else#		    croak(\"$var is not of type ${ntype}\")#	T_AVREF#		if (sv_isa($arg, \"${ntype}\"))#		    $var = (AV*)SvRV($arg);#		else#		    croak(\"$var is not of type ${ntype}\")#	T_HVREF#		if (sv_isa($arg, \"${ntype}\"))#		    $var = (HV*)SvRV($arg);#		else#		    croak(\"$var is not of type ${ntype}\")#	T_CVREF#		if (sv_isa($arg, \"${ntype}\"))#		    $var = (CV*)SvRV($arg);#		else#		    croak(\"$var is not of type ${ntype}\")#	T_SYSRET#		$var NOT IMPLEMENTED#	T_IV#		$var = ($type)SvIV($arg)#	T_INT#		$var = (int)SvIV($arg)#	T_ENUM#		$var = ($type)SvIV($arg)#	T_BOOL#		$var = (int)SvIV($arg)#	T_U_INT#		$var = (unsigned int)SvIV($arg)#	T_SHORT#		$var = (short)SvIV($arg)#	T_U_SHORT#		$var = (unsigned short)SvIV($arg)#	T_LONG#		$var = (long)SvIV($arg)#	T_U_LONG#		$var = (unsigned long)SvIV($arg)#	T_CHAR#		$var = (char)*SvPV($arg,PL_na)#	T_U_CHAR#		$var = (unsigned char)SvIV($arg)#	T_FLOAT#		$var = (float)SvNV($arg)#	T_NV#		$var = ($type)SvNV($arg)#	T_DOUBLE#		$var = (double)SvNV($arg)#	T_PV#		$var = ($type)SvPV($arg,PL_na)#	T_PTR#		$var = ($type)SvIV($arg)#	T_PTRREF#		if (SvROK($arg)) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = ($type) tmp;#		}#		else#		    croak(\"$var is not a reference\")#	T_REF_IV_REF#		if (sv_isa($arg, \"${type}\")) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = *($type *) tmp;#		}#		else#		    croak(\"$var is not of type ${ntype}\")#	T_REF_IV_PTR#		if (sv_isa($arg, \"${type}\")) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = ($type) tmp;#		}#		else#		    croak(\"$var is not of type ${ntype}\")#	T_PTROBJ#		if (sv_derived_from($arg, \"${ntype}\")) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = ($type) tmp;#		}#		else#		    croak(\"$var is not of type ${ntype}\")#	T_PTRDESC#		if (sv_isa($arg, \"${ntype}\")) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    ${type}_desc = (\U${type}_DESC\E*) tmp; #		    $var = ${type}_desc->ptr;#		}#		else#		    croak(\"$var is not of type ${ntype}\")#	T_REFREF#		if (SvROK($arg)) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = *($type) tmp;#		}#		else#		    croak(\"$var is not a reference\")#	T_REFOBJ#		if (sv_isa($arg, \"${ntype}\")) {#		    IV tmp = SvIV((SV*)SvRV($arg));#		    $var = *($type) tmp;#		}#		else#		    croak(\"$var is not of type ${ntype}\")#	T_OPAQUE#		$var NOT IMPLEMENTED#	T_OPAQUEPTR#		$var = ($type)SvPV($arg,PL_na)#	T_PACKED#		$var = XS_unpack_$ntype($arg)#	T_PACKEDARRAY#		$var = XS_unpack_$ntype($arg)#	T_CALLBACK#		$var = make_perl_cb_$type($arg)#	T_ARRAY#		$var = $ntype(items -= $argoff);#		U32 ix_$var = $argoff;#		while (items--) {#		    DO_ARRAY_ELEM;#		}#	T_IN#		$var = IoIFP(sv_2io($arg))#	T_INOUT#		$var = IoIFP(sv_2io($arg))#	T_OUT#		$var = IoOFP(sv_2io($arg))###############################################################################	OUTPUT#	T_SV#		$arg = $var;#	T_SVREF#		$arg = newRV((SV*)$var);#	T_AVREF#		$arg = newRV((SV*)$var);#	T_HVREF#		$arg = newRV((SV*)$var);#	T_CVREF#		$arg = newRV((SV*)$var);#	T_IV#		sv_setiv($arg, (IV)$var);#	T_INT#		sv_setiv($arg, (IV)$var);#	T_SYSRET#		if ($var != -1) {#		    if ($var == 0)#			sv_setpvn($arg, "0 but true", 10);#		    else#			sv_setiv($arg, (IV)$var);#		}#	T_ENUM#		sv_setiv($arg, (IV)$var);#	T_BOOL#		$arg = boolSV($var);#	T_U_INT#		sv_setiv($arg, (IV)$var);#	T_SHORT#		sv_setiv($arg, (IV)$var);#	T_U_SHORT#		sv_setiv($arg, (IV)$var);#	T_LONG#		sv_setiv($arg, (IV)$var);#	T_U_LONG#		sv_setiv($arg, (IV)$var);#	T_CHAR#		sv_setpvn($arg, (char *)&$var, 1);#	T_U_CHAR#		sv_setiv($arg, (IV)$var);#	T_FLOAT#		sv_setnv($arg, (double)$var);#	T_NV#		sv_setnv($arg, (double)$var);#	T_DOUBLE#		sv_setnv($arg, (double)$var);#	T_PV#		sv_setpv((SV*)$arg, $var);#	T_PTR#		sv_setiv($arg, (IV)$var);#	T_PTRREF#		sv_setref_pv($arg, Nullch, (void*)$var);#	T_REF_IV_REF#		sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));#	T_REF_IV_PTR#		sv_setref_pv($arg, \"${ntype}\", (void*)$var);#	T_PTROBJ#		sv_setref_pv($arg, \"${ntype}\", (void*)$var);#	T_PTRDESC#		sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));#	T_REFREF#		sv_setrefref($arg, \"${ntype}\", XS_service_$ntype,#			    ($var ? (void*)new $ntype($var) : 0));#	T_REFOBJ#		NOT IMPLEMENTED#	T_OPAQUE#		sv_setpvn($arg, (char *)&$var, sizeof($var));#	T_OPAQUEPTR#		sv_setpvn($arg, (char *)$var, sizeof(*$var)), XFree((char *)$var);#	T_PACKED#		XS_pack_$ntype($arg, $var);#	T_PACKEDARRAY#		XS_pack_$ntype($arg, $var, count_$ntype);#	T_DATAUNIT	#		sv_setpvn($arg, $var.chp(), $var.size());#	T_CALLBACK#		sv_setpvn($arg, $var.context.value().chp(),#			$var.context.value().size());#	T_ARRAY#		ST_EXTEND($var.size);#		for (U32 ix_$var = 0; ix_$var < $var.size; ix_$var++) {#			ST(ix_$var) = sv_newmortal();#		DO_ARRAY_ELEM#		}#		sp += $var.size - 1;#	T_IN#		{#		    GV *gv = newGVgen("$Package");#		    if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )#			sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));#		    else#			$arg = &PL_sv_undef;#		}#	T_INOUT#		{#		    GV *gv = newGVgen("$Package");#		    if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )#			sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));#		    else#			$arg = &PL_sv_undef;#		}#	T_OUT#		{#		    GV *gv = newGVgen("$Package");#		    if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )#			sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));#		    else#			$arg = &PL_sv_undef;#		}

⌨️ 快捷键说明

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