问题描述
我需要用C ++开发用于托管Win Mobile 5/6的PDA的应用程序.我安装了VS 2005(确保包括对智能设备的支持)以及Windows Mobile 5.0 SDK.但是,当我完成安装时,我无法为智能设备创建新的C ++项目(项目创建失败").事实证明,项目对话框中的模板树在智能设备"处停止.对于C ++.但是,对于VB和VC#,它包括各种目标平台(PPC 2003,Smartphone 2003,Win CE 5.0,Win Mobile 5.0).我怀疑故障和空树之间存在联系.
我可以毫无问题地创建一个C#项目(这告诉我已经安装了智能设备支持).但是我真的需要用C ++创建该应用程序.
I can create a C# project without problem (which tells me that the smart device support has been installed). But I really need to create the app in C++.
我的开发平台是带有SP2的XP Pro.
My development platform is XP Pro w/ SP2.
我执行了完全重新安装,结果相同.我在两次安装期间都禁用了防病毒软件.我真的想不出要尝试的其他方法,我希望在那里的人可以分享他们的经验.
I performed a complete reinstall with the same result. I disabled the anti-virus software during both installs. I can't really think of anything else to try, and I hope that someone out there might be able to share their experience.
推荐答案
基本事实是:
(1) 我在Win上安装了Visual Studio 2005 XP Pro(SP2)平台. 我需要为PDA设备开发移动应用程序(Windows Mobile 5/6).
(1) I installed Visual Studio 2005 on a Win XP Pro (SP2) platform. I need to develop a mobile (Windows Mobile 5/6) application for a PDA device.
(2) 当我尝试创建默认应用程序时对于任何智能设备而言,它都无法解释而没有真正的线索.
(2) When I attempt to create a default application for any Smart Device, it inexplicably fails with no real clue.
在IE7中打开脚本调试后,我可以看到智能设备应用程序向导"中的脚本失败了. 具体地说,脚本调试器在下面标记的行上中断:
After turning on script debugging in IE7, I can see that the scripts in the Smart Device Application Wizard are failing. Specifically, the script debugger breaks on the line marked below:
/********************** ****************************************************** *******
说明:在构造基于在项目或其他用户输入上,
Description: When constructing a class name based on project or other user input,
警告用户(MessageBox)(如果已生成)类名是保留名,并且
Warn user (MessageBox) if the generated class name is a reserved name, and
在名称中添加一位数字以避免保留的名称.
add one digit to the name to avoid the reserved name.
例如:用户将项目命名为"Atl" -> C + Atl + Module是保留名称->
Ex: User names the project "Atl" --> C+Atl+Module is a reserved name -->
警告MessageBox加上生成的名称是CAtl1Module.
Warning MessageBox plus generated name is CAtl1Module.
str前缀:类名的第一部分(例如:项目名称-Atl).
strPrefix: The first part of class name (Ex: project name - Atl).
strPostfix:类名的第二部分(例如:模块).
strPostfix: The second part of class name (Ex: Module).
********************** ****************************************************** ******/
函数ConstructClassName(strPrefix,strPostfix)
{
var strCandidate;
var strCandidate;
strCandidate ="C"; + strPrefix + strPostfix;
strCandidate = "C" + strPrefix + strPostfix;
for(var i = 1; i< ; = 10; i ++)
for(var i = 1; i<=10; i++)
{
[此行失败] var bValid =(窗口.external.dte.VCLanguageManager.ValidateIdentifier(strCandidate)&&
[FAILS ON THIS LINE] var bValid = (window.external.dte.VCLanguageManager.ValidateIdentifier(strCandidate) &&
!window.external.dte.VCLanguageManager .IsReservedName(strCandidate));
!window.external.dte.VCLanguageManager.IsReservedName(strCandidate));
if(!bValid)
if(!bValid)
window.external.ReportError();
window.external.ReportError();
else >
else
break; 字体>
break;
strCandidate ="C"; + strPrefix + i.toString()+ strPostfix;
strCandidate = "C" + strPrefix + i.toString() + strPostfix;
} >
}
返回strCandidate;
return strCandidate;
}
/******************** ****************************************************** ******/
调用堆栈如下:
JScript .../SmartDeviceAppWizard/MFC/Application/html /1033/default.htm
JScript …/SmartDeviceAppWizard/MFC/Application/html/1033/default.htm
InitDocument() "
InitDocument() "
Getval() "
Getval() "
ConstructClassName()…VC/VCWizards/1033/common.js
ConstructClassName() …VC/VCWizards/1033/common.js
似乎在某种程度上找不到VCLanguageManager对象. 我不太熟悉VS的内在功能,但是有一些GUID可能不正确吗?
It seems that somehow the VCLanguageManager object is not found. I’m rather unfamiliar with the innards of VS, but is there some GUID which could be incorrect?
我得到的其他证据包括:
这篇关于Windows Mobile支持失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!