Wince6.0模拟器上的wince程序不能访问PC机的webservice,wince程序是否可以调用windows下的DLL

Sam2081 2013-10-22 02:43:21
如题,我最近学习开发一个wince程序,因为之前对这方面从来没接触过,所以可以说是一个小白,现在暂时出现了两个问题无法解决。
问题一:我用wince6.0模拟器运行PC机上写的一个wince程序,就是简单的调用一个发布在局域网的webservice,调用时出现报错,报错内容为“WebException”。这个问题我补充说明下,第一点是wince6.0模拟器已经可以访问外网,但是不能访问内网的webservice;第二点是wince6.0模拟器通过Microsoft DeviceCenter同步时,wince6.0模拟器的IP地址一直默认为192.168.55.101,同时不能修改wince6.0模拟器的IP地址,不然不能连接到Microsoft DeviceCenter。
问题二:wince程序调用windows下C#写的DLL时报错,报错内容为“无法找到 PInvoke DLL“POSDll.dll”中的入口点“Prn_Open””,POSDll.dll为调用的DLL,Prn_Open为DLL里面的函数。试过网上的几个办法比如将DLL拷到EXE文件的同目录下,修改DLL的“复制到输出目录”为始终复制等都一一报错。
最后说下本机的环境:系统:win 7旗舰版,开发工具:VS2008,模拟器:wince6.0SDK
...全文
429 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
whqxyh721 2015-04-02
  • 打赏
  • 举报
回复
楼主问题解决了吗?我也碰到类似的问题,不知道怎么搞.
rpg_caidao 2014-08-21
  • 打赏
  • 举报
回复
PC上的IP设置为127.0.0.1就可以了
Sam2081 2013-10-31
  • 打赏
  • 举报
回复
引用 楼主 cai_bo 的回复:
如题,我最近学习开发一个wince程序,因为之前对这方面从来没接触过,所以可以说是一个小白,现在暂时出现了两个问题无法解决。 问题一:我用wince6.0模拟器运行PC机上写的一个wince程序,就是简单的调用一个发布在局域网的webservice,调用时出现报错,报错内容为“WebException”。这个问题我补充说明下,第一点是wince6.0模拟器已经可以访问外网,但是不能访问内网的webservice;第二点是wince6.0模拟器通过Microsoft DeviceCenter同步时,wince6.0模拟器的IP地址一直默认为192.168.55.101,同时不能修改wince6.0模拟器的IP地址,不然不能连接到Microsoft DeviceCenter。 问题二:wince程序调用windows下C#写的DLL时报错,报错内容为“无法找到 PInvoke DLL“POSDll.dll”中的入口点“Prn_Open””,POSDll.dll为调用的DLL,Prn_Open为DLL里面的函数。试过网上的几个办法比如将DLL拷到EXE文件的同目录下,修改DLL的“复制到输出目录”为始终复制等都一一报错。 最后说下本机的环境:系统:win 7旗舰版,开发工具:VS2008,模拟器:wince6.0SDK
问题找到了,之前说的模拟器可以上外网不能访问局域网的webservice,其实是能访问的,是我发布的webservice有点问题,我发布的webservice绑定的时候IP地址指定了一个具体的IP地址,把IP地址选择全部未分配就可以访问了,webservice发布这块不是很懂所以不太清楚这个原理。同时需要注意的是:Microsoft DeviceCenter的连接设置的这台计算机已连接到(T)选项需要经常改变状态否则也可能导致不能上网,这个问题可能是Microsoft DeviceCenter没有保存状态,具体也不清楚,操作的时候注意多试几下!
Sam2081 2013-10-25
  • 打赏
  • 举报
