Help
RSS
API
Feed
Maltego
Contact
Domain > www.raysoftware.cn
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
Whois
Property
Value
Organization
王锐
Email
wr960204@126.com
NameServer
ns18.xincache.com
Created
2012-06-19 22:00:55
Expires
2018-06-19 22:00:55
DNS Resolutions
Date
IP Address
2015-05-06
114.112.53.236
(
ClassC
)
2024-10-22
117.50.56.212
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/html; charsetUTF-8Server: Microsoft-IIS/7.5X-Powered-By: PHP/7.4.20Link: https://www.raysoftware.cn/wp-json/>; relhttps://api.w.org/X-Powered-By: ASP.NETDate: Tue, 22 Oct 2024 13:17:50 GMTContent-Length: 41110 !DOCTYPE html>html langzh-CN>head>meta charsetUTF-8 />title>武稀松(wr960204)的博客 | 锐 /title>link relprofile hrefhttps://gmpg.org/xfn/11 />link relstylesheet typetext/css mediaall hrefhttp://www.raysoftware.cn/wp-content/themes/twentyten/style.css?ver20190507 />link relpingback hrefhttp://www.raysoftware.cn/xmlrpc.php>meta namerobots contentmax-image-preview:large />link reldns-prefetch href//s.w.org />link relalternate typeapplication/rss+xml title武稀松(wr960204)的博客 » Feed hrefhttps://www.raysoftware.cn/feed />link relalternate typeapplication/rss+xml title武稀松(wr960204)的博客 » 评论Feed hrefhttps://www.raysoftware.cn/comments/feed /> script typetext/javascript> window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/svg\/,svgExt:.svg,source:{concatemoji:http:\/\/www.raysoftware.cn\/wp-includes\/js\/wp-emoji-release.min.js?ver5.7.2}}; !function(e,a,t){var n,r,o,ia.createElement(canvas),pi.getContext&&i.getContext(2d);function s(e,t){var aString.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);ei.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),ei.toDataURL()}function c(e){var ta.createElement(script);t.srce,t.defert.typetext/javascript,a.getElementsByTagName(head)0.appendChild(t)}for(oArray(flag,emoji),t.supports{everything:!0,everythingExceptFlag:!0},r0;ro.length;r++)t.supportsorfunction(e){if(!p||!p.fillText)return!1;switch(p.textBaselinetop,p.font600 32px Arial,e){caseflag:return s(127987,65039,8205,9895,65039,127987,65039,8203,9895,65039)?!1:!s(55356,56826,55356,56819,55356,56826,8203,55356,56819)&&!s(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447,55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447);caseemoji:return!s(55357,56424,8205,55356,57212,55357,56424,8203,55356,57212)}return!1}(or),t.supports.everythingt.supports.everything&&t.supportsor,flag!or&&(t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&t.supportsor);t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady!1,t.readyCallbackfunction(){t.DOMReady!0},t.supports.everything||(nfunction(){t.readyCallback()},a.addEventListener?(a.addEventListener(DOMContentLoaded,n,!1),e.addEventListener(load,n,!1)):(e.attachEvent(onload,n),a.attachEvent(onreadystatechange,function(){completea.readyState&&t.readyCallback()})),(nt.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); /script> style typetext/css>img.wp-smiley,img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important;}/style> link relstylesheet idwp-block-library-css hrefhttp://www.raysoftware.cn/wp-includes/css/dist/block-library/style.min.css?ver5.7.2 typetext/css mediaall />link relstylesheet idwp-block-library-theme-css hrefhttp://www.raysoftware.cn/wp-includes/css/dist/block-library/theme.min.css?ver5.7.2 typetext/css mediaall />link relstylesheet idtwentyten-block-style-css hrefhttp://www.raysoftware.cn/wp-content/themes/twentyten/blocks.css?ver20181218 typetext/css mediaall />link relhttps://api.w.org/ hrefhttps://www.raysoftware.cn/wp-json/ />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://www.raysoftware.cn/xmlrpc.php?rsd />link relwlwmanifest typeapplication/wlwmanifest+xml hrefhttp://www.raysoftware.cn/wp-includes/wlwmanifest.xml /> meta namegenerator contentWordPress 5.7.2 />script>var _hmt _hmt || ;(function() { var hm document.createElement(script); hm.src https://hm.baidu.com/hm.js?4b4f4d1ae23559d3066eeeed95af490c; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(hm, s);})();/script>/head>body classhome blog>div idwrapper classhfeed> div idheader> div idmasthead> div idbranding rolebanner> h1 idsite-title> span> a hrefhttps://www.raysoftware.cn/ title武稀松(wr960204)的博客 relhome>武稀松(wr960204)的博客/a> /span> /h1> div idsite-description>锐/div> img srchttp://www.raysoftware.cn/wp-content/themes/twentyten/images/headers/path.jpg width940 height198 alt /> /div>!-- #branding --> div idaccess rolenavigation> div classskip-link screen-reader-text>a href#content title跳至正文>跳至正文/a>/div> div classmenu>ul>li classcurrent_page_item>a hrefhttps://www.raysoftware.cn/>首页/a>/li>li classpage_item page-item-2>a hrefhttps://www.raysoftware.cn/sample-page>示例页面/a>/li>/ul>/div> /div>!-- #access --> /div>!-- #masthead --> /div>!-- #header --> div idmain> div idcontainer> div idcontent rolemain> div idnav-above classnavigation> div classnav-previous>a hrefhttps://www.raysoftware.cn/page/2 >span classmeta-nav>←/span> 早期文章/a>/div> div classnav-next>/div> /div>!-- #nav-above --> div idpost-671 classpost-671 post type-post status-publish format-standard hentry category-android category-app category-delphi category-uncategorized tag-android tag-android-studio tag-delphi tag-fmx tag-jni tag-so> h2 classentry-title>a hrefhttps://www.raysoftware.cn/671.html relbookmark>Delphi和Android Studio混合开发(二)FMX项目和Android混合开发/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/671.html title上午9:53 relbookmark>span classentry-date>2023年12月23日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>Delphi开发Android程序非常快,拖拖拉拉几下子就可以开发出一个Android程序,而且还可以随意输出成Windows,Mac,Linux,iOS上面。/p>p>但是因为Delphi和Android Studio开发的的Android APP还是有点区别的,和C++开发Android APP类似,Delphi是编译成SO然后由Java代码中LoadLibrary加载,所有界面都是FMX自绘制的。Delphi IDE只能集成.jar,无法集成.aar,集成.aar要解压开,拿出里面的.jar,.so以及资源文件等手动集成进去。因为没有gradle也没有继承maven库上代码的功能,只能把m……/p>p classread-more>a hrefhttps://www.raysoftware.cn/671.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/android relcategory tag>Android/a>, a hrefhttps://www.raysoftware.cn/category/app relcategory tag>APP/a>, a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a>, a hrefhttps://www.raysoftware.cn/category/uncategorized relcategory tag>未分类/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/android reltag>Android/a>, a hrefhttps://www.raysoftware.cn/tag/android-studio reltag>Android Studio/a>, a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a>, a hrefhttps://www.raysoftware.cn/tag/fmx reltag>FMX/a>, a hrefhttps://www.raysoftware.cn/tag/jni reltag>JNI/a>, a hrefhttps://www.raysoftware.cn/tag/so reltag>so/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>Delphi和Android Studio混合开发(二)FMX项目和Android混合开发/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-671 --> div idpost-656 classpost-656 post type-post status-publish format-standard hentry category-android category-app category-delphi category-uncategorized tag-android tag-android-studio tag-delphi tag-jni tag-so> h2 classentry-title>a hrefhttps://www.raysoftware.cn/656.html relbookmark>Delphi和Android Studio混合开发(一)Delphi开发标准.SO给Android Studio用/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/656.html title上午9:53 relbookmark>span classentry-date>2023年12月23日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>Delphi自从开始跨平台,支持Windows,Linux,Mac,iOS,Android以后,玩法就多了很多。/p>p>实际上Delphi在开发任何平台的代码的时候都是编译成原生的Native Code,在Android平台,Delphi的代码和C++一样是被编译为SO(Linux,Unix上的动态链接库)文件,由一小段JVM代码直接加载.SO,引入原生代码。/p>p>这篇文章介绍的是用Delphi开发一个JNI形式的SO给Android调用,好处是SO是ARM的机器码,执行效率比JVM的执行效率要高,而且SO是原生代码并不像Java字节码那样容易被反编译,另外还有一个Delphi编译器产生的代……/p>p classread-more>a hrefhttps://www.raysoftware.cn/656.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/android relcategory tag>Android/a>, a hrefhttps://www.raysoftware.cn/category/app relcategory tag>APP/a>, a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a>, a hrefhttps://www.raysoftware.cn/category/uncategorized relcategory tag>未分类/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/android reltag>Android/a>, a hrefhttps://www.raysoftware.cn/tag/android-studio reltag>Android Studio/a>, a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a>, a hrefhttps://www.raysoftware.cn/tag/jni reltag>JNI/a>, a hrefhttps://www.raysoftware.cn/tag/so reltag>so/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>Delphi和Android Studio混合开发(一)Delphi开发标准.SO给Android Studio用/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-656 --> div idpost-644 classpost-644 post type-post status-publish format-standard hentry category-uncategorized tag-delphi tag-delphi12> h2 classentry-title>a hrefhttps://www.raysoftware.cn/644.html relbookmark>Delphi12的一个数据库问题/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/644.html title下午3:19 relbookmark>span classentry-date>2023年11月19日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>我身边的朋友都是第一时间更新Delphi的版本。/p>p>他把服务端程序由Delphi11更新到最新的Delphi12,span stylecolor:#a30d00 classhas-inline-color>发现DBExpress的用FieldByName().asBytes读取Blob型数据有问题,读的不正确。/span>/p>p>span stylecolor:#a30900 classhas-inline-color>FieldByName().asString读到的字符串也不正确/span>。/p>p>经过跟他的排查发现Delphi12的数据库在64位的时候读取Blob的时候会出问题。/p>p>主要原因是Delphi12的Classes文件里面把TStream.ReadBuffer的64位实现重写,发生了变化。/p>p>下面是Delphi11的TStream.ReadBuffer/p>p>下面……/p>p classread-more>a hrefhttps://www.raysoftware.cn/644.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/uncategorized relcategory tag>未分类/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a>, a hrefhttps://www.raysoftware.cn/tag/delphi12 reltag>delphi12/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>Delphi12的一个数据库问题/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-644 --> div idpost-641 classpost-641 post type-post status-publish format-standard hentry category-uncategorized tag-delphi> h2 classentry-title>a hrefhttps://www.raysoftware.cn/641.html relbookmark>给Delphi高版本添加类似Kotlin的for的功能/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/641.html title上午11:03 relbookmark>span classentry-date>2021年8月9日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>前几天在盒子的帖子上讨论Delphi11的特性,一个朋友说希望有for in 0..100这种类似kotlin的循环语法。/p>p>随便指出了可以变相实现for in 0..100即可,结果有其他朋友验证了,这种写法在DelphiXE1之前的版本是可以的,在高版本Delphi上实际上被认为是集合,那么就不能超过255个元素,无法实用。/p>p>好在高版本的Delphi的For in是通过数据类型有一个GetEnumerator方法返回枚举器来实现的,一些简单数组之类的靠编译器自动处理的。/p>p>那么就可以变相实现这个功能了。/p>/p>p>这就变相的实现了仿kotlin这种直接for……/p>p classread-more>a hrefhttps://www.raysoftware.cn/641.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/uncategorized relcategory tag>未分类/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>给Delphi高版本添加类似Kotlin的for的功能/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-641 --> div idpost-627 classpost-627 post type-post status-publish format-standard hentry category-android category-app category-delphi category-uncategorized tag-android tag-28 tag-30 tag-36> h2 classentry-title>a hrefhttps://www.raysoftware.cn/627.html relbookmark>Android,保活,复活,防杀/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/627.html title下午9:14 relbookmark>span classentry-date>2020年12月1日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>从Android5到Android11都通用。br />这是在我的Mate40Pro(Android10)上面的效果/p>p>a hrefhttps://www.raysoftware.cn/wp-content/uploads/2020/12/android_keepalive.gif>img loadinglazy srchttps://www.raysoftware.cn/wp-content/uploads/2020/12/android_keepalive.gif alt classalignnone size-full wp-image-630 width320 height661/>/a>……/p>p classread-more>a hrefhttps://www.raysoftware.cn/627.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/android relcategory tag>Android/a>, a hrefhttps://www.raysoftware.cn/category/app relcategory tag>APP/a>, a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a>, a hrefhttps://www.raysoftware.cn/category/uncategorized relcategory tag>未分类/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/android reltag>Android/a>, a hrefhttps://www.raysoftware.cn/tag/%e4%bf%9d%e6%b4%bb reltag>保活/a>, a hrefhttps://www.raysoftware.cn/tag/%e5%a4%8d%e6%b4%bb reltag>复活/a>, a hrefhttps://www.raysoftware.cn/tag/%e9%98%b2%e6%9d%80 reltag>防杀/a> /span> span classmeta-sep>|/span> span classcomments-link>a hrefhttps://www.raysoftware.cn/627.html#comments>2条评论/a>/span> /div>!-- .entry-utility --> /div>!-- #post-627 --> div idpost-621 classpost-621 post type-post status-publish format-standard hentry category-delphi tag-delphi tag-managed-record tag-tstringbuilder> h2 classentry-title>a hrefhttps://www.raysoftware.cn/621.html relbookmark>Managed Record的使用一则/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/621.html title下午12:57 relbookmark>span classentry-date>2020年9月9日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>其实Managed Record有很多方便使用的场景。br />比如下面的就是把TStringBuilder由Class改成了Managed Record。好处就是不再需要释放了。……/p>p classread-more>a hrefhttps://www.raysoftware.cn/621.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a>, a hrefhttps://www.raysoftware.cn/tag/managed-record reltag>Managed Record/a>, a hrefhttps://www.raysoftware.cn/tag/tstringbuilder reltag>TStringBuilder/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>Managed Record的使用一则/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-621 --> div idpost-619 classpost-619 post type-post status-publish format-standard hentry category-delphi tag-delphi tag-managed-record> h2 classentry-title>a hrefhttps://www.raysoftware.cn/619.html relbookmark>Delphi Managed Record的一个不方便的地方/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/619.html title下午2:58 relbookmark>span classentry-date>2020年9月7日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>使用的时候还要br />var a : TMyRecord : TMyRecord.create(1);br />实际上既有constructor,又有Initialize,是有歧义的,完全可以合并。br />变成如下这种方式:br />class operator Initialize(out Dest: TMyRecord, 各种构造的参数);br />比如br />class operator Initialize(out Dest: TMyRecord, v : Integer);br />使用的时候就可以非常简洁了。br />var a : TMyRecord(1);……/p>p classread-more>a hrefhttps://www.raysoftware.cn/619.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/delphi reltag>Delphi/a>, a hrefhttps://www.raysoftware.cn/tag/managed-record reltag>Managed Record/a> /span> span classmeta-sep>|/span> span classcomments-link>span>span classscreen-reader-text>Delphi Managed Record的一个不方便的地方/span>已关闭评论/span>/span> /div>!-- .entry-utility --> /div>!-- #post-619 --> div idpost-605 classpost-605 post type-post status-publish format-standard hentry category-delphi tag-managed-record> h2 classentry-title>a hrefhttps://www.raysoftware.cn/605.html relbookmark>Delphi10.4托管记录(Managed Record)产生的机器代码分析/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/605.html title上午12:33 relbookmark>span classentry-date>2020年6月3日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>只分析了Delphi Windows平台X86,X64上的代码,ARM平台和Linux平台基于是LLVM编译器的,没有分析。/p>p>Delphi 10.4/p>p>VC2015/p>p>VC的代码之所以加了GetTickCount,Sleep是因为VC的编译器极其智能,Release版本的时候如果函数为空会直接优化掉。/p>p>先看X86版本Delphi的代码(代码优化是否勾选,产生的代码没有区别,也就是这块Debug和Release版本是一样的)/p>p>十分的啰嗦,基本可以理解成是加了一大堆的Try Finally。懒得要死。/p>p>再看VC X86 Debug版本的代码/p>p>还算干脆利索,非常直接。br />再看VC X……/p>p classread-more>a hrefhttps://www.raysoftware.cn/605.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/managed-record reltag>Managed Record/a> /span> span classmeta-sep>|/span> span classcomments-link>a hrefhttps://www.raysoftware.cn/605.html#comments>4条评论/a>/span> /div>!-- .entry-utility --> /div>!-- #post-605 --> div idpost-603 classpost-603 post type-post status-publish format-standard hentry category-delphi> h2 classentry-title>a hrefhttps://www.raysoftware.cn/603.html relbookmark>Delphi 10.4 的期待和不足/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/603.html title上午8:26 relbookmark>span classentry-date>2020年5月29日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>Delphi10.4发布在即,看了许多特性宣传,最值得期待的就是托管记录。br />最开始Delphi的结构体支持操作符重载,就很兴奋,想自己封装算法库,自己封装智能指针。br />比如自己实现string,自己实现BigInt之类的。结果发现record虽然支持了操作符重载,但是不能自动初始化和反初始化。导致一些事情很难做,比如string我要默认是”,BigInt默认是0等等。br />十几年前就建议增加初始化和反初始化的操作符重载,结果人家回了句话十几年都在没动静。br />好在这次总算是增加了这方面的支持,但是我觉得还没做全。/p>p>想要实现类似C++的智能指针还缺个重要的操作符重载,就是.或者->(Delphi里面是^……/p>p classread-more>a hrefhttps://www.raysoftware.cn/603.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/delphi relcategory tag>Delphi/a> /span> span classmeta-sep>|/span> span classcomments-link>a hrefhttps://www.raysoftware.cn/603.html#comments>8条评论/a>/span> /div>!-- .entry-utility --> /div>!-- #post-603 --> div idpost-600 classpost-600 post type-post status-publish format-standard hentry category-cpp tag-cpp-2 tag-createfilemapping tag-32 tag-33> h2 classentry-title>a hrefhttps://www.raysoftware.cn/600.html relbookmark>CPP各个操作系统和平台的宏定义/a>/h2> div classentry-meta> span classmeta-prep meta-prep-author>发表于/span>a hrefhttps://www.raysoftware.cn/600.html title下午9:47 relbookmark>span classentry-date>2018年3月14日/span>/a>span classmeta-sep>由/span>span classauthor vcard>a classurl fn n hrefhttps://www.raysoftware.cn/author/raysoftware title查看所有由raysoftware发布的文章>raysoftware/a>/span> /div>!-- .entry-meta --> div classentry-content> p>#if TARGET_OS_MACbr /> #if TARGET_OS_IPHONEbr /> #if TARGET_IPHONE_SIMULATORbr /> #if TARGET_OS_EMBEDDED/p>p> #ifdef __ANDROID__/p>p> #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)br /> #if defined(__IPHONE_OS_MIN_VERSION_REQUIRED)/p>p> //Windowsbr /> #ifdef WIN32br /> #ifdef _WIN32br /> //64位Window……/p>p classread-more>a hrefhttps://www.raysoftware.cn/600.html>继续阅读/a>/p> /div>!-- .entry-content --> div classentry-utility> span classcat-links> span classentry-utility-prep entry-utility-prep-cat-links>发表在/span> a hrefhttps://www.raysoftware.cn/category/cpp relcategory tag>CPP/a> /span> span classmeta-sep>|/span> span classtag-links> span classentry-utility-prep entry-utility-prep-tag-links>标签为/span> a hrefhttps://www.raysoftware.cn/tag/cpp-2 reltag>cpp/a>, a hrefhttps://www.raysoftware.cn/tag/createfilemapping reltag>CreateFileMapping/a>, a hrefhttps://www.raysoftware.cn/tag/%e5%ae%8f%e5%ae%9a%e4%b9%89 reltag>宏定义/a>, a hrefhttps://www.raysoftware.cn/tag/%e7%bc%96%e8%af%91%e5%99%a8 reltag>编译器/a> /span> span classmeta-sep>|/span> span classcomments-link>a hrefhttps://www.raysoftware.cn/600.html#comments>103条评论/a>/span> /div>!-- .entry-utility --> /div>!-- #post-600 --> div idnav-below classnavigation> div classnav-previous>a hrefhttps://www.raysoftware.cn/page/2 >span classmeta-nav>←/span> 早期文章/a>/div> div classnav-next>/div> /div>!-- #nav-below --> /div>!-- #content --> /div>!-- #container --> div idprimary classwidget-area rolecomplementary> ul classxoxo>li idsearch-2 classwidget-container widget_search>form rolesearch methodget idsearchform classsearchform actionhttps://www.raysoftware.cn/> div> label classscreen-reader-text fors>搜索:/label> input typetext value names ids /> input typesubmit idsearchsubmit value搜索 /> /div> /form>/li> li idrecent-posts-2 classwidget-container widget_recent_entries> h3 classwidget-title>近期文章/h3> ul> li> a hrefhttps://www.raysoftware.cn/671.html>Delphi和Android Studio混合开发(二)FMX项目和Android混合开发/a> /li> li> a hrefhttps://www.raysoftware.cn/656.html>Delphi和Android Studio混合开发(一)Delphi开发标准.SO给Android Studio用/a> /li> li> a hrefhttps://www.raysoftware.cn/644.html>Delphi12的一个数据库问题/a> /li> li> a hrefhttps://www.raysoftware.cn/641.html>给Delphi高版本添加类似Kotlin的for的功能/a> /li> li> a hrefhttps://www.raysoftware.cn/627.html>Android,保活,复活,防杀/a> /li> /ul> /li>li idrecent-comments-2 classwidget-container widget_recent_comments>h3 classwidget-title>近期评论/h3>ul idrecentcomments>li classrecentcomments>span classcomment-author-link>a hrefhttp://soderzhanki-3-sezon-2021.online relexternal nofollow ugc classurl>soderzhanki-3-sezon-2021.online/a>/span>发表在《a hrefhttps://www.raysoftware.cn/168.html#comment-883>Delphi2007以后编译器进步的简单测试/a>》/li>li classrecentcomments>span classcomment-author-link>a hrefhttp://soderzhanki-3-sezon-2021.online relexternal nofollow ugc classurl>soderzhanki-3-sezon-2021.online/a>/span>发表在《a hrefhttps://www.raysoftware.cn/490.html#comment-3680>Delphi循环移位操作/a>》/li>li classrecentcomments>span classcomment-author-link>a hrefhttp://soderzhanki-3-sezon-2021.online relexternal nofollow ugc classurl>soderzhanki-3-sezon-2021.online/a>/span>发表在《a hrefhttps://www.raysoftware.cn/577.html#comment-4742>FireMonkey在使用GDIPlus放大图像的Bug的修复/a>》/li>li classrecentcomments>span classcomment-author-link>a hrefhttp://soderzhanki-3-sezon-2021.online relexternal nofollow ugc classurl>soderzhanki-3-sezon-2021.online/a>/span>发表在《a hrefhttps://www.raysoftware.cn/339.html#comment-1175>Delphi写ShellCode获取Kernel32.DLL的地址./a>》/li>li classrecentcomments>span classcomment-author-link>a hrefhttp://soderzhanki-3-sezon-2021.online relexternal nofollow ugc classurl>soderzhanki-3-sezon-2021.online/a>/span>发表在《a hrefhttps://www.raysoftware.cn/31.html#comment-207>Delphi2010的RTTI增强/a>》/li>/ul>/li>li idarchives-2 classwidget-container widget_archive>h3 classwidget-title>文章归档/h3> ul> li>a hrefhttps://www.raysoftware.cn/date/2023/12>2023年12月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2023/11>2023年11月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2021/08>2021年8月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2020/12>2020年12月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2020/09>2020年9月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2020/06>2020年6月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2020/05>2020年5月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2018/03>2018年3月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2017/04>2017年4月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2017/02>2017年2月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2016/12>2016年12月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2016/02>2016年2月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/09>2014年9月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/06>2014年6月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/05>2014年5月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/04>2014年4月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/03>2014年3月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2014/01>2014年1月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/11>2013年11月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/10>2013年10月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/09>2013年9月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/08>2013年8月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/07>2013年7月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/06>2013年6月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/05>2013年5月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2013/04>2013年4月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2012/12>2012年12月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2012/11>2012年11月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2012/10>2012年10月/a>/li> li>a hrefhttps://www.raysoftware.cn/date/2012/09>2012年9月/a>/li> /ul> /li>li idcategories-2 classwidget-container widget_categories>h3 classwidget-title>分类/h3> ul> li classcat-item cat-item-38>a hrefhttps://www.raysoftware.cn/category/android>Android/a>/li> li classcat-item cat-item-39>a hrefhttps://www.raysoftware.cn/category/app>APP/a>/li> li classcat-item cat-item-2>a hrefhttps://www.raysoftware.cn/category/cocos2d-x>cocos2d-x/a>/li> li classcat-item cat-item-3>a hrefhttps://www.raysoftware.cn/category/cpp titleCPP>CPP/a>/li> li classcat-item cat-item-4>a hrefhttps://www.raysoftware.cn/category/delphi titleDelphi>Delphi/a>/li> li classcat-item cat-item-1>a hrefhttps://www.raysoftware.cn/category/uncategorized>未分类/a>/li> /ul> /li>li idmeta-2 classwidget-container widget_meta>h3 classwidget-title>功能/h3> ul> li>a hrefhttps://www.raysoftware.cn/wp-login.php>登录/a>/li> li>a hrefhttps://www.raysoftware.cn/feed>条目feed/a>/li> li>a hrefhttps://www.raysoftware.cn/comments/feed>评论feed/a>/li> li>a hrefhttps://cn.wordpress.org/>WordPress.org/a>/li> /ul> /li> /ul> /div>!-- #primary .widget-area --> /div>!-- #main --> div idfooter rolecontentinfo> div idcolophon> div idsite-info> a hrefhttps://www.raysoftware.cn/ title武稀松(wr960204)的博客 relhome> 武稀松(wr960204)的博客 /a> /div>!-- #site-info --> div idsite-generator> /div>!-- #site-generator --> /div>!-- #colophon -->div styletext-align:center;> !-- p classcopyright>武稀松(wr960204)·2012-2024 版权所有/p> p classcopyright>Copyright(C)武稀松(wr960204), All Rights Reserved./p> --> p>IP地址位置数据由a hrefhttps://www.cz88.net>纯真CZ88/a>提供支持/p> p classcopyright>a hrefhttps://beian.miit.gov.cn/>沪ICP备12028806号/a> a target_blank hrefhttps://www.beian.gov.cn/portal/registerSystemInfo?recordcode31011502401253 stylemargin-left:20px;>img src//icons.mydrivers.com/2018/news/batb.png/>沪公网安备31011502401253号/a> br> br>/p>/div> /div>!-- #footer -->/div>!-- #wrapper -->script typetext/javascript srchttp://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js?ver3.0.9b idsyntaxhighlighter-core-js>/script>script typetext/javascript srchttp://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js?ver3.0.9b idsyntaxhighlighter-brush-plain-js>/script>script typetext/javascript srchttp://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushDelphi.js?ver3.0.9b idsyntaxhighlighter-brush-delphi-js>/script>script typetext/javascript srchttp://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushCpp.js?ver3.0.9b idsyntaxhighlighter-brush-cpp-js>/script>script typetext/javascript> (function(){ var corecss document.createElement(link); var themecss document.createElement(link); var corecssurl http://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver3.0.9b; if ( corecss.setAttribute ) { corecss.setAttribute( rel, stylesheet ); corecss.setAttribute( type, text/css ); corecss.setAttribute( href, corecssurl ); } else { corecss.rel stylesheet; corecss.href corecssurl; } document.head.appendChild( corecss ); var themecssurl http://www.raysoftware.cn/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?ver3.0.9b; if ( themecss.setAttribute ) { themecss.setAttribute( rel, stylesheet ); themecss.setAttribute( type, text/css ); themecss.setAttribute( href, themecssurl ); } else { themecss.rel stylesheet; themecss.href themecssurl; } document.head.appendChild( themecss ); })(); SyntaxHighlighter.config.strings.expandSource + expand source; SyntaxHighlighter.config.strings.help ?; SyntaxHighlighter.config.strings.alert SyntaxHighlighter\n\n; SyntaxHighlighter.config.strings.noBrush Can\t find brush for: ; SyntaxHighlighter.config.strings.brushNotHtmlScript Brush wasn\t configured for html-script option: ; SyntaxHighlighter.defaultspad-line-numbers false; SyntaxHighlighter.defaultstoolbar false; SyntaxHighlighter.all(); // Infinite scroll support if ( typeof( jQuery ) ! undefined ) { jQuery( function( $ ) { $( document.body ).on( post-load, function() { SyntaxHighlighter.highlight(); } ); } ); }/script>script typetext/javascript srchttp://www.raysoftware.cn/wp-includes/js/wp-embed.min.js?ver5.7.2 idwp-embed-js>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]