首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

WP8支持什么语言?什么CPU?该怎么解决

2012-12-31 
WP8支持什么语言?什么CPU?最近常常找些windows 8 和windows phone 8 的新闻看。主要就是看软件的移植问题、

WP8支持什么语言?什么CPU?
最近常常找些windows 8 和windows phone 8 的新闻看。主要就是看软件的移植问题、语言问题。

我学过C++、MFC、winsock。

前几天看见个网站说WP8不支持C++,给出的原因是手机的CPU太多,而C++编译出来的程序是针对特定CPU的。所以WP8只支持C#一类的语言,因为他们有虚拟机!!
我这又看见个网页,又说WP8支持C++。支持C++之后C#程序员又要处于劣势了,因为C#不如C++程序快。这个网页还说目前WP8只支持高通公司的CPU。
下面是网页的一段话:
高通是 Windows Phone 8 目前支持的唯一芯片供应商。诺基亚两个月后发布的新旗舰显然会采用 Krait 内核的骁龙 S4 处理器。新系统也开始支持 SD 卡扩展存储。


WindowsPhone8支持C++,意味者新平台上.net C#开发者面临困境,
很简单的道理,同样一款类似的应用,人家用C++写的比你的内存占用小,速度更快,体验自然更好
从游戏基于directX看,现有的C#程序员毫无优势可言,传统桌面游戏商在C++、DirectX上有深厚积累,比如物理引擎,AI算法,而且C++速度更快,这其实说明微软已经抛弃了原来的只会silverlight、wpf之类的C#开发者。


在看看下面百度百科的一段话:
Windows Phone 8采用和Windows 8相同的针对移动平台精简优化NT内核并且内置诺基亚地图,这标志着移动版Windows Phone将提前与Windows系统(ARM)同步,部分Windows8(ARM)应用可以更方便的移植到手机上,例如不需要重写代码等(注明:与PC平台版应用不兼容,也无法移植,可以移植的是ARM的Windows RT版本应用,这是ARM与X86构架的原因,并且可以移植的应用必须是.net编写的应用程序,C与C++程序必须重写代码)。 





在着,WP8和PC WIN8 内核相同,不同的CPU却有相同的内核,这是怎么回事?不同的汇编指令给搞到一起去了?。。。。
[解决办法]
系统内核和CPU内核是两回事。
系统来兼容不同CPU是微软干的活,我们不用操心。

wp8、win8的metro app都是支持C++的,但是是阉割过的
[解决办法]
百度百科的那段是有上下环境,
历史是,windows phone 7/7.5的app只支持dotnet,这些可以直接放到wp8,w8上,
[解决办法]
WP8支持C++,楼主放心吧。
但是楼主对C#速度慢的想法,还是不太赞同。
这就相当于我说用汇编更快一样。
现在CPU都动辄1G Hz了,绝大多数情况没必要纠结于必须用C++开发才速度快。
[解决办法]
WP8支持C++,楼主放心吧。
但是楼主对C#速度慢的想法,还是不太赞同。
这就相当于我说用汇编更快一样。
现在CPU都动辄1G Hz了,绝大多数情况没必要纠结于必须用C++开发才速度快。
[解决办法]


//计算行列式,参数一为存储行列式的数组,参数二为阶数
double CMatrix::calculateDeterminant(double *p,int n) 
{
if(n<1)
{
return -1;
}
//若行列式阶数为1,则返回其内的唯一元素值
if(n==1) 
{
return *p;
}
//定义临时指针变量指向当前行列式余子式数组
double *curr = new double[(n-1)*(n-1)]; 
double result = 0;
int i, r, c, cc;

//求当前第一行第i列余子式(按第一行展开)
for(i = 1; i <= n; ++i) 
{
for(r = 2; r <= n; ++r)
{
cc = -1;
for(c = 1; c <= n; ++c)
{
if(c != i)
{
*(curr + (r-2) * (n-1) + (++cc)) = *(p + (r - 1) * n + (c-1));
}
}
}
//计算求代数余子式之和,使用递归调用计算其余子式的值
result +=*(p + i - 1) * pow((double)(-1), (int)(1 + i)) * calculateDeterminant(curr, n-1); 
}
//释放存储临时变量所占空间
delete [] curr; 
return result;
}

