Προς το περιεχόμενο

bluetooth interfaces


Evgenios1

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας.

Λοιπον, επειδη εχω σπαστει με το τροπο που στελνεις δεδωμενα pc -> mobilephone & το αντιθετο (μεσο vista).

Θελω να φτιαξω ενα προγραμματακι με το οποιο θα κανω τη διαδικασια στα μετρα μου.

Το προβλημα μου ειναι οτι δεν εχω ηδεα ποιο dll εχει τα bluetooth interfaces για τα windows και ουτε και την υλοποιηση τους.

κανα api ρε παιδες?

Δημοσ.

καλα φιλαρακι.. 3 ωρες εψαχνα τη msdn

και δε το ειδα ποτε :/

 

δε μου λες τωρα, (επειδη τα'χει σε c++) πως θα κανω ενα struct απο c++ σε C#?

πχ

>
typedef struct _BLUETOOTH_DEVICE_INFO {
 DWORD dwSize;
 BLUETOOTH_ADDRESS Address;
 ULONG ulClassofDevice;
 BOOL fConnected;
 BOOL fRemembered;
 BOOL fAuthenticated;
 SYSTEMTIME stLastSeen;
 SYSTEMTIME stLastUsed;
 WCHAR szName[bLUETOOTH_MAX_NAME_SIZE];
} BLUETOOTH_DEVICE_INFO;

τι να κανω?

ατι τετιο?

>
struct _BLUETOOTH_DEVICE_INFO {
 DWORD dwSize;
 BLUETOOTH_ADDRESS Address;
 ulong ulClassofDevice;
 bool fConnected;
 bool fRemembered;
 bool fAuthenticated;
 SYSTEMTIME stLastSeen;
 SYSTEMTIME stLastUsed;
 WCHAR szName[bLUETOOTH_MAX_NAME_SIZE];
}

και μετα ενα

>
ref  _BLUETOOTH_DEVICE_INFO 

?

 

 

ποιο DLL hookaro?

Δημοσ.
καλα φιλαρακι.. 3 ωρες εψαχνα τη msdn

και δε το ειδα ποτε :/

 

δε μου λες τωρα, (επειδη τα'χει σε c++) πως θα κανω ενα struct απο c++ σε C#? [..]

Με C# δεν ασχολούμαι οπότε ..

 

ποιο DLL hookaro?

 

Το SDK αναφέρει ότι πρέπει να κάνεις link την βιβλιοθήκη Bthprops.lib ενώ παλαιότερα την βιβλιοθήκη Irprops.lib . Περισσότερα δεν γνωρίζω.

Δημοσ.

Απο οτι βλεπω ειναι σε unmanaged περιβαλλον. Οποτε μία λυση είναι CLR του VS

Εκει μπορεις να γραψει ανετα μιχτο κωδικα .ΝΕΤ και μή σε C++ γλώσσα

Δημοσ.
Με C# δεν ασχολούμαι οπότε ..

 

 

 

Το SDK αναφέρει ότι πρέπει να κάνεις link την βιβλιοθήκη Bthprops.lib ενώ παλαιότερα την βιβλιοθήκη Irprops.lib . Περισσότερα δεν γνωρίζω.

περιεργο... εψαχνα εψαχνα , με το walker μου , ολα τα dll ,και τελικα, το ακυρο το bth(κατι).cpl

 

 

-----Προστέθηκε 24/12/2008 στις 09 : 06 : 06-----

 

 

Απο οτι βλεπω ειναι σε unmanaged περιβαλλον. Οποτε μία λυση είναι CLR του VS

Εκει μπορεις να γραψει ανετα μιχτο κωδικα .ΝΕΤ και μή σε C++ γλώσσα

 

CLR ?

τι ειναι αυτο ? (soz ,, hobiστας ειμαι)

 

 

Τι ειναι το "DWORD" ??

Δημοσ.
περιεργο... εψαχνα εψαχνα , με το walker μου , ολα τα dll ,και τελικα, το ακυρο το bth(κατι).cpl

 

 

-----Προστέθηκε 24/12/2008 στις 09 : 06 : 06-----

 

 

 

 

CLR ?

τι ειναι αυτο ? (soz ,, hobiστας ειμαι)

 

 

Τι ειναι το "DWORD" ??

 

 

 

 

VS 2000+ δεν χρησιμοποιεις;

Στα Projects-> Visual C++ γράφει καπου CLR

Εκει μπορεις να γραψεις Managed C++/CLI ή οπως λεγεται, ειναι ενα extension της C++ που εβγαλε η Microsoft για να μπορεις να γραφεις KAI .NET εφαρμογες.

 

Common Language RunTime (CLR) ειναι στο περιπου κατι σαν virtual machine που τρέχει το .ΝΕΤ framework για να ερμηνευει τα προγραμματα διαφορετικων γλωσσων.

Τωρα εαν σε ενδιαφερει να μπεις στα βαθειά νερά του .NET μπες στο MSDN, google κτλ

 

DWORD παραπεμπει στο Double Word....μπορεις να γραψεις μή προσημασμένους ακεραιους των 4 bytes.

Δημοσ.

 

DWORD παραπεμπει στο Double Word....μπορεις να γραψεις μή προσημασμένους ακεραιους των 4 bytes.

Κειτα και για το IntPrt ξερω οτι ειναι μια απο τα ιδια , και για το IntPrt ξερω πος επιστρεφει το thread id κατι τετιο τεσπα) το DWORD σε τη χρησημεβει?

ΥΓ(ειμαι κοματια)

 

 

-----Προστέθηκε 29/12/2008 στις 10 : 09 : 02-----

 

 

Κειτα . θελω να ξερω ολα τα member για να κανω μια απλη data class τοu τυπου

>
public class Device 
{
public byte MacAddress=new byte[5];
public string Name="";
public DeviceType DeviceType= DeviceType.None;
}
public enum{None=-1,Phone=1,Pc,ect...}
public class Devices
{
 List<Device> Devices_;
public Devices ( )
{
 Devices_=new List<Device>();
}
}

ετισι ωστε να μπορω να κανω XmlSerialezer read & write τη κλαση Devices (για να μη κανω καθε φορα search για να στηλω μια εικονα (πχ))

ΥΓ κανει 10~20 sec το search

Δημοσ.

Προφανως θα αναφερεσαι στο DWORD dwSize

 

το dwSize xωρις να έχω διαβάσει το API μαλλον θα αναφερεται στο μέγεθος του struct ή σε κατι τετοιο. Κοιταξε το documentation

 

Στην C# to DWORD μπορεις να το δηλωσεις σαν Int32.

  • 2 εβδομάδες αργότερα...
Δημοσ.

ΕΛΕΟΣ ΕΛΕΟΣ

Δε μου λετε τη στο καλο ειναι το union ????

Πως θα κατασκευασω το παρακατω struct σε C#?

>
//bth api
typedef struct _BLUETOOTH_ADDRESS {
 union {
   BTH_ADDR ullLong;
   BYTE rgBytes[6];
 } ;
} BLUETOOTH_ADDRESS;

επεισης πως θα διλοσω το μεγεθος ενος array μεσα στο struct (πχ rgBytes) ΜΕ ATTRIBUTE

Δημοσ.

ffs Ειναι πολυ μπερδεμενα στα api headers της C++

Λοιπον , βρηκα ληση στα προβληματα μετατροπης C++ struct to C# struct

Α) δηλοση Array

