- 博客(24)
- 收藏
- 关注
原创 搬家了!
为什么没有Blog导出的功能,用了一天时间实验各种工具,结果失败。最后花了十几分钟 ,用手工的CP大法把文章转移到了新的服务器上,还真是辛苦。新的Blog地址是: http://blog.hanmingsoft.com
2007-11-14 14:55:00
583
原创 使用MinGW和MSYS时的问题
在MSYS中编译程序的时候,会出现"权限不足"的错误,其原因是没有设定临时目录,可以用以下命令解决该问题。$ export TMP=/c/temp或$ export TEMP=/c/temp
2007-08-14 00:53:00
932
原创 委托,让封闭的系统走向开放!
.NET下的委托概念主要用来实现类似回调函数的功能,但他是线程安全的并且没有静态函数的限制,使用起来非常灵活,其中众所周知的就是用来实现事件编程。其实最为回调函数的一种变形来说,完全可以将一个系统内部的功能透过委托来让外部程序使用。大概的逻辑如下: 1.外部程序定义委托 2.内部程序封装委托的方法以供调用 3.外部程序动态加载内部封装好的程序集来完成功能调用这样做的优点是程序集间的耦合比较弱
2006-12-15 15:38:00
1070
原创 用VC实现DoEvents
VB下有一个DoEvents方法,可以让程序在执行操作的同时仍可以处理其他事件,用这个方法可以有效地解决画面无法刷新的问题。VC下的DoEvents版本的代码如下:MSG msg;while (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE) ) { TranslateMessage(&msg); DispatchMessage(&msg)
2006-12-15 14:56:00
4931
1
原创 升级MFC到.NET之一:CFont转换为Font
原因:MFC下的CFont类型提供了对Windows下字体操作的封装,现有MFC项目的逻辑部分把创建好的CFont传递给画面来进行显示,所以在把CWnd类型的画面转换为Form类型后,需要将CFont类型转换为Drawing::Font类型来设置Form画面的字体。解决方法:利用CFont的GetLogFont方法能够获取字体的逻辑结构,Drawing::Font也具有一个FromLogFont的
2006-12-13 11:07:00
3795
原创 WPF到来了,WEB开发会面临重新洗牌吗?
以微软强大的营销能力,Visit的流行将会成为不争的事实。但WPF将会顺风顺水的成功,重新掀起一场GUI领域的大洗牌,我看结果未必。 WPF不乏创新,大有气吞河山、一统WEB以及桌面软件的雄心壮志,但个人认为正如微软的.NET战略一样,规模过于庞大 ,同时要在两个战场开战,很难在短期内完成既定目标。而技术领域的创新是日新月异的,如果一项技术在短期内不能迅速
2006-11-24 14:10:00
3455
1
原创 System::Drawing::Bitmap向CBitmap转换的方法
在C++/CLI编程时,想使用Drawing名空间下的Bitmap类来支持多种图像格式的处理,由于画面上的显示接口使用的是MFC下的CBitmap。需要通过一段代码来完成转换,例子代码如下:System::Drawing::Bigmap^ bmp = gcnew System::Drawing::Bigmap(filename);HBITMAP hBmp = (HBITMAP)bmp->GetHb
2006-11-22 15:56:00
2324
2
原创 规范化XML名称中的无效字符
客户的原有程序中,使用了大量的INI文件来保存系统的各种参数配置。为了方便共享这些配置信息,客户想使用XML格式来进行读取和保存。具体的开发任务就是实现一个XML的访问接口,自动进行读取和转换。在开发的过程中,发现原有INI文件中的部分Key字符不符合XML的规范,进行读取和保存的时候会出现错误。 为了解决这个问题,开始考虑过自己实现一套转义的方法,但是考虑到比较繁琐
2006-11-15 17:36:00
3574
1
原创 MakeUpper产生的异常
原来的程序升级到VC2005后,有时会出现莫名其妙的异常,经过艰苦的调试后发现原来是MakeUpper导致的异常。通过多次的测试后发现,如果字符串中包含半个汉字的时候,可能会出现这种异常。比如下面的代码中,就会抛出异常。CString str = "测试代码";str.Mid(0, 7);str.MakeUpper(); //抛出异常 查了许多资料
2006-11-15 17:04:00
2725
原创 ADO.NET下的各种连接字符串
收集了ADO.NET下四种Provider的连接串写法,记下来方便查找:SQLSERVER:"Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=Northwind;server=(local)""Initial Catalog=Northwind;Data Source=(local);User ID=sa;
2006-11-15 11:31:00
1027
原创 Thinking in WEB2.0 - 程序员的视点
有人拿中国的软件业和中国的足球相比,被认为是扶不起的阿斗。个人认为比喻欠妥,全面来看,深受国外软件公司和盗版围困的国内软件产业一直在努力发展,所 欠缺的只是很好的机会而已。 曾经有人提到的ASP方式应该是最适合中国国情的解决方案,但由于硬件的不足,资金的问题,较高的开发难度,并不能在祖国大地上遍地开花。 现在,WEB2.0已经昭示了草根时代的到来,对于艰难发展的微型软件公司,如果能
2006-11-14 18:16:00
905
原创 用gcroot定义托管类型的全局变量
托管对象是不能定义成全局变量来访问的,解决这个问题的办法依然是gcroot ,代码如下:gcroot* g_pMyClass = new gcroot;void CreateMyClass(){ *g_pMyClass = gcnew MyClass(); // *g_pMyClass得到的是IMyClass类型的追踪句柄}void main() { CreateMyClass()
2006-11-14 16:22:00
10975
原创 C# on rails! 基本信息CRUD操作的简单实现
在信息系统的开发中,经常需要对大量的基本信息开发“添加,更新,显示,删除”操作,针对这些功能去写相应的SQL语句的工作是相当的繁琐和易出错的,而使用ORM组件的话,又要进行复杂的配置和学习,并且在实现业务功能的时候,这些组件的对应方式也是相当复杂和有难度的。 在实际的开发中,想把问题一分为二,基本信息的维护(CRUD)操作使用自己实现的简单ORM类来进行解决,复杂的业务处理还是使用
2006-11-14 13:24:00
1535
原创 封装原有C++程序为可引用的.NET组件的方法
随着应用要求的不断提出,现有一套使用MFC开发的系统急需升级到.NET已扩展功能。但是,在画面处理、数据访问、报表处理方面,MFC与.NET都有一套实现的方法,想对原有这部分的处理功能提出来抽象出接口,用MFC与.NET分别实现之,达到完全继承原有功能并能拓展新功能的需求。具体的处理方法如下:1. 新建MFC的DLL,导入需要处理的源程序,并 编译通过;2. 修改Project的属性设置,使其
2006-11-13 18:45:00
1607
原创 System::String向CString转换效率最高的方法
关于String::String向CString转换,在http://support.microsoft.com/kb/311259中介绍了三种转换的方法,经过实际测试,采用以下方法的效率是最高的://using namespace System::Runtime::InteropServices;System::String^ str = "A test string.";char* str2
2006-11-13 18:04:00
2922
原创 ACCESS数据库中TEXT字段的真实长度
解决了一个困扰我两个多小时的问题,居然是由于对ACCESS中的TEXT字段的长度没有弄清楚导致的。为客户做的一个用ADO.NET封装的数据访问类, 在析构时居然发生了非法存取的错误,初步分析应该是内存越界导致的。仔细查了几遍代码后,发现应该没有问题。然后多次测试后发现,当使用Oracle的链接时不会出错,于是开始STEP BY STEP, 在走了几条数据的时候突然发现,ACCESS数据库中长度
2006-11-13 15:19:00
7350
2
原创 解决引入本地类型而导致C3767错误的方法
以下代码编译时产生C3767的错误:// 在lib1.dll中包含以下两个文件// def.htypedef struct _STU{ int type; ...} STU;// my.cpp1 #include "def.h"2 3 namespace MySpace4 {5 public ref class MyClass6 {7
2006-11-08 18:12:00
1790
原创 在C++/CLI的本地类中包含托管类成员变量的方法
使用gcroot可以实现在 C++/CLI的本地类中包含托管类成员变量,示例代码如下:#include // 必须包含vcclr.h头文件//test.husing namespace System::Data;class native{public: native() { m_pConn = gcnew gcroot; //这里应该是为gcroot分配存
2006-11-08 17:54:00
1480
原创 Tips:加载资源文件的简单方法
看到一段有意思的代码:namespace ConfigurationReadXmlQuickStart{private void Form_Load(object sender, System.EventArgs e){ // Initialize image to embedded logo this.logoPictureBox.Imag
2005-06-09 17:16:00
1090
原创 解决IIS启动时出现0x8ffe2740的错误
启动IIS出现0x8ffe2740的错误,原因是别的程序占用了80端口,将IIS的默认端口改成大于80就可以解决,启动成功后再改回80,再次启动就没有错误了,如果再出现500的错误,重装一下IIS即可解决。 参考网址: http://support.microsoft.com/default.aspx?scid=kb;en-us;816944
2004-11-12 18:28:00
2074
1
原创 接受改变:从VB程序员到VB.Net程序员
化蝶:从VB到VB.NET的编程体会(一) 一、接受开发工具的升级,但仅此而已。工具是更好用了,程序还基本是原来那样写,套用一句老话:没有银弹。二、首先要关注的是构架,也就是整个系统的结构。有许多好的构架可以利用,不用事事都自己动手,但一定要理解,并且多做练习。三、学一些面向对象的概念,比如对象的封装性、继承性、多态性。四、充分利用VB6到VB.Net的迁移工具,由此可以熟悉一
2004-10-29 14:59:00
916
原创 关于软件维护工作的几点体会
关于软件维护工作的几点体会 一、一定要明确工作的内容,不确定的地方要及早提出质疑,每个人都要能够用一句话表达自己对工作内容的了解。另外,维护工作内容中没有提到的变更坚决不允许去做,多做了就是画蛇添足。二、时间再紧也要进行项目业务的分析和理解,包括系统的业务背景,数据库(表)间的关系,本模块的业务工作等。担当人员更要能从较深的层次理解系统,并合理的划分工作。三、把项目的维护过程看成测
2004-10-26 11:05:00
4488
3
原创 开始Asp.Net学习之旅
三年前的今天我刚到西安,在同学的宿处睡醒后到了街上,看着喧嚣的人群,听着一个个夸张的消息,才知道美国被炸了,后来这个事件震惊全球。理所当然,这个日子我也就成为了我学习,工作的里程碑。 三年前的我一心想成为一个真正的程序员。也就是怀着这个梦想,我放下了工作,扔掉心中所有的顾忌和牵挂,来到了这个西北最大的城市,开始了寻找工作的历程。那时的我,专业不是计算机,文凭也只是
2004-09-11 17:00:00
834
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人