Autor Beitrag
RoyKeane
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 08.11.08 16:11 
Hallo,
ich bin ein echter neuanfänger in c# und komme sonst aus dem delphi bereich. ich möchte eine anwendung realisieren, die bluetoothgeräte erkennt und verbindet.

ich arbeite mit dem microsoft psdk 2003 und visual studio c# 2008 express edition und hab mir dazu auch schon einige hübsche befehle rausgesucht wie socket oder connect. um diese funktionen nutzen zu können muss ich die entsprechenden bibliotheken einbinden. namentlich Ws2_32.lib und BluetoothAPIs.h

diese sachen kommen mir bestenfalls aus c++ bekannt vor und auch nur da hab ich gefunden wie ich sie einbinden kann. ich hab versucht mit [DLLImport] die Ws2_32.dll einzubinden doch wenn ich in visual studio über projekt->verweis hinzufügen die dll auswählen möchte erscheint die fehlermeldung: "verweis konnte nicht hinzugefügt werden. stellen sie sicher, dass darauf zugegriffen werden kann und dass es ein com oder assembly komponente ist"

gibt es eine möglichkeit, wie ich diese funktioen benutzen kann. wie gesagt, ich bin auch auf dem gebiet api usw. noch nicht so bewandert...

wäre sehr schön wenn es mir jmd. erklären könnte...

danke
andi

PS. ich hab auch gelesen, dass mit einigen functionen nur bluetooth geräte gefunden werden die mit dem microsoft bluetooth stack arbeiten. sachen wie bluesoleil werden nciht erkannt und man soll andere apis benutzen.
hat jmd. einen tipp wie ich das möglichst allgemeingültig gestallten kann? danke!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 08.11.08 16:34 
Einen Verweis kannst du nur auf COM-Libs oder .Net-Assemblies hinzufügen. Für alles andere gibt es eben DllImport, dafür brauchst du dann keinen Verweis. Bei PInvoke.net findest du auch schon fertige Übersetzungen: pinvoke.net/default.aspx/ws2_32.accept

_________________
>λ=
RoyKeane Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 09.11.08 13:46 
erstmal danke für die antwort. ich hab den code aus pinvoke.net kopiert und ausprobiert. das sieht jetzt wie folgt aus:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
        [DllImport("ws2_32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
        static extern int bind(
            IntPtr socketHandle,
            ref sockaddr_in socketAddress,  //hier
            int addressLength); 

        [DllImport("ws2_32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
        static extern SOCKET socket(   //hier
            int af,
            int type,
            int protocol);

        [DllImport("ws2_32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
        int getsockname(
            SOCKET s,         //hier
            sockaddr name,    //und hier 
            int namelen);


leider kann er mit den wirklich entscheidenen sachen noch nichts anfangen. SOCKET, sockaddr_in bzw. sockaddr konnte nicht gefunden werden. die letzte funktion (msdn.microsoft.com/e...s738543(VS.85).aspx) hab ich einfach aus der msdn-bibliothek kopiert. muss ich was beachten? oder habe ich sonst noch was vergessen?

danke schonmal
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 09.11.08 15:09 
Eine Frage zwischendurch: Spricht etwas gegen System.Net.Sockets.Socket?

_________________
>λ=
RoyKeane Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 09.11.08 18:55 
wenn ich über diesen weg auch meine bluetooth geräte finden kann, dann spricht natürlich nichts dagegen. ich hab mir das mal angeschaut. sehe da aber leider nicht durch. wie kann ich da denn meinen bluetoothsockel erstellen und wo bekomm ich die informationen vom device dann her? oder gibt es da einen besseren weg, als über die sockets? danke
RoyKeane Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 16.11.08 11:17 
ich hab jetzt mal ein wenig rumprobiert. das mit den system.net.sockets.socket funzt irgendwie nicht. zumindest weiß ich nicht, wie ich da mein BT ins spiel bringe. ich hab auch was mit SerialPort gefunden, aber auch da weiß ich nicht, wie ich da meine BT geräte finden sollte... kann einer helfen??
danke