各行各业 - 军军小站|张军博客
各行各业

IoC 容器和Dependency Injection 模式

撰文/MartinFowler编译/透明Java社群近来掀起了一阵轻量级容器的热潮,这些容器能够帮助开发者将来自不同项目的组件组装成为一个内聚的应用程序。在它们的背后有着同一个模式,这个模式决定了这些容器进行组件装配的方式。人们用一个大而化之的名字来称呼这个模式:“控制反转”(InversionofControl,IoC)。在本文中,我将深入探索这个模式的工作原理,给它一个更能描述其特点的名字——“依赖注入”(DependencyInjection),并将

系统 2019-08-12 09:26:49 1858

各行各业

【2012年终总结】之一 opencv + ds采集摄像头视

1、MFC单文档多文档程序不让MFC来更新菜单1在CMainFrame::CMainFrame中添加23m_bAutoMenuEnable=FALSE;标题栏图标的更改1//cuihao,标题栏图标;2CCameraMonitorApp*pApp=(CCameraMonitorApp*)AfxGetApp();3HICONhIcon=pApp->LoadIcon(IDI_ICON3);4SetIcon(hIcon,TRUE);5SetIcon(hIcon,

系统 2019-08-12 09:26:47 1858

各行各业

修改键盘中断描述符表

修改中断描述符表(IDT)中的键盘入口实现按健记录,把读取到的键盘扫描码转换成ascii码记录下来。查找键盘入口采用了查询IOAPIC的重定向寄存器的方法(通过把物理地址0xFEC00000映射为虚拟地址,然后读取键盘中断向量,最难得是没有xpsp2的限制了。这是我从别处转过来的驱动源码,WindowsXPCheckedBuildEnvironment测试过。#include#include#defineMAX_CHAR

系统 2019-08-12 09:26:46 1858

各行各业

Timus 1800

#include#includeusingnamespacestd;intmain(){doublel,w,h,t,g=981,r,rs,rm;cin>>l>>h>>w;if(h<=l/2){cout<<"butter"<

系统 2019-08-12 09:27:41 1857

各行各业

Timus 1226

#include#includeusingnamespacestd;intlen=0,buf_len=0;charoutput[255*1000+2000]={'\0'},buf[300]={'\0'};charc;intmain(){//FILE*p=fopen("in.txt","r");while(scanf("%c",&c)!=EOF){if(c>='A'&&c<='Z'||c>='a'&&c<='z'){//是

系统 2019-08-12 09:27:30 1857

各行各业

xeam Build Definition Extension uninstall 卸

之前在VS上装了Builddefinition的扩展,后来发现很不好用,想卸载掉,就增工具下面找add-inmanager,结果找不到,externaltools下面也找不到,google也无果再到后来,每次启动VS,装报需要注册,很唠叨,但也没办法今天打开VS,有提示有升级,灵感来了,在ExtensionsandUpdates是否可以送走这个瘟神呢,果然,在installed里面找到了它,点击uninstall,轻松送走...xeamBuildDefin

系统 2019-08-12 09:27:23 1857

各行各业

我又对自己说,要好好写写我的文字了

我又对自己说,要好好写写我的文字了。已经因为烦恼,因为繁忙,忘记了太多,放弃了太多。就如人说的,为什么而活着呢窗外阳光灿烂,北风凛冽。我们为什么活着呢?为什么执意要想活得精彩呢。在经历了一些些人事和挫折,看到自己的反应的时候才知道自己的确不是那开局定运之辈,不过像童安格得歌一样,是个平凡人,想过平凡知足的人生吧如若没有负担,没有担子,会很轻拂,浮躁罢;也许,这些都是男人必须承担的。现在面对这样的压力,忽然觉得社会于自己很陌生,如此沉重的隔阂让我也滋生了许多

系统 2019-08-12 09:27:23 1857

各行各业

右键集成vs编译

适合vs2005以上,不过我这个注册表是针对2008的,如果是其他版本自己看着修改如果地址不是默认的请修改找到自己的MsBuild,2005的也自己找到后修改WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell][HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\build]@="编译(Debug

系统 2019-08-12 09:27:23 1857

各行各业

获取当前视图所在控制器的方法

/***获取视图当前的控制器**/-(UIViewController*)viewController{for(UIView*next=[selfsuperview];next;next=next.superview){UIResponder*nextResponder=[nextnextResponder];if([nextResponderisKindOfClass:[UIViewControllerclass]]){return(UIViewCont

系统 2019-08-12 09:27:22 1857

各行各业

2007-3-2 19:00:00 一段设置8253芯片的程序

在linux内核中有这样的一段程序,查了资料才看懂的,赶快就记下来了:使用的是GNUas汇编语言:(这个汇编真的很烦人)movb$0x36,%al;movl$0x43,$edx;outb%al,%dx;movb$latch,%eax;movl$0x40,$edx;outb%al,%dx;movb%al,%ah;outb%al,%dx;上面的一段程序的前三句是选择计数器0工作于方式3,二进制计数方式;(0x43是端口地址,0x36转换成二进制是0011011

系统 2019-08-12 09:27:15 1857

各行各业

2007-3-11 19:11:00 cpu执行第一条指令时情形

cpu执行的第一条指令不在内存中,众所周知,内存是由ram组成的,而ram不断电,可以保存信息,一旦断电,ram中的信息将会丢失,所以cpu要执行的第一条指令被固化在rom中以前8086年代,由于内存是1M的,所以rom被编址在1M的最后的64K中,所以它的段地址是0xFFFF0,这样就不至于不ram分成两个部分,就是将cs设置成0XF000,cpu执行的BIOS第一条指令的地址是:0XF000:FFF0H,这样使得固件的地址在寻址空间靠后的位置16个字节

系统 2019-08-12 09:27:15 1857

各行各业

自动化测试(一):自动化测试理论

什么是自动化测试:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动化测试常见的误区:1.认为录制回放就是自动化测试(自动化测试的不同层次)2.只验证界面上的信息3.让测试相关的材料自由组织,应妥善管理测试相关的文档和输出4.过早或过多的自动化自

系统 2019-08-12 09:27:14 1857

各行各业

POJ 3807 Shuffle'm Up

解题思路:普通模拟题NULL#include#include#includeusingnamespacestd;intmain(){setshuf;chars1[101],s2[101];stringaim,str;inti,j,n,m,iter;boolIsFind;cin>>n;for(i=1;i<=n;i++){iter=IsFind=0;cin>>m>>s1>>s2>>aim;str.r

系统 2019-08-12 09:27:05 1857

各行各业

帮同事写了几行代码,在 安装/卸载 程序里 注册

写了个小控制台程序,这个程序用来注册/卸载OCX控件,用在InnoSetup做的安装卸载程序里。#include"stdafx.h"#include#includeusingstd::cout;usingstd::endl;usingstd::cerr;int_tmain(intargc,_TCHAR*argv[]){__try{STARTUPINFOsi1={sizeof(si1)};PROCESS_INFORM

系统 2019-08-12 09:26:56 1857