随笔分类 - C#
GDI+中常见的几个问题(4) 转
摘要:GDI+中常见的几个问题(4) 5.读图是快了,处理怎么还是慢? GDI+的Bitmap类提供了两个罪恶的函数GetPixel, SetPixel,用来获取某个像素点的颜色值。这个2个函数如果只调用一次两次也就罢了,万一我想把整张图片加红一点,用下面的代码,我估计你等到黄花菜都凉了,还没有算完呢。 看看下面的代码是怎么写的。 Code highlighting produced by Acti...
阅读全文
解决:对COM 组件的调用返回了错误 HRESULT E_FAIL 转
摘要:第一部分 调用SHDOCVW(web浏览器) COM组件的时候,返回了错误 HRESULT E_FAIL。总结如下: 1. 在控制面板--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。 2. 打开控制面板--->管理工具--->组件服务--->选择计算机--->我的电脑--->右击属性--->选择MSDTC--->选择安全配置 勾...
阅读全文
(转)AppDomain 和动态加载
摘要:http://www.microsoft.com/china/msdn/archives/library/dncscol/html/csharp05162002.asp Eric Gunnerson Microsoft Corporation 2002 年 5 月 17 日 请从 MSDN Online Code Center 下载 supergraphfiles.exe(英文)。 这个月,我刚...
阅读全文
使用AsyncEnumerator简化异步操作(yield) 转
摘要:使用AsyncEnumerator简化异步操作 上一次提到了如何跨线程访问GUI。而这个需求往往是异步操作导致的。今天我们就来看看Jeffrey Richter写的AsyncEnumerator如何帮助我们处理异步问题。 先来看看最简单的一段异步下载网页的代码: Code highlighting produced by Actipro CodeHighlighter (freeware)ht...
阅读全文
关于“Assemblies Should Have Valid Strong Names 程序集应该拥有一个有效的强名称”的分析与解决 转
摘要:关于“Assemblies Should Have Valid Strong Names 程序集应该拥有一个有效的强名称”的分析与解决 之前帮同学开发了一个游戏的小外挂,运行成功以后带着小小的虚荣心用FXCOP分析了一下,遇到了这么样一个提示: CriticalError, Certainty 95, for AssembliesShouldHaveValidSt...
阅读全文
跨线程操作GUI 转
摘要:跨线程操作GUI 无论是WIN32还是Windows Form还是WPF还是Swing,都不支持GUI线程之外的线程直接访问其API。今天我们来回顾一下这个发展过程。一个普通的操作是怎么被封装封装再封装的。 Win32 在Windows SDK时代,我们都知道,界面就是一个大的WndProc控制的。 switch (message) { case WM_PAINT: case WM_DEST...
阅读全文
C#中使用DirectSound录音 转
摘要:C#中使用DirectSound录音 一.声卡录音的基本原理 为了实现一个录音的基本过程,至少需要以下对象的支持: 1. 录音设备,对我们的PC设备就是声卡。这个录音设备可以进行的操作应该有开始和关闭。 2. 缓冲区,也就是录制的声音放在哪里的问题。 二.DirectSound对录音的描述模型 1. DirectSound对录音的支持...
阅读全文
语音合成与识别技术在C#中的应用 (转 )
摘要:语音合成与识别技术在C#中的应用 (转 ) 我们要想实现中文发音或中文语音识别,必需先安装微软的Speech Application SDK(SASDK),它的最新版本是 SAPI 5.1 他能够识别中、日、英三种语言,你可以在这里下载:http://www.microsoft.com/speech/download/sdk51/,需要安装这两个文件Speech SDK 5.1和5.1 Lang...
阅读全文
DirectX编程:[初级]C# 中利用 DirectSound 录音 转
摘要:DirectX编程:[初级]C# 中利用 DirectSound 录音 花了一阵子,把DirectX安装后自带的帮助文件中的那部分关于DirectSound录音这块给看完了,顺便把那部分翻译成了中文,有些地方可能翻译的不是很通顺,不过总体上还是能看得懂的。查看中文翻译,建议大家在进行学习前可以先去看看。 期间也看了些别人的相关文章,感觉有点思路后就开始动手了,很高兴最后...
阅读全文
共享内存操作类(C#源码) 转
摘要:共享内存操作类(C#源码) VC++的共享内存操作代码实现起来相对比较容易,但是用C#语言来实现,就有一定难度,由于工作需要,把以前VC开发的共享内存代码要用C#实现,别说,还费了不少周折,毕竟C#操作API函数和地址指针不是那么直接,还好,总算完成了,效果还不错。 共享内存操作类: using System; using System.Collections.Gene...
阅读全文
ActiveX控件中如何取得IWebBrowser2接口
摘要:using System; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; using System.Reflection; using System.Security; using System.Runtime.InteropServices; using SHDocVw; //Use...
阅读全文
NativeWindow
摘要:最近在博客里看见,有位朋友在研究如何实现 button 的双击 网址: http://www.cnblogs.com/adaiye/archive/2008/10/16/button_doubleclick2.html 他是用代码实现的其实他的精神是值得学习的,不过在按钮上加双击事件事情本身是比较囧的呵呵、我看过了了这篇文章后感慨万分,看来很多窗口开发相关的技能(所谓技能就是组成某种技术...
阅读全文
盘点.NET的性能优化策略(转载)
摘要:引言 性能是系统设计的重要因素,然而影响系统性能的要素又是多种多样,例如硬件环境、数据库设计以及软件设计等等。本文将关注集中在.NET中最常见的性能杀手,并以条款的方式来一一展现,某些可能是规则,某些可能是习惯,而某些可能是语法。 本文在分析了.NET自动内存管理机制的基础上,来总结.NET开发中值得关注的性能策略,并以这些策略作为选择的依据和平衡的杠杆。同时,本文的优化条款主要针对.NET基...
阅读全文
C# RGB与16进制颜色转换方法
摘要:#region [颜色:16进制转成RGB] /// /// [颜色:16进制转成RGB] /// /// 设置16进制颜色 [返回RGB] /// public static System.Drawing.Color colorHx16toRGB(string strHxColor) ...
阅读全文
KeyDown,KeyPress 和KeyUp 之我谈 转
摘要:KeyDown,KeyPress 和KeyUp 之我谈 最近在做一个程序,需要实现窗口下的F5 刷新功能。 研究了一下KeyDown,KeyPress 和KeyUp ,发现之间还是有点学问的。 让我们带着如下问题来说明,如果你看到这些问题你都知道,那么这篇文章你就当复习吧:) 1.这三个事件的顺序是怎么样的? 2.KeyDown 触发后,KeyUp是不是一定触发? 3.三个事件的定义 4.Key...
阅读全文
ilmerge
摘要:ilmerge /ndebug /target:exe /targetplatform:v1.1 /out:newclient.exe oldclient.exe /log AutoUpdater.dll DockingSuite.dll DocumentManager.dll FileHelpers.dll OutlookBar.dll SandBar.dll ICSharpCode.Sharp...
阅读全文
程序集的初始化及合并 转
摘要:程序集的初始化及合并 程序集的初始化及合并 摘要 : 这里探讨 .Net Assembly 的初始化与合并,很多情况下开发功能库时,需要在 Assembly 加载时就进行一些初始化行为,比如说某些 .Net 混淆器,在以前通常采用在所有类中的静态构造器中插入初始化方法,而现在,就可以仅仅在程序集初始化时就直接运行方法。 当我们要编写一些组件库的时候,必须以DLL形式...
阅读全文
彻底研究StringBuilder 转
摘要:上一篇《彻底研究String》介绍了String类型的一些性质。.NET对String的优化,能高效安全的完成一些操作,但正是这些优化导致了在进行某些操作时会占用大量的资源,如拼接字符串、修改字符串等等,高效地完成这些操作的替代类型是StringBuilder。(每次都想"彻底研究",但每次都发现研究的不彻底,写出来的更不彻底,以至于不敢用"彻底研究"等字眼了,但为与上一篇对应,暂且再亵渎一次"彻...
阅读全文
32位COM 运行于64位操作系统下 转自dudu
摘要:1、通过C:\Windows\SysWOW64\regsvr32注册组件。 2、在Visual Studio中,将编译的目标平台(Platform target)设置为:X86,然后重新统计项目。
阅读全文
彻底研究String 转
摘要:彻底研究String String是很常用的类型,但有的同学在使用过程中存在一些误区,导致效率低下,在此对其机制进行一个彻底的讨论,水平有限,如有不同的见解请留言讨论。 String [SerializableAttribute] [ComVisibleAttribute(true)] public sealed class String : IComparable, I...
阅读全文