当前位置: 代码迷 >> WinCE >> Wince6.0模拟器上的wince程序不能访问PC机的webservice,wince程序是不是可以调用windows下的DLL
  详细解决方案

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

热度:40   发布时间:2016-04-28 12:15:39.0
Wince6.0模拟器上的wince程序不能访问PC机的webservice,wince程序是否可以调用windows下的DLL
如题,我最近学习开发一个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
wince webservice dll

------解决方案--------------------
本帖最后由 91program 于 2013-10-22 17:52:55 编辑
模拟器可以上网,就能访问 webservice。网络网,模拟器应该是访问不了的!

WinCE 程序是不可以调用 Windows 下的DLL 
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

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是不能让外网访问的,所以还是希望能在局域网里面来访问。求指导啊,这个问题困扰好多天了,再不能解决估计要被炒鱿鱼了!



那试试把你PC机的IP地址修改成与模拟器的IP地址同一个段,看看如何。修改之后,估计PC不能访问外网


这种方式同样是不能PING通的,采用同步的方式模拟器的IP固定为192.168.55.101不能修改,是不是模拟器根本就无法访问局域网?


你使用模拟器来调比较麻烦,如果你有wince的设备的话,用USB同步连接上之后就可以访问了,或者连接上wifi,就会处于局域网中
  相关解决方案