Windows Phone 8(WP8)C#不安全代码?
发布时间:2020-12-14 05:41:52 所属栏目:Windows 来源:网络整理
导读:编辑:您可以使用不安全的代码…您只需手动编辑proj文件. 当我可以在手机上使用本机C代码时,为什么或为什么WP8上的C#不支持不安全的代码(我没想到这一点)?我的意思是狡猾的,我对微软试图迫使C#进入的方式感到失望. 有没有MS计划在WP8上支持这个?我将着色器
编辑:您可以使用不安全的代码…您只需手动编辑proj文件.
当我可以在手机上使用本机C代码时,为什么或为什么WP8上的C#不支持不安全的代码(我没想到这一点)?我的意思是狡猾的,我对微软试图迫使C#进入的方式感到失望. 有没有MS计划在WP8上支持这个?我将着色器常量从C#传递给C并使用不安全的代码来优化这个过程,但是在WP8上,我会被迫以较慢的速度在一台速度较慢的设备上与PC相比,这让人非常沮丧. 作为将vector4传递给C的示例,我会这样做: public unsafe void Set(Vector4 value) { com.Set((int)&value,sizeof(Vector4)); } 然后在C: void ShaderVariableCom::Set(__int32 data,int size) { void* ptr = (void*)data; if (vertexOffset != -1) memcpy(vertexBytes + vertexOffset,ptr,size); if (pixelOffset != -1) memcpy(pixelBytes + pixelOffset,size); } 没有不安全的代码,任何人都有一个很好的快速方法吗? 解决方法
我找到了解决方案.
对于简单的矢量类型,只需: Marshal.StructureToPtr(vector,nativePtr,false); 对于数组做: var data = new Vector[10]; int size = Marshal.SizeOf(data[0]); for (int i = 0; i != data.Length; ++i) { Marshal.StructureToPtr(data[i],nativePtr + (size * i),false); } 如果有人有更好的答案,那也很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- powershell – 如何使用批处理或vbscript向Windo
- 在没有Pywin32的Python中检测Vista / 7上的符号链
- Windows Server 2008的IDS?
- windows – 如何在gvim(win32)中缩进选择?
- 适用于Windows的最佳ssh程序?
- Windows – MS.Win32.Penimc.UnsafeNativeMethod
- Windows Server 2008的远程桌面设置显示为灰色
- 在Windows 7中丢弃CALL批处理文件环境变量
- ZOJ Problem Set - 2480 Simplest Task in Windo
- Windows勒索病毒席卷全球:全系列补丁下载及解决
热点阅读