- 博客(88)
- 资源 (2)
- 收藏
- 关注
原创 如何得知一个__ComObject对象的实际类型
在使用Com Interop的时候(像VS Macro和VSTO)的时候,一个函数的返回值往往在Debugger中显示为System.__ComObject。这个时候就可以使用Microsoft.VisualBasic.Information.TypeName(object VarName)来查询其实际的类型,这个函数内部调用了IDisPatch的 GetTypeInfo函数和ITypeInfo.
2007-12-25 21:31:00
2797
转载 一个双向链表的单指针实现
Save precious bytes with a new twist on a standard data type. In the quest to make small devices cost effective, manufacturers often need to think about reducing the memory size. One option is to
2007-11-27 15:11:00
2924
原创 C++学习 - 快速排序,更加优化的实现
头文件: 1: #pragma once 2: #include 3: 4: namespace FengChen 5: { 6: 7: template 8: class QuickSortDemo 9: { 10: public: 11: QuickSortDemo(void){} 12: ~Qu
2007-11-23 00:39:00
1406
2
转载 Effective C++学习记录之Things To Remember
对于C++程序员,Effective C++实在是必看的。最近看了一部分之后感觉每个item之后的Things To Remember非常有用,如果能总结下来时常看看思考思考,应该会相当有用,于是就想到写这篇文章,就当复习了,也希望能对学习C++的朋友有所帮助。 Item 1: View C++ as a federation of languages: Rules for e
2007-11-19 09:13:00
1552
转载 目前.net平台上的支持的语言列表
.NET Language Sites列出了目前target到.net平台的所有语言。值得一看哦,貌似比target到JVM的多哦。而且下面列举了一些关于CLR方面比较深入的书籍,很多非常值得一看的说。顺便BS下Eclipse的速度,同样是open source,怎么和sharpdevelop差距那么大呢?本来VS05的速度也很慢,不过VS08的性能就提高了很多。
2007-11-18 15:22:00
4547
原创 关于.net中反射的一个小问题
若果一个函数有个参数是传引用的,比如ref 或者out,该如何得到被修改的结果呢?请看如下的代码Int32[] input = new Int32...{1,2};txtOut.AppendText(input.Length.ToString() + Environment.NewLine);// txtOut is a multiline enabled textbox in my test
2007-11-18 15:08:00
965
原创 关于.Net安全性的两个小问题
1.如何在.Net 程序你检查当前的windows安全设置以及CAS安全设置 检查当前程序是否有admin的权限: String sddlAdmins = "S-1-5-32-544"; //Sid of administrators group IdentityReference AdminsSid = new SecurityIdentifi
2007-11-18 11:42:00
971
原创 关于NTFS的Alternate Data Streams
近日有人问起,如何在文件的摘要属性中增加一个自定义的项。起初我想到Office文档实际上是可以通过OLE来更改,但是其实有些文件比如Mp3,甚至txt文件也有摘要的,这些属性存放在那里呢,经过一番研究,发现实际上是存放在一个叫做Alternate Data Streams的地方,这个东东实际上是另外一个和当前文件相关联的文件。具体请看以下的link,并且你可以在程序中控制这个文件,最后code p
2007-11-18 01:20:00
1952
原创 P/Invoke传递的callback中会用到的一个很有用的属性
就像这个帖子中提到的,如果要调用C/C++ dll export出来的一个函数,并且要传一个callback的delegate进去,就会产生一个问题: delegate默认的函数调用约定是stdcall,但是C++端一般会要求这个callback是cdecl的。这个问题在.net 1.1中没有好的解决方法,只能反汇编你的assembly然后手动修改对应delegate的属性。 在.net 2.
2007-11-17 23:43:00
1238
原创 又一个关于反射的问题
一个客户说,他想通过load一个winform的exe来检查其中控件的属性值,比如tag,text等等。貌似合理,可他就是拿不到正确的属性。 实际上,如果你不构造一个这个form的实例,不可能拿到这些属性。你在winform designer中输入的值都被vs用codedom的方法在form的InitializeComponent中生成比如a.text = ""此类的语句,也就是说你只能在构造
2007-11-17 23:32:00
858
原创 C++学习练手之- RadixSort
using namespace std; // 把32位整数看成8位的16进制整数void RadixSort(vector& v){ vector tempStor(v.size()); vector offset(0x10); vector count(0x10); // 按照16进制对32位整数进行排序,总共进行8趟 for (int digit =
2007-11-15 10:56:00
1004
原创 C++ 学习练手 - 双向链表的模板实现
#ifndef __LINKEDLISTPRACTICE__H__#define __LINKEDLISTPRACTICE__H__ 1namespace FengChen...{ // template for double link list template class Type> class LinkedList; template class T> st
2007-11-01 17:15:00
1211
原创 C++ 学习练手 - 数组型栈的模板实现
#ifndef __STACKPRACTICE_H__#define __STACKPRACTICE_H__ 1namespace FengChen...{ template class Type> class Stack; template class T> std::ostream& operator(std::ostream& os, const Stac
2007-11-01 17:07:00
1001
原创 C++ 学习练手 - 数组型队列的模板实现
#ifndef __QUEUEPRACTICE_H__#define __QUEUEPRACTICE_H__ 1namespace FengChen...{ template class Type> class Queue; template class T> std::ostream& operator(std::ostream& os, const QueueT>&
2007-11-01 16:53:00
1323
转载 关于.net framework 2.0安装中出现的0x80131107错误的解决方案大全
Please first try the workaround in this article: Assembly load failure installing the 2.0 Framework which described an issue similar to yours.If this does not solve your problem, you can try using t
2007-10-30 11:10:00
18208
原创 算法学习,单链表 C# 泛型实现
这个链表没有暴露node接口,而是把链表本身包装成了一个Collection和List,实现了ICollection, IEnumerable, IList接口,写的过程中参考了BCL中的实现以及Wintellect.PowerCollection的实现以及写法。并且初步通过测试。namespace FengChen.Practices{ internal class ListNod
2007-10-18 20:44:00
1892
5
翻译 WinDbg 入门指导(3)-WinDbg中常用的功能以及设置
WinDbg的功能调试器扩展DLL所谓的扩展指的是一些DLL,你可以用在调试器内调用并且执行一些自定义的命令。这些DLL必须实现一些特定的函数,并且要满足一些需求,这样才能被认为是一个扩展DLL。在下一篇文章内,我们将会了解到怎样写出一个扩展DLL。所谓的bang(!)命令就是从你的扩展DLL内执行的命令。注意这些DLL是被加载到调试器的进程空间内。内存转储文件你可以使用转储功能来
2007-10-14 23:06:00
3506
6
原创 在数组中寻找主要元素的算法及其正确性证明。
在数组中寻找主要元素的算法。这个是数据结构与算法分析-C语言描述一书的课后习题2.19的解答。长度为n的数组A的主要元素,指的是在所有元素中出现次数超过n/2次的元素。(所以最多有一个而已。)下面的算法是Google出来的答案(原来是伪代码,我用C#实现了),教材上给的提示实在是难于理解。// Let T [1..n] be an array of n integers. An i
2007-10-12 17:45:00
2376
2
翻译 WinDbg入门教程(2)-各种调试场景介绍
调试场景远程调试使用WinDbg进行远程调试是很容易的,而且有很多种可行的方法。在下文中,’调试服务器’指的是运行在你所要调试的远程机器上的调试器。’调试客户端’指的是控制当前会话的调试器。· 使用调试器:你需要CDB, NTSD或者WinDbg已经安装在远程机器上。WinDbg客户端可以连接到CDB, NTSD或者WinDbg中的任何一个作为服务器,反之亦然。在客户端
2007-10-11 16:26:00
4853
5
翻译 Visual Studio 2008自动化模型的文档放出来了
VS 2008 的Automation的文档已经可用: Automation and Extensibility Reference.VSX team最近似乎专注于VSSDK的开发,最近似乎VS自身的自动化模型被忘却了。其实对于Visual Studio来说,最容易也最干净的扩展方式其实是AddIn.对于大部分人来说Package过于复杂,并且在大部分的场合也属于杀鸡用牛刀。而且Visua
2007-10-09 21:43:00
1030
翻译 WinDbg入门教程(1)-调试器的基础知识
WinDbg 入门教程介绍在我的职业生涯中,我看到我们大多数都是使用Visual Studio来进行调试,而不是用其它许多免费的调试器。你可能有许多理由来使用这样的调试器,比如,在你家里的机器上没装开发环境,但是一个程序一次次的崩溃。其实根据堆栈的dump就可以判断出IE的崩溃是否是由于一个第三方的插件。对于WinDbg,我目前为止还没有发现很好的快速入门的教程。这篇文章结合实例讨论了
2007-10-09 17:54:00
3622
原创 快速排序的C#实现以及,算法导论上之后一个习题的思考
//Divide: Partition (rearrange) the array A[p ‥ r] into two (possibly empty) subarrays A[p ‥ q - 1] // and A[q + 1 ‥ r] such that each element of A[p ‥ q - 1] is less than or equal to A[q], which i
2007-10-08 11:08:00
1042
原创 Debugging Microsoft® .NET 2.0 Applications 读书笔记(3) - 调试Bug的完整过程
Step 1: Duplicate the bug.这一步非常关键,Bug最关键的是能够Repro,因为很多时候问题往往是跟机器以及用户环境相关的。 Step 2: Describe the bug.问题最困难的不一定是在解决阶段,往往是在清晰描述的阶段。 Step 3: Always assume that the bug is yours.一般情况下,很少会有问题是
2007-10-07 11:20:00
832
原创 基于最小二叉堆的优先级队列-C#实现,以此为基础的K路合并排序算法
这两个程序实际上就是 算法导论6.5-3和6.5-8的C#实现。在Visual C# 2005下测试通过 <!--{/rtf1/ansi/ansicpg/lang1024/noproof936/uc1 /deff0{/fonttbl{/f0/fnil/fcharset0/fprq1 Consolas;}}{/colortbl;??/red0/green0/blue255;/red192/gr
2007-10-05 18:03:00
2181
原创 HeapSort的C#实现
把算法导论第六章的堆排序用C#实现了一下。 把MaxHeapify用迭代实现了。发现几个问题:第一呢,算法导论中假设内部数组是从1开始的,结果左右结点的算法和从0开始的数组实际上是不同的。第二呢,在改迭代的时候,粗心把循环变量写错了。结果调了很久,郁闷死。并且加入优先级队列的功能,包括Maximum, ExtractMax, IncreaseKey, Insert, Delete子过程下面是实现
2007-09-28 00:08:00
1400
转载 .net framework 安装问题的解决方案的一些link
.net framework 安装问题的解决方法大全:Unified .NET Framework Troubleshooting Guide 太强了,这个文章How to manually cleanup a failed .NET Framework 2.0 installAssembly installation error codes in .NET Framework 2.0
2007-09-27 16:33:00
993
转载 清除显卡的右键菜单
原文在此 http://www.x-force.cn/article.asp?id=313其实就是个 批处理文件:regsvr32 /u /s igfxpph.dllreg delete HKEY_CLASSES_ROOT/Directory/Background/shellex/ContextMenuHandlers /freg add HKEY_CLASSES_ROOT/Directory/
2007-09-27 09:22:00
734
原创 Merge Sort 并且返回逆序数的算法 - C#实现
针对算法导论第二章的 Problem 2-4的C#实现:public static Int32 MergeSort(Int32[] InputArray)...{ // Divide: Divide the n-element sequence to be sorted into two subsequences of n/2 elements each. Int32 Leng
2007-09-25 11:36:00
1296
原创 BinarySearch - C#实现
最近又重新开始学习算法,努力用C#把算法导论中的算法写一遍,并且调试通过,前段时间写的第一个算法就是BinarySearch, 同时还写了几个生成随机数组的函数,个人感觉用C#写算法的话,表达的比较清楚,毕竟算法主要讲究的是逻辑。不过这个算法我居然写了3个小时才通过各种各样的随机测试。狂汗啊!public static Int32 BinSearch(Int32[] InputArray,
2007-09-25 11:29:00
3458
原创 如何在托管程序中动态加载dll并且调用其中的函数
如果是托管的assembly,那么就Assembly.Load然后Reflection.之,从assembly -> type -> method层层推进。如果是最原始的windows dll,那只能loadlibrary和getprocaddress了。Type-safe Managed wrappers for kernel32!GetProcAddress.注意,这种方法有极大的危险性。
2007-09-21 15:20:00
938
原创 Getting IErrorInfo part of com error in Managed Code
有个客户问了如下的问题:How to Getting IErrorInfo part of com error in Managed Code?经过一番调查发现,在托管应用程序中,如果想要得到IErrorInfo中成员函数所对应的信息,就必须从产生的异常的字段中取得相应的信息。在MSDN的这个地方有详细的描述: How to: Map HRESULTs and Exceptions
2007-09-11 14:49:00
825
翻译 Debugging Microsoft® .NET 2.0 Applications 读书笔记(2) - 一个优秀的Debugger需要的基本技能
The following list contains the areas in which you need to be proficient to become a great—or at least a better—debugger/developer: 下面的列表包含了, 如果你想成为一个伟大的,至少是优秀的Debugger/开发者,需要熟练掌握的一些技能: ·
2007-09-05 16:40:00
825
原创 算法导论习题1.2的一些思考。
For each function f(n) and time t in the following table, determine the largest size n of a problem that can be solved in time t, assuming that the algorithm to solve the problem takes f(n)
2007-08-31 20:37:00
1081
1
转载 关于.net各个版本以及各个版本之间改进的介绍
.NET Framework 1.1 Class Library.NET Framework 2.0 Class Library Reference.NET Framework 3.0 Class Library Introducing the .NET Framework 3.0.NET Framework 3.0 Versioning and Deployment Q&A
2007-08-22 16:51:00
886
翻译 Debugging Microsoft® .NET 2.0 Applications 读书笔记(1) - 软件系统中Bug的来源分类
The reasons for bugs generally fall into the following process categories:· Short or impossible deadlines //太短或者干脆就不可能的工期· The "Code First, Think Later" approach //先编码,后考虑逻辑·
2007-08-21 09:20:00
880
1
转载 C# 文件搜索
C# 进行文件搜索的两个小程序 WinSearchFile: how to search files on your PC – “WinSearchFile layout is simple and quite similar to the Explorer integrated search. It is possible to write a pattern search (w
2007-08-20 16:37:00
1293
转载 C# 2.0 中的 Friend Assemblies
C# 2.0 中的 Friend Assemblies C# 2.0 allows you to share non-public types and their members with other assemblies. The assemblies to which access is granted are called friend assemblies. There are two
2007-08-20 15:38:00
1744
原创 Visual Studio Object Model中每个Project对象的所有Property 索引项
在Visual Studio的Object Model每个Project都有一个对应的Properties集合,这个就是这个集合中所有可供查询的索引项:StartupObjectManifestCertificateThumbprintTrademarkTitleVSPolicyExtenderProvider.TDLFileNameAssemblyOriginato
2007-08-17 14:28:00
1092
原创 Using Visual C++ 2005 Express Edition with the Microsoft Platform SDK
原帖地址: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1995837&SiteID=1By Brian Johnson, Microsoft Corporation You can use Visual C++ Express to build powerful .NET Framework applications i
2007-08-17 10:30:00
1322
转载 模拟office 2007 界面的.net 控件
GotDotNet User Sample: mentas Ribbon 免费的,非常漂亮。 下面是一些收费的: Office 2007 style Ribbon Control for VS.NET Elegant Ribbon
2007-08-15 16:43:00
1073
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人