回复
引用 8 楼 brantyou 的回复:
[quote=引用 7 楼 cai_bo 的回复:] [quote=引用 6 楼 brantyou 的回复:] wince肯定不能调用windows下的dll,这个不用试了,针对的CPU架构都不一样的。 至于你的模拟器不能访问PC的webservice是因为你的模拟器IP跟PC的IP不在同一个段上,即不能构成局域网。 而且你PC的webservice也没有提供外网访问,这就导致wince通过外网IP找不到你的webservice。你可以把你的PC开个端口,把webservice部署出去,让外网可以访问就OK了
现在已经测试过两种情况了,第一种:通过Microsoft DeviceCenter6.1(win7系统)或者Microsott ActiveSync 4.5(windows XP系统)同步模拟器和PC机,出现的情况是模拟器的IP和PC的IP不在一个网段,所以无法访问局域网的webservice,但是模拟器可以上外网。第二种:只能在XP系统下起作用,win7系统好像不行。安装一个虚拟网卡驱动(Virtual Machine Network Driver for Microsoft Device Emulator),通过虚拟网卡的方式连接PC不使用Microsott ActiveSync 4.5,这个情况出现状况是模拟器可以设定一个固定IP,但是不能访问局域网和外网,当前PC机可以ping通模拟器的IP,但是局域网其他的PC不能ping通模拟器的IP。 至于把webservice部署成让外网可以访问确实能解决这个问题,但是有些webservice是不能让外网访问的,所以还是希望能在局域网里面来访问。求指导啊,这个问题困扰好多天了,再不能解决估计要被炒鱿鱼了![/quote] 那试试把你PC机的IP地址修改成与模拟器的IP地址同一个段,看看如何。修改之后,估计PC不能访问外网[/quote] 这种方式同样是不能PING通的,采用同步的方式模拟器的IP固定为192.168.55.101不能修改,是不是模拟器根本就无法访问局域网?
一介布衣萧萧 2013-10-25
  • 打赏
  • 举报
回复
引用 7 楼 cai_bo 的回复:
[quote=引用 6 楼 brantyou 的回复:] wince肯定不能调用windows下的dll,这个不用试了,针对的CPU架构都不一样的。 至于你的模拟器不能访问PC的webservice是因为你的模拟器IP跟PC的IP不在同一个段上,即不能构成局域网。 而且你PC的webservice也没有提供外网访问,这就导致wince通过外网IP找不到你的webservice。你可以把你的PC开个端口,把webservice部署出去,让外网可以访问就OK了
现在已经测试过两种情况了,第一种:通过Microsoft DeviceCenter6.1(win7系统)或者Microsott ActiveSync 4.5(windows XP系统)同步模拟器和PC机,出现的情况是模拟器的IP和PC的IP不在一个网段,所以无法访问局域网的webservice,但是模拟器可以上外网。第二种:只能在XP系统下起作用,win7系统好像不行。安装一个虚拟网卡驱动(Virtual Machine Network Driver for Microsoft Device Emulator),通过虚拟网卡的方式连接PC不使用Microsott ActiveSync 4.5,这个情况出现状况是模拟器可以设定一个固定IP,但是不能访问局域网和外网,当前PC机可以ping通模拟器的IP,但是局域网其他的PC不能ping通模拟器的IP。 至于把webservice部署成让外网可以访问确实能解决这个问题,但是有些webservice是不能让外网访问的,所以还是希望能在局域网里面来访问。求指导啊,这个问题困扰好多天了,再不能解决估计要被炒鱿鱼了![/quote] 那试试把你PC机的IP地址修改成与模拟器的IP地址同一个段,看看如何。修改之后,估计PC不能访问外网
Sam2081 2013-10-25
  • 打赏
  • 举报
回复
引用 6 楼 brantyou 的回复:
wince肯定不能调用windows下的dll,这个不用试了,针对的CPU架构都不一样的。 至于你的模拟器不能访问PC的webservice是因为你的模拟器IP跟PC的IP不在同一个段上,即不能构成局域网。 而且你PC的webservice也没有提供外网访问,这就导致wince通过外网IP找不到你的webservice。你可以把你的PC开个端口,把webservice部署出去,让外网可以访问就OK了
现在已经测试过两种情况了,第一种:通过Microsoft DeviceCenter6.1(win7系统)或者Microsott ActiveSync 4.5(windows XP系统)同步模拟器和PC机,出现的情况是模拟器的IP和PC的IP不在一个网段,所以无法访问局域网的webservice,但是模拟器可以上外网。第二种:只能在XP系统下起作用,win7系统好像不行。安装一个虚拟网卡驱动(Virtual Machine Network Driver for Microsoft Device Emulator),通过虚拟网卡的方式连接PC不使用Microsott ActiveSync 4.5,这个情况出现状况是模拟器可以设定一个固定IP,但是不能访问局域网和外网,当前PC机可以ping通模拟器的IP,但是局域网其他的PC不能ping通模拟器的IP。 至于把webservice部署成让外网可以访问确实能解决这个问题,但是有些webservice是不能让外网访问的,所以还是希望能在局域网里面来访问。求指导啊,这个问题困扰好多天了,再不能解决估计要被炒鱿鱼了!
一介布衣萧萧 2013-10-25
  • 打赏
  • 举报
