
2011年10月25日
刚刚写行代码,傻到
DBAccess.GetCustomerID(del) = 0 ? MessageBox.Show("用户" + txtName.Text.Trim() + "删除成功") : MessageBox.Show("用户" + txtName.Text.Trim() + "删除失败");
的直接用下面的代码,编译的时候报错说:Error 1 Constant value '0' cannot be converted to a 'bool' D:\Users\Nokia\Documents\Visual Studio 2008\Projects\HJSTEEL\HJSTEEL\AddCustomerForm.cs 199 43 HJSTEEL
很不理解,于是和两哥们讨论了一下,他们给的方案是强制转换,结果同样报错。(杯具啊,三个写代码的居然连这点基础知识都忘记了
);
于是,发现下面这样是可以的。
int a = 1;
bool b = Convert.ToBoolean(a);
Console.WriteLine(b);
但是很好奇Convert.ToBoolean()方法到底是怎么实现的,它有多个重载,string啊,object啊等等。于是使用IL DASM以为能看到点东西,结果只看到下面这些,也是直接调用Convet方法的。
.method private hidebysig instance void Test() cil managed
{
// Code size 18 (0x12)
.maxstack 1
.locals init ([0] int32 a,
[1] bool b)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: call bool [mscorlib]System.Convert::ToBoolean(int32)
IL_0009: stloc.1
IL_000a: ldloc.1
IL_000b: call void [mscorlib]System.Console::WriteLine(bool)
IL_0010: nop
IL_0011: ret
} // end of method Program::Test
好吧,还是用Reflactor,直接上代码:
public static bool ToBoolean(int value)
{
return (value != 0);
}
唉,原来Convert.ToBoolean(int value)的实现也就是比较啊。
虽然小题大做,但是弄明白弄清楚了。
posted @ 2011-10-25 22:40 love-windbg 阅读(12) 评论(0)
编辑

2011年10月24日
文档中突然出现了个LDAP,不知道是个什么东西,于是进行扩展阅读。百度里的词条肯了半天,也没肯明白。先mark一下,晚上回去研究研究。
http://baike.baidu.com/view/159263.htm 如果哪位高人有相关的资料或者指导意见的话,请不吝赐教,小弟会灰常感激
posted @ 2011-10-24 15:53 love-windbg 阅读(26) 评论(0)
编辑
SCSM 没有当初想象的那么简单,自己个井底小娃还没怎么深入研究呢就写笔记,很有误导之嫌。所以为了正淆视听,暂停笔记更新。等真正了解了,再来。
posted @ 2011-10-24 15:46 love-windbg 阅读(10) 评论(0)
编辑

2011年10月18日
今天工作中遇到的问题:
1. DW服务器的Report services 已经开启,但是Console端却谈出个对话框说我的 data warehouse SQL Reporting services 不可用。
有图为证
解决方案还没找到,searching...
=====================
5:07分,上午得到的回答是DW的数据还没有好,所以暂时还不能用Reporting。等可以用的时候我会更新的。
=====================
10/24/2011 update
数据的导入是通过 SM console里面的DW Jobs项,它里面有job的明细,可以通过页面去查看当前同步的进度(MPSynJob), Extract_<server name>, Extract<DW name>
posted @ 2011-10-18 11:54 love-windbg 阅读(13) 评论(0)
编辑

2011年10月17日
离开IT圈小半年,折腾了一圈,然后又回来了。有幸加入了SCSM项目,当时听项目组长说这个应用很广泛,如果搞懂了之后以后的前途是怎么怎么,多么多么的光明,说的我好像遇见了初恋女友一样怦然心动。得,就因为这个原因,选择了现在这分offer,虽然薪水不如意,但是找到初恋般的感觉了嘛,值了。漫长的等了大半个月之后,今天算是终于进到OF里面了。(说到这我不得不说说这些HR们,为了绩效什么的,不管项目组的进度,也不管客户那边的压力,硬硬是让我国庆节之后才去报道。因为钱呀,节前一周报道要多付我一周加上国庆的假期钱,他们就扣呀,算呀,然后,然后的结果就是节后
报道)。
题归正传,我是打算把我工作中遇到的问题和个人对SMSM的理解以文字的方式记录下来,当然,有些东西是不能写的,因为这是商业秘密。如果有理解错误或者不到位的地方,高人随时指点一下。
1.我想知道什么是SCSM?它会被应用在哪些方面?
百度了一下,发现排在第一的居然是只股票,叫什么四川双马,呵呵。(看来还是股票的曝光率高哇)找了好久都没找到一个合理的解释。但我在工作中有一个应用我觉得是最好的解释。情况是这样的:N多人用机器,各种的问题也会随之而来,IT人员不可能挨个的贴身服务,所以当机器出现问题的时候需要保修,由于机器N多,问题也是多样化,
- IT人员为了便于管理和维护,提供了一个页面,用来提交用户的维护需求。在提交的同时,会有各种字段,比如问题的归类,提交者的账户,遇到的问题描述等。
- 问题提交到服务器之后,会被指定给某个人(提交的时候assign)。IT人员看到自己的task list里面有新的问题来了,于是去开始分析、解决。在这个过程中,也会遇到很多问题是一个解决方案就可以搞定的,于是统一发布这一个解决方案给所有的问题用户。(PS:这是我在看SCSM帮助文档的时候看到的一项功能,目前也只记得这个了,见谅)当然,正常情况下的流程我想是这样的:
receive ticket-->check --> reserved-->closed ticket and update to server-->server generate a message send to user(automatically or manual)--> assign back to user-->user action etc.(re-active or renew a ticket)
可能描述的不够清楚,中间有很多环节我个人目前也不是很清楚,只觉着是照着葫芦画个瓢,大致的意思,希望能对。
这玩意的理解还真不是一时半会就能说清楚的,先搁着,我弄明白了再来更新。
2.SCSM的架构是怎么样的?或者说它的组成部分是哪些?
SCSM的组件:
- Service Manager 数据仓库管理服务器:SCSM的主要组件,负责处理SCSM的本身的配置和提供IT服务
- Service Manager 数据库:保存SCSM服务器的配置信息和运维中的数据
- Service Manager Console:实际上是个用户UI
- Data Warehouse Database:IT信息的长期存储,同时提供报表查询
- 有意思的就是这个Data Warehouse db, 安装好了之后居然找不到在哪里。不知道是我没有找到的原因还是别的,同事说这是个service,明天去check一下
4.工作中的问题和自己的建议:
- 安装好Console 和 Data wasehouse之后如何配置connector?
- 这个问题需要明天解决
- ===========
- 10.18更新
- 启动 SM Console-->click Administration pane--> click Register with Service Manager Data Warehouse
工作中的问题:
- 个人觉得可以写个脚本关闭UAC
- 关闭ESC
- 注册CodeCovage的时候也可以脚本化
- 配置SCSM可以脚本化
- 没有相应training文档,没有工具清单(包括路径、配置等)
睡觉了,明天会把上面的脚本补充一下,晚安
posted @ 2011-10-17 23:14 love-windbg 阅读(31) 评论(0)
编辑

