我一直在试验32Feet库,通过编写一个小型演示应用程序,支持使用C#和.NetCF来使用IrDA。

在WindowsCE 4.2设备上,此应用程序运行正常,但是当我在WinCE 5设备上尝试时,我在调用时遇到套接字异常:

new IrDAClient() 

例外是10047:AddressFamilyNotSupported。

我做了一些谷歌搜索,出现的是这个帖子的多次张贴 http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-compact-framework/16047/IrDAClient-SocketException-ErrorCode-10047 ,这似乎表明头文件可能会从WinCE 5版本中丢失(或类似的东西)。

有没有人有任何建议,因为这似乎不是32Feet的问题,我应该在哪里寻找/在什么?

--- ---编辑

我也直接创建套接字:

Socket s = new Socket(AddressFamily.Irda,SocketType.Stream,ProtocolType.IP);

有帮助吗?

解决方案

听起来您的目标设备不支持IrDA。它不像缺少的头文件那么简单,它缺少在操作系统中对它的实际支持。

您必须了解Windows CE纯粹是模块化的,因此没有“标准”。 OS。 OEM可能不包括IrDA支持(通过将SYSGEN_IRDA变量添加到Platform Builder中的OS Design来完成)。解决此问题的唯一方法是转到OEM并要求他们创建包含它的新操作系统映像。请注意,它可能不仅仅是为OEM添加SYSGEN_IRDA。他们可能还需要做一些OAL工作才能让驱动程序支持IR收发器(缺乏对它的支持将是从操作系统中省略该组件的原因)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top