1.ç¨vbè¯è¨åç软件代ç ï¼å¾®è½¯å
¬å¸ä»ä»¬è½çå°åï¼
2.VS Code 的源码 7 个开源替代品 | Linux 中国
3.手把手带你学webpack(6)--source-map
4.编程软件有哪些?
5.软件序列号生成组件SoftwareProtector
6.在什么地方可以找到免费的VB设计的源代码
ç¨vbè¯è¨åç软件代ç ï¼å¾®è½¯å ¬å¸ä»ä»¬è½çå°åï¼
å¾®è½¯å ¬å¸æ¥æ大éçææ¯åèµæºï¼å æ¬æç´¢å¼æåç½ç»ç¬è«çå·¥å ·ï¼å¯ä»¥å¸®å©ä»ä»¬åç°å¹¶ç´¢å¼äºèç½ä¸çåç§å 容ï¼å æ¬ä½¿ç¨VBè¯è¨ç¼åç软件代ç ã
å¦ææ¨å°VBè¯è¨ç¼åç软件代ç åå¸å°å ¬å ±çç½ç«æè åå¨åºä¸ï¼å¾®è½¯çæç´¢å¼ææå¯è½ä¼ç´¢å¼å¹¶æ¶å½è¿äºä»£ç ãæ¤å¤ï¼å¦ææ¨å°ä»£ç ä¸ä¼ å°GitHubçå¼æºä»£ç æ管平å°ï¼å¾®è½¯ä¹ä¼æå¯è½è®¿é®è¿äºå¹³å°å¹¶æ¥çå ¬å¼ç代ç åºã
æ»çæ¥è¯´ï¼å¾®è½¯å¯ä»¥éè¿åç§éå¾çå°ä½¿ç¨VBè¯è¨ç¼åç软件代ç ï¼ä½æ¯å¦ä¼ç¹å«å ³æ³¨åå³äºä»ä»¬çä¸å¡éæ±åå®é æ åµã
VS Code 的 7 个开源替代品 | Linux 中国
为了避免使用微软版本的 VS Code,我们需要另行选择一个开源的源码代码编辑器。
Visual Studio Code,源码简称 VS Code,源码是源码一款跨平台代码编辑器,适用于 Linux、源码牛牛+大唐麻将源码Windows 以及 macOS。源码它不仅可以编辑简单文本,源码还可以像集成开发环境(IDE)一样管理整个代码库。源码它可以通过插件进行扩展,源码并被证明是源码一个可靠的文本编辑器,轻松击败非开源的源码强大竞品编辑器。
微软以开源的源码方式发布了 VS Code,但下载的源码版本并非开源。不过,源码你仍有办法以开源方式使用 VS Code,或者选择其它的开源替代品。
以开源方式构建 VS Code
你可以在 GitHub 获得 VS Code 的源代码。然而,当你从微软下载 VS Code 时,你会发现它是基于微软软件许可证授权的。这并不是一个开源许可证。其区别在于构建过程。
Chris Dias 是微软 VS Code 项目开发者之一,他对 VS Code 作了一个对比,就像 Chrome 浏览器和其开源的“上游”项目 Chromium 一样。VS Code 确实是基于开源代码库构建的。微软官方发布的版本带有一些与微软相关的功能,包括一项商标、一个插件库、一个 C# 调试器以及遥测。但如果你克隆仓库然后自行编译,这些东西都不会被加入,所以你会得到一个名为 Code - OSS 的“干净”版本(OSS 代表开源软件)。
实际上,VS Code 与 Code - OSS 之间的差异很小。最值得注意的是,VS Code 包含遥测功能,它会记录使用数据。微软不可能监控你的一举一动,而且目前越来越多软件都在收集使用数据。是否在乎 VS Code 的遥测功能,完全取决于你自己。如果你不希望它追踪你的使用情况,这里有一些很棒的 VS Code(开源)替代品。
VSCodium
最简单的替代方案就是构建不带微软附属功能的 VS Code 版本。VSCodium 项目提供了可下载的 Code-OSS 可执行文件,它基于 VS Code 代码库编译,没有配置微软的 product.json 中的改变。VSCodium 的开发者还竭尽全力禁用了所有难以寻找的遥测选项,除非你自行编译,否则这已经是你能找到的最干净的 VS Code 版本了。
VSCodium 提醒说,VS Code 悄悄地包含了一些专有工具,电玩大世界源码这些工具无法与开源版本一起提供。这包括一个 C# 调试器和部分插件。如果你需要它们,可以在 [文档中] 找到解决办法。假如你依赖 VS Code 中某些特定的功能,你应该验证它在 VSCodium 中是否可以发挥功用。
此外,你还应该验证是否已禁用所有的遥测功能。
Code - OSS
如果不想用 VSCodium 的版本,你可以自己从头编译 VS Code,得到一样的版本。可执行文件叫做 Code - OSS,而不是 VSCode,适用于 VSCodium 的许可证限制也适用于你的构建,而工作方式也是一样。
如果通过编译源码构建应用,首次启动时你要确保 [所有遥测都已经被禁用]。
Atom
Atom 是一个类似于 IDE 的文本编辑器,当微软收购 Github 的同时也收购了它。和 VS Code 一样,你可以使用插件,扩展 Atom 编辑器,此外,你还能通过自己的工具和主题实现定制。它开源且与 Github 集成。简而言之,只要你能找到你想用的插件,或者你愿意自己动手写,那么 Atom 几乎可以满足你的一切需求。
跟 VS Code 一样,Atom 也默认包含遥测。你可以禁用这个功能,而且跟 VS Code 不同的是,使用插件不受任何限制,所以不必再因为隐私改变你的工作流。对写代码的人来说,毫无疑问 Atom 是很有用的工具,而对于使用电脑的任何人,它同样会是一个很赞的编辑器。如果你需要一个顺手的通用文本编辑器,请试试 Atom。
GNOME Builder
为 GNOME 桌面而开发的 IDE,GNOME Builder 是一个 Linux 平台的代码编辑器,专门用于构建 GNOME 应用。如果你为 Linux 构建应用程序,希望轻松解决兼容性问题,那么 Builder 就是最简单的选择。从 Flathub.org 安装 Builder;当你开启一个新项目,如果没有安装 GNOME SDK,它会提醒你。这意味着当维护你的应用时,你不必刻意关注 GNOME 的状态,因为 Builder 在替你做这件事。下载网页源码插件
然而,Builder 不仅能够构建 GNOME 程序。它还支持各种各样的编程语言,包括 Python、Rust、C/C++、Java、Go、JavaScript、TypeScript、VB.NET、Markdown 和几种标记语言等等。它对部分语言有全面的支持,包括自动补全以及弹出式函数定义,但是其它语言仅仅含有一些比较方便的功能,例如语法高亮跟自动匹配括号。不管你是不是一个专门的程序员,或者你只想要一个给力的 HTML 和 CSS 编辑器,这个 IDE 都能让你舒心使用。
Geany
Geany 是一个强大、稳定而轻量级的编辑器,它有很多有用的特性,能帮你写 Bash、Python、Lua、XML、HTML、LaTex,当然远不止这些。对 种各种编程及脚本语言、标记语言和各种文件类型(比如 .diff 和 .po),Geany 都有很好的支持。退一万步讲,Geany 还有括号匹配和语法高亮 —— 通常来说,它包含更多功能。
Geany 是一个小型编辑器,但是通过插件,你可以为它添加特性,例如项目视图面板、文件系统树、调试、终端等,直到它看起来像一个 IDE。当然,萝卜白菜各有所爱,你也可以尽量使它保持简洁易用。如果因为电脑 CPU 或者内存的限制而无法使用 VS Code,那么很明显 Geany 可以作为你的选择。它只占用少量内存,而且启动迅速。即便跟运行在终端里的 Vim 相比,Geany 稍显笨重,但就算在树莓派,负213的源码它也能做到快速、灵活。
Brackets
Brackets 是一款面向网页开发者的文本编辑器和 IDE。对于 HTML、CSS、JavaScript、PHP 甚至 Python,它都有很强大的支持。而且跟 VS Code 一样,它也有一个很丰富的插件生态,所以你可以最大限度地扩展它,以适应你所有编程语言的工作。
有的插件用于辅助解析语言、运行脚本,甚至编译执行代码。Brackets 有一个传统的界面,不管你是否熟悉 IDE 或者像记事本一样简单的文本编辑器,都能驾轻就熟。如果稍微花点时间,添加几个相关插件,然后熟悉它们,你会发现 Brackets 真的是一个很精妙、很有用的编辑器,不管你输入什么,它都能通过自动补全、提示帮你避免低级错误。假如你是程序员,它能帮你加快测验和调试周期。
Che
如果你喜欢新技术,那你应当尝试 Che 编辑器。这是一个基于云的 IDE,所以它默认以软件即服务(SaaS)的形式运行,但它是完全开源的,如果你有 Kubernetes 实例,那就可以运行为你自己的 SaaS。
Che 不仅是一个在线 IDE,而且是一个为云开发而构建的 IDE。在 Che 的概念里,用户无需查看本地文件系统。由于它在云端工作,所以你也可以这么做。事实上,如果你有一台 Git 服务器,那就可以直接把它当作你的文件系统,在它的仓库中完成你的项目。当然,你也可以下载所有文件做本地备份。
但 Che 的主要特点,也是云开发者最为兴奋的一点,它是一个功能全面、带有 Kubernetes 感知功能的开源 IDE。如果你正在为云构建应用、网站或容器(或三者的查看qt源码 linux组合),那么 Che 是一个你需要尝试的编辑器。
那么你的选择是?
你有没有在使用这些 VS Code 替代品中的某一个呢?想不想挑一个试试呢?欢迎在评论中分享你的见解。
手把手带你学webpack(6)--source-map
本篇文章对应源码:JvcicpO1xuXG4gIHRocmIG5ldyBFcnJvcignctZXRoaW5nIHdybnLi4uJyk7XGXG5cbm1vZHVsZS5leHBvcnRzID0geyBlcnJvckZuIHXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSbIjoiIn0=\n//#sourceURL=webpack-internal:///./src/utils.js\n");这种方式适用于在开发模式下需要精确的source-map时使用,相比直接的eval,会更加精确些
3.4inline-source-map顾名思义,就是以内联方式存放source-map文件,它会将source-map文件的内容编码成base后直接放在打包结果的最后
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'inline-source-map',plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};//#sourceMappingURL=data:application/json;charset=utf-8;base,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsbUJBQW1COzs7Ozs7O1VDTm5CO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7Ozs7OztBQ3RCQSxRQUFRLFVBQVUsRUFBRSxtQkFBTyxDQUFDLCtCQUFTOztBQUVyQyIsInNvdXJjZXMiOlsid2VicGFjazovLzA2X3dlYnBhY2tfccmNlXhcC8uL3NyYydGlscy5qcyIsIndlYnBhY2s6Ly8wNlZWJwYWNrX3NvdXJjZV9tYXAvd2VicGFjay9ibc3RyYXAiLCJ3ZWJwYWNrOi8vMDZfd2VicGFjazb3VyY2VfbWFwLy4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDbZWIjpbImZ1bmN0aW9uIGVycm9yRm4oKSB7XG4gIGNvbnNvbGUubG9nKCdoZWxsbyBlcnJvcicpO1xuXG4gIHRocmIG5ldyBFcnJvcignctZXRoaW5nIHdybnLi4uJyk7XGXG5cbm1vZHVsZS5leHBvcnRzID0geyBlcnJvckZuIHXG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXGYXIgXZWJwYWNrXvZHVsZV9jYWNoZV9fID0geXG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gXZWJwYWNrXvZHVsZV9jYWNoZV9fWvZHVsZUlkXTtcblWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaWbyB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlXbbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdHXG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFjatb2R1bGVzXbbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFjayZXF1aXJlXpO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiYuc3QgeyBlcnJvckZuIH0gPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmVycm9yRm4oKTtcbiJdLCJuYW1lcyI6WsInNvdXJjZVJvb3QiOiIifQ==从官方文档可以看到,这种方式的构建速度是最慢的,只适用于构建单个文件的时候使用
3.5cheap-source-map这种方式相比source-map而言,没有建立列映射,也就是说遇到报错的时候,只会告诉你哪一行代码出错了,而不会告诉你哪一列出错了,如果开发时对列映射没有太高要求的话可以使用这种方式,毕竟不用生成列映射,比起source-map来说会快一些
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'cheap-source-map',plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};3.6cheap-module-source-map官方文档对这种方式的devtool并没有进行任何详细介绍,事实上这种方式适用于js代码被loader转换过的场景,比如被babel进行了转换,又比如源码是用typescript写的,后来经过loader转成了js代码,而我们又希望在运行的时候出现报错信息时能够对应回typescript代码像这种有loader对js进行转换的场景下,想要保证正确的source-map就需要使用到带有module的devtool了,因为除了cheap-module-source-map,还有很多别的方式也是有module的,只要是在官方文档中看到带有module的devtool都是具有这种特性
下面就以babel为例,我们通过babel-loader对js进行转换,然后看看能否正确对应到转换前的代码首先安装如下依赖
pnpmi@babel/core@babel-preset-envbabel-loader@babel/core是babel的核心,所有功能都要在这个包的基础上运行
@babel-preset-env让我们可以不需要考虑转换成什么版本的js,它会根据要适配的浏览器自动转换成能兼容相应浏览器的版本,这里我们使用它主要是能够将我们写的es6代码转成es5,从而让我们的源码和打包后的结果有差异,方便观察source-map是否生效
babel-loader,用于和webpack搭配使用,转换js文件
接下来配置loader
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'eval',//默认就是eval,因此development模式下不写devtool配置项也可以plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};0然后我们写一个具有es6特性的语法的函数
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'eval',//默认就是eval,因此development模式下不写devtool配置项也可以plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};1使用到了const、箭头函数,经过babel转换成es5后,代码的位置会和源码中不一样,那么在浏览器中如果仍然能够找到转换前的源码,则说明cheap-module-source-map生效了可以看到,在浏览器中确实能够看到转换前的源码,这就是cheap-module-source-map中module的作用,事实上官方文档中这么多的配置项我们不需要害怕,只需要知道每个关键字是什么意思,那么它们组合起来无非就是各种特性的叠加而已
3.7hidden-source-map也是一个见名知意的配置项,相比于source-map,就是将最后的//#sourceMappingURL=main.js.map这句注释删除了,这也就意味着source-map不会生效了,但是仍然会生成source-map文件的官方文档中给我们的建议是在只需要知道有错误出现时给我们在控制台输出出来的话就可以使用这种方式
3.8nosources-source-map这种方式能够在出现错误的时候告诉我们是源码中哪个文件第几行出错了,但是不会在浏览器中给我们生成源码
总结了解完以上这几个devtool配置项,就足够了,官网的个配置项就是根据eval、hidden、inline、cheap、module、nosources这几个关键字组合出来的
但是组合也是有规则的,官方文档中给出的规则如下:
[inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
原文:/post/编程软件有哪些?
常用的编程软件有:Visual studio、PhpStorm、Notepad++、WebStrom、Sublime Text、EditPlus 等。
1:Visual studio是一款由美国微软公司开发的开发工具集。
2:PhpStorm是一个专业轻量级且便捷的PHP IDE,旨在提供了用户效率,可深刻理解用户的编码,提供智能的代码补全,快速导航以及即时错误检查等等强大的功能。
3:Notepad++,能够支持种编程语言,是程序员必备的文本编辑器,比起微软的记事本,它小巧高效,是个不错的选择。
4:WebStrom是jetbrains公司旗下的一款JavaScript开发工具,目前被广大的中国JS开发者誉为"Web前端开发神器"。
5:Sublime Text是一款代码编辑器,是HTML和散文先进的文本编辑器。具有漂亮的用户界面以及强大的功能。
6:EditPlus是一款由韩国Sangil Kim出品的小巧而功能强大的可处理文本,HTML和程序语言的Windows编辑器,可以通过设置用户工具将其作为C,Java,PHP等等语言的一个简单的IDE。
想了解更多有关编程软件的详情,推荐咨询达内教育。达内教育具有丰厚的师资力量,教学质量突出,实战讲师,经验丰富,理论知识+学习思维+实战操作,打造完整学习闭环。达内教育独创TTS8.0教学系统,并设有企业双选会。达内的OMO教学模式,全新升级,线上线下交互学习,直播学,随时学,随时问,反复学,让学员学习更便捷。感兴趣的话点击此处,免费学习一下
软件序列号生成组件SoftwareProtector
在之前提到的文章《这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)》中,我为大家简要介绍了Software Protector序列号生成组件。现在,我将通过这篇文章,进一步展示其强大的功能。尽管我认为它已经涵盖了软件序列号生成的所有要素,但最终是否适用还需您根据自己的需求决定。总体来说,其源码结构并不复杂,即便需要增加新功能,也可以在此基础上进行扩展。我个人在之前曾尝试过简单的序列号注册和验证,但看过这个组件后,我发现自己之前的做法实在是过于简单了。
1.基本功能介绍
简单来说,Software Protector是一个序列号生成器,用于保护应用程序的授权。它可以生成和验证不同类型的序列号(位),限制使用时间(最多天),并且能够锁定特定机器的key。该组件采用GUI界面,其核心使用的是SKGL(Serial Key Generating Library)组件。在使用时,建议同时使用这两个组件。以下是官方网站的链接:
官方网站:softwareprotector.codeplex.com...
skgl.codeplex.com/
以下是界面所展示的功能截图:
如果选择了锁定机器,则序列号只能在指定机器码的电脑上使用。下面是验证序列号的截图:
接下来,我们将简单了解一下核心的SKGL源代码及其使用情况。
2.核心的SKGL源码分析
对SKGL源码的分析显示,其实际代码量很少,总共只有行。因此,我对这个源代码进行了简单的翻译,特别是主要核心方法的功能,以便于理解。稍后我们将提供制作好的CHM帮助文档,供您参考。SKGL中总共有5个类,其中比较核心的只有3个类,另外2个是抽象基类以及内部核心方法。因此,我们主要关注这3个核心类:
2.1 SerialKeyConfiguration类
SerialKeyConfiguration是序列号配置类,继承自BaseConfiguration抽象配置基类。其主要作用是存储机器码,以及生成序列号所需的一些特征字段。目前配置中默认有8个特征配置项,通过选择不同的配置特征项,可以更灵活地生成序列号加密方案。SerialKeyConfiguration作为核心类,在序列号的生成和验证中都有应用。
2.2 Generate类
Generate类也是继承自BaseConfiguration的类,其作用是根据配置类生成所需的序列号。其中包含了密钥的设置,以及生成序列号的核心函数doKey。其中的逻辑并不复杂,主要是根据需要生成的类型,如时间限制、是否包含机器码等,然后调用内部方法生成序列号。
2.3 Validate类
Validate类也是继承自BaseConfiguration类。由于验证是一个解密的逆向过程,也需要用到配置相关的项。类的主要作用是验证序列号是否合法、是否过期等功能,需要调用核心的内部类进行解密。总体来说,思路非常简单,关于具体的实现过程,这里就不再详细说明了,您可以查看源代码进行深入了解。
3.SKGL核心功能调用
这个组件包括一个核心类和一个非常成熟、可直接使用的UI界面。UI界面的代码是用VB.NET编写的,非常简单。在这里,我将演示几种使用方法,以调用核心的SKGL组件来完成序列号的生成和解密功能。在使用之前,您不需要进行添加引用、新建项目等操作。下面直接进入主题。
1.创建Key
创建Key使用Generate类,主要有3个重载方法。以下是一个简单的示例,您可以通过代码注释来理解其工作原理。
结果如下,第2个key使用了本机的机器码,我们将在下面的代码中进行验证:
2.验证Key
验证Key是一个逆向过程,使用Validate类。我们使用上面代码生成的key和配置来进行验证。以下是代码示例,具体请查看注释:
结果如下:
如上图所示,可以验证密钥是否被修改,是否过期,以及对应的机器码是否与本机相同。在实际使用中,如果要锁定机器,必须先获得机器码,然后生成对应的key。
3.高级应用之特征值
在源代码及之前的解说中,我们提到了SKGL中有一个特征码属性:Features,它是一个长度为8的布尔数组。这个属性有什么作用呢?简单来说,通过设置这个属性,您可以定义密钥在不同环境或版本中的使用。例如,应用程序发布后,可能会有试用版、个人版、专业版等不同版本。在实际使用时,可以取出其中的位来设置是否为某个版本或某个功能类型。SKGL在实际的验证中,也会对这些特征进行验证,从而根据序列号的类型来使用对应的功能。下面,我们将使用一个简单的例子来演示如何使用这个特征码属性。这个属性需要在生成或验证的配置对象中进行设置:
3.1 配置生成对应版本的Key
比如8个特征码,选择其中1个设置是否为时间限制的试用版。以下是代码和注释:
这里设置的位置的意义,您在自己的程序中可以自行理解。
3.2 解密获取Key的特征功能
下面是对应的一个解密后验证功能的代码示例:
总的来说,这个组件基本功能都满足了,非常值得一用。至于思路,您可以将其应用于网站验证或生成注册码。自己编写一个确实比较费劲,但在一般的软件中,这个组件已经足够使用了。
5.资源
源码并不复杂,在学习过程中,我顺便将其翻译了。因此,我将提供我翻译后的源代码以及Demo,以及制作的帮助文档。以下是链接:
翻译后的源码与Demo,托管在Github,网址如下:github.com/asxinyu/SKGL
在什么地方可以找到免费的VB设计的源代码
在寻找免费的VB设计源代码时,您可以在互联网上轻松找到所需资源。通常,人们使用VB(Visual Basic)结合ACCESS来实现各种功能。只需在搜索引擎中输入关键词,您便能找到相应的代码。例如,输入"VB 进销存 源码",然后在Google或百度上进行搜索,您将获得一系列相关结果。
在进行搜索时,请确保使用准确的关键词。例如,如果您寻找的是特定类型的VB源代码,例如“VB 进销存 源码”,这些关键词将帮助您找到与您的需求紧密相关的代码。在搜索引擎的搜索结果页面上,您可能会看到多个网站、论坛或代码分享平台提供的免费源代码。
浏览这些结果时,请确保评估每个源代码的质量和适用性。查看代码的文档说明、用户评价以及代码的更新频率,这些都是判断其是否符合您需求的重要指标。一些知名的代码分享平台如GitHub、CodeProject或Stack Overflow等,通常提供高质量且经过验证的代码资源。
此外,您还可以加入相关的编程社区或论坛,在那里您将与许多其他开发者交流。这些社区经常有专门的讨论版块或标签,例如“VB源代码分享”或“免费资源”,您可以在这些版块中提问并找到所需的源代码。
通过上述方法,您应该能够找到适合您需求的免费VB设计源代码。请记得在下载和使用代码之前,确保您了解其许可协议,并遵循所有相关的法律和道德规范。
最流行的 .NET 反编译工具合集
编译和反编译是.NET开发中重要的技术手段。编译将C#源代码转换为计算机可理解的中间语言代码(IL代码),反编译则是将可执行文件的IL代码还原为源代码,便于对软件进行分析、理解和修改。
市面上有许多流行的.NET反编译工具,它们各有特色,下面介绍几款:
Ildasm.exe是免费的反编译工具,通常随Visual Studio开发工具一同安装。它位于以下目录:C:\Program Files (x)\Microsoft SDKs\Windows\v7.0A\bin。
ILSpy是开源免费的反编译工具,GitHub上有k的star。ILSpy支持反编译整个C#项目,并且可以集成到Visual Studio开发工具中。此外,它也上架了微软应用商店。
DnSpy也是一个开源免费的.NET反编译工具,支持C#、VB、F#等多种语言。它适用于.NET Core和.NET Framework,拥有现代化的UI界面,包括蓝色、浅色和深色主题。GitHub地址为:github.com/dnSpy/dnSpy。
dotPeek由JetBrains公司开发,免费且功能丰富。它能将任何.NET程序集反编译为等效的C#代码,并支持与Visual Studio相同的颜色主题。此外,dotPeek还能可视化查看程序集之间的依赖关系。
选择反编译工具时,可以根据个人喜好、项目需求以及功能需求来决定。您是否已经找到了合适的反编译工具?欢迎在评论区分享您的选择与经验。
pythononlinecompiler
Pythonè¯è¨ç¨åºè®¾è®¡ä¹ç¨åºè®¾è®¡åºæ¬æ¹æ³
计ç®æºçæ¦å¿µï¼è®¡ç®æºæ¯æ ¹æ®æ令æä½æ°æ®ç设å¤ã
计ç®æºå ·æåè½æ§åå¯ç¼ç¨æ§ã
åè½æ§ï¼æ对æ°æ®çæä½ï¼è¡¨ç°ä¸ºæ°æ®è®¡ç®ãè¾å ¥è¾åºå¤çåç»æåå¨çã
å¯å¤§äº®æèªç¼ç¨æ§ï¼ææ ¹æ®ä¸ç³»åæ令èªå¨å°ãå¯é¢æµå°ãåç¡®å°å®ææä½è çæå¾ã
计ç®æºçåå±åç §æ©å°å®å¾ï¼è¡¨ç°ä¸ºææ°æ¹å¼ã
计ç®æºç¡¬ä»¶æä¾èµçéæçµè·¯è§æ¨¡åç §æ©å°å®å¾åå±ï¼è®¡ç®æºè¿è¡é度å æ¤ä¹æ¥è¿å ä½çº§æ°å¿«éå¢é¿ï¼è®¡ç®æºé«ææ¯æçåç±»è¿ç®åè½ä¸æ丰å¯åå±ã
æ©å°å®å¾MooreâsLawââ计ç®æºåå±åå²ä¸æéè¦çé¢æµæ³å
Intelå ¬å¸åå§äººä¹ä¸æç»Â·æ©å°å¨å¹´æåºåä½é¢ç§¯éæçµè·¯ä¸å¯å®¹çº³æ¶ä½ç®¡çæ°é约æ¯ä¸¤å¹´ç¿»ä¸çªï¼CPU/GPUãå åã硬çãçµå产åä»·æ ¼çé½éµå¾ªæ©å°å®å¾ã计ç®æºæ¯å½ä»ä¸çï¼å¯ä¸é¿è¾¾å¹´ææä¸æç §ææ°åå±çææ¯é¢åï¼è®¡ç®æºæ·±å»æ¹å人类社ä¼ï¼çè³å¯è½æ¹å人类æ¬èº«ï¼å¯é¢è§çæªæ¥å¹´ï¼æ©å°å®å¾è¿å°æç»ææã
ç¨åºè®¾è®¡
ç¨åºè®¾è®¡æ¯è®¡ç®æºå¯ç¼ç¨æ§çä½ç°ã
ç¨åºè®¾è®¡ï¼äº¦ç§°ç¼ç¨ï¼æ¯æ·±åº¦åºç¨è®¡ç®æºç主è¦æ段ï¼ç¨åºè®¾è®¡å·²ç»æ为å½ä»ç¤¾ä¼éæ±éæ大çèä¸æè½ä¹ä¸ï¼å¾å¤å²ä½é½å°è¢«è®¡ç®æºç¨åºæ¥ç®¡ï¼ç¨åºè®¾è®¡å°æ¯çåæè½ã
ç¨åºè®¾è®¡è¯è¨
ç¨åºè®¾è®¡è¯è¨æ¯ä¸ç§ç¨äºäº¤äº(交æµ)ç人é è¯è¨ã
ç¨åºè®¾è®¡è¯è¨ï¼äº¦ç§°ç¼ç¨è¯è¨ï¼æ¯ç¨åºè®¾è®¡çå ·ä½å®ç°æ¹å¼ï¼ç¼ç¨è¯è¨ç¸æ¯èªç¶è¯è¨æ´ç®åãæ´ä¸¥è°¨ãæ´ç²¾ç¡®ï¼ç¼ç¨è¯è¨ç¸æ¯èªç¶è¯è¨æ´ç®åãæ´ä¸¥è°¨ãæ´ç²¾ç¡®ã
ç¼ç¨è¯è¨ç§ç±»å¾å¤ï¼ä½çå½å强å²çå´ä¸å¤ãç¼ç¨è¯è¨æè¶ è¿ç§ï¼ç»å¤§é¨åé½ä¸å被使ç¨ãCè¯è¨è¯çäºå¹´ï¼å®æ¯ç¬¬ä¸ä¸ªè¢«å¹¿æ³ä½¿ç¨çç¼ç¨è¯è¨ï¼Pythonè¯è¨è¯çäºå¹´ï¼å®æ¯ææµè¡æ好ç¨çç¼ç¨è¯è¨ã
ç¼ç¨è¯è¨çæ§è¡æ¹å¼
计ç®æºæ§è¡æºç¨åºç两ç§æ¹å¼ï¼ç¼è¯å解éã
æºä»£ç ï¼éç¨æç§ç¼ç¨è¯è¨ç¼åç计ç®æºç¨åºï¼äººç±»å¯è¯»ã
ä¾å¦ï¼result=2+3
ç®æ 代ç ï¼è®¡ç®æºå¯ç´æ¥æ§è¡ï¼äººç±»ä¸å¯è¯»(ä¸å®¶é¤å¤)ã
ä¾å¦ï¼
ç¼è¯
å°æºä»£ç ä¸æ¬¡æ§è½¬æ¢æç®æ 代ç çè¿ç¨ã
æ§è¡ç¼è¯è¿ç¨çç¨åºå«ä½ç¼è¯å¨ï¼compilerï¼ã
解é
å°æºä»£ç éæ¡è½¬æ¢æç®æ 代ç åæ¶éæ¡è¿è¡çè¿ç¨
æ§è¡è§£éè¿ç¨çç¨åºå«å解éå¨ï¼interpreterï¼ã
ç¼è¯å解é
ç¼è¯ï¼ä¸æ¬¡æ§ç¿»è¯ï¼ä¹åä¸åéè¦æºä»£ç ï¼ç±»æ»æ¼å®½ä¼¼è±æç¿»è¯ï¼ã
解éï¼æ¯æ¬¡ç¨åºè¿è¡æ¶éç¿»è¯éæ§è¡ï¼ç±»ä¼¼å®æ¶çåå£°ä¼ è¯ï¼ã
éæè¯è¨åèæ¬è¯è¨
æ ¹æ®æ§è¡æ¹å¼ä¸åï¼ç¼ç¨è¯è¨å为两类ã
éæè¯è¨ï¼ä½¿ç¨ç¼è¯æ§è¡çç¼ç¨è¯è¨ï¼å¦C/C++è¯è¨ãJavaè¯è¨ã
èæ¬è¯è¨ï¼ä½¿ç¨è§£éæ§è¡çç¼ç¨è¯è¨ï¼å¦Pythonè¯è¨ãJavaScriptè¯è¨ãPHPè¯è¨ã
æ§è¡æ¹å¼ä¸åï¼ä¼å¿ä¹åæä¸åã
éæè¯è¨ï¼ç¼è¯å¨ä¸æ¬¡æ§çæç®æ 代ç ï¼ä¼åæ´å åï¼ç¨åºè¿è¡é度æ´å¿«ã
èæ¬è¯è¨ï¼æ§è¡ç¨åºæ¶éè¦æºä»£ç ï¼ç»´æ¤æ´çµæ´»ï¼æºä»£ç å¨ç»´æ¤çµæ´»ãè·¨å¤ä¸ªæä½ç³»ç»å¹³å°ã
IPO
ç¨åºçåºæ¬ç¼åæ¹æ³ã
Iï¼Inputè¾å ¥ï¼ç¨åºçè¾å ¥ã
Pï¼Processå¤çï¼æ¯ç¨åºç主è¦é»è¾ã
Oï¼Outputè¾åºï¼ç¨åºçè¾åºã
ç解IPO
è¾å ¥ï¼ç¨åºçè¾å ¥æ件è¾å ¥ãç½ç»è¾å ¥ãæ§å¶å°è¾å ¥ã交äºçé¢è¾å ¥ãå é¨åæ°è¾å ¥çï¼è¾å ¥æ¯ä¸ä¸ªç¨åºçå¼å§ã
è¾åºï¼ç¨åºçè¾åºï¼æ§å¶å°è¾åºãå¾å½¢è¾åºãæ件è¾åºãç½ç»è¾åºãæä½ç³»ç»å é¨åéè¾åºçï¼è¾åºæ¯ç¨åºå±ç¤ºè¿ç®ç»æçæ¹å¼ã
å¤çï¼å¤çæ¯ç¨åºå¯¹è¾å ¥æ°æ®è¿è¡è®¡ç®äº§çè¾åºç»æçè¿ç¨ï¼å¤çæ¹æ³ç»ç§°ä¸ºç®æ³ï¼å®æ¯ç¨åºæéè¦çé¨åï¼ç®æ³æ¯ä¸ä¸ªç¨åºççµéã
é®é¢ç计ç®é¨å
ä¸ä¸ªå¾ 解å³çé®é¢ä¸ï¼å¯ä»¥ç¨ç¨åºè¾ å©å®æçé¨åã
计ç®æºåªè½è§£å³è®¡ç®é®é¢ï¼å³é®é¢ç计ç®é¨åï¼ä¸ä¸ªé®é¢å¯è½æå¤ç§è§åº¦ç解ï¼äº§çä¸åç计ç®é¨åï¼é®é¢ç计ç®é¨åä¸è¬é½æè¾å ¥ãå¤çåè¾åºè¿ç¨ã
ç¼ç¨è§£å³é®é¢çæ¥éª¤
6个æ¥éª¤(1-6)
åæé®é¢ï¼åæé®é¢ç计ç®é¨åï¼æ³æ¸ æ¥ã
ååè¾¹çï¼ååé®é¢çåè½è¾¹çï¼è§åIPOã
ç¼åç¨åºï¼ç¼åé®é¢ç计ç®æºç¨åºï¼ç¼ç¨åºã
è°è¯æµè¯ï¼è°è¯ç¨åºæ¯æ£ç¡®è¿è¡çï¼è¿è¡è°è¯ã
å级维æ¤ï¼éåºé®é¢çå级维æ¤ï¼æ´æ°å®åã
æ±è§£è®¡ç®é®é¢çç²¾ç®æ¥éª¤
3个精ç®æ¥éª¤
ç¡®å®IPOï¼æ确计ç®é¨åååè½è¾¹çã
ç¼åç¨åºï¼å°è®¡ç®æ±è§£ç设计åæç°å®ã
è°è¯ç¨åºï¼ç¡®ä¿ç¨åºæç §æ£ç¡®é»è¾è½å¤æ£ç¡®è¿è¡ã
ç¼ç¨è½å¤è®ç»æç»´
ç¼ç¨ä½ç°äºä¸ç§æ½è±¡äº¤äºå ³ç³»ãèªå¨åæ§è¡çæ维模å¼ã计ç®æç»´ï¼åºå«é»è¾æç»´åå®è¯æç»´ç第ä¸ç§æ维模å¼ãè½å¤ä¿è¿äººç±»æèï¼å¢è¿è§å¯ååæ·±å对交äºå ³ç³»çç解ã
ç¼ç¨è½å¤å¢è¿è®¤è¯
ç¼ç¨ä¸å纯æ¯æ±è§£è®¡ç®é®é¢ãä¸ä» è¦æè解å³æ¹æ³ï¼è¿è¦æèç¨æ·ä½éªãæ§è¡æççæ¹é¢ãè½å¤å¸®å©ç¨åºåå 深对ç¨æ·è¡ä¸ºä»¥å社ä¼åæåç认è¯ã
ç¼ç¨è½å¤å¸¦æ¥ä¹è¶£
ç¼ç¨è½å¤æä¾å±ç¤ºèªèº«ææ³åè½åçèå°ã让ä¸çå¢å æ°çé¢è²ã让èªå·±åå¾æ´é ·ãæåå¿ç满足æãå¨ä¿¡æ¯ç©ºé´éæèåæ°ãå°åæ°å为ç°å®ã
ç¼ç¨è½å¤æé«æç
è½å¤æ´å¥½å°å©ç¨è®¡ç®æºè§£å³é®é¢ãæ¾èæé«å·¥ä½ãçæ´»åå¦ä¹ æçã为个人çæ³å®ç°æä¾ä¸ç§åå©è®¡ç®æºçé«ææ段ã
ç¼ç¨å¸¦æ¥å°±ä¸æºä¼
ç¨åºåæ¯ä¿¡æ¯æ¶ä»£æéè¦çå·¥ä½å²ä½ä¹ä¸ãå½å å¤å¯¹ç¨åºåå²ä½ç缺å£é½å¨ç¾ä¸ä»¥ä¸è§æ¨¡ã计ç®æºå·²ç»æ¸éäºå个è¡ä¸ï¼å°±ä¸åæ¯é常广éã
å¦ä¹ ç¼ç¨ç误åº
Qï¼ç¼ç¨å¾é¾å¦åï¼Aï¼ææ¡æ¹æ³å°±å¾å®¹æï¼
é¦å ï¼ææ¡ç¼ç¨è¯è¨çè¯æ³ï¼çæåºæ¬æ¦å¿µåé»è¾ãå ¶æ¬¡ï¼ç»å计ç®é®é¢æèç¨åºç»æï¼ä¼ä½¿ç¨ç¼ç¨å¥è·¯ãæåï¼åç §æ¡ä¾å¤ç»ä¹ å¤å®è·µï¼å¦ä¼ä¸¾ä¸åä¸æ¬¡ã
pythononlineæä¹è¿è¡
ä½ å好代ç åï¼å¨ä»£ç æ¡ç顶端æä¸ä¸ªExecute,ç¹ä¸ä¸ï¼åºç«¯å°±æ¾ç¤ºä»£ç å¨è¿è¡ä¸äº
帮å¿ççè¿ä¸ªpythonç¨åºåªé没对ï¼ï¼è°¢è°¢ï¼#å 为?ä½ ç¨äºç¶å¢ä¸¤ä¸ªå¾ªç¯ï¼åå¦ä¸ä¸ªæ°è½è¢«3å5æ´é¤ï¼é£ä¹è¿ä¸ªæ°è®¡ç®ä¸¤æ¬¡ï¼æ¯å¦
#-*-?coding:utf-8?-*-
def?getsum(num):
total?=?0
for?i?in?range(1,?num):
if?i?%?3?==?0?or?i?%?5?==?0:
è¿è¾©ç¼?total?+=?ireturn?total
if?__name__?==?'__main__':
num?=?int(raw_input())
ç 模print?getsum(num)å¦ä¹ Python建议ç¨ä»ä¹ç¼è¯å¨?LLVMå端败å·åçnumbaåæ¯æ大é¨åC++ç¼è¯å¨ä½ä¸ºå端çnuitkaã
Pythonç±è·å °æ°å¦å计ç®æºç§å¦ç 究å¦ä¼çGuidovanRossumäºå¹´ä»£å设计ï¼ä½ä¸ºä¸é¨å«åABCè¯è¨çæ¿ä»£åã
Pythonæä¾äºé«æçé«çº§æ°æ®ç»æï¼è¿è½ç®åææå°é¢å对象ç¼ç¨ãPythonè¯æ³åå¨æç±»åï¼ä»¥å解éåè¯è¨çæ¬è´¨ï¼ä½¿å®æ为å¤æ°å¹³å°ä¸åèæ¬åå¿«éå¼ååºç¨çç¼ç¨è¯è¨ï¼éççæ¬çä¸ææ´æ°åè¯è¨æ°åè½çæ·»å ï¼éæ¸è¢«ç¨äºç¬ç«çã大å项ç®çå¼åã
Python解éå¨æäºæ©å±ï¼å¯ä»¥ä½¿ç¨CæC++ï¼æè å ¶ä»å¯ä»¥éè¿Cè°ç¨çè¯è¨ï¼æ©å±è¿¹ä¸æ°çåè½åæ°æ®ç±»å¯çº¯åãPythonä¹å¯ç¨äºå¯å®å¶å软件ä¸çæ©å±ç¨åºè¯è¨ãPython丰å¯çæ ååºï¼æä¾äºéç¨äºå个主è¦ç³»ç»å¹³å°çæºç ææºå¨ç ã
Pythonæ¯ä¸é¨è·¨å¹³å°çèæ¬è¯è¨ï¼Pythonè§å®äºä¸ä¸ªPythonè¯æ³è§åï¼å®ç°äºPythonè¯æ³ç解éç¨åºå°±æ为äºPythonç解éå¨ã
ç®å讲ï¼ç¼è¯å¨å°±æ¯å°âä¸ç§è¯è¨ï¼é常为é«çº§è¯è¨ï¼âç¿»è¯ä¸ºâå¦ä¸ç§è¯è¨ï¼é常为ä½çº§è¯è¨ï¼âçç¨åºã
ä¸ä¸ªç°ä»£ç¼è¯å¨ç主è¦å·¥ä½æµç¨ï¼æºä»£ç (sourcecode)â?é¢å¤çå¨?(preprocessor)âç¼è¯å¨(compiler)â?ç®æ 代ç ?(objectcode)â?é¾æ¥å¨?(Linker)âå¯æ§è¡ç¨åº?(executables)ã
é«çº§è®¡ç®æºè¯è¨ä¾¿äºäººç¼åï¼é 读交æµï¼ç»´æ¤ãæºå¨è¯è¨æ¯è®¡ç®æºè½ç´æ¥è§£è¯»ãè¿è¡çãç¼è¯å¨å°æ±ç¼æé«çº§è®¡ç®æºè¯è¨æºç¨åºï¼Sourceprogramï¼ä½ä¸ºè¾å ¥ï¼ç¿»è¯æç®æ è¯è¨ï¼Targetlanguageï¼æºå¨ä»£ç ççä»·ç¨åºã
æºä»£ç ä¸è¬ä¸ºé«çº§è¯è¨(High-levellanguage)ï¼å¦PascalãCãC++ãJavaãæ±è¯ç¼ç¨çææ±ç¼è¯è¨ï¼èç®æ åæ¯æºå¨è¯è¨çç®æ 代ç ï¼Objectcodeï¼ï¼ææ¶ä¹ç§°ä½æºå¨ä»£ç ï¼Machinecodeï¼ã
对äºC#ãVBçé«çº§è¯è¨èè¨ï¼æ¤æ¶ç¼è¯å¨å®æçåè½æ¯ææºç ï¼SourceCodeï¼ç¼è¯æéç¨ä¸é´è¯è¨ï¼MSIL/CILï¼çåèç ï¼ByteCodeï¼ãæåè¿è¡çæ¶åéè¿éç¨è¯è¨è¿è¡åºç转æ¢ï¼ç¼ç¨æç»å¯ä»¥è¢«CPUç´æ¥è®¡ç®çæºå¨ç ï¼NativeCodeï¼ã
ipadè½å¤ç¼ç¨åï¼iPadä¸æ¯è½å¤è¿è¡ç¼ç¨çï¼å 为å¨å¹´6ææ¥ï¼è¹æå¬å¼WWDCå¼åè 大ä¼ä¸ï¼å´ç»å¼åè 主é¢æ¨åºäºä¸æ¬¾iPadå¹³å°çåºç¨å¼åå·¥å ·SwiftPlaygroundsï¼ç°å¨å¼åè å¯ä»¥ç´æ¥å¨iPadè¿çæå è¡ç¼ç¨äºã
Swift?Playgroundsè¿æ¬¾appæ¯ä¸æ¬¾éç¨äºç¼ç¨åå¦è çiPadappï¼å®è®©ç¨æ·å¯ä»¥ä¸è¾¹å代ç ï¼ä¸è¾¹çå°ä»£ç é å°±çææãå¨å·¦ä¾§è¾å ¥ä»£ç ï¼å¨å³ä¾§ç«å³å°±è½åç°ææã
åæ¶ï¼Swiftæ¯ä¸ç§æ°çç¼ç¨è¯è¨ï¼å¯ç¨äºç¼åiOSåmacOSåºç¨ï¼å®ç»åäºCåObjective-Cçä¼ç¹å¹¶ä¸ä¸åCå ¼å®¹æ§çéå¶ã
æ©å±èµæï¼
Swiftä½ä¸ºä¸ç§å¿«éèé«æçè¯è¨ï¼æçå®èªå·±çç¬ç¹ä¼å¿ï¼Swiftå°ç°ä»£ç¼ç¨è¯è¨çç²¾ååè¹æå·¥ç¨å¸æåçæºæ §ç»åäºèµ·æ¥ãç¼è¯å¨å¯¹æ§è½è¿è¡äºä¼åï¼ç¼ç¨è¯è¨å¯¹å¼åè¿è¡äºä¼åï¼ä¸¤è äºä¸å¹²æ°ãSwiftæ¢å¯ä»¥ç¨äºå¼åâhello,worldâè¿æ ·çå°ç¨åºï¼ä¹å¯ä»¥ç¨äºå¼åä¸å¥å®æ´çæä½ç³»ç»ã
æ©å¨å¹´æ4æ¥ï¼è¹æå ¬å¸å°±å·²ç»å®£å¸å ¶Swiftç¼å¯å«ç¨è¯è¨ç°å¨å¼æ¾æºä»£ç ï¼é¿è¾¾å¤é¡µçTheSwiftProgrammingLanguageå¯ä»¥å¨çº¿å è´¹ä¸è½½ï¼åæ¶ä¹å¯ä»¥å¨è¹æå®æ¹Githubä¸è½½ã磨é
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-SWIFTï¼è®¡ç®æºç¼ç¨è¯è¨ï¼
æä¹è§£å³.dll没æ被æå®å¨windowsä¸è¿è¡.dll没æ被æå®å¨windowsä¸è¿è¡çåå æ¯ç³»ç»é误导è´çï¼èè£¤è ¢å ·ä½è§£å³æ¹æ³æ¥éª¤å¦ä¸ï¼
1ãé¦å æå¼è®¡ç®æºï¼å¨è®¡ç®æºå åå»å¼å§ï¼å¨å¼¹åºçé项æ å æ¾å°âè¿è¡âé项并ç¹å»ã
2ãç¶åå¨å¼¹åºççé¢å è¾å ¥CMD并æ²å»é®çä¸çå车é®ã
3ãç¶åå¨å¼¹åºççé¢å æ¾å°âç²è´´âé项è¾å ¥ä»¥ä¸ä»£ç for%1in(%windir%\system\*.dll)doregsvr.exe/s%1ã
4ãç¶ååå¨çé¢å è¾å ¥ä»¥ä¸ä»£ç ï¼for%1in(%windir%\system\*.dll)doregsvr.exe/s%1ã
5ãç¶åæ²å»é®çä¸çå车é®ï¼çé¢ä¼æç»æ»å¨ï¼çå°çé¢åæ¢æ»å¨æ¶éåºæ¤çé¢å³å¯è§£å³.dll没æ被æå®å¨windowsä¸è¿è¡ç纯è¡é®æ¨±éªé¢äºã