接上篇:你的C#代码是怎么跑起来的(一) 通过上篇文章知道了EXE文件的结构,现在来看看双击后是怎样运行的: 双击文件后OS Loader加载PE文件并解析,在PE Optional Header里找到基地址和RVA,通过这两个确定了程序的入口地址,这个地址指向MsCorEE.dll的_CorExeMain(),执行它._CorExeMain()开始执行,选择加载合适版本的CLR,CLR开始运行,CLR运行时会分配一个连续的地址空间用作托管堆,并用一个指针NextObjPtr指到开始位置,下次分…
1. 源代码编译为托管模块 程序在.NET框架下运行,首先要将源代码编译为托管模块.CLR是一个可以被多种语言所使用的运行时,它的很多特性可以用于所有面向它的开发语言.微软开发了多种语言的编译器,编译时会使用相应的编译器进行语法检查器和代码分析器,在编译完成后都生成一个托管模块. 托管模块? 托管模块是一个需要CLR环境才能执行的标准windows PE文件,包含IL和元数据以及PE表头和CLR表头. IL又叫托管代码,是编译器编译源文件后产生的指令,CLR会在运行时将IL编译成本地CPU指令.…
写了那么多C#代码,大家有没有想过自己写的代码编译后的可执行文件内部是什么样子,是怎样在系统上运行的? 编译成exe,然后双击exe文件运行,这中间到底发生了些什么呢,这篇先来剖析下exe内部的样子: 我们知道C#代码编译后的结果是IL(Intermediate Language),那生成的exe文件里面都是IL吗,当然不会. C#生成的exe既然是window下可执行文件,那也就是标准的PE文件,和普通win32的exe文件格式一样.我们来看下exe文件的格式: dll文件本质上和exe一样,…
如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页(比如各种 OJ)中运行.当然,这些执行方式都离不开 JRE(Java 运行时环境). JRE 包含运行 Java 程序的必需组件,包括 JVM(Java 虚拟机)以及 Java 核心类库等.Java 程序员经常接触到的 JDK(Java 开发工具包)同样包含了 JRE,并且还附带了一系列…
在使用 PyODPS DataFrame 编写数据应用时,尽管编写的是同一个脚本文件,但其中的代码会在不同位置执行,这可能导致一些无法预期的问题,本文介绍当出现相关问题时,如何确定代码在何处执行,以及提供部分场景下解决问题的方法. 概述 假定我们要执行下面的代码: from odps import ODPS, options import numpy as np o = ODPS(access_id, access_key, project, endpoint) df = o.get_table…
两种解决办法: 首先:修改VSCode默认配置文件,点击左下角设置标志图 -> 设置,出来了设置相关的东西,搜索 files.autoSave 第一种:把"files.autoSave":"off"   修改成 "files.autoSave":"onFocusChange",意思是当编辑器失去焦点的时候就会自动更新文件内容到磁盘. 第二种:修改 files.autoSave 为 afterDelay,且设置files.…
http://www.toobug.net/article/how_to_design_front_end_template_engine.html http://barretlee.com/websocket-with-node/ 只有20行Javascript代码!手把手教你写一个页面模板引擎 2014/01/22 | 分类: WEB开发 | 2 条评论 | 标签: JAVASCRIPT, WEB开发, 工具, 模板引擎 分享到:27 本文由 伯乐在线 - njuyz 翻译自 Tech.pr…
配置YouCompleteMe 1. 安装vundle vundle是一个管理vim插件的工具,使用vundle安装YouCompleteMe比较方便. 按照作者在https://github.com/gmarik/Vundle.vim#about提供的方法安装好vundle.(主要是下载解压,病略微修改 .vimrc) 2. 使用vundle安装YouCompleteMe 主要根据作者自己的建议整理 https://github.com/Valloric/YouCompleteMe 在.vim…
老规矩,先上图看效果. 说明 TextView的跑马灯效果也就是指当你只想让TextView单行显示,可是文本内容却又超过一行时,自动从左往右慢慢滑动显示的效果就叫跑马灯效果. 其实,TextView实现跑马灯效果很简单,因为官方已经实现了,你只需要通过设置几个属性即可.而且,相关的资料其实网上也有一大堆了,之所以还写这篇博客出来是因为,网上好多人的博客都是只贴代码的啊,好一点的就是附带几张图片,可是这是动画效果啊,不动起来,谁知道跑马灯效果到底长什么样,到底是不是自己想要的效果啊(不会只有题主…
最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录... 然后,我曹....一堆请求就开始了....搞了半天,还要去分析登录的加密方法....太麻烦了... 然而我们写代码的懂不起那些... 于是就果断掏出的大杀器Selenium+PhantomJS 说了这么多要不要直接上代码啊??? 好吧,直接上代码 PhantomJSDriverService services = PhantomJSDrive…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <button id="btn">按钮</button> </div> <script&g…
背景知识 最近再看一些量化交易相关的材料,偶然在网上看到了一个关于用RNN实现股票预测的文章,出于好奇心把文章中介绍的代码在本地跑了一遍,发现可以work.于是就花了两个晚上的时间学习了下代码,顺便把核心的内容翻译成中文分享给大家. 首先讲讲对于股票预测的理解,股票是一种可以轻易用数字表现律动的交易形式.因为大数定理的存在,定义了世间所有的行为都可以通过数字表示,并且存在一定的客观规律.股票也不例外,量化交易要做的就是通过数学模型发现股票的走势趋势.“趋势”要这样理解:对于股票的预测,不是说我知…
原文看这里:https://github.com/kuitos/kui...全部文章看这里 https://github.com/kuitos/kui... 国际惯例先说下故事背景 通常情况下,如果我们是一个对代码质量有要求或者存在code review这一流程的团队,我们必然会有一套团队内部达成共识的code style从而提高项目的可维护性及代码的可读性.而确保提交到代码仓库的代码是符合规范的手段通常是,代码提交前由工具帮忙指出,如早期的jslint.jshint以及现在的eslint.提交…
roid roid 是一个极其简单的打包软件,使用 node.js 开发而成,看完本文,你可以实现一个非常简单的,但是又有实际用途的前端代码打包工具. 如果不想看教程,直接看代码的(全部注释):点击地址 为什么要写 roid ? 我们每天都面对前端的这几款编译工具,但是在大量交谈中我得知,并不是很多人知道这些打包软件背后的工作原理,因此有了这个 project 出现.诚然,你并不需要了解太多编译原理之类的事情,如果你在此之前对 node.js 极为熟悉,那么你对前端打包工具一定能非常好的理解.…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <button id="btn">按钮</button> </div> <script&g…
代码层次 Python是一门脚本语言,新建一个.py文件,写点代码,就可以跑起来了,无论放哪都可以.比如where.py文件: print("Where am I?") 那么问题来了,这是写在哪里的呢?为了一目了然,我们用"导游图"的视角来看看代码层次: 红色箭头指出了,是写在模块中的,原来一个.py文件就是一个模块.模块中可以写函数和类,模块可以放在包中. 函数 Python中最出名的函数一定是print()了,毕竟全世界都在用它say Hello World.P…
先说解决方案,如果通过windows的右键删除,再次Commit还是会下拉下来,所以需要通过小乌龟的删除来删除这个文件,在删除的那个文件夹里再次提交即可. 图片 1. 选中要删除的文件 2. 右键通过小乌龟进行删除 3. 最后在当前文件夹下进行提交 起因 前几天在用SVN做一个通过经纬度展示学校和学生位置的一个小项目的时候,上传了多个图片,最后只需要其中的一张,在本机的客户端通过小乌龟删掉后,发现通过网页访问服务器上看还是有,因为我本身SVN只会Update和Commit,所以第一时间是百度,但…
一.WebService到底是什么 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行. 所谓远程调用,就是一台计算机a上 的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银 行服务器上.再比如,…
上一篇,我们是正式将ABP生成的代码项目,跑起来了,然后演示了下多租户的不同.那么这篇我们就来实现下SwaggerUI. Q:SwaggerUI是干什么的呢? A:他是一个能将我们的webapi,通过Swagger Api来生成一个交互式的文档.通过他可以对你的接口进行调式. 1.引入Swashbuckle.core 选择PhoneBook.WebApi,然后添加nuget包(当然你也可以通过命令行添加). 输入"Swashbuckle.core" 引入到我们的项目中. 打开 项目中的…
Android Weekly Issue #222 September 11th, 2016 Android Weekly Issue #222 ARTICLES & TUTORIALS Forcing bytes download in Okio 这是Jake Wharton的文章, 关于Okio的BufferedSink. okio 是一个java io库, 包装了一套API用来读写和处理数据. 文档见: okio doc. 很多库都是在其之上写的, 比如okhttp, Retrofit,…
过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响应内容,只响应特定内容给那些有特定权限的用户,过滤器理论上有以下功能: 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action(做权限管理系统的好东西) 先来看一个简单的例子:新建一个AuthFiltersController,里面有两个Action public ActionResult Index() { return View(…
Chrome浏览器得益于其优秀的V8解释器,javascript执行速度和内存占有率表现非常优秀. 掌握了Chrome工具可提高学习效率和开发效率. 有如下功能面板,可以使用Ctrl+[和Ctrl+]快捷键在面板之间切换. 简单常用的就一笔带过 一.标签页 查看DOM tree内容 根据标签页的html内容找到对应元素 根据页面元素找到标签页的html 改变DOM内容 查看js动态生成的DOM 在标签页右侧查看style 查找 标签注册事件查看.[待扩展] 按钮绑定哪些功能,鼠标点击时执行了那个…
先看一道Java面试题: public class Baset { private String baseName = "base"; // 构造方法 public Baset() { callName(); } // 成员方法 public void callName() { // TODO Auto-generated method stub System.out.println("basename:" + baseName); } //静态内部类 static…
#include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.com/wangyurzee7/"); puts("谢谢您的配合"); puts("by wangyurzee7"); return 0; } Day-1去thusc前一天.<del>退役狗</del>LK也去了林荫机房,明天就可以和成七老司机面…
负载均衡 集群的配置已经搭建好了,代码也成功跑通,成功做到了高可用,但是我们的程序连接节点并不会管哪个服务器在忙.哪个服务器空闲,完全看心情想连谁就连谁.而且代码中要把每个ip的节点都手动的写出来 ,既然是手动的就很有可能发现写错这种情况,同样WEB UI 通常也不知道打开哪个好,因为每个服务器都有一个 WEB UI,可能有人说,既然哪个都行,你随便打开一个就是了.但是如果不巧这个服务器后面崩了呢. 基于以前问题,我们就需要一个强大的负载均衡服务器来帮助我们完成这些事情. 这里选择使用 hapr…
遇到这篇文章<Javascript异步调用时,回调函数内用到了函数外的变量>,是缘于我在<难道这就是JavaScript中的"闭包">文章中遇到的问题时,Baidu搜到的,当时给我感觉,我要找的问题答案似乎和他很像,就花了点时间阅读了下,从中得到了启发,然后也好歹把问题解决掉了.但是篇帖子里面,提问者留下的代码,确实留下不少"问题"和"收获". 说实话,我当时没有真正理解他的意图,以及他在代码里注释留下的那个问题的含义,…
目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印的艺术 NSLog 开启僵尸对象(Enable NSZombie Objects)进击的码农 Console(lldb 命令) Profile(instruments) Xcode视图调试结语 前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就…
最近除了做业务,也在尝试学习h5和移动端,在这个过程中,学到了很多,利用h5和canvas做了一个爱心鱼的小游戏.点这里去玩一下 PS: 貌似有点闪屏,亲测多刷新两下就好了==.代码在本地跑都不会闪,放到博客里就闪了,我也不知道为什么...回头我再看看是什么问题. 另外,我把代码放到github上了,博友们也可以直接down代码,不需要任务服务,本地就能跑起来.大家要是觉得还行,就给个star吧!源码地址点这里 首先截个图来看看界面效果: 下买我就做游戏的步骤来分享总结一下用到的h5API和一些…
iOS10发布后,简书优先开发增加了iOS10的新通知.本文分享整个feature的开发过程遇到的问题. 1.工程配置 Xcode8发生了很大的变化,直接打开原来的工程编译运行,这个时候是获取不到Push token的,打印didFailToRegisterForRemoteNotificationsWithError中的error可以看到 fail to register with error Error Domain=NSCocoaErrorDomain Code=3000 "no vali…
python3的decode()与encode() Tags: Python Python3 对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰的区分.文本总是Unicode,由str类型进行表示,二进制数据使用bytes进行表示,不会将str与bytes偷偷的混在一起,使得两者的区别更加明显.在python2中会明显发现不能将str与bytes拼接在一起,也不能在bytes中查找字符. 然而在实际应用中经常需要对两者进行转换操作以便后续的…