static int BindFUNC( STRUCTDAT *st, char *name ) { // ファンクションのバインドを行なう // (name:後から与える時のファンクション名) // int i; char *n; LIBDAT *lib; HINSTANCE hd; if (( st->subid != STRUCTPRM_SUBID_DLL )&&( st->subid != STRUCTPRM_SUBID_OLDDLL )) return 4; i = st->nameidx; if ( i < 0 ) { if ( name == NULL ) return 3; n = name; } else { n = strp(i); } lib = GetLIB( st->index ); if ( lib->flag != LIBDAT_FLAG_DLLINIT ) { BindLIB( lib, NULL ); if ( lib->flag != LIBDAT_FLAG_DLLINIT ) return 2; } hd = (HINSTANCE)(lib->hlib); st->proc = (void *)GetProcAddress( hd, n ); if ( hd == NULL ) return 1; st->subid--; return 0; }
static int BindFUNC( STRUCTDAT *st, char *name ) { // ファンクションのバインドを行なう // (name:後から与える時のファンクション名) // int i; char *n; LIBDAT *lib; HINSTANCE hd; if (( st->subid != STRUCTPRM_SUBID_DLL )&&( st->subid != STRUCTPRM_SUBID_OLDDLL )) return 4; i = st->nameidx; if ( i < 0 ) { if ( name == NULL ) return 3; n = name; } else { n = strp(i); } lib = GetLIB( st->index ); if ( lib->flag != LIBDAT_FLAG_DLLINIT ) { BindLIB( lib, NULL ); if ( lib->flag != LIBDAT_FLAG_DLLINIT ) return 2; } hd = (HINSTANCE)(lib->hlib); if ( hd == NULL ) return 1; #ifdef HSPUTF8 HSPAPICHAR *hactmp1; char tmp1[512]; chartoapichar(n,&hactmp1); cnvsjis(tmp1,(char*)hactmp1,512); st->proc = (void *)GetProcAddress( hd, tmp1 ); freehac(&hactmp1); #else st->proc = (void *)GetProcAddress( hd, n ); #endif if ( st->proc == NULL ) return 1; st->subid--; return 0; }