#include "unidb.h"
/*文字数カウント用*/
static UDBBOOL cbcount(PUDBVOID tag,PUDBCBPRM prm){
PUDBU4 p=tag;
(*p)++;
return TRUE;
}
/*文字書き込み用*/
static UDBBOOL cbputch(PUDBVOID tag,PUDBCBPRM prm){
PUDBU2 p=tag;
p[0]=(prm->cond==UDBCOND_MISS)?'?':prm->ch;
p++;
return TRUE;
}
void hogege(){
PUDBU2 buf;
UDBU4 ct=0;
UDBDECF f=UDBDECF_NOCTRL|UDBDECF_UTF16|UDBDECF_CR|UDBDECF_LF;
PUDBVOID cset="Shift_JISX0213";
/*まず文字列のサイズを調べる*/
udb_decode(str,cset,f,&ct,cbcount);
buf=malloc(sizeof(UDBU2)*(ct+1));
if(!buf)return;
/*ここで文字列を書き込む*/
udb_decode(str,cset,f,buf,cbputch);
buf[ct]=0;
:
:
free(buf);
}