2011-04-12 88 views
0

我创建了一个在Windows CE设备上运行的C#控制台应用程序。我在程序中有一行代码:Windows CE控制台输出转换字符串

Console.WriteLine(“Hello World”);

输出在屏幕上:11

的11是串的长度,所以是东西我的字符串转换为字符数组或什么?

我正在使用从BSP创建的SDK来定位我的设备。另外,BSP包含用于操作系统的.NET 2.0和.NET 3.5,并且我将Visual Studio 2005用于我的控制台应用程序。

有没有人曾经在.NET控制台应用程序中见过这个?谢谢。

更新:我试图创建一个基本的Windows窗体应用程序,并在我的设备上运行该应用程序。这次我得到了一个实际的错误“System.Windows.Forms dll无法找到”,所以这表明.NET未正确安装。我将它包含在Platform Builder目录中,所以我不确定还有什么可能会丢失。有任何想法吗?

+0

我做了很多Windows Mobile开发,有时候典型的重载不可用。查看SDK中的Console.WriteLine()参数。我不用这个特定的SDK运行,所以这可能不是你的答案。 – jp2code 2011-04-12 18:40:34

+0

谢谢。我确实看了一下,intellisense确实包含了一个字符串参数的重载 – 2011-04-12 20:59:01

回答

0

我从来没有见过这样的事情,而且我见过很多CF行为。

首先,不要在操作系统中放入CF 2.0和3.5。永远。由于SYSGEN重叠,它们不会共存于操作系统映像项目中,而且由于3.5运行时可以加载和运行2.0二进制文件,因此它是不必要的。

你确定你唯一的代码是那一行吗?你确定你正在运行你所看到的代码的应用程序(即它没有错误地运行旧的或不同的版本)?发生这种情况时你处于断点吗?

+0

感谢您的建议。我删除了一个.NET框架,所以只有一个安装在操作系统映像中,但这对我没有帮助。是的,我使用VS 2005运行应用程序,并在程序 – 2011-04-12 20:59:38

+0

中的一行代码中设置断点。如果执行Debug.WriteLine(“Hello World”)调用,会发生什么? – ctacke 2011-04-12 21:38:01

0

我终于搞定了,但我仍然不确定确切的问题是什么。

“修复”是从一个全新安装的Windows XP,Visual Studio 2005和Windows Embedded CE 6.0以及所有最新的QFE开始的。

重建OS映像后,我的两个测试应用程序开始按预期工作。