mono下eglib工具库
eglib
glib是c语言跨平台底层工具(函数)库.glib主要提供字符串自动扩容/动态数组/链表/哈希表/树等功能.eglib是基于glib的独立实现.这里只是了解一下eglib,有一个整体的认识.在mono中的类型都是使用eglib封装过的类型,以g开头.为更好的了解mono.做准备.
准备工作
分别从mono生成lib目录中,拷贝eglib.lib静态库.在eglib源码拷贝几个头文件.头文件分别为:
- glib.h
- eglib-config.h.in
- eglib-config.hw
- eglib-remap.h
在VS中配置,头文件目录和引用库目录
头文件目录设置为当前项目所在目录.
引用库目录也设置当前项目所在目录.
设置编译器链接,依赖项加入eglib.lib

GString的使用,可以像c#/Java一样,拼接内容
#include <stdio.h>
#include "glib.h" //引用头文件
int main(int argc, char* argv[])
{
//GString结构定义
/*typedef struct {
char *str; //存储字符串指针
gsize len; //字符串内容长度
gsize allocated_len; //分配空间大小
} GString;*/
GString* str = monoeg_g_string_new(NULL); //创建字符串指针
g_string_append(str, "hello eglib\n"); //往字符串追加字符串,如果空间不够,自动扩容
g_string_append(str, "hello mono");
g_print("%s\n", str->str);
g_print("内容长度:%d 占用空间:%d\n", str->len, str->allocated_len);
GString* truc_str = g_string_truncate(str, 5); //截取生成一个新的字符串
g_print("%s\n", truc_str->str);
g_string_free(str, TRUE); //根据字符串指针释放内存
return 0;
}
主要学习eglib中GString简单使用.其他的就在mono源码中学习其他使用.如hashtable(哈希表)等.
秋风
2018-05-28