更新:2007 年 11 月
TilePuzzle 示例说明几个主要的 Visual C++ 功能:
此示例包含用几种新技术(C++、C# 以及与 COM 相关的新属性)实现的组件。
此示例说明托管组件(用 C++ 和 C# 编写)和本机组件(使用 COM 属性用 C++ 编写)之间的互操作性。
本示例实现一个称为 Tile Puzzle 的初级智力游戏。示例将加载一个位图,将该位图拆分成若干个图块(由用户确定数目),并随机打乱图块的顺序。然后,用户任意滑动各个图块,直到显示原始图片为止,游戏即告成功结束。除了这些功能外,示例还可以使用用 C++ 和 .NET Framework 类编写的启发式搜索算法完成拼图。
![]() |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 |
获取示例和安装示例的说明:
在 Visual Studio 的“帮助”菜单上,单击“示例”。
有关更多信息,请参见定位示例文件。
示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。
还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。
生成并运行示例
使用 Visual Studio 生成并运行 TilePuzzle
在 Visual Studio IDE 中,加载解决方案文件 PUZZLE.sln。
在解决方案资源管理器中,右击解决方案 PUZZLE。
在快捷菜单上单击“生成解决方案”。
在“调试”菜单上单击“启动”。
项目成功生成后,尝试自己完成拼图。
示例结构
下面是基本结构:
![]() |
---|
未实现保存和加载游戏功能。 |
为了从托管 .NET Framework 对象内部访问本机 COM 组件,示例使用了 TLBIMP.EXE 来生成 .NET Framework 代理 dll。
类
此示例说明下面的类:
System.Windows.Forms.Form – 实现 PUZZLE 项目中的 AboutForm 对象。
System.Object – 实现 PUZZLE 项目中的 GameLevelEnum 对象。
System.Delegate – 实现 PUZZLE 项目中的 SolveThreadProcDlg 对象。