C#和32feet.NET蓝牙库存在问题

时间:2011-06-04 12:00:21

标签: c# bluetooth

我刚刚开始蓝牙编程。我需要在C#中提出一个桌面应用程序,它从J2ME应用程序接收图像。

开始之前......我刚刚尝试了32feet用户指南中的一些代码片段...该指南是在VB.NET中。

VB.NET工作正常......但是我的C#工作不正常。

这是VB.NET代码段

Public Shared Sub find()
    Dim btClient As New InTheHand.Net.Sockets.BluetoothClient
    Dim bdi As BluetoothDeviceInfo() = btClient.DiscoverDevices()
    Dim device As BluetoothDeviceInfo = bdi(0)
    Dim addr As BluetoothAddress = device.DeviceAddress
    Dim name As String = device.DeviceName
    Console.WriteLine(name)
End Sub

这是C#转换

public static void Main()
    {
        BluetoothClient cli = new BluetoothClient();
        BluetoothDeviceInfo[] peers = cli.DiscoverDevices();
        BluetoothDeviceInfo device = peers[0];
        String name = device.DeviceName;
        Console.WriteLine(name);
        Console.Read();
    }

C#给我一个ArrayIndexoutofBOund异常...意味着没有发现任何设备。

有什么建议吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

我的猜测是两个程序以某种方式使用不同版本的库。并且C#编译器正在使用旧版本的库并将其复制到输出文件夹中。检查库程序集与每个.exe。

在同一文件夹中的版本

也可能在您的计算机上使用Widcomm或BlueSoleil而不是Microsoft蓝牙堆栈。如果它的Widcomm确保32feetWidcomm.dll文件也存在。

答案 1 :(得分:0)

你的C#代码对我来说很好。

运行C#代码时,您确定PC上连接了蓝牙设备吗?我意识到这可能听起来简单的响应,但可能是,当你运行C#代码时,蓝牙连接或设备出现了问题?

除此之外,如果C#代码调用与VB.NET版本调用完全相同的代码,我老实说也看不出为什么会有差异。