iconv 编译在vs2012
来源:互联网 发布:阿里云服务器受到ddos 编辑:程序博客网 时间:2024/06/13 08:52
iconv库可以实现文字格式转换,VLC在DVB的SI信息中,字符(如SDT节目名字、提供商,和EIT等)解析显示用到这个库
1.1. 下载 iconv 库并解压,目前最新版本为 1.14
http://ftp.gnu.org/pub/gnu/libiconv/
2. VC6新建win32静态库工程,libIconv。复制iconv库lib文件夹所有文件到工程文件夹下
3. 将config.h.in改名为config.h
4. 将libcharset/lib/localcharset.c复制过来
5. 将include文件夹下iconv.h.in复制过来,改名为iconv.h
6. 将库中scrLib/localcharset.h复制过来
7. 工程属性, C/C++, Preprocssor, Addtional include diretory增加当前文件夹”.”
8. 修改 iconv.h :
a. 删除所有的 @ 符号,
b. 注释掉/DLL_VARIABLE/,
c. ICONV_CONST改为const,
9. 修改localcharset.c:
注释掉 #include “configmake.h”
10. 把有main函数的.c文件删掉
生成libIconv.lib,头文件即iconv.h
#include "iconv.h"#pragma comment(lib, "libIconv.lib")int code_convert(const char *from_charset, const char *to_charset, const char *inbuf, size_t inlen, char *outbuf, size_t outlen) { iconv_t cd; const char *temp = inbuf; const char **pin = &temp; char **pout = &outbuf; memset(outbuf,0,outlen); cd = iconv_open(to_charset,from_charset); if(cd==0) return -1; if(iconv(cd,pin,&inlen,pout,&outlen)==-1) return -1; iconv_close(cd); return 0; } /*UTF8תΪGB2312*/ std::string u2a(const char *inbuf) { size_t inlen = strlen(inbuf); char * outbuf = new char[inlen * 2 + 2]; std::string strRet; if(code_convert("utf-8", "gb2312", inbuf, inlen, outbuf, inlen * 2 + 2) == 0) { strRet = outbuf; } delete [] outbuf; return strRet; } /*GB2312תΪUTF8*/ std::string a2u(const char *inbuf) { size_t inlen = strlen(inbuf); char * outbuf = new char[inlen * 2 + 2]; std::string strRet; if(code_convert("gb2312", "utf-8", inbuf, inlen, outbuf, inlen * 2 + 2) == 0) { strRet = outbuf; } delete [] outbuf; return strRet; }
0 0
- iconv 编译在vs2012
- 在Windows下编译iconv
- 在Windows下编译iconv
- 在Windows下编译iconv
- 在Windows下编译iconv
- 在VS2012中编译lua源码
- 在VS2012中编译C语言程序
- stlport 5.2.1在vs2012中的编译
- 在VS2012编译LibGizmo for 64bit
- OpenSSL在VS2012中的编译和配置
- vs2008 编译iconv
- vs2008 编译iconv
- ndk编译iconv
- vs2008 编译iconv
- VC编译iconv库
- VS 2008 编译iconv库
- 在windows下ndk编译iconv之后, 调用iconv_open老出错!
- cocos引用iconv库在android编译,错误undefined reference libiconv_open,libiconv_close
- VB6.0 对象库未注册解决办法
- 删除文件夹出现0x80070091错误提示目录不是空的
- 第3周 项目0 (4) 利用引用访问私有数据成员
- iOS学习之路 XML处理
- Spring IOC中bean的生命周期
- iconv 编译在vs2012
- 提升UITableView性能-复杂页面的优化
- 只解压一个tar.gz文件中的部分文件
- 调试挂死的Explorer
- Android自定义表情功能的实现
- Struts2的Action配置及使用
- Mac OS X下载并安装ant
- 使用js自制输入框验证
- C# 扩展方法奇思妙用