unsafe相关内容

如何从地址位置获取直接字节缓冲区

在这个opencv示例中,Mat 对象有一个 nativeObj 字段,返回一个表示对象地址的 long(即 140398889556640).因为对象内数据的大小是已知的,所以我想直接访问 Mat 对象的内容,返回一个字节缓冲区. 最好的方法是什么? 解决方案 您可以使用 DirectByteBuffer 包装地址或使用 Unsafe. 虽然您可以这样做,但您可能不应该这样做 ..
发布时间:2021-06-12 20:00:31 Java开发

如何在Rider for Mac版本中允许“不安全代码"?

我不知道在使用Rider 2017.2.1(Mac版)时是否可以启用此选项.有人可以建议吗?我根本找不到该选项.我用谷歌搜索:配置项目构建配置的属性 在“解决方案"窗口中,右键单击所需的项目,然后选择“属性".在打开的“项目属性"对话框中,选择一个项目构建配置.根据需要编辑所选配置的构建属性,然后单击“确定"以应用您的修改: 但是在Mac版本中根本没有这样的选项. https://ww ..
发布时间:2021-05-31 19:25:07 C#/.NET

Java和C#中“不安全"的性能

我正在尝试学习数字图像处理,我发现我的朋友使用c#.他使用C#的原因很重要:c#中有 unsafe 关键字,其代码(算法部分)的性能可以达到c ++中相同代码的75%,这对他来说已经足够了 他鼓励我转向c#,但是我是多年的Java程序员.我知道Java中也有一个 Unsafe 类,但是我从未使用过它,不确定性能是否与C#一样好. 所以我想知道 Unsafe 在Java中的性能,使用Ja ..
发布时间:2021-05-15 20:34:42 Java开发

将具有并集字段的C结构映射到Go结构

我正在从syscall到Go中的某些WinApi取得结果.我可以轻松地从C代码映射简单的结构,但是如何处理如下的C结构呢? typedef struct SPC_LINK_{DWORD dwLinkChoice;#定义SPC_URL_LINK_CHOICE 1#定义SPC_MONIKER_LINK_CHOICE 2#定义SPC_FILE_LINK_CHOICE 3联盟{LPWSTR pwszU ..
发布时间:2021-05-11 19:44:14 其他开发

无法在C#中将关键字“固定"用于变量

我用数组和字符串变量对关键字 fixed 进行了测试,效果很好,但是我不能使用单个变量. static void Main(){int值= 12345;不安全{固定(int * pValue =& value){//问题在这里* pValue = 54321;}}} 固定的行(int * pValue =& value)会导致编译器错误.我不明白,因为变量 value 不在 unsafe ..
发布时间:2021-05-08 19:06:35 C#/.NET

我可以在不使用“不安全"的情况下封送带有2d数组的C结构吗?

我有一个C DLL,我正在为其编写C#互操作类. 在C DLL中,关键方法之一是填充2d结构.该结构是通过辅助方法分配和释放的,如下所示: //简单的结构定义-普通的旧数据typedef struct MyPodStruct_s{双双b;} MyPodStruct;typedef结构My2dArray_s{MyPodStruct ** arr;//由Init2d分配;//数组数组.//用法 ..
发布时间:2021-04-23 19:21:36 C#/.NET

C#编译不安全代码中的错误

编译VS 2010 c#项目(.NET 4.0,任何CPU,允许不安全代码=已选中),我们会遇到各种编译错误,如下所示: 运算符'*'不能应用于类型为'System.IntPtr'和'int'的操作数 常量值"325486741"不能转换为"int"(使用"unchecked"语法覆盖) 无法将类型'string'转换为'char *' 无法将类型'long'隐式转换为'b ..
发布时间:2021-04-02 18:31:50 C#/.NET

您可以限制.NET Process Object上的CPU使用率吗?

我正在开发的应用程序启动了用C编写的组件. C进程进行了大量繁琐的工作,如果您不小心,可能会严重影响您的CPU. 是否可以为.NET产生的外部进程设置限制? 我已经看到 http://dotnet-concepts-queries-interviews.blogspot.com/2007/05/how-to-set-process-priority-in-net.html : ..
发布时间:2021-04-01 19:49:57 C#/.NET

为什么JNI调用本机方法的速度要比sun.misc.Unsafe中的类似方法慢?

我正在开发类似于sun.misc.Unsafe的JNI实现,但具有扩展的内存管理. 为什么从sun.misc.Unsafe和我开发的库中调用本机方法的时间截然不同? 一些数字: sun.misc.Unsafe.getInt(address)大约需要1ns 当我的类似方法大约需要10ns时 两个实现完全相同,遵循OpenJDK的源代码,只是通过指针返回变量.两者都以相同的方式注 ..
发布时间:2021-02-10 20:17:22 Java开发

Python中不安全的图像处理(如C#中的LockBits)

是否可以在Python中执行不安全的图像处理? 与C#一样,由于Image的getPixel方法运行太慢,我在Python中处理像素时遇到了困难. 是否可以像c#中的LockBits一样直接访问内存中的图像?这将使我的程序运行更快. 谢谢 标记 解决方案 对此没有什么“不安全"的地方. 一旦您了解了Python的工作原理,调用一种方法来检索每个像素上的信息将变 ..
发布时间:2020-11-27 00:20:51 C#/.NET

Haskell中的不安全功能是什么?

我相信一个不安全的函数会说它将返回某种类型的值,但实际上它会抛出异常并结束执行,因此根本不返回任何值,但是我不确定 还是不安全的函数可以返回除签名中声明的类型以外的其他类型的值的函数?那不是弱类型函数吗? 还是Haskell中的类型错误的和不安全的同义词? 这可能是一个愚蠢的问题,但我找不到直接的答案. 我检查了 readLn 的文档,希望看到对不安全功能的引用,但没有任何 ..
发布时间:2020-11-22 07:35:21 其他开发

将指针转换为通用结构

我正在准备将指针投射到通用结构(可漂白). 当我使用非通用结构时,一切似乎都很好=>然后我可以使用Marshal.PtrToStructure(...),但是该函数无法接收通用结构(为什么?) 所以我写了以下内容: public static object ReadValue(IntPtr ptr) where T : struct { var dm = ..
发布时间:2020-11-13 05:56:15 C#/.NET

有没有一种方法可以在不断借用早期元素的同时向容器添加元素?

我正在构建一个GUI,我想将所有使用过的纹理存储在一个地方,但是我必须添加新纹理,而旧纹理已经被一成不变地借用了。 let(猫,老鼠,狗)=(42,360,420); //示例值 let mut container = vec![cat,mouse]; //新容器 let foo =& container [0]; //现在不可变地借用了容器 container.push ..
发布时间:2020-10-08 21:21:41 其他开发

不安全的compareAndSwapInt与同步

我发现几乎所有高级同步抽象(例如Semaphore,CountDownLatch,java.util.concurrent中的Exchanger)和并发集合都使用Unsafe中的方法(例如compareAndSwapInt方法)来定义关键部分。同时,我希望同步块或方法将用于此目的。 您能解释一下不安全的方法(我的意思是仅能原子设置值的方法)比同步更有效,为什么这样做呢? 解决方案 如果您 ..
发布时间:2020-10-07 21:35:10 Java开发