回复
wince肯定不能调用windows下的dll,这个不用试了,针对的CPU架构都不一样的。 至于你的模拟器不能访问PC的webservice是因为你的模拟器IP跟PC的IP不在同一个段上,即不能构成局域网。 而且你PC的webservice也没有提供外网访问,这就导致wince通过外网IP找不到你的webservice。你可以把你的PC开个端口,把webservice部署出去,让外网可以访问就OK了
一介布衣萧萧 2013-10-25
  • 打赏
  • 举报
回复
引用 9 楼 cai_bo 的回复:
[quote=引用 8 楼 brantyou 的回复:] [quote=引用 7 楼 cai_bo 的回复:] [quote=引用 6 楼 brantyou 的回复:] wince肯定不能调用windows下的dll,这个不用试了,针对的CPU架构都不一样的。 至于你的模拟器不能访问PC的webservice是因为你的模拟器IP跟PC的IP不在同一个段上,即不能构成局域网。 而且你PC的webservice也没有提供外网访问,这就导致wince通过外网IP找不到你的webservice。你可以把你的PC开个端口,把webservice部署出去,让外网可以访问就OK了
现在已经测试过两种情况了,第一种:通过Microsoft DeviceCenter6.1(win7系统)或者Microsott ActiveSync 4.5(windows XP系统)同步模拟器和PC机,出现的情况是模拟器的IP和PC的IP不在一个网段,所以无法访问局域网的webservice,但是模拟器可以上外网。第二种:只能在XP系统下起作用,win7系统好像不行。安装一个虚拟网卡驱动(Virtual Machine Network Driver for Microsoft Device Emulator),通过虚拟网卡的方式连接PC不使用Microsott ActiveSync 4.5,这个情况出现状况是模拟器可以设定一个固定IP,但是不能访问局域网和外网,当前PC机可以ping通模拟器的IP,但是局域网其他的PC不能ping通模拟器的IP。 至于把webservice部署成让外网可以访问确实能解决这个问题,但是有些webservice是不能让外网访问的,所以还是希望能在局域网里面来访问。求指导啊,这个问题困扰好多天了,再不能解决估计要被炒鱿鱼了![/quote] 那试试把你PC机的IP地址修改成与模拟器的IP地址同一个段,看看如何。修改之后,估计PC不能访问外网[/quote] 这种方式同样是不能PING通的,采用同步的方式模拟器的IP固定为192.168.55.101不能修改,是不是模拟器根本就无法访问局域网?[/quote] 你使用模拟器来调比较麻烦,如果你有wince的设备的话,用USB同步连接上之后就可以访问了,或者连接上wifi,就会处于局域网中
Sam2081 2013-10-23
  • 打赏
  • 举报
回复
引用 4 楼 91program 的回复:
PC机发布的webservice在局域网,是不能访问的原因。因为你从模拟器去 PING 你 Serve 所在的服务器应该是不通的。
模拟器里面不能执行ping命令的,但确实应该是不能PING通的,不过可以通过PC的网络上外网,同时wince6.0这个模拟器的IP默认为192.168.55.101不能修改,不然就不能连接到Microsoft DeviceCenter。我想问下是确实是模拟器无法连接PC机的webservice,还是可能是我的模拟器配置网络方面有问题,从来没搞过这块的东西所以把握不到问题的根本原因。
91program 2013-10-23
  • 打赏
  • 举报
回复
PC机发布的webservice在局域网,是不能访问的原因。因为你从模拟器去 PING 你 Serve 所在的服务器应该是不通的。
Sam2081 2013-10-22
  • 打赏
  • 举报
回复
引用 1 楼 91program 的回复:
模拟器可以上网,就能访问 webservice。网络网,模拟器应该是访问不了的! WinCE 程序是不可以调用 Windows 下的DLL
非常感谢回帖! 我现在的情况就是模拟器可以上网但是就是不能访问PC机发布的webservice,PC机发布的webservice也在局域网的其他机器上测试过了没问题。我也看到网上一些例子确实是可以访问,就不知道我这个为什么不能访问了。 wince程序有什么办法调用C#编写的托管的DLL吗?
Sam2081 2013-10-22
  • 打赏
  • 举报
回复
非常感谢回帖! 我现在的情况就是模拟器可以上网但是就是不能访问PC机发布的webservice,PC机发布的webservice也在局域网的其他机器上测试过了没问题。我也看到网上一些例子确实是可以访问,就不知道我这个为什么不能访问了。 wince程序有什么办法调用C#编写的托管的DLL吗?
91program 2013-10-22
  • 打赏
  • 举报
回复
模拟器可以上网,就能访问 webservice。网络网,模拟器应该是访问不了的!

WinCE 程序是不可以调用 Windows 下的DLL

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