|
应该参考API的写法,由调用方申请内存,返回局部静态变量的地址不能线程安全。
<火山程序 类型 = "通常" 版本 = 1 />
方法 返回文本 <公开 静态 类型 = 整数 注释 = "线程安全" 返回值注释 = "成功返回文本长度,失败返回-1">
参数 文本指针 <类型 = 变整数 注释 = "wchar_t* 传0表示只返回文本长度">
参数 长度 <类型 = 整数 注释 = "int 单位为宽字符数量,应包含结尾零字符.">
{
变量 文本内容 <类型 = 文本型 值 = "返回文本">
变量 内容长度 <类型 = 整数>
内容长度 = 取文本长度 (文本内容)
如果 (文本指针 == 0) // 只获取文本长度
{
返回 (内容长度)
}
如果 (内容长度 > 长度) // 缓冲区不足,返回-1表示失败
{
返回 (-1)
}
内存复制 (文本指针, 取文本指针 (文本内容), (内容长度 + 1) * 2)
返回 (内容长度)
}
方法 例子
{
变量 缓冲区 <类型 = 字节集类>
变量 长度 <类型 = 整数>
长度 = 返回文本 (0, 0)
缓冲区.分配字节集 ((长度 + 1) * 2) // 一个宽字符等于2字节,加上结尾零字符
返回文本 (缓冲区.取字节集指针 (), 缓冲区.取字节集长度 ())=
调试输出 (字节集到文本 (缓冲区))
}
|
|