作者归档:raysoftware

Android,保活,复活,防杀

从Android5到Android11都通用。
这是在我的Mate40Pro(Android10)上面的效果

[……]

继续阅读

发表在 Android, APP, Delphi, 未分类 | 标签为 , , , | 2条评论

Managed Record的使用一则

其实Managed Record有很多方便使用的场景。
比如下面的就是把TStringBuilder由Class改成了Managed Record。好处就是不再需要释放了。[……]

继续阅读

发表在 Delphi | 标签为 , , | Managed Record的使用一则已关闭评论

Delphi Managed Record的一个不方便的地方

使用的时候还要
var a : TMyRecord := TMyRecord.create(1);
实际上既有constructor,又有Initialize,是有歧义的,完全可以合并。
变成如下这种方式:
class operator Initialize(out Dest: TMyRecord,[……]

继续阅读

发表在 Delphi | 标签为 , | Delphi Managed Record的一个不方便的地方已关闭评论

Delphi10.4托管记录(Managed Record)产生的机器代码分析

只分析了Delphi Windows平台X86,X64上的代码,ARM平台和Linux平台基于是LLVM编译器的,没有分析。

Delphi 10.4

VC2015

VC的代码之所以加了GetTickCount,Sleep是因为VC的编译器极其智能,Release版本的时候如果函数为空会[……]

继续阅读

发表在 Delphi | 标签为 | 4条评论

Delphi 10.4 的期待和不足

Delphi10.4发布在即,看了许多特性宣传,最值得期待的就是托管记录。
最开始Delphi的结构体支持操作符重载,就很兴奋,想自己封装算法库,自己封装智能指针。
比如自己实现string,自己实现BigInt之类的。结果发现record虽然支持了操作符重载,但是不能自动初始化和反初始化。导致一些[……]

继续阅读

发表在 Delphi | 8条评论

CPP各个操作系统和平台的宏定义

#if TARGET_OS_MAC
#if TARGET_OS_IPHONE
#if TARGET_IPHONE_SIMULATOR
#if TARGET_OS_EMBEDDED

#ifdef __ANDROID__

#if defined(__M[……]

继续阅读

发表在 CPP | 标签为 , , , | 103条评论

跨平台的,在FMX中读取ICON文件的每一帧到Bitmap

昨天在使用FreeImage的时候发现FreeImage对ICON的处理有问题,32位的帧读出来的背景居然是黑的。我猜应该是32位没有And的Mask数据。而它按照24位以下的处理方式把Alpha值填成255了。

只能自己动手写代码,也不复杂,算上把Windows单元抽出来声明的结构体,也就300[……]

继续阅读

发表在 Delphi, 未分类 | 197条评论

关闭掉新版Delphi的几个固定导出函数(__dbk_fcall_wrapper,dbkFCallWrapperAddr,TMethodImplementationIntercept)

不知道从什么时候起Delphi编译的PE文件总是三个固定的导出函数。

一方面有强迫症的同学们会不爽,另一方面其实是不安全的。

这三个函数是:__dbk_fcall_wrapper,dbkFCallWrapperAddr,TMethodImplementationIntercept

有两种方式可[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , , | 59条评论

FireMonkey在使用GDIPlus放大图像的Bug的修复

Delphi10.2中FireMonkey中GDIPlus放大图片的Bug,不知道从哪个版本开始的,还是一直都这样。

新建一个FireMonkey工程,窗口上放一个Image控件,WrapMode设置为Stretch,表示随控件大小缩放。指定一张小图。

默认使用D2D的时候放大没问题

关闭[……]

继续阅读

发表在 Delphi, 未分类 | 标签为 , , , , | 46条评论

FireMonkey GIF处理的更新

盒子上人才济济,很快就有兄弟发现在Android中有问题。

经过调试,发现Android中TCanvas.DrawBitmap对透明处理跟Windows不太一样,而是把透明部分也覆盖上去了,于是自己处理了一下帧的叠加,自己复制Bitmap的Scanline颜色,跳过透明即可。

2017.4.19[……]

继续阅读

发表在 Delphi | 标签为 , , | 182条评论