Unity3D中C#使用指针(Unsafe)报错处理
2017-04-21 14:41
363 查看
转载自 // http://www.j2megame.com/html/xwzx/ty/3652.html
Unity3D中C#使用指针(Unsafe)的办法
近日由于在U3D项目中要使用到数据传递(C++ DLL的数据传递给U3D中的C#),其中涉及到需要使用C#的指针。直接编译会出现以下错误Unsafe code requires the ‘unsafe’ command line option to be specified。
下面是我总结的解决办法:
1.去除MONO编辑器中的Unsafe错误,Assembly-CSharp鼠标右键 找到Options->Build->General 。Allow ‘unsafe’ code 打钩。这个只能去除MONO报错,但是依然无法运行。
2.首先看下面一段比较长的
Custom Preprocessor Directives
It is also possible to define your own preprocessor directives to control which code gets included when compiling. To do this you must add in the “Assets/” folder a text file with the extra directives. The name of the file depends on the language you are using :
C# /Assets/smcs.rsp
C# - Editor Scripts /Assets/gmcs.rsp
UnityScript /Assets/us.rsp
Boo /Assets/boo.rsp
As an example, if you include the single line ‘-define:UNITY_DEBUG’ in your smcs.rsp file the define UNITY_DEBUG will exist as a global define for C# scripts, except for Editor scripts.
Every time you make make changes to the .rsp files a recompilation needs to be done for them to be effective. You can do this by updating or reimporting a single script (.js, .cs or .boo) file.
The usage of the .rsp files is described in the help of the smcs application, included in the Editor installation folder. You can get more information by running : “smcs -help”.
在你的Assets目录下面添加smcs.rsp文件,里面只加一行字不要有空格 -unsafe。 OK搞定。记得一定要重启Unity3d, 因为这个预编译是在启动U3D时候运行的。工程文件名别带中文。
原理是编辑器中的smcs.exe 添加编译命令,也可以在CMD下运行编辑器目录下的smcs.exe 逐个添加,会很累的。
测试代码:
unsafe void test () {
int i=10;
int k;
int *j=&i;
k=*j+1;
print(“unsafe test ” + k.ToString());
}
Unity3D中C#使用指针(Unsafe)的办法
近日由于在U3D项目中要使用到数据传递(C++ DLL的数据传递给U3D中的C#),其中涉及到需要使用C#的指针。直接编译会出现以下错误Unsafe code requires the ‘unsafe’ command line option to be specified。
下面是我总结的解决办法:
1.去除MONO编辑器中的Unsafe错误,Assembly-CSharp鼠标右键 找到Options->Build->General 。Allow ‘unsafe’ code 打钩。这个只能去除MONO报错,但是依然无法运行。
2.首先看下面一段比较长的
Custom Preprocessor Directives
It is also possible to define your own preprocessor directives to control which code gets included when compiling. To do this you must add in the “Assets/” folder a text file with the extra directives. The name of the file depends on the language you are using :
C# /Assets/smcs.rsp
C# - Editor Scripts /Assets/gmcs.rsp
UnityScript /Assets/us.rsp
Boo /Assets/boo.rsp
As an example, if you include the single line ‘-define:UNITY_DEBUG’ in your smcs.rsp file the define UNITY_DEBUG will exist as a global define for C# scripts, except for Editor scripts.
Every time you make make changes to the .rsp files a recompilation needs to be done for them to be effective. You can do this by updating or reimporting a single script (.js, .cs or .boo) file.
The usage of the .rsp files is described in the help of the smcs application, included in the Editor installation folder. You can get more information by running : “smcs -help”.
在你的Assets目录下面添加smcs.rsp文件,里面只加一行字不要有空格 -unsafe。 OK搞定。记得一定要重启Unity3d, 因为这个预编译是在启动U3D时候运行的。工程文件名别带中文。
原理是编辑器中的smcs.exe 添加编译命令,也可以在CMD下运行编辑器目录下的smcs.exe 逐个添加,会很累的。
测试代码:
unsafe void test () {
int i=10;
int k;
int *j=&i;
k=*j+1;
print(“unsafe test ” + k.ToString());
}
相关文章推荐
- Unity3d中C#使用指针(Unsafe)的办法
- Unity3D 使用C#指针unsafe
- Unity3D 使用C#指针unsafe
- Unity3d中C#使用指针(Unsafe)的办法
- Unity3d中C#使用指针(Unsafe)的办法 宏 预处理
- Unity3d中C#使用指针(Unsafe)的办法(转)
- C# 托管代码 和 unsafe使用指针 对数组操作 性能比较--指针真的快么?
- C#中指针*的使用(unsafe关键字与fixed 语句)---01
- c#指针(unsafe与fixed的使用)
- C# 中使用不安全代码(unsafe、指针)实践
- c#指针(unsafe与fixed的使用)
- 对比使用C# unsafe代码和OpenCV进行图像处理的效率(上)
- C# 指针(unsafe与fixed的使用)
- C#中使用指针转换数据类型[C#/unsafe]
- (转)C#中使用指针转换数据类型[C#/unsafe]
- C#中使用指针转换数据类型[C#/unsafe]
- C#中指针*的使用(unsafe关键字与fixed 语句)
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会
- c# 视频开发中使用VFW功能的编解码的处理思路
- [C#][固定格式网页解析]使用正则表达式处理网页的初步体会