2013年6月13日

同时使用VS 2012与VS 2010的问题解决方法

摘要: 在已经装有Visual Studio 2010的系统中,同时安装Visual Studio 2012,安装过程很顺利,但到使用VS2012时,却出问题了。1、当保持项目为2010版本(即打开2010的项目,并且不选择更新为2012项目)编译项目时,发生下述链接错误:LINK:fatalerrorLNK1123:转换到COFF期间失败:文件无效或损坏。这是因为与VS 2010配套的cvtres.exe文件版本不正确引起的。使用下面链接中的版本替换Program Files\Microsoft Visual Studio 10.0\VC\bin路径下的同名文件。http://download.cs 阅读全文

posted @ 2013-06-13 22:58 I.AM.Wright 阅读(4702) 评论(3) 推荐(2) 编辑

2010年1月20日

ChessVista开发日记之二:核心问题

摘要: 核心问题好的,我们已经有一个关于ChessVista的基本架构了,现在要看看接下来有哪些核心问题、关键任务要解决。对于一个国际象棋程序,或者也可以说是对所有的棋类博弈程序来说吧,通常有哪些关键的问题要解决呢?首先,核心算法——即局面表示、着法生成、搜索算法和局面评估——应该是最关键的部分,此外,针对ChessVista的设计目标,还应包括设计博弈引擎的加载、通讯,设计图形界面用的棋盘控件这两个任务。由于国际象棋游戏是所谓的“信息完备”游戏,即对于所有游戏参与者来说,面对的局面是同一个,而且任何一方所掌握的棋盘、棋子的信息是一样的(相对而言,纸牌类游戏、麻将就不是“信息完备”的,因为你不知道对方 阅读全文

posted @ 2010-01-20 16:19 I.AM.Wright 阅读(1131) 评论(0) 推荐(0) 编辑

2010年1月19日

ChessVista开发日记之一: 规划

摘要: ChessVista是什么?ChessVista是一个开放的、可扩展的国际象棋人-机对弈、机器对弈环境。通过国际通用的标准引擎通讯协议,允许国际象棋机器对弈爱好者将自己的博弈引擎联入环境,与其它博弈引擎进行对弈。环境同时提供了可视的、图形化的对弈过程展示以及实时局面记录等功能。ChessVista的版本ChessVista 2010 是ChessVista的第一个版本,内部版本号为1.0。目前计划有:ChessVista 2010 Standard Edition(CVSE,标准版)ChessVista 2010 Developer Edition(CVDE,开发人员版)ChessVista 阅读全文

posted @ 2010-01-19 15:10 I.AM.Wright 阅读(1491) 评论(6) 推荐(0) 编辑

2006年8月11日

[原创] 在Windows 2000中正确显示带Alpha通道的32位图像 (修订版)

摘要: 讨论了如何在Windows 2000上利用.net 2.0 显示更具表现力的32位透明图像 阅读全文

posted @ 2006-08-11 15:31 I.AM.Wright 阅读(3758) 评论(8) 推荐(0) 编辑

2006年1月25日

[翻译]Win32中安全的子类化 (5)

摘要: Win32中安全的子类化 (1) 超类化子类化一个窗口类,导致原本属于窗口过程的消息被发送至子类化函数,然后该子类化函数再把消息传递给原窗口过程,而超类化(也被称作窗口类克隆)是创建一个新的窗口类。这个新窗口类使用一个已经存在的窗口类的窗口过程,来为它自己添加和已经存在的窗口类一样的功能,超类化是基于其它窗口类的――也被称为基类。基类常常是Windows预定义的控件类,但它也可以是任何其它窗口类。注意不要超类化滚动条控件类,因为Windows 使用该类名来为滚动条提供标准的行为。超类化拥有它自己的窗口过程――超类化过程,它能起和子类化函数一样的作用。超类化过程可以对消息实施三种动作: (1). 阅读全文

posted @ 2006-01-25 11:08 I.AM.Wright 阅读(1236) 评论(0) 推荐(0) 编辑

2006年1月24日

[翻译]Win32中安全的子类化 (4)

摘要: Win32中安全的子类化 (1)全局子类化全局子类化类似于实例子类化。应用程序通过调用函数SetClassLong对一个窗口类进行全局子类化,就象在实例子类化中一样,应用程序同样需要子类化函数的地址,并且这个子类化函数必须在应用程序中或DLL的模块定义文件中导出。要全局子类化一个窗口类,应用程序必须拥有一个该类的窗口实例。想要获得该类的窗口实例,大多数应用程序采取建立一个属于将要被全局子类化的窗口类的窗口的方法,当应用程序要移除子类化,也必须有一个窗口句柄,该句柄应该是属于应用程序要子类化的窗口类的,因此,为此而专门创建并保存一个窗口是个不错的办法。如果应用程序需要创建它所要子类化的窗口类的. 阅读全文

posted @ 2006-01-24 16:28 I.AM.Wright 阅读(1292) 评论(0) 推荐(0) 编辑

2006年1月20日

[翻译]Win32中安全的子类化 (3)

摘要: Win32中安全的子类化 (1)实例子类化SetWindowLong函数用来子类化一个窗口的一个实例。应用程序必须知道子类化函数的地址,子类化函数是这样一个函数:它用来接收从Windows发来的消息,并把消息传递给原窗口过程。子类化函数必须在应用程序中或DLL的模块定义文件中导出。应用程序子类化窗口时,使用将要被子类化的窗口的句柄、GWL_WNDPROC标志(在WINDOWS.H中定义)以及新的子类化函数地址作为参数调用函数 SetWindowLong。函数SetWindowLong返回一个DWORD类型的值,它是窗口的原窗口过程地址,应用程序应该保存该地址以用于将截获的消息传递给原窗口过程, 阅读全文

posted @ 2006-01-20 15:15 I.AM.Wright 阅读(1765) 评论(3) 推荐(0) 编辑

[翻译]Win32中安全的子类化 (2)

摘要: Win32中安全的子类化 (1) Win32子类化规则有两条规则应用到Win32下的实例子类化和全局子类化。子类化仅被允许用在进程内,一个应用程序不能子类化属于另一个进程的窗口或窗口类。这条规则的起因很简单:Win32进程具有独立的进程地址空间。在一个特定的进程里,一个窗口过程有一个地址,而在另一个不同的进程里,这个地址值并未指向这个窗口过程,结果就是,在一个进程中,使用从另一个进程获得的地址替换后的地址并不能获得期望的结果,因此32位的Windows不允许这种地址替换发生。SetWindowLong和SetClassLong函数中防止了这种类型的子类化发生。你不能子类化属于另一个进程的窗口或 阅读全文

posted @ 2006-01-20 11:49 I.AM.Wright 阅读(1764) 评论(0) 推荐(0) 编辑

2006年1月19日

[翻译]Win32中安全的子类化 (1)

摘要: 介绍Win32编程中如何进行安全的子类化。 阅读全文

posted @ 2006-01-19 15:56 I.AM.Wright 阅读(3113) 评论(2) 推荐(0) 编辑

[原创].NET应用程序的资源开发 Part 2-实战演练

摘要: 本篇主题是续上篇.NET应用程序的资源开发 Part 1-基本概念的。 关于.NET应用程序资源开发的基本概念介绍完了,也该实际演练一下了,接下来就用一个简单的WinForm例子来看一下在.NET中实现资源开发都有哪些技术,项目代码可以在这里下载/Files/tonybain/Globalization.zip。 我们首先建立一个项目,打开你的VS.NET,建立一个新的名称为“Global... 阅读全文

posted @ 2006-01-19 11:25 I.AM.Wright 阅读(1732) 评论(3) 推荐(0) 编辑

2006年1月18日

[原创].NET应用程序的资源开发 Part 1-基本概念(2006.01.19修订)

摘要: 我们知道,如果要国际化和本地化一个软件,就必须涉及到资源的处理,这些资源包括了在不同文化区域中具有不同表现形式的文字、图片、窗体或其它类型的资源。在传统的Win32程序中,通常可以使用纯资源dll的办法实现,但我们现在要讨论的是在.NET环境下如何实现这一目标,你将会发现,在.NET下,实现资源的本地化及部署过程是非常自然、方便的。 .NET资源模型 .NET使用一种叫做轮辐式模型的方式来打包和... 阅读全文

posted @ 2006-01-18 14:27 I.AM.Wright 阅读(1913) 评论(3) 推荐(0) 编辑

导航