//高斯投影正算公式
void CoordinateConvert::GeodeticGaussToCartesian (PCRDCARTESIAN pcc, PCRDGEODETIC pcg,
  double dSemiMajorAxis, double dFlattening,double dLongitudeNo) //高斯投影正算公式
{
double B;//纬度度数
double L;//经度度数
double L0;//中央经线度数
double l;//L-L0
double t;//tanB
double m;//ltanB
double N;//卯酉圈曲率半径 
double q2;
double x;//高斯平面纵坐标
double y;//高斯平面横坐标
double s;//赤道至纬度B的经线弧长
double f;//参考椭球体扁率


double e2;//椭球第一偏心率
double a;//参考椭球体长半轴
//double b;//参考椭球体短半轴
double a1;
double a2;
double a3;
double a4;
double b1;
double b2;
    double b3;
    double b4;
double c0;
double c1;
double c2;
double c3;
//int Datum=80;//投影基准面类型:北京54基准面为54,西安80基准面为80,WGS84基准面为84
int prjno=0;//投影带号
//int zonewide=3;//投影带宽:6度带投影为6,3度带投影为3
int zonewide;
zonewide=m_iZoneWide;
double IPI=0.0174532925199433333333;//  3.1415926535898/180.0
double PII=57.2957795130821975611438762422; //  180/3.1415926535898

B=pcg->latitude ; //纬度
L=pcg->longitude ; //经度


L0=dLongitudeNo;//中央子午线,以度为单位

a=dSemiMajorAxis;
f=dFlattening;

L0=L0*IPI;//中央经线度数转换为弧度

L=L*IPI;//经度转换为弧度
B=B*IPI;//纬度转换为弧度

e2=2*f-f*f;//(a*a-b*b)/(a*a);
l=L-L0;
t=tan(B);
m=l * cos(B);
N=a/sqrt(1-e2* sin(B) * sin(B));
q2=e2/(1-e2)* cos(B)* cos(B);
a1=1+(double)31/40*e2+(double)45/64*e2*e2+(double)176/256*e2*e2*e2+(double)11025/16384*e2*e2*e2*e2+(double)43659/65536*e2*e2*e2*e2*e2;
a2=(double)3/4*e2+(double)15/16*e2*e2+(double)526/512*e2*e2*e2+(double)2205/2048*e2*e2*e2*e2+(double)72766/65536*e2*e2*e2*e2*e2;
a3=(double)15/64*e2*e2+(double)105/256*e2*e2*e2+(double)2205/4096*e2*e2*e2*e2+(double)10359/16384*e2*e2*e2*e2*e2;
a4=(double)35/512*e2*e2*e2+(double)316/2048*e2*e2*e2*e2+(double)31185/13072*e2*e2*e2*e2*e2;
b1=a1*a*(1-e2);
b2=(double)-1/2*a2*a*(1-e2);
b3=(double)1/4*a3*a*(1-e2);
b4=(double)-1/7*a4*a*(1-e2);
c0=b1;
c1=2*b2+4*b3+6*b4;
c2=-(9*b3+32*b4);
c3=32*b4;
s=c0*B+cos(B)*(c1*sin(B)+c2*sin(B)*sin(B)*sin(B)+c3*sin(B)*sin(B)*sin(B)*sin(B)*sin(B));//由赤道至纬度B的经线弧长
x=s+(double)1/2*N*t*m*m+(double)1/24*(5-t*t+9*q2+4*q2*q2)*N*t*m*m*m*m+(double)1/720*(61-58*t*t+t*t*t*t)*N*t*m*m*m*m*m*m;
y=N*m+(double)1/6*(1-t*t+q2)*N*m*m*m+(double)1/120*(5-18*t*t+t*t*t*t-14*q2-58*q2*t*t)*N*m*m*m*m*m;
y=y+500000;//加500公里,不用出现负数.
//if (true==m_bPrefixDH)  //坐标值前缀带号
//y=y+1000000*prjno;
pcc->x=x;
pcc->y=y;
pcc->z=pcg->height ;
}




[解决办法]
了解了 嘿
引用:
WP8支持C++,楼主放心吧。
但是楼主对C#速度慢的想法,还是不太赞同。
这就相当于我说用汇编更快一样。
现在CPU都动辄1G Hz了,绝大多数情况没必要纠结于必须用C++开发才速度快。

[解决办法]
wp8上c++作为补充而不是替代,c++无法单独开发程序,只能开发一些库然后c#引用这些库开发,用于方便移植现有成熟库的作用
[解决办法]
关心以前的C++的代码能不能用于WP8的开发.
例如:
CreateFile
这些函数还能用吗?
[解决办法]
我只想知道对WP8,与以前的WINCE有什么不同?在WINCE开发的程序,在WP还能用?

热点排行