.NET Core给UWP还是带来了些好处

vbfool UID.352791
2016-08-25 发表

var file = System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew("temp1", 1048576);
var stm = file.CreateViewStream();
现在可以在手机上执行这两句了,不知道能不能用这个来实现跨进程通信。

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
又****号 UID.2854234
2016-08-25 使用 Lumia 950 回复

不懂,帮你顶

wucd UID.573665
2016-08-25 回复

路过学习一下。

好****品 UID.2695847
2016-08-25 使用 Lumia 640 回复

跨进程分享文件么

机械****主义 UID.305149
2016-08-25 回复

为何不通过Socket通讯?

tmp00000 UID.995403
2016-08-25 回复

内存映射文件终于回来了。不过这在手机上真的有价值吗?

wcavell UID.34926
2016-08-25 回复

Quote***链接停止解析***
为何不通过Socket通讯?


因为本机其它程序不允许通过127.0.0.1通信

tmp00000 UID.995403
2016-08-25 回复

https://msdn.microsoft.com/zh-cn/library/dd997372(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
官方的资料是这样写的。是否真的有权限跨进程使用共享的内存有待考证。

vbfool UID.352791
2016-08-25 回复

Quote***链接停止解析***
https://msdn.microsoft.com/zh-cn/library/dd997372(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snip ...


刚刚试过了,没有……
跨进程通信还是靠appservice吧,不过真的是可惜啊。

机械****主义 UID.305149
2016-08-25 回复

Quote***链接停止解析***
因为本机其它程序不允许通过127.0.0.1通信


这不科学啊,是不允许环路还是不允许socket?

tmp00000 UID.995403
2016-08-25 回复

本帖最后由 tmp00000 于 2016-8-25 23:06 编辑

如图,内存映射文件名一样,地址不一样。


***图片停止解析***

tmp00000 UID.995403
2016-08-25 回复

Quotevbfool 发表于 2016-8-25 21:17
刚刚试过了,没有……
跨进程通信还是靠appservice吧,不过真的是可惜啊。 ...


我也试了。明明打开或创建的非持久内存映射文件名是一样的,内容却是不互通的。

tmp00000 UID.995403
2016-08-25 回复

Quote机械教条主义 发表于 2016-8-25 22:46
这不科学啊,是不允许环路还是不允许socket?


非Debug应用禁止环回

vbfool UID.352791
2016-08-25 回复

Quote***链接停止解析***
我也试了。明明打开或创建的非持久内存映射文件名是一样的,内容却是不互通的。 ...


我在博客园上看到有篇文章,说用Win32API可以打开内存映射文件,但是现在搜不到了

tmp00000 UID.995403
2016-08-25 回复

Quotevbfool 发表于 2016-8-25 23:36
我在博客园上看到有篇文章,说用Win32API可以打开内存映射文件,但是现在搜不到了 ...


一般情况下代码里出现Declare或者是DllImport这样的内容会导致无法通过商店认证

Bo****.y UID.2694096
2016-08-25 使用 Lumia 1520 回复

仰望大神。

wcavell UID.34926
2016-08-26 使用 Lumia 930 回复

Quotetmp00000 发表于 2016-8-25 23:39
一般情况下代码里出现Declare或者是DllImport这样的内容会导致无法通过商店认证 ...


这个其实可以不用DllImport,用c++把dll加载,然后找函数的地址,这样就能过商店的SB检测

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
一般情况下代码里出现Declare或者是DllImport这样的内容会导致无法通过商店认证 ...


不过一般有这种需求的,也不是真需要进商店的app了。
又去搜了一下,那个是用的命名管道,不是内存映射文件,我给记混了。

机械****主义 UID.305149
2016-08-26 回复

Quote***链接停止解析***
非Debug应用禁止环回


可以用非环路IP地址么?

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
可以用非环路IP地址么?


你访问本机怎么都要经过Loopback的,这确实是没辙,不过我刚才生成了一个release包,在PC上部署了,是能访问localhost的,手机以前验证过倒是做不到,所以这点到底是什么鬼,到现在我也不知道。
主要现在的项目有进程间通信的要求,所以才要搞搞这些。

tmp00000 UID.995403
2016-08-26 使用 Lumia 1520 回复

Quote机械教条主义 发表于 2016-8-26 11:06
可以用非环路IP地址么?


那些地址无法进行本机通信。要启用环回,电脑上的Fiddler可以做到,但是手机上没那种工具。

机械****主义 UID.305149
2016-08-26 回复

Quote***链接停止解析***
你访问本机怎么都要经过Loopback的,这确实是没辙,不过我刚才生成了一个release包,在PC上部署了,是能 ...


进程间通讯最好的方式就是socket, 可以本机, 也可以跨机器

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
进程间通讯最好的方式就是socket, 可以本机, 也可以跨机器


不能简单的就这么说,使用成本还是有差别的,比如跨机器,IPC和命名管道都可以跨机器(当然它们的底层可能也是TCP的)。比如同一台机器上的通信,内存映射文件的速度是最快的,这些都是要考虑的点,更别说现在UWP还加入了AppService这个新模块了。所以才要做实验,看看能支持什么,不能支持什么,哪些用起来简单方便。

wcavell UID.34926
2016-08-26 回复

Quote***链接停止解析***
不能简单的就这么说,使用成本还是有差别的,比如跨机器,IPC和命名管道都可以跨机器(当然它们的底层可 ...


你试过C++的OpenFileMapping 没有?

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
你试过C++的OpenFileMapping 没有?


我估计结果是一样的,而且我不会C++,再去找资料写半天够呛啊。

重头儿再来 UID.356529
2016-08-26 回复

Quote***链接停止解析***
我估计结果是一样的,而且我不会C++,再去找资料写半天够呛啊。


您开发什么应用啊?是个人开发吗?

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
您开发什么应用啊?是个人开发吗?


不是,算是个企业应用,跑在平板上的。

wcavell UID.34926
2016-08-26 回复

Quote***链接停止解析***
不是,算是个企业应用,跑在平板上的。


既然是平板那么用win32的API就没有多大问题了,参考链接
***链接停止解析***

如果想过商店的检查,那就不能用DllImport,可以使用C++ 写运行时组件,去逃开WACK检测,参考链接
***链接停止解析***

想实现的话,应该不是很难的

vbfool UID.352791
2016-08-26 回复

Quote***链接停止解析***
既然是平板那么用win32的API就没有多大问题了,参考链接
Windows共享内存 C++及C#实现



我对C++真心没好感,上次写个CustomSink,写的我想砸电脑。

tmp00000 UID.995403
2016-09-27 使用 Lumia 1520 回复

看来这套API是模拟实现的
***图片停止解析***

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报