road420
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2008年9月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
统计
随笔 - 50
文章 - 1
评论 - 5
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
2013年4月 (1)
2010年9月 (6)
2010年8月 (1)
2009年11月 (1)
2009年10月 (5)
2008年10月 (2)
2008年9月 (7)
2008年8月 (3)
2008年7月 (7)
2008年1月 (1)
2007年11月 (1)
2007年7月 (5)
2006年10月 (5)
2006年9月 (2)
2006年5月 (3)
文章档案
2008年3月 (1)
搜索
最新评论
1. re: 输出程序注释行
没看懂什么意思
--岁月漫步
2. re: 关于sizeof()
这个好牛逼啊
--岁月漫步
3. re: 程序的内存分配
很好,谢谢
--岁月漫步
4. re: 转载(不要一辈子靠技术生存)[未登录]
中国也正是因为有太多你这种人,才不会出现Bill gates...
--TOTO
5. re: 回调函数
除了入口指针之外,还要提及分派调度方式把,例如ice里面的诸塞、异步等等方式。
回调在分布式系统体系里面应用很广
--放屁啊狗
阅读排行榜
1. windbg调试器(2041)
2. DLL 线程本地存储(1005)
3. vs2005 调试(836)
4. CString(575)
5. 代码注入的三种方法(546)
评论排行榜
1. 输出程序注释行(1)
2. 关于sizeof()(1)
3. 回调函数(1)
4. 程序的内存分配(1)
5. 转载(不要一辈子靠技术生存)(1)
字符类型数据转换
1
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
2
//
Module: stringutility.h
3
//
Conversion among wchar_t, char and TCHAR
4
//
5
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
6
#ifndef _STRINGUTILITY_H_
7
#define
_STRINGUTILITY_H_
8
9
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
10
//
get PSTR by PWSTR
11
//
This function malloc some memory and you must free it
12
inline
char
*
newPSTRFromPWSTRT(PWSTR source)
13
{
14
char
*
pCh
=
NULL;
15
int
nLength
=
0
;
16
if
(
!
source)
17
{
18
pCh
=
new
char
[
1
];
19
}
20
else
21
{
22
nLength
=
wcslen(source);
23
pCh
=
new
char
[
2
*
nLength
+
1
];
24
WideCharToMultiByte(CP_ACP,
25
0
,
26
source,
27
-
1
,
28
pCh,
29
nLength
*
2
,
30
NULL,
31
NULL);
32
}
33
pCh[
2
*
nLength]
=
'
\0
'
;
34
return
pCh;
35
}
36
37
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
38
//
get PWSTR by PSTR
39
//
This function malloc some memory and you must free it
40
inline wchar_t
*
newPWSTRFromPSTR(PSTR source)
41
{
42
wchar_t
*
pCh
=
NULL;
43
int
nLength
=
0
;
44
if
(
!
source)
45
{
46
pCh
=
new
wchar_t[
1
];
47
}
48
else
49
{
50
nLength
=
strlen(source);
51
pCh
=
new
wchar_t[nLength
+
1
];
52
MultiByteToWideChar(CP_ACP,
53
0
,
54
source,
55
-
1
,
56
pCh,
57
nLength);
58
}
59
pCh[nLength]
=
'
\0
'
;
60
return
pCh;
61
}
62
63
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
64
//
get PSTR by PTSTR
65
//
This function malloc some memory and you must free it
66
67
inline
char
*
newPSTRFromPTSTR(PTSTR source)
68
{
69
#ifdef UNICODE
70
return
newPSTRFromPWSTRT(source);
71
#else
72
char
*
pCh;
73
int
iLength
=
0
;
74
if
(
!
source)
75
{
76
pCh
=
new
char
[
1
];
77
}
78
else
79
{
80
iLength
=
strlen(source);
81
pCh
=
new
char
[iLength
+
1
];
82
strcpy(pCh, source);
83
}
84
pCh[iLength]
=
'
\0
'
;
85
return
pCh;
86
#endif
87
}
88
89
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
90
//
get PWSTR by PTSTR
91
//
This function malloc some memory and you must free it
92
93
inline wchar_t
*
newPWSTRFromPTSTR(PTSTR source)
94
{
95
#ifdef UNICODE
96
wchar_t
*
pCh
=
NULL;
97
int
nLength
=
0
;
98
if
(
!
source)
99
{
100
pCh
=
new
wchar_t[
1
];
101
}
102
else
103
{
104
nLength
=
wcslen(source);
105
pCh
=
new
wchar_t[nLength
+
1
];
106
wcscpy(pCh, source);
107
}
108
pCh[nLength]
=
L
'
\0
'
;
109
return
pCh;
110
#else
111
return
newPWSTRFromPTSTR(source);
112
#endif
113
}
114
115
116
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
117
//
get PTSTR by PSTR
118
//
This function malloc some memory and you must free it
119
inline TCHAR
*
newPTSTRFromPSTR(PSTR source)
120
{
121
#ifdef UNICODE
122
return
newPWSTRFromPSTR(source);
123
#else
124
return
newPSTRFromPTSTR(source);
125
#endif
126
}
127
128
/**/
/**/
/**/
////////////////////////////////////////////////////////////////////////
//
129
//
get PTSTR by PWSTR
130
//
This function malloc some memory and you must free it
131
inline TCHAR
*
newPTSTRFromPWSTR(PWSTR source)
132
{
133
#ifdef UNICODE
134
return
newPWSTRFromPTSTR(source);
135
#else
136
return
newPSTRFromPWSTRT(source);
137
#endif
138
}
139
#endif
//
end of #ifndef _STRINGUTILITY_H_
posted on 2008-07-15 08:49
深邃者
阅读(154)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © 深邃者