2011年1月22日
做完win 7 x64系统之后发现光驱找不到了。查看驱动管理器发现在DVD光驱的签名有个黄色的小叹号,查看驱动信息说:
windows数字签名不对之类的,最后给了个错误代码(c52)。到HP官方网站上找驱动程序,无果。一狠心升级BIOS,仍无果。最后发邮件给HP客服,巴拉巴拉的说让我重新装系统或者是病毒引起的。
最后终于让我找到了解决方案:
1. 点开“开始”-运行regedit.exe,进入注册表编辑器,到左边的项目栏里找到
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Class\{4D36E965-E325-11C E-BFC1-08002BE10318}选定,在右面窗口找到upperfilter”项和“loweverfilter”项。点右键删除 “upperfilter”项和“loweverfilter”项。
我在注册表里面只找到了upperfilter项,所以就删除了这个。
2.在设备管理器中卸载有疑问的光驱,卸载之后在点击扫描硬件改动,会找到光驱。到这里,光驱很给力的自己转到了起来。哈哈
这时候光驱就恢复正常了,如果还不可以就重新启动计算机。
Resolved HP DVD issue:
1. cmd->regedit.exe
2. find upperfilter and lowerfilter options in HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Class\{4D36E965-E325-11C E-BFC1-08002BE10318}
3. delete upperfilter and/or lowerfilte options
4. uninstall DVD diver and Scan hardware changes.
posted @ 2011-01-22 13:06 love-windbg 阅读(91) 评论(0)
编辑

2009年12月21日
摘要: 如何抓取dump文件在工作中,许多情况下需要将遇到的问题告知客户。但是一般来说,一个问题的重现是需要场景和时间的。如果让客户为了一个不确定有没有价值的去追踪的问题花费时间,很显然,这是不可取的。通过Windbg可以轻松实现对dump文件的抓取,这样就可以将问题(或bug)出现时的场景、现象完全展示给客户,如果你会一点调试技术的话,那无疑是锦上添花了。在开始之前,首先要弄明白什么是dump文件?Wi...
阅读全文
posted @ 2009-12-21 19:24 love-windbg 阅读(1507) 评论(2)
编辑

2009年5月26日
摘要: Order: mscoree.dll-->mscoreei.dll-->clr.dll-->mscorlib.ni.dll-->clrjit.dll Microsoft (R) Windows Debugger Version 6.11.0002.408 X86Copyright (c) Microsoft Corporation. All rights reserved....
阅读全文
posted @ 2009-05-26 21:26 love-windbg 阅读(1068) 评论(2)
编辑

2009年5月25日
摘要: win32 api的函数调用方式是stdcall。具体调用方式是 先按照从右至左的顺序将函数的参数压入堆栈,然后函数的下一条指令的地址入栈,即返回地址(eip),接着是用来寻址局部变量的寄存器入栈(ebp),然后再将函数中的局部变量压入堆栈,接着就执行函数内部的操作了。执行完成函数要返回时,要将堆栈进行恢复,然后ret指令取栈顶的返回地址(eip)并跳到那里去执行,也就是执行函数调用完成后的操作 ...
阅读全文
posted @ 2009-05-25 15:33 love-windbg 阅读(240) 评论(0)
编辑
摘要: 内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系...
阅读全文
posted @ 2009-05-25 13:43 love-windbg 阅读(402) 评论(0)
编辑