none
急!!!!WP7的sdk不支持64位平台? RRS feed

  • 问题

  •         private List<Device> getDevices()
            {
                DatastoreManager dsmgrObj = new DatastoreManager(1033);
                Platform WP7SDK = dsmgrObj.GetPlatforms().Single(p => p.Name == "Windows Phone 7");
    
                List<Device> alldevices=new List<Device>();
                foreach (Device WP7Device in WP7SDK.GetDevices())
                {
                    alldevices.Add(WP7Device);
                }
    
                return alldevices;
            }
    

    上面代码在x86平台调试正常返回可用设备列表,在x64平台就出错:检索 COM 类工厂中 CLSID 为 {250BEABB-55E8-43BB-AC97-2D95674ECE14} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

    问题是,主程序要设计到64位平台下端口读写,所以必须在x64下调试,也因为如此上述代码无论用什么方法都放不进主程序,我试过做成dll、控件,都不行。问各位高手,有没有解决方法,不可能x64下就读不了设备了吧。

    出错语句:

    DatastoreManager dsmgrObj = new DatastoreManager(1033);

    2012年11月4日 9:12

答案

  • 你好,

    Windows Phone 7 SDK 是支持 x64 的。我的环境是 Windows 7 Enterprise SP1 (64-bit)& Windows Phone SDK 7.1 -ENU & Windows Phone Emulator x64 - ENU,运行测试程序没有问题。

    由于你只给了一部分你的代码,我这边都不能通过编译,也就不能重现你的错误。

    网上搜索了一下 HRESULT:0x80040154 ,一般的解决方案是使用 regsvr32 命令行注册组件。你有没有尝试过?

    你也可以参考这篇文章:http://www.cnblogs.com/chenxx08/archive/2012/06/20/2556085.html

    2012年11月5日 10:27
    版主