"CString" (编译类型)
"CString"
代表一个与 C 语言兼容的字符串.
更多信息
- "CString" 是 "CArray"::["CChar"] 的一个宏.
- "CString" 在 C 语言中等价于 char* 或 unsigned char*.
函数构造
- 除非用 "Managed" 包装,否则用 CreateTypeInstance 构建的 C 语言字符串不会自动进行内存管理,必须用 DeleteObject 手动释放. »
- CreateTypeInstance["CString",str] 根据 "String" str 构建 C 语言字符串.
- CreateTypeInstance["CString",len] 构建长度为 len 的 C 语言字符串.
- CreateTypeInstance["CString",cstr,len] 为长度为 len 的 cstr 构建一个副本. 若 cstr 短于 len,则可能引发崩溃.
- CreateTypeInstance["CString",cstr] 构建一个以零结尾的字符串 cstr 的副本. 如果 cstr 并非以零结尾,则可能会引发崩溃.
转换
- 数组类型的范围包括从 Cast 到托管的 C 语言字符串. 支持的数组类型包括 "ListVector"、"NumericArray" 和 "PackedArray".
- Cast 可用于将 "String" 对象转换为托管的 C 语言字符串.
- Cast 可用于 C 语言字符串和原始指针之间相互进行 bitcast 转换.
数组
"String"
"RawPointer" 和 "OpaqueRawPointer"
范例
打开所有单元关闭所有单元可能存在的问题 (1)
在 "Managed" 对象之外创建的 C 语言字符串不会被自动管理内存,必须手动释放. 编译一个创建非托管 C 语言字符串的函数:
使用 DeleteObject 来手动释放 C 语言字符串: