.NET Core给UWP还是带来了些好处
vbfool UID.352791
2016-08-25 发表
var file = System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew("temp1", 1048576);
var stm = file.CreateViewStream();
现在可以在手机上执行这两句了,不知道能不能用这个来实现跨进程通信。
敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
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这样的内容会导致无法通过商店认证
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了。
又去搜了一下,那个是用的命名管道,不是内存映射文件,我给记混了。
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++,再去找资料写半天够呛啊。
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,写的我想砸电脑。