暂时未有相关云产品技术能力~
暂无个人介绍
一、背景 笔者在项目的开发中,需要调用windows下的COM接口SetIconLocation来实现桌面快捷方式。而我们项目中给定的图片格式为png格式,SetIconLocation的接口第一个参数指定必须包含icon(即.ico)类型图标的exe或dll文件或直接是ico文件路径。网上查了好久,没有直接调用png实现快捷方式的接口,但网上格式间相互转换的工具也是很多的(工具需要手动拖选实现,这点项目中也是不允许的)。所以,问题就转嫁为:如何实现png格式图标转化为ico格式图标?
一、引言: Windows下的API接口函数CreateProcess()可以用来创建一个进程和主线程。新进程执行指定的可执行文件(一般为.exe文件)。但如果要创建的进程是一个GUI界面的启动程序(类似QQ启动界面),启动该进程需要加载插件,并且只有该进程的服务完全启动后,后续才能调用相应接口实现功能。此时如何准确的等待进程启动起来,即等待子进程启动时间的界定是个难题。
引言:项目开发中,我们免不了在已有代码或版本的基础上新增代码。这个时候,如何高效的读懂别人代码逻辑,如何从几十万乃至上百万行代码中找到自己需要的逻辑显得尤为重要。
引言:在项目开发中,我们会遇到字节流与比特流相互转换、逐字节、逐位操作的场景。没有现成的库供我们调用,需要我们自己实现之。
在分析源码的时候,我们或多或少都会遇到过技术瓶颈。如果不突破这个瓶颈,接下来的研究就无法继续进行。并且不止对自己是瓶颈、对团队人员、技术顾问、资深人士都没有很好的解决办法。这时候,不妨试一下给源代码作者团队邮件提问。
继续从深入分析开源代码说起,当然源码分析没有太多捷径可走。笔者只是探讨下,如何分析会更好些。特通过Samba技术邮件群组,向老外提问“如何更好的分析Samba源码”。
借宝地一用,谢谢! 思路一: 在Windows客户端与Windows服务器的kerberos认证过程中,通过第二阶段客户端向KDC(密钥分配中心)的TGS数据交互,客户端获取到了可以与服务端会话的Service_key和Ticket。
在海量的源码面前,如何更好的切入到源码,锁定我们需要的那一行,有时显得格外重要。
在研究开源代码时,大家或许都有这样的感慨: (1)代码太庞大,少则几万行代码,多则几百万行代码,不知道如何入手; (2)相关的帮助文档有限,很难短时间内理清头绪; (3)有了代码在手,但代码之间的调用相当复杂,一层一层追踪总是理不清调用逻辑顺序。
深入浅出变长结构体 1、 问题的引出 项目中用到数据包的处理,但包的大小是不固定的,其长度由包头的2字节决定。比如如下的包头:88 0f 0a ob cd ef 23 00 。长度由头2个字节880f决定,考虑字节序,转为0f88,转为10进制3976个字节的包长度。
由来:在项目开发的时候,定义了三个核心类(ClassA,ClassB, ClassC),三个类之间存在调用关系如下:ClassC是管理类,需要调用ClassA, ClassB的接口;同时作为被管理类,ClassA, ClassB需要又需要调用ClassC的接口。
第一反应main()函数是所有函数执行的开始。但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的theApp对象,其执行顺序就在main函数之前。道理相通,顺理推下,能够想到:如果在main函数之前声明一个类的全局的对象。那么其执行顺序,根据全局对象的生存期和作用域,肯定先于main函数。
模块化动态划线实现解读 应用软件:VC++6.0。 源码下载地址:http://download.csdn.net/detail/wojiushiwo987/5200730 题记:在对数据的趋势描述方面莫过于将点存储下来描线。即如任务管理器中CPU使用率一样,一目了然就很直观看出使用的趋势。现在360管理软件里面有开始时间的变化趋势。其他也有类似的趋势划线软件功能的实现,很是直观!
本设计旨在通过socket的TCP实现不同类型文件的收发,UDP实现消息的收发。 1.1 需求概述 基本需求: 1) 支持发送不同类型的文件(.txt,.doc,.jpg,.exe,.mp3等所有类型) 2) 支持发送字符消息。 3) 支持可视化、直观显示与操作。 4) 支持单机收发、局域网内两台机器收发。
面向连接的传输服务与面向连接的网络服务类似,都分为建立连接、数据传输、释放连接三个阶段;编址、寻址、流控制也是类似的。无连接的传输服务与无连接的网络服务也非常类似。一个很显然的问题:既然传输层的服务与网络层的服务如此相似,那么为什么我们还要两个独立的层呢? 原因在于:传输层的代码完全运行在用户的机器上,但是网络层主要运行在由承运商控制的路由器上。试想以下几种情况?
很长时间以来,对于移动互联网,恰如外星人看地球的动物,远远看去并不了解,人和猪的区别,不过是一种是四条腿走路,一种是两条腿走路。对于移动互联网这样一个新奇事物不了解,人们自然用过去的经验去看,就将其定位为互联网的延伸和补充,是互联网的一个组成部分,就是互联网。这样一个思路之下,移动互联网的形态、模式、商业模式都自然想从互联网中搬过来,这件事情,从2001年10月第一个3G网络商用,一直到现在这种思维举不胜举,渗透到移动互联网的各个领域,也渗透到新媒体领域。今天中国,乃至全世界没有一个商业上非常成功的新媒体,大部分传统媒体向新媒体转型都不算成功,很大程度上就是这个原因造成的。
MFC常见问题及解决方案
由于一直在命名方面很乱,这次决定好好规范下。 转载至:http://blog.sina.com.cn/s/blog_52cbfc3f0100fdy6.html 匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则。
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销比较大,所以造成了效率的低下。
如何在windowsXP下运行用c 编写cgi
1.CGI定义: CGI(CommonGateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 2.CGI功能: 绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。 3.CGI运行环境: CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。 ——
HTTP工作原理及HTTP请求、响应报文解读
软件压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的页面3秒钟内响应; 所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。
主要是之前看masefee的博客,很有感觉,都是该作者实践经验结合自己理解的总结。所以,此次讲义内容以其blog为母版,结合林锐博士《高质量程序设计指南——C++/C语言>>,《C++primer》,《C语言实例教程》,网络上down的别人总结的比较经典的资料,及笔者参加的笔试、面试的经历,综合而成。
warning C4250: “MyClassD”: 通过域控制继承“MyClassC::MyClassC::MyMethod”
字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。
在一个函数的内部,return的时候返回的都是一个拷贝,不管是变量、对象还是指针都是返回拷贝,但是这个拷贝是浅拷贝。 分为以下几种情况:1)返回一个基本类型的变量;2)返回非动态分配的指针;3)返回动态分配的指针;4)返回非基本类型(对象等)…
建立架构观点的认识是最重要的事情。虽然这一系列的文章前提为“阅读他人的程式码”,但我们真正想做的工作,并不在于彻底地详读每一行程式码的细节,而是想要透过重点式的程式码“摘读” ,达到对系统所需程度的了解。每个人在阅读程式码的动机不尽相同,需要了解的程度也就有深浅的分别。只有极为少数的情况下,你才会需要细读每一行程式码。
第(1)步;从主串S的第pos个字符和模式的第一个字符进行比较之,若相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式串的字符比较之。 第(2)步骤;依次类推,直至模式T中的每一个字符依次和主串S中的一个连续的字符序列相等,则称匹配成功;函数值为和模式T中第一个字符相等的字符在主串S中的序号,否则称为匹配不成功,函数值为0。
规律数组的打印
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
求两无序不重复数组的交集
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。
全排列打印
方法1:【思路】1)将1,2,3,4存入数组中,然后从4个数中选出1个数,即为selVal;2)接下来的工作即是从剩余的3个数中选取2个数,需要存储除selVal外的剩余3个数;3)选取后打印selVal和选的2个数即可。
在这个行业里做了快4年了,多少总结了一些东西,成功也许很难复制,但是失败却时常被人们重复,我不敢说我做的很好,但是我希望总结出以前失败的一些教训,时不时看看,提醒自己以后再也不要犯类似的错误.这篇文章会不定期的更新,可能就是简短的几句话,但是,也是我实践和思考的结果.
重拾C++经典笔试30题(21-30)
虚析构函数、虚函数结合考题变种
这里涉及一点,面试的时候,面试官可能就一张白纸,不提供函数原型的情况下让你实现库函数。这里就需要大家对Msdn里提供的库函数有所深入,参数个数、参数类型、返回值类型、函数实现的功能。
1.可能刚开始看每个设计模式的时候,通过实例能知道其应用原理?但是当多个模式一起的时候,比如:适配器模式、桥接模式、中介者模式的区别?可能就不是很快的说清楚(当然也说明自己没有彻底领悟,另一个方面说明了自己没有用过相关的设计模式。 2.在实践中如果应用了设计模式才能真正感知她的妙处,这也是我所欠缺的。
而接口隔离原则要求接口的方法尽量少。例如一个接口的职责可能包含10个方法,这10个方法都放在一个接口中,并且提供给多个模块访问,各个模块按照规定的权限来访问,在系统外通过文档约束“不使用的方法不要访问”,按照单一职责原则是允许的,按照接口隔离原则是不允许的,因为它要求“尽量使用多个专门的接口”,专门的接口指什么?就是指提供给每个模块都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。
【维基百科】 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目。
哈希表(散列表)是一种非常高效的查找数据结构,在原理上也与其他的查找不尽相同,它回避了关键字之间反复比较的繁琐,而是直接一步到位查找结果。当然,这也带来了记录之间没有任何关联的弊端。应该说,散列表对于那些查找性能要求高,记录之间关系无要求的数据有非常好的适用性。注意对散列函数的选择和处理冲突的方法。
面试中如问到memcpy的实现,那就要小心了,这里有陷阱。 先看下标准memcpy()的解释:注意下面的注释,对于地址重叠的情况,该函数的行为是未定义的。 事实上所说的陷阱也在于此,自己动手实现memcpy()时就需要考虑地址重叠的情况。 另外,标准库也提供了地址重叠时的内存拷贝函数:memmove(),那么为什么还要考虑重写memcpy()函数呢?因为memmove()函数的实现效率问题,该函数把源字符串拷贝到临时buf里,然后再从临时buf里写到目的地址,增加了一次不必要的开销。
NeuSoft经历
2012.9.11—— 2013年秋季校园招聘开始啦,东软由于地处核心地带的优势,抢占大工生源,每年都首当先锋。宣讲会异常火爆,规定1:30开始,差不多12点就已经全部没有位置了,主要是第一场的原因吧。 经历了宣讲就开始了紧张的笔试。笔试分为(技术知识部分(选择、填空、简述题、程序大题)+行测知识(全英文,公务员考试的英文版))。
MainFrm为框架类,包含应用程序外框所包含部分。CView为视图类,用于显示数据的空白区域窗口。 CDocument为文档类。 MFC提供了文档/视类结构,采用数据本身和显示分离的机制。其中文档类CDocument用于数据的存储和加载,视类CView用于数据的显示与修改。
十一、数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)
九、数据结构面试之十——排序1(直接插入、希尔、冒泡、直接选择排序)
重拾C++经典笔试30题(11-20)