cheungxiongwei / libiconv_msvc

msvc 2015 compiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

libiconv_msvc

#pragma  comment(lib,"libiconv.lib")
#ifdef __cplusplus
extern "C" {
#endif
extern  __declspec(dllimport) void* libiconv_open(const char* tocode, const char* fromcode);
extern  __declspec(dllimport) size_t libiconv(void* cd, char* * inbuf, unsigned int *inbytesleft, char* * outbuf, unsigned int *outbytesleft);
extern  __declspec(dllimport) int libiconv_close(void* cd);
extern	__declspec(dllimport) void libiconvlist(int(*do_one) (unsigned int namescount,const char * const * names,void* data),void* data);
#ifdef __cplusplus
}
#endif

//example:
int covert(char *tocode, char *fromcode, char *inbuf, size_t inbyteslen, char *output, size_t outbyteslen)
{
	char **pinbuf = &inbuf;
	char **poutput = &output;
	void* handel = libiconv_open(tocode,fromcode);
	if ((int)handel == -1)
	{
		return -1;
	}
	memset(output,0,outbyteslen);
	if (libiconv(handel, pinbuf, &inbyteslen, poutput, &outbyteslen)) return -1;
	libiconv_close(handel);
	return 0;
}

int main()
{
char *input = "绝地求生";
size_t len = strlen(input);
char output[256] = {0};
covert("UTF-8", "GBK", input, len, output, 256);
return 0;
}

About

msvc 2015 compiler


Languages

Language:C 96.9%Language:C++ 1.8%Language:Objective-C 1.3%