>
//C++
struct str_w_array
{
     int _array[10] ;
}

>
//C# 
[structLayout(LayoutKind.Sequential)]
public struct str_w_array_csharp
{
 [MarshalAs(UnmanagedType.ByValArray,ConstSize=10)]
 public int[] array;
}

B) union

>
//C++ 
struct str_union
{
union
{
 int a;
 long b;
}
}

>
//C#
[structLayout(LayoutKind.Explicit)]
public struct str_union
{
[FieldOffset(0)]
public int a;
[FieldOffset(0)]
public Int64 b;
}

Και τωρα εχω κολισει

στο τη στο καλο ειναι το wchar_t ???(C++)

και τι θελει να πει με αυτο εδς το κωδικα

>
typedef *void salalalala

αποτι εχω καταλαβει, το salalala ειναι handler δλδ μια μεθοδο (?) πως στο καλο θα τη διλοσω στη C# ??

 

 

Εχω φρικαρει με τα define της C++

Δημοσ.
anyone ???

 

Παραδοσιακά (αλλά όχι και απαραίτητα) το wchar_t στους Windows compilers δηλώνει Unicode char/string (UTF-16), σε άλλους compilers (ή με τροποποίηση των ρυθμίσεων ακόμα και των Windows compilers) μπορεί να αντιστοιχεί από 8bit (απλό ANSI-C char) ως 32bit (UTF-32). Αλλά αφού δουλεύεις με Windows πάω στοίχημα ότι πρόκειται για την πρώτη περίπτωση, δηλαδή για ένα απλό Unicode string. (http://en.wikipedia.org/wiki/Wide_character)

 

Τώρα το typedef *void salalalala .. αυτό το typedef είναι μάλλον μια κακιά πρακτική (πάει το type checking περίπατο) διότι σε γενικές γραμμές δηλώνει στον compiler ότι το salalalala είναι ένα void* δηλαδή ένας pointer προς οποιαδήποτε μορφή δεδομένων, μπορεί να είναι από μια συλλογή bytes (ένα char*) ως μια δομή (struct*), οτιδήποτε όπως σου είπα, θα πρέπει να δεις τον κώδικα που το χρησιμοποιεί και τι μορφής δεδομένα δέχεται.

Δημοσ.

to wchar_t δοκιμασε να το δηλωσεις σαν System.char

 

>
typedef *void salalalala

αποτι εχω καταλαβει, το salalala ειναι handler δλδ μια μεθοδο (?) πως στο καλο θα τη διλοσω στη C# ??

 

Ισως Delegates??

 

Τεσπα εχεις μπει σε βαθεια νερά ...η μετατροπη απο native code σε managed ειναι πολυ δυσκολη υποθεση....

θα σου χρειαστει καλη γνωση του System.Runtime.InteropServices Namespace....

Good Luck...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...