能力值:
( LV7,RANK:100 )
|
-
-
2 楼
MultiByteToWideChar,WideCharToMultiByte,sprintf
OD同样风格显示,曾经见过一份代码.但不支持中文.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
。。。还是不会啊。。。没人帮忙只能取消这个功能了
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
十六进制数据或取出来用char类型存放,显示出来不就是ANSI了吗,转UNICODE用楼上的API转。
例如char a[]={0x31,0x32,0x33,0x34,0x35};
输出的就是12345了。
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
贴一段以前写的代码,理解意思就能用了。
//ASC到文本
void AscToText()
{
CHAR Temp[100] = { 0 };
//获取了两个编辑框的句柄 用于读或写
HWND hEdit3 = GetDlgItem(g_hWnd1, IDC_EDIT3);
HWND hEdit4 = GetDlgItem(g_hWnd1, IDC_EDIT4);
DWORD dwLength = GetWindowTextA(hEdit3, Temp, 100);
//去除空格
for (DWORD i = 0; i < dwLength; i++)
{
if (Temp[i] == ' ')
{
for (DWORD j = i; j < dwLength; j++)
{
Temp[j] = Temp[j + 1];
}
}
}
dwLength = strlen(Temp);
//十六进制数据是两两配对的,不是双数就是出错了
if (dwLength % 2 != 0)
return;
CHAR szASC[3] = { 0 };//存放一个字节的十六进制
CHAR *szText = new CHAR[dwLength / 2 + 1];
ZeroMemory(szText, dwLength / 2 + 1);
int j = 0;
for (DWORD i = 0; i < dwLength; i = i + 2)
{
szASC[0] = Temp[i];
szASC[1] = Temp[i + 1];//把那一串十六进制每次两个存放到szASC中。
int a = 0;
sscanf_s(szASC, "%X", &a);//从缓冲区中按%x的格式读取数据
szText[j] = a;
j++;
}
//上述得到的是ascii,转UNICODE用如下格式
//MultiByteToWideChar(CP_ACP, NULL, MultiByte, -1, WideChar,
//_countof(WideChar));
//MultiByte和WideChar是ascii和unicode的缓冲区
SetWindowTextA(hEdit4, szText);
delete[]szText;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
[QUOTE=liuwan;1458843]贴一段以前写的代码,理解意思就能用了。
//ASC到文本
void AscToText()
{
CHAR Temp[100] = { 0 };
//获取了两个编辑框的句柄 用于读或写
HWND hEdit3 = GetDlgItem(g_hWnd1, IDC_EDIT3);
H...[/QUOTE]
谢谢 我看看
|
|
|