Unity | unity&C++内存共享及中文乱码解决方式

本文介绍了如何在Unity中实现与C++进程间的内存共享,包括使用CreateFileMapping、OpenFileMapping、MapViewOfFile等函数,并讨论了Unity读取数据时可能遇到的中文乱码问题及其解决方法,即需要复制I18N相关的dll到Unity发布后的Managed文件夹下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、内存共享用到的函数

1.CreateFileMapping

2.OpenFileMapping

3.MapViewOfFile

4.UnmapViewOfFile

5.CloseHandle

6.GetLastError

二、Unity测内存共享(读数据)

1.读数据用到的函数

2.函数调用

3.Unity读写数据实现

三、中文乱码解决方式


        之前的博文已经实现了C++两个进程间的通信,今天实现的是C++进程写数据,Unity进程读数据。所以C++测的实现方式就略过了~

一、内存共享用到的函数

1.CreateFileMapping

        创建内存映射文件对象。

IntPtr CreateFileMapping(
    int hFile, 
    IntPtr lpAttributes, 
    uint flProtect, 
    uint dwMaxSizeHi, 
    uint dwMaxSizeLow, 
    string lpName);
  •  hFile:指定要映射的文件的句柄,如果这是一个已经打开的文件的句柄(CreateFile函数的返回值),那么将建立这个文件的内存映射文件,如果这个参数为INVALID_HANDLE_VALUE(-1),则建立共享内存。
  • lpAttribute:安全属性,一般设为NULL。
  • flProtect:指定映射文件的保护类型,它的取值可以是PAGE_READONLY(内存页面只读)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烫青菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值