博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2008年5月29日

摘要: 1、Arrayinstack 对于这样的struct:typedefstruct{intXY[2];}Point2D; 要在.NET为一个非托管函数传递这样一个结构体,原来得这样定义: structPoint2D { [MarshalAs(UnmanagedType.ByValAr... 阅读全文

posted @ 2008-05-29 16:54 wuhang 阅读(230) 评论(0) 推荐(0) 编辑

摘要: 简单字符串 下面是一个接受字符串参数的函数的简单示例: BOOLGetDiskFreeSpace( LPCTSTRlpRootPathName, //根路径 LPDWORDlpSectorsPerCluster, //每个簇的扇区数 LPDWORDlpBytesPerSecto... 阅读全文

posted @ 2008-05-29 15:35 wuhang 阅读(305) 评论(0) 推荐(0) 编辑

摘要: 具有回调的函数 当 Win32 函数需要返回多项数据时,通常都是通过回调机制来实现的。开发人员将函数指针传递给函数,然后针对每一项调用开发人员的函数。 在 C# 中没有函数指针,而是使用“委托”,在调用 Win32 函数时使用委托来代替函数指针。 EnumDesktops() 函数就是这类函数... 阅读全文

posted @ 2008-05-29 15:35 wuhang 阅读(270) 评论(0) 推荐(0) 编辑

摘要: 我们将在下边深入探讨在C#中使用Win32和其他库非.net托管函数的方法。 C#用户常提出两个问题:“为什么要另外 编写代码来使用windows内置功能?在框架中为什么没有相应的内容为我完成这一任务?”当框架小组构建他们的.NET部分时,他们评估了为使 .NET程序员可以使用Win32而需要完... 阅读全文

posted @ 2008-05-29 15:34 wuhang 阅读(212) 评论(0) 推荐(0) 编辑

摘要: 学习WCF已有近两年的时间,其间又翻译了Juval的大作《Programming WCF Services》,我仍然觉得WCF还有更多的内容值得探索与挖掘。学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已。 “学以致用”,如果仅仅是希望能够在项目中合理地应用WC... 阅读全文

posted @ 2008-05-29 15:17 wuhang 阅读(199) 评论(0) 推荐(0) 编辑

摘要: 基础篇 怎样创建一个线程 我只简单列举几种常用的方法,详细可参考.Net多线程总结(一) 一)使用Thread类 ThreadStartthreadStart=newThreadStart(Calculate);//通过ThreadStart委托告诉子线程讲执行什么方法,这里执行一个... 阅读全文

posted @ 2008-05-29 15:11 wuhang 阅读(287) 评论(0) 推荐(0) 编辑

摘要: 线程池的作用是什么 作用是减小线程创建和销毁的开销 创建线程涉及用户模式和内核模式的切换,内存分配,dll通知等一系列过程,线程销毁的步骤也是开销很大的,所以如果应用程序使用了完一个线程,我们能把线程暂时存放起来,以备下次使用,就可以减小这些开销 所有进程使用一个共享的线程池,还是每个进程使... 阅读全文

posted @ 2008-05-29 14:58 wuhang 阅读(311) 评论(0) 推荐(0) 编辑

摘要: 我的多线程WinForm程序老是抛出InvalidOperationException,怎么解决? 在WinForm中使用多线程时,常常遇到一个问题,当在子线程(非UI线程)中修改一个控件的值:比如修改进度条进度,时会抛出如下错误 Cross-threadoperationnotvali... 阅读全文

posted @ 2008-05-29 14:47 wuhang 阅读(803) 评论(0) 推荐(0) 编辑

摘要: 一、引言 1. 问题的引入 假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求 后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,... 阅读全文

posted @ 2008-05-29 14:41 wuhang 阅读(233) 评论(0) 推荐(0) 编辑

摘要: Don't believe everything they've told you. Threads in C# are actually pretty easy. 别相信别人告诉你的所有的事。其实C#中的线程是很简单的。 A thread is an encapsul... 阅读全文

posted @ 2008-05-29 13:02 wuhang 阅读(395) 评论(0) 推荐(0) 编辑

摘要: 1、Arrayinstack 对于这样的struct:typedefstruct{intXY[2];}Point2D; 要在.NET为一个非托管函数传递这样一个结构体,原来得这样定义: structPoint2D { [MarshalAs(UnmanagedType.ByValAr... 阅读全文

posted @ 2008-05-29 11:36 wuhang 阅读(230) 评论(0) 推荐(0) 编辑

摘要: 我们将在下边深入探讨在C#中使用Win32和其他库非.net托管函数的方法。 C#用户常提出两个问题:“为什么要另外 编写代码来使用windows内置功能?在框架中为什么没有相应的内容为我完成这一任务?”当框架小组构建他们的.NET部分时,他们评估了为使 .NET程序员可以使用Win32而需要完... 阅读全文

posted @ 2008-05-29 11:30 wuhang 阅读(246) 评论(0) 推荐(0) 编辑

摘要: 在 C# 中通过 P/Invoke 调用Win32 DLL 发布日期 : 1/13/2005 | 更新日期 : 1/13/2005 Jason Clark 下载本文的代码: NET0307.exe (133KB) 我 在自己最近的编程中注意到一个趋势,正是这个趋势才引出本月的专栏... 阅读全文

posted @ 2008-05-29 11:26 wuhang 阅读(298) 评论(0) 推荐(0) 编辑