摘要: 说到数据精度,不得不说的,就是数据长度。 这里聊了一下float这个类型,float占4个字节,共4*8=32位。下图是float在内存格式: 31:标志位,0表示正数,1表示负数。30-23:指数位,共8位。22-0:小数位,共23位。 示例:12345 = ‭0011 0000 0011 100 阅读全文
posted @ 2019-12-20 14:52 rockmmm 阅读(1921) 评论(0) 推荐(0) 编辑
摘要: 我们通常在读取数据,存在以下3个问题。 1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。2、不可重复读取:事务T1读取一行记录,紧接着事务T 阅读全文
posted @ 2018-06-15 17:07 rockmmm 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 场景大概是这样的: 建一个工程,添加个窗体,上面放个TmpWeb:TWebBrowser,然后访问一个站点,再获取页面中的一个button元素,并点击它。 通常情况下这样写没有什么问题: 因为所有的东西,都是一个主线程内。 但如果我们在多线程中使用,就有问题了,会报av错误,在这一段: o := T 阅读全文
posted @ 2017-05-25 16:04 rockmmm 阅读(894) 评论(0) 推荐(0) 编辑
摘要: TObjectList的创建有以上三种方法。 AOwnsObjects: 默认为True,表示列表中的对象属于列表,当列表Fre或Delete删除其中某个对象时,对象会自动释放。 List.Delete(index)时 自动释放 List.Free时 自动释放 List.Extract(Obj)时 阅读全文
posted @ 2017-02-26 20:18 rockmmm 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 只说大家平时关注得比较少的 上面的代码中,有一个比较类TEqualityComparer,用来判断新加的一组key.value中的key是不是存在。 Construct中的第一个函数就不说了,说第二个函数,这个函数大家可能都只是照着用,但是不清楚为什么这么用。 帮助文档中是这么说的:Generate 阅读全文
posted @ 2017-02-25 21:10 rockmmm 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 网络上关于防止程序被破解的文章有很多,无外以下几种: 1.高强度的验证 这里说的高强度就是cdkey加密算法的强度,但再强,都无法解决“暴破”的问题,即绕过验证。 2.给程序加壳 这个可以有,现在市面上有很多硬壳,采用虚拟机技术,很难被脱掉,但需要你有一定的汇编知识,而且这种处理还有一个弊端,很有可 阅读全文
posted @ 2017-02-25 15:23 rockmmm 阅读(6136) 评论(0) 推荐(0) 编辑
摘要: 先来记一个比较操蛋的东西 这就相当不友好了嘛,稍不注意就会用错函数! 阅读全文
posted @ 2017-02-24 18:24 rockmmm 阅读(191) 评论(0) 推荐(0) 编辑