codecovert
所属分类:Windows编程
开发工具:Visual C++
文件大小:296KB
下载次数:42
上传日期:2008-11-22 15:59:56
上 传 者:
hanhanhanhan
说明: 编码查询的小程序,有现成的BSTR类型的函数,可以考虑用vc做一个界面
(Encoding query applet, there are ready-made BSTR type of function, could be considered an interface with vc)
文件列表:
codecovert\GBCCovert.exe (302080, 2006-08-28)
codecovert\汉字GBK内码.exe (20480, 2008-07-07)
codecovert\字符编码.exe (61440, 2008-07-15)
codecovert (0, 2008-11-22)
http://bm.kdd.cc/index.asp
字符编码中的Asc和Chr对应汉字的GBK码(注意编码值为负数,加上65536就和汉字内码查看器中的GBK内码一致了)
字符编码中的AscW和ChrW对应汉字的Unicode码
//vc控制台程序
//字符编码程序,vc调用vb中3对可逆的函数,涉及到以下四个API:
rtcAnsiValueBstr:对应ASC的API,求字符的内码,函数原型及调用代码如下:
//ASC.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef short(*pF)(BSTR x);
HINSTANCE hDLL;
pF F;
BSTR bstrText=SysAllocString(L"我");//(L"w");
printf("%d\n",sizeof(BSTR));//4
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcAnsiValueBstr");//对应ASC,引用的内存不能读?
printf("%d\n",F(bstrText));//-12590,119
FreeLibrary(hDLL);
SysFreeString(bstrText);
getchar();
return 0;
}
rtcBstrFromAnsi:对应Chr的API,由内码求得一字符,函数原型及调用代码如下:
//Chr.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef BSTR(*pF)(long x);//Function Chr$(CharCode As Long) As String
HINSTANCE hDLL;
pF F;
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcBstrFromAnsi");//对应Chr,多对一函数:F(25105)=b=F(***)
char* lpszText=_com_util::ConvertBSTRToString(F(-12127));//F(119)
printf("%s",lpszText);//-12590我,119w,-12127小
FreeLibrary(hDLL);
delete[] lpszText;
getchar();
return 0;
}
rtcCharValueBstr:对应AscW(求字符的UniCode)和AscB(求字符的ASCII)的API,函数原型及调用代码如下:
对应AscW
//AscW.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef short(*pF)(BSTR x);//Function AscW(String As String) As Integer
HINSTANCE hDLL;
pF F;
BSTR bstrText=SysAllocString(L"我");//(L"w");
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcCharValueBstr");//对应AscW,引用的内存不能读?
printf("%d\n",F(bstrText));//25105,119
FreeLibrary(hDLL);
SysFreeString(bstrText);
getchar();
return 0;
}
对应AscB
//AscB.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef unsigned char(*pF)(BSTR x);//Function AscB(String As String) As Byte
HINSTANCE hDLL;
pF F;
BSTR bstrText=SysAllocString(L"我");//(L"w");
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcCharValueBstr");//对应AscB,引用的内存不能读?
printf("%u\n",F(bstrText));//17,119
FreeLibrary(hDLL);
SysFreeString(bstrText);
getchar();
return 0;
}
rtcBstrFromChar:对应ChrW(由UniCode求得一字符 )和ChrB(由ASCII求得一字符 )的API,函数原型及调用代码如下:
对应ChrB
//ChrB.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef BSTR(*pF)(unsigned char x);
HINSTANCE hDLL;
pF F;
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcBstrFromChar");//对应ChrB
char* lpszText=_com_util::ConvertBSTRToString(F(17));//(F(119));
printf("%s",lpszText);//17非打印字符,119w
FreeLibrary(hDLL);
delete[] lpszText;
getchar();
return 0;
}
对应ChrW
//ChrW.cpp
#include
#include
#include
int main(int argc, char* argv[])
{
typedef BSTR(*pF)(long x);//Function ChrW$(CharCode As Long) As String
HINSTANCE hDLL;
pF F;
hDLL=LoadLibrary("MSVBVM60.DLL");
F=(pF)GetProcAddress (hDLL, "rtcBstrFromChar");//对应ChrW
char* lpszText=_com_util::ConvertBSTRToString(F(119));//F(25105)
printf("%s",lpszText);//(L"w"),(L"我")
FreeLibrary(hDLL);
delete[] lpszText;
getchar();
return 0;
}
软件名称:汉字内码查看器(汉字_区位码_Unicode_GBK互转程序)
软件版本:v1.0
原创作者:sy0051
联系方式:sy0051_cn@163.com QQ:55332878
软件开发者经常会遇到一些汉字代码转换的问题,常见的汉字内码表现形式一般包括区位码、Unicode码、GBK码等几种。
在此向大家推荐一款汉字、区位码、Unicode码、GBK码互转的小工具,希望对大家有用。
近期下载者:
相关文件:
收藏者: