win32开发(调试)
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】很多同学都喜欢看代码,但是不喜欢调试代码。其实,在我看来,调试代码本身也是一项重要的能力。一份代码,如果没有经过反复调试和验证,很难说自己是不是理解得够深刻。同样对于win32也是这样,win32的api本来就多,如果不经过反复学习、练习、测试,要真正融会贯通地理解是很难的。所以,今天就说一下,win32上面怎么调试。1、合理使用vc自带的调试软件vc工具本身其实自带了调试工具。常用的调试方法,比如设置断点、函数堆栈、变量、线程查看、数据断点、修改内存等等,这些方法都要熟练掌握。win32在调试的时候,app在遇到断点的情况下也会自动hang住的,这时候正常单步调试就可以了,只是原来的界面就没有办法访问了,这个关系都不大。这或许就是一般程序和win32程序最大的区别了。2、使用windbg在我看来,windbg是一款非常棒的软件。它不仅提供了vc调试软件的基本功能,而且还提供了命令交互的方法,这点和gdb比较类似。windbg
Prism for WPF初探(构建简单的模块化开发框架)
PrismforWPF初探(构建简单的模块化开发框架)先简单的介绍一下Prism框架,引用微软官方的解释:Prismprovidesguidancetohelpyoumoreeasilydesignandbuild,flexible,andeasy-to-maintainclientbusinessappsthatrunonWindowsRuntime,WindowsPresentationFoundation(WPF)desktop,Silverlight,orWindowsPhone7.Theseappsmaystartsmallandevolveovertime.官方链接https://msdn.microsoft.com/en-us/library/ff648465.aspx,可下载到文档和示例代码。多的介绍就不必了,研究这套框架的人基本是做WPF或者Silverlight的人,我是新人,理解不深还请大神指教。听说Prism是开源的,做了才一年
Visual Studio的语言服务器协议
语言服务器协议(LSP)是VisualStudioCode的一个重要组件。语言服务器实际上是单独运行的编译器或分析器,它负责处理各种任务,如编译器错误报告、文本悬浮、代码自动完成(也就是IntelliSense),等。语言服务器并不是个新概念,Vim和Emacs早就在用它实现代码自动完成功能。C#的语言服务器叫作OmniSharp,支持VSCode、Sublime、Atom、Emacs、Vim和Brackets。VSCode为TypeScript实现了另一种语言服务器。与OmniSharp不同的是,它是基于HTTP的,“通过标准输入和输出与服务器进程打交道,并使用了JSON消息格式,类似V8调试器协议的请求和响应”。VSCode现在有两种语言服务器,微软认为有必要制定一个通用的标准,现有和未来的新语言共同遵循该标准。于是,语言服务器协议出现了。语言服务器协议采用JSON-RPC作为最基本的消息格式。JSON-RPC是SOAP的替代品,更为轻量级。与SOAP类似,它对传输层没有特殊的要求,因此可以通
.NET Core快速入门教程 1、开篇:说说.NET Core的那些事儿
.NETCore快速入门教程1、开篇:说说.NETCore的那些事儿一、.NETCore的诞生聊.NETCore,就不得不说他的爸爸.NET。当年Java刚刚兴起,如火如荼,微软也非常推崇Java,当时Windows平台的Java虚拟机就是微软按照JVM标准实现的,据说也是当时性能最好的Java虚拟机。但是微软也是有私心的,微软总想搞点Windows平台上的特性,有点想把Java绑定到Windows平台上的味道,另外Sun公司确实有点小心眼,于是Sun公司就跟微软闹掰了,然后微软就推出了.NET,.NET从出生开始其实就借鉴了Java,然后又一步步在语言特性、窗体开发等方面实现了超越。Java在1.6版本以后发展缓慢,后面Java也在语言特性上借鉴了.NET。当然,这也是由于Sun公司不太争气。https://www.zhihu.com/question/22814456.NET虽然一直发展的不错,也有WPF、Unity3D这样具有竞争力框架的出现。但是.NET平台在一些较大的项目,尤其是不受互联网公司的喜爱。就是因为.NET不
Visual Studio Code 1.19 发布,性能改进
VisualStudioCode1.19发布了,正如11月份更新计划中所宣布的那样,本月关注的重点是GitHub问题清理,产品性能和数据收集工具,以便更好地进行问题报告。更新重点:性能-更快的启动和其他性能改进。修复/诊断-新VSCode诊断,日志记录和扩展监控。智能感知-智能感知可以记住以前的建议选择。更好的选项卡布局-选项卡式标题可以缩放以适应可用空间。Git并排图像差异-Git源代码提供者可以控制图像并排显示。管道输出到VS代码-在VS代码编辑器中轻松查看终端输出。新的调试-如何使用nodemon实用程序调试Next.js,Meteor项目和应用程序。进一步的更新:工作台-比较你的活动文件到剪贴板的内容。编辑器-折叠改进,间隔行号,支持macOS全局剪贴板。语言-支持TypeScript2.6.2,JSX语法,带注释模式的新JSON。调试-取消每个会话的env变量,更好的VARIABLES渲染。扩展-选择
程序员如何提高工作效率
很多人问我,你怎么效率那么高,工作很忙,又要带娃,还写博客,还有时间运动。今天就写写这个话题:程序员如何提高工作效率保持高工作效率,我觉得主要有一下4个方面,希望能对大家有帮助。集中目标工作列表不论是开发还是设计,还是其他职业,工作列表都很重要,工作目标很明确。工作的时候才能格外专注,才不会走神。用自己最熟悉的工具(我用Evernote),把待办工作列表(今天要做什么)记录下来,很重要的一点是记录分解后的小目标(分解任务也是一个很重要的能力)。同时也保持工作中产生的新的问题(任务),经常性地调整当前工作任务列表,根据重要性对这些任务进行划分,经常想着那些最重要的问题。专注目标专注目标不是那么容易做到的,需要学会分离与当前无关的任务/问题,工作中经常会碰到的问题可以首先寻找简单可用可靠的方案,并将心中的疑虑记录下来,集中成一个列表,工作之外翻翻书,系统思考和学习,而不会因为这个问题而叉开思路对相关的内容研究一番。总之,专注当前的任务,把新问题记录下来,回头再专心攻克。学会避繁就简,在基本功的增强后,会发现很多问题可以简单阅读或查找文档,
一个程序员的技术进阶之路
进阶之路刚刚入职一家IT公司成为一名初级开发工程师,我们如何在技术这条路线上野蛮生长呢。这条技术进阶之路就是一个金字塔形,越往上人越少。奶爸在IT职场很多年接触了很多技术大咖,他们的成长路线大概都是以下几步:1、规范编程,夯实基础不管你是计算机专业科班出身,还是半路出家,刚开始写代码都是一张白纸,如果一开始不懂的规范写代码,就会养成不好的习惯,以后很难改。按照规范格式编写代码,不用格式化工具,自己写出可读性极好的代码,特别是要养成写注释的好习惯,再好的脑子也不如写上完整得注释。一定要记住这句话,别太相信自己都能记住,就算是你自己写的代码,半年后再去看,如果没有注释也很难看懂。另外这个时候要把最基础的编程算法打牢,如果你用的是JAVA语言,那就要把J2SE核心的类苦弄明白,最常用的算法多多演练。扎扎实实走好第一步,基础打牢了,以后的路更好走。2、实战演练,技能拓展一定要多参与不同的软件开发项目,不同类的软件开发项目用到的技术侧重不同,这样能让你的技术通过项目实战,更加精进、全面。分析类的软件,需要对数据处
为程序员准备的音乐编辑器-VexTab
原文:英文原文翻译:叶大侠vextab编辑器:这里这是一篇介绍和推广VexTab音乐语言的文章,知乎并不支持查看和编辑谱,可以点击这里抵达可以获得更好的阅读。什么是VexTab?VexTab是一种用于书写音乐的语言,你只需要花非常少的时间学习一下,就可以用它来创建,编辑和分享非常好看的五线谱和六线谱了。和ASCII谱的设计目标为易于阅读不一样,VexTab是为了可方便书写而诞生的。迫不及待了,让我们开始吧。第一步:谱表关键字tabstave用于创建一行谱表,下面的编辑框都是可以进行编辑的,赶紧试一下在新的一行添加tabstave看看效果吧。tabstave后面可以跟一些参数,比如tabstavenotation=true的意思是显示一张标准的谱表(上面是五线谱,下面是六线谱)。别只看啊!动手试一下。第二步:添加一些音符关键字notes可以用于添加音符。你可以通过在钢琴上的位置(note/octave)或者吉他指板的位置(fret/string)来
Amazon Aurora (MySQL) 的 Stored Procedure 可以跑 AWS Lambda...
查了資料才發現去年十月AmazonAurora(MySQL-CompatibleEdition)就支援用AWSLambda當storedprocedure了,只是當時只支援asyncmode,能做的事情比較有限:「AmazonAuroraNewFeatures:AWSLambdaIntegrationandDataLoadfromAmazonS3toAuroraTables」。NowyoucaninvokeLambdafunctionsdirectlyfromwithinanAuroradatabaseviastoredproceduresoruser-definedfunctions.Lambdaintegrationallowsyoutoextendthecapabilitiesofthedatabaseandinvokeexternalapplicationstoactupondatach
合格前端系列第八弹-造一个属于自己的ui库
cdmy-vui-projectnpminstall&&npminstallx-vui#项目启动默认端口localhost:8080npmrundev3.2引入vui组件库你可以引入整个vui,或是根据需要仅引入部分组件。我们先介绍如何引入完整的vui。3.2.1完整引入在main.js中写入import{VUICOMS}from'x-vui'VUICOMS.map(component=>{Vue.component(component.name,component)})3.2.2按需部分引入在main.js中写入(假如我只需要Scroller和Select组件)import{Scroller,Select//...}from'x-vui'Vue.component(Scroller.name,Scroller)Vue.component(Select.name,Select)3.2.3全局注册vui插件import{$msg,$modal}from'x-vui'Vue
JavaScript 获取 url 上的指定参数值
Unsplash假设现在有A和B两个页面,当我们从A页面跳转到B页面的时候,需要将A页面的两个值传递到B页面当中,前端可以通过读取缓存的方式,从B页面获取到A页面的数据,但这样的方式,会让其他端上的数据不同步,所以我们往往通过url传参的方式,在A页面跳转到B页面的时候,通过字符串拼接的方式,将A页面上的值链到url上,可参考下面的栗子A页面
js方法call、apply和bind理解
1.介绍刚出来找前端工作的时候,最常见的面试题就是“谈谈你对call和apply的理解”,以前只知道这些名词,但是一点也不理解。随着对jquery的熟悉发现jquery源码中很多都用到了apply方法,就顺便总结了一些功能类似的call和bind方法的使用。JavaScript中的每一个Function对象的原型上都有一个apply()方法和一个call()方法,call和apply都是为了改变某个函数运行时的context即上下文而存在的,换句话说,就是为了改变函数体内部this的指向。call和apply是为了动态改变this而出现的,当一个对象没有某个方法,但是其它对象有,我们可以借助call或apply用其它对象的方法来操作。bind方法也可以用来改变当前函数执行的上下文,和call、apply不同的是bind返回对应函数,便于稍后调用而apply、call则是立即调用。1.1相关定义:call()语法:fun.call([thisObj[,arg1[,arg2[,[,.argN]]]]])定义:调
2017年度小结
上半年同去年一样,做了不少B端需求的开发维护与优化,主要是猫眼商户系统、BD门户。下半年则完全转做C端产品,主要是专业版里的影人服务相关页面。部分时间担任该方向的前端主R(主要打杂人员),并且先后抽空带了俩实习生。今年比去年做了更多的分享,有5次左右吧,包括了技术类的和非技术类的。今年担任面试官,一面或者二面,“阅人”30余。尤其是校招季,自己也趁机弥补了不少算法方面的知识。总之感觉收获颇多。总体来说,自己今年在工作方面的收获和进步都挺大的。不过年终的职级答辩没有念完PPT,没能跟评委展示自己的全部收获,略有遗憾。读书今年读书变少了,只读完了。的确是懒了吧。也有一段时间极度疲劳,根本无力读书。《学习JavaScript数据结构与算法》,真的是很好的一本入门书。里面大部分JS代码也值得我学习。《JavaScript面向对象精要》《软技能》《跨终端Web》《现代操作系统》,50%《算法导论》,30%唉,没有读人文类的书。今年还答应了一位清华出版社的编辑要好好写本书出来。感觉这个是非常有挑战性的事情,
indexedDB 基本使用
原文出处:党黎明indexedDB简介:indexedDB是一种使用浏览器存储大量数据的方法.它创造的数据可以被查询,并且可以离线使用.indexedDB有以下特点:indexedDB是WebSQL数据库的取代品indexedDB遵循同源协议(只能访问同域中存储的数据,而不能访问其他域的)API包含异步API和同步API两种:多数情况下使用异步API;同步API必须同WebWorkers一起使用,目前没有浏览器支持同步APIindexedDB是事务模式的数据库,使用key-value键值对储存数据indexedDB不使用结构化查询语言(SQL).它通过索引(index)所产生的指针(cursor)来完成查询操作一、使用indexedDB的基本模式打开数据库并且开始一个事务。创建一个objecStore。构建一个请求来执行一些数据库操作,像增加或提取数据等。通过监听正确类型的DOM事件以等待操作完成。在操作结果上进行一些操作(可以在request对象中找到)二、创建、打开数据库indexedDB
C#集合Collections购物车Shopping Cart
这篇是对象与集合操练,物件的创建,集合的一些基本功能,如添加,编辑,删除等功能。对象,即是网店的商品物件,Insus.NET只为其添加2个属性,物件的ID的Key和名称ItemName以及2个构造函数,最后一个方法是重写ToString()方法。classItem{privateint_key;publicintKey{get{return_key;}set{_key=value;}}privatestring_ItemName;publicstringItemName{get{return_Ite
.net异步编程的前世今生 & async & await
.net异步编程的前世今生.NETFramework提供了执行异步操作的三种模式:异步编程模型(APM,AsynchronousProgrammingModel)模式(也称IAsyncResult模式),在此模式中异步操作需要Begin和End方法(比如用于异步写入操作的BeginWrite和EndWrite)。对于新的开发工作不再建议采用此模式基于事件的异步模式(EAP,Event-basedAsynchronousPattern),这种模式需要Async后缀,也需要一个或多个事件、事件处理程序委托类型和EventArg派生类型。EAP是在.NETFramework2.0中引入的。对于新的开发工作不再建议采用此模式。基于任务的异步模式(TAP,Task-basedAsynchronousPattern)使用一种方法来表示异步操作的启动和完成。TAP是在.NETFramework4中引入的,并且它是在.NETFramework中进行异步编程的推荐使用方法。C
Android Architecture Components之LiveData
LiveData是一个数据持有者类,它持有一个值并允许观察该值。不同于普通的可观察者,LiveData遵守应用程序组件的生命周期,以便Observer可以指定一个其应该遵守的Lifecycle。LiveData实现了对数据的监听,利用这点,我们可以更好的实现获取数据和数据展示解耦。本文着重讲解数据更新和更新UI逻辑分离,LiveData的LifeCycle特性暂不做介绍。下文用一个简单的例子来介绍如何实现数据更新和UI展示解耦,实现逻辑分离。UI展示逻辑代码如下:privateMutableLiveData
了解这些内容,就能完成程序员到架构师的转变题文章
当你点开这篇文章,也许正是你踌躇不前的时期,职场生涯正处于迷惘阶段,不上不下。你可以选择点击右上角,关上一扇窗,但上帝不会为你打开另一扇门,因为钥匙在自己手上。很多程序员,到了25--30岁的时候依然迷茫,在代码中忙忙碌碌,整日加班,认为很努力。是这样吗?并不是。这并不是努力,虽然在进步,却相对静止。我认识很多程序员,他们每晚都在加班,在同样的大环境,背景下,当所有人都在加班的时候,你自认为付出的努力会比别人多吗?请别曲解了努力的概念,同时也不要与其他行业来做对比。当你在选择了程序员这条路之后,你的收获会与真正的努力成正比。那么,对于程序员如何成为架构师呢?现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%。对于IT行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习能力。一、广度架构师应该对所在领域的主流技术体系有一个全面的认识知道每种技术的每种技术的由来为什么会出现这种技术这个技术是用来解决什么问题的
春秋二十载 中科汇联在政务服务中实现全域智能
农业、工业、信息、智能,社会在不停的进阶,漫长的发展历程中,生产资料和生产工具不断发生着变化。AIphaGo0:3打败柯洁、AIphaGoZero自我学习及少许训练完美击败AIphaGo,透过这些AI热点事件,可以看到生产工具正在向基于数据、信息、知识、价值的智能工具转变。但AIphaGo、AIphaGoZero如没有规则和知识的支撑,何来对弈之说。规则和知识从何而来?是人类先验经验与知识;是理学、工学、文学的结合;所以说,想要在某一细分行业有所建树,必须要深耕了解业务,有全面详尽的知识图谱,深厚的智能技术积累才能够提供全方位服务。春秋二十载在政务服务中实现全域智能于1999年成立的中科汇联,在政务服务方面经验颇丰,中科汇联董事长游世学表示,主管部门在整个新科技的技术应用层面有所迟缓,AI融入政务服务,才刚崭露头角。目前,国务院的新一代AI的发展框架和纲要指出:2020年要实现科技惠及民生,AI要服务民生。2025要推动智能社会形成,智能社会也意味着政府需向智能政府转变。游世学·中科汇联董事长当问及中科汇联在Ai+政务服务
数据库介绍(MySQL安装 体系结构、基本管理)
第1章数据库介绍及mysql安装1.1数据库简介数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。1.1.1什么是数据数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。1.1.2数据库管理系统非关系型数据库NoSQL:非关系型数据库(NotonlySQL)不是否定关系型数据库,做关系型数据库的的补充。想做老大,先学会做老二。关系型数据库关系型数据库的特点二维表典型产品Oracle传统企业,MySQL是互联网企业数据存取是通过SQL(结构化查询语句)最大特点,数据安全性方面强(ACID)1.1.3NoSQL特性总览l不是否定关系型数据库,而是作为补充,现在也有部分替代的趋势。l关注高性能,高并发,灵活性