代码改变世界

【图文】[新手]C++ 动态库导出函数名“乱码”及解决

2013-09-09 14:53 by uonun, 2124 阅读, 0 推荐, 收藏, 编辑
摘要:详细图文介绍如何导出 C++ 动态库的函数, 并解决导出函数乱码的问题, 面向新手.:D. 阅读全文

C# 中使用不安全代码(unsafe、指针)实践

2013-09-03 11:30 by uonun, 2237 阅读, 1 推荐, 收藏, 编辑
摘要:根据指定的字符集合(字典),按排列组合的规则(允许重复),生成指定长度的所有字符串。 投石问路:假设长度固定 方案一:我们来多循环几次(循环拼接字符串) 方案二:不用字符串,使用不安全代码(循环拼接字符串Unsafe版) 方案三:换个角度看问题(字符串模拟数字依次循环进行进制转换) 方案四:小学的加法运算正闪闪发光(字符串模拟数字依次自增+1) 方案五:再次改写,不用字符串,使用不安全代码(字符串模拟数字依次自增+1的Unsafe版) 方案六:闲来没事(1):Fixed-point combinator 方案七:闲来没事(2):Fixed-point combinator + Unsafe 双剑合璧 阅读全文

Visual Stuido 2010/2012 扩展:Quick Launcher,快速打开指定文件

2013-08-13 16:38 by uonun, 1959 阅读, 2 推荐, 收藏, 编辑
摘要:Quick Launcher 是一个极其简单但实用的 Visual Studio 扩展,支持 Visual Studio 2010/2012,它能让你很方便快速地从解决方案中找到你想要的文件并打开它,以避免人工地打开一层层目录寻找,特别是在解决方案日益庞大、文件夹层次较多的情况下,此扩展尤为适用。相同功能类似 Visual Studio 2012 的快速启动和 Eclipse 的Ctrl+Shift+R,但比他们更易用更方便. 你只需在输入关键字后按方向键“下”选定你要打开的文件,再“回车”即可打开文件!从此告别在解决方案中一层层目录寻找文件的痛苦! 阅读全文

.NET中简易实现线程安全

2012-09-10 19:32 by uonun, 466 阅读, 0 推荐, 收藏, 编辑
摘要:在.NET中要实现线程安全,可有多种途径:1. 使用 lock 关键字:1usingSystem;2usingSystem.Threading;34namespaceUDNZ.SynTest5{6classProgram7{8staticint_x=0;9staticint_n=1000000;10staticobject_lock=newobject();1112staticvoidMain(string[]args)13{14EventWaitHandlew1=newEventWaitHandle(false,EventResetMode.AutoReset);15EventWaitHan 阅读全文

献给善良的人

2011-07-21 12:58 by uonun, 306 阅读, 0 推荐, 收藏, 编辑
摘要:前不久,在CorePlex微博上无不感慨地说了句:“情商太高了,如果不干需要高情商才能干好的职业,那这情商还真成了累赘。”。有朋友不理解:“情商高还是缺点,不理解”,微博上也未能解释。 前天夜里一夜无眠,看《简·爱》至凌晨6点过,放下书后,没来由又想起了这句感慨,于是当即用手机记录下当时脑海中的所感所想,现抄录于下——感情细腻之人,往往温文尔雅而不会豪气洒脱;多愁善感之人,往往患得患失而不会果断干练;正直善良之人,往往执著真我而不会唯利是图。你能指望小龙女像洪七公那样有了烧鸡就忘记一切忧愁烦恼吗?不能;你能指望林黛玉如薛宝钗一样心如明镜落落大方吗?也不能;你能指望许仙卖假药发家致富, 阅读全文

CorePlex开发手记:二、Winform与其中的WebBrowser控件的交互

2011-07-10 19:45 by uonun, 784 阅读, 1 推荐, 收藏, 编辑
摘要:一年多以前,写过这么一篇文章:基于IE内核的浏览器:WebBrowser上的网页与Winform本身交互[Demo下载],其中演示了WebBrowser与其宿主Winform之间的交互,实现在WebBrowser的C/S程序中调用其网页上的Javascript函数,甚至反过来在网页的Javascript代码中调用C/S程序中的方法。而最近在开发 CorePlex 的过程中,却无意发现,原来 WebBrowser 本身就有一个用于交互操作的成员:MSDN上这样说:使用该属性启用 WebBrowser 控件承载的网页与包含 WebBrowser 控件的应用程序之间的通信。使用该属性可以将动态 HT 阅读全文

CorePlex开发手记:一、Winform窗体皮肤及简单换肤机制

2011-07-10 19:25 by uonun, 3663 阅读, 9 推荐, 收藏, 编辑
摘要:前言: CorePlex代码库 作为一个Visual Studio插件, 允许用户通过VS直接访问在线代码库。开发过程中我翻阅了很多网上的资料,也总结了一些技术要点,现写成系列文章,以飨读者。同时,里面某些技术也是我第一次使用,如有不对的地方,还请行家狠拍,欢迎大家指正~闲话休絮,进入正题。从本篇文章开始,介绍 CorePlex 的窗体皮肤机制,以及简单的换肤功能。我们先来看看效果:换一个皮肤看看:需要实现的是圆角窗体+四周的阴影,要实现这个,大致的思路是这样的:先使用 Graphics 绘制一个 Bitmap,将需要的皮肤绘制成一个内存图,然后使用 Win32的API:UpdateLayer 阅读全文

SQL Server数据库查询区分大小写、全半角——排序规则的应用

2011-01-21 23:59 by uonun, 771 阅读, 0 推荐, 收藏, 编辑
摘要:因为偶然的原因,需要在INNER JOIN联表时,让对应字段进行区分大小写的比较。而默认情况下建立的Sql Server数据库是不区分大小写的,这个需求怎么实现呢?要实现这个需求,至少有三个操作级别来实现:1. 数据库级别:整个数据库中的char、varchar、text、nchar、nvarchar 和 ntext 数据都区分大小写。(为描述方便,下文不再明确强调这些数据类型。)但这样做有个明显的坏处,那就是整个数据库的这些字段的比较,都要进行严格匹配。比如下面的两条Sql语句会得到完全不同的两种结果:SELECT * FROM [TABLE] WHERE [COLUMN] LIKE ‘%K 阅读全文

阿凡达:文明,这是一个哲学命题

2010-06-15 03:52 by uonun, 287 阅读, 0 推荐, 收藏, 编辑
摘要:一个非常喜欢看电影的人,但一则电影票贵,二则没有找到想约之看电影的那个人,于是直到今天才在网上看了盗版。不过,无论怎样,还算是看了吧。之前“被了解”了很多关于阿凡达的东西。那几张海报看的已经开始反胃了,那些恶搞染了蓝色就自以为自己是阿发达了。当然,还有魔兽。我本是热爱魔兽的,听他们说阿凡达里的美景和形式很多都酷似魔兽——他们恨不得说是抄袭魔兽,不过我要说句公道话:阿发达是阿凡达,魔兽是魔兽。呵呵,争论。想必那些争论阿凡达和魔兽的人已经进行疲惫不堪偃旗息鼓了,但我想说的是,那些认为阿凡达抄袭魔兽的人,那些涂了蓝色就说自己是阿凡达的人,其实他们并没有看懂这部电影。我认为,阿凡达的非凡之处,并不在于 阅读全文

基于IE内核的浏览器:WebBrowser上的网页与Winform本身交互[Demo下载]

2010-05-30 12:54 by uonun, 473 阅读, 0 推荐, 收藏, 编辑
摘要:本文旨在演示WebBrowser控件上的代码(Javascript、Html Dom)与Winform控件本身的交互,实现在WebBrowser的C/S程序中调用其网页上的Javascript函数,甚至反过来在网页的Javascript代码中调用C/S程序中的方法。以下示例点到为止,比如“B/S Dom对象的事件”示例中,除了用onchange/onpropertychange之外,其他任何支持的html事件均能使用,如onclick、onkeydown等等。 例子中没有详细列出可以应用的方式和使用范围,但我们加以思考,触类旁通,可以实现很多很多功能的。全文及Demo程序下载见:http:// 阅读全文

用作业实现自动备份MSSQL数据库到远程服务器

2010-05-16 19:52 by uonun, 412 阅读, 0 推荐, 收藏, 编辑
摘要:--此代码实现SQL数据库远程备份,放到作业里面执行可以自动备份数据库、自动删除@keepNDays天前备份。--此代码将本地所有的用户数据库备份到共享目录“\\backupServerIp\ShareName\数据库备份”下。--并删除天前的备份文件。要备份成功必须能够对共享目录有操作权限!sp_configure 'xp_cmdshell',1GORECONFIGUREGO--创建映射execmaster..xp_cmdshell 'net use T: \\backupServerIp\ShareName "password" /user:uo 阅读全文

【WM6.5】三星I8000按键码及窗体消息发送的方法备忘

2010-05-16 19:51 by uonun, 288 阅读, 0 推荐, 收藏, 编辑
摘要:平时喜欢听收音机,但三星I8000无法用线控接听键为收音机换台,很不方便,想做一个小程序解决这个问题,于是分两步走:拦截线控接听键以某种方式控制收音机换台(如系统消息等)在第一步的过程中获得了部分按键的代码:音量大:F6 音量小:F7 锁屏键:F22 拨号键:F3 挂机键:F4 水晶键(单击):HardwareKeys.ApplicationKey1,e.KeyCode=193 水晶键(按住):HardwareKeys.ApplicationKey2,e.KeyCode=194,F2 返回键:HardwareKeys.ApplicationKey3,e.KeyCode=195 线控接听键:F3 阅读全文

c#.NET中开发可用于Web网页的ActiveX控件

2010-04-09 21:40 by uonun, 387 阅读, 0 推荐, 收藏, 编辑
摘要:一、COM可见及GUID项目属性 –> 应用程序 –> 程序集信息:为程序生成一个GUID填写在此处,并勾选“使程序集 COM 可见”二、修改AssemblyInfo.cs文件://添加一行命名空间using System.Security;//添加一行标记[assembly: AllowPartiallyTrustedCallers()]三、类的实现1. 标记GUID[Guid("88E22812-2AFF-4c87-AB0B-D3C650BB9BF8")]public partial class OcxTest : UserControl{}2. 声明IOb 阅读全文

使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。

2010-03-28 18:35 by uonun, 792 阅读, 0 推荐, 收藏, 编辑
摘要:使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。 理论上支持任何HTTP 1.1 协议谓词,不过就实际使用情况来说,仅对GET/POST方式进行了测试,其他谓词并未测试。/// /// 使用HttpWebRequest发送HTTP请求,同时支持GET/POST方式提交。/// /// 要访问的URL地址/// /// 任何HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或OPTIONS。/// 页面使用的编码/// /// /// 请注意:/// /// 中如果有中文,则需要使用Uri.EscapeDataStri. 阅读全文

C#中如何获取一个字符串的实际字符数

2010-03-28 18:32 by uonun, 2956 阅读, 0 推荐, 收藏, 编辑
摘要:在包含中文的字符串处理时,除了裁切固定长度的操作之外,有时也需要获取一个字符串的实际字符数,比如我们限制输入框字符数的时候。而C#提供的string.Length属性却无法满足我们的要求,由此,便有了下面这个方法:/// /// 获取字符串长度。与string.Length不同的是,该方法将中文作 2 个字符计算。/// /// 目标字符串/// public static int GetLength(string str){ if (str == null || str.Length == 0) { return 0; } int l = str.Length; int r... 阅读全文

[海康开发笔记]将内存片段格式化为C#类对象时需要注意对象的字段顺序

2010-03-28 18:28 by uonun, 381 阅读, 0 推荐, 收藏, 编辑
摘要:将内存片段byte[] data 格式化为结构或类实例时,结构/类的属性或字段定义顺序将影响格式化结果。如海康设备向注册中心发送的数据表中,包头信息类的定义:/// /// 设备向服务器:MsgRetHeader /// [StructLayout(LayoutKind.Sequential)]public class MsgRetHeader : CmdHeader{ /// /// 海康与平台厂家协商定义的标记,此标记在前端PU与平台对接中保持一致,不能单方面修改,现阶段信令部分为0x53584C54,码流部分为0x53585354 /// public uin... 阅读全文

C#中查询字符串中是否包含指定字符/字符串,使用IndexOf还是Contains?

2010-03-28 18:27 by uonun, 6086 阅读, 2 推荐, 收藏, 编辑
摘要:C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下:using System;using System.Diagnostics;namespace ConsoleApplication1{ class Program { private const int N = 10000000; private static Stopwatch watch = new Stopwatch(); static void Main(strin... 阅读全文

[.axd]“WebForm_PostBackOptions未定义”及其他相关问题的相关解决方法

2010-03-28 18:24 by uonun, 754 阅读, 0 推荐, 收藏, 编辑
摘要:一个.NET的web项目,本来运行得非常好的,突然之间报了WebForm_PostBackOptions未定义这么个js错误,然后导致了页面无法PostBack,很严重,很生气。顺藤摸瓜,毕竟"WebForm_PostBackOptions"这个东西并不是我自己定义的,看样子,有点像微软的东西,于是便摸到了源代码中的这句:相信做.NET的同仁已经对这句代码都习惯了,这个是微软自动生成的动态JS文件,用于支持ASP.NET中WebForm的一些基本代码。但今天的问题就恰好出在这里,我直接在浏览器访问这个地址,果然,产生了服务器异常,JS根本就没有输出出来。(以下异常由uoLi 阅读全文

C#中使用API(SHFileOperation)进行文件操作,特别说明了回收站相关参数

2010-03-28 18:22 by uonun, 820 阅读, 0 推荐, 收藏, 编辑
摘要:项目中使用了磁盘阵列柜,每秒有上百兆的数据存入磁盘,这就有了从磁盘删除文件的需求。为了满足这一需求,我做了一个用于删除过期数据的系统服务。说来这个东西本身是很简单的,但是由于数据量的巨大价值磁盘阵列空间容量的巨大(8T,1T=1024G),在实际操作中也遇到了不少麻烦。需求很简单,遍历磁盘指定目录下的所有目录和文件,根据一个比较规则判定文件是否过期,如果过期就删除。最初的设计也很简单,三个步骤:遍历 -> 过期检测 -> 删除。有了需求和程序框架设计,于是开始实施。在C#中,DirectoryInfo和FileInfo为我们提供了足够的方法,在程序第一次成型的时候我主要使用了下面的 阅读全文

在C#中截取指定长度的中文字符串(效率提高2500倍)

2010-03-28 18:17 by uonun, 927 阅读, 0 推荐, 收藏, 编辑
摘要:C#中字符串截断本没有那么麻烦,问题就出在string.Substring()这个方法将中文也按一个字符计算,导致我们在实际应用中截取字符串(中英文组合)后的“长度”不一致。国际惯例,在网上搜索了一下,大致得到了两中截断算法: 1. 从起始位置取得字符 -> 逐一用正则表达式匹配 -> 拼接成最终字符串。(这是广为流传的方法,也是效率最低的方法。) 2. 从起始位置取得字符 -> 逐一用ASCII比较 -> 再拼接成最终字符串。相比之下,算法2比算法1高明,毕竟ASCII比较比正则表达式的执行效率更高。但最终,我仍然没有使用算法2,而是进行了进一步的优化:public 阅读全文

C#中IP地址与数字之间的互转(网上流传的方法有Bug)

2010-03-28 18:15 by uonun, 417 阅读, 1 推荐, 收藏, 编辑
摘要:ConvertIPAddressToNumber项目中有IP与Int32类型相互转换的需求,于是在网上搜索了相关代码,但发现网上的代码有Bug,加以修改发布如下:/// /// 将IPv4格式的字符串转换为int型表示/// /// IPv4格式的字符/// public static int IPToNumber(string strIPAddress){ //将目标IP地址字符串strIPAddress转换为数字 string[] arrayIP = strIPAddress.Split('.'); int sip1 = Int32.Parse(arrayIP[0]); . 阅读全文

Vista/Win7操作系统(64位)+IIS7设置常见问题

2010-03-28 18:14 by uonun, 680 阅读, 0 推荐, 收藏, 编辑
摘要:注:以下内容同样适用于 Windows 7 系统。自从装了Vista(64位),问题就一个一个来。现在就连IIS(7.0.0.0)里运行一个简单的ASP程序都出问题了。在开始正文之前,我想纠正一些错误认识:Vista + IIS7支持Asp+Access无需更改应用程序池。 以我自己的实践证明,使用默认的DefaultAppPool即可,你甚至可以停用Classic.NET AppPool。Windows Vista Enterprice版本同样含有IIS,当然也可以安装IIS。 Windows Vista Enterprice:这个版本在Windows Vista Business的基础上增 阅读全文

uoLib - .Net 项目基础类库 基于C#, 可用于.Net Framework 2.0/3.5, 免费下载使用

2009-04-29 01:56 by uonun, 519 阅读, 0 推荐, 收藏, 编辑
摘要:最新程序发布页面:http://work.udnz.com/uolib/在线帮助文档:http://work.udnz.com/uolib/SDK/CHM帮助文档:http://work.udnz.com/uolib/SDK/uoLib.chm这个类库中包含了大量 .NET 程序所需的基础类,特别是数据库操作类、异常捕获类,已在多个企业级项目中使用。使用uoLib将使您在项目开发更加快捷方便:1. 提供运行时错误的输出、日志记录功能。[强烈推荐]发现问题是解决问题的一半。系统提供了专用于捕获运行时异常的类,可以将这些运行时异常深入地捕获并输出出来。输出格式可以是.txt文本文件、.htm网页文 阅读全文

UoBlog 支持 MetaWeblog Api,可以使用 Windows Live Writer 离线发表日志

2008-10-23 06:03 by uonun, 246 阅读, 0 推荐, 收藏, 编辑
摘要:UoBlog 博客系统 内含 MetaWeblog Api,可以通过任何支持该API的客户端程序发表日志。您的 Api 地址应该是:/MetaWeblog.ashxApi 地址示例:http://blog.udnz.com/MetaWeblog.ashx下面以 Windows Live Writer 为例,示意如何配置 MetaWeblog Api 客户端进行离线发表日志。首先,您需要下载 Windows Live Writer .正常安装之后,开始配置。将您的 UoBlog 博客账户添加到Windows Live Writer。如果您在前面的“是否允许 Writer 创建临时日志”处选择了是 阅读全文

又注册了一个博客,mark之,以后用API发表

2008-08-30 22:03 by uonun, 229 阅读, 0 推荐, 收藏, 编辑
摘要: 阅读全文