Przełożenie z .NET C# na eMbedded Visual Basic 3.0

0

Czy ktoś wie jak poniższy fragment kodu w języku C#

[DllImport("ossvcs.dll", EntryPoint = "#276")]
internal static extern int GetWirelessDevices(ref IntPtr pDevices, int dwFlags);

[DllImport("ossvcs.dll", EntryPoint = "#280")]
internal static extern int FreeDevicesList(IntPtr pDevices);

[DllImport("ossvcs.dll", EntryPoint = "#273")]
internal static extern int ChangeRadioState(IntPtr pDevices, int dwState, SAVEACTION sa);

zapiasć w postaci zrozumiałej dla środowiska eMbedded Visual Basic 3.0 ?

0

Opierając się na książce eMbedded Visual Basic: Windows CE and Pocket PC mobile applications zapewne coś w tym stylu:

Declare Function GetWirelessDevices Library ossvcs.dll (ByRef pDevices As Int, ByVal dwFlags as Int) As Int

i analogicznie pozostałe (Ptr to pewnie ByRef). Nie wiem tylko jak zapisać EntryPoint i SAVEACTION (to jakiś typ, ale czy jest standardowo w eMbedded VB?).

0
Ktos napisał(a)

Opierając się na książce eMbedded Visual Basic: Windows CE and Pocket PC mobile applications zapewne coś w tym stylu:

Declare Function GetWirelessDevices Library ossvcs.dll (ByRef pDevices As Int, ByVal dwFlags as Int) As Int

i analogicznie pozostałe (Ptr to pewnie ByRef). Nie wiem tylko jak zapisać EntryPoint i SAVEACTION (to jakiś typ, ale czy jest standardowo w eMbedded VB?).

To właśnie nie przejdzie bo nazwa GetWirelessDevices nie jest nazwą funkcji w tej bibliotece tylko tam jest odwołanie przez proces ID (właśnie to EntryPoint=...)

0

Chyba znalazłem odpowiedź.
Zgodnie z tym co pisze na tej stronie: http://msdn.microsoft.com/en-us/library/f5xe74x8.aspx#Y862
nie da się tego przenieść z C# do środowiska embedded Visual Basic :/

0

na podanym linku ani nie ma mowy o "embedded", ani o tym że czegoś się w VB nie da.

0

Link dotyczy VB.NET, podczas gdy eMbedded VB nie ma z .NET wiele wspólnego.

Za zasobami MSDN do VB6: http://msdn.microsoft.com/en-us/library/aa716201%28VS.60%29.aspx (istnieje szansa, że eVB3 też to wspiera):

Declare Function GetWindowsDirectory Lib "kernel32" Alias "#432" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

więc modyfikujemy poprzedni mój strzał do:

Declare Function GetWirelessDevices Library "ossvcs.dll" Alias "#276" (ByRef pDevices As Int, ByVal dwFlags as Int) As Int

(i cały czas nie jestem pewien czy Int czy Long - mój link do MSDN wyżej wskazuje jakieś mapowania typów WinAPI do typów VB6, możesz próbować)

0
Azarien napisał(a)

na podanym linku ani nie ma mowy o "embedded", ani o tym że czegoś się w VB nie da.

Może jednoznacznie nie zostało to napisane ale jest taki fragment:

No code example is currently available or this language may not be supported.

więc założyłem, że się nie da (language may not be supported).

Ktos napisał(a)

Link dotyczy VB.NET, podczas gdy eMbedded VB nie ma z .NET wiele wspólnego.

Za zasobami MSDN do VB6: http://msdn.microsoft.com/en-us/library/aa716201%28VS.60%29.aspx (istnieje szansa, że eVB3 też to wspiera):

Declare Function GetWindowsDirectory Lib "kernel32" Alias "#432" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

więc modyfikujemy poprzedni mój strzał do:

Declare Function GetWirelessDevices Library "ossvcs.dll" Alias "#276" (ByRef pDevices As Int, ByVal dwFlags as Int) As Int

(i cały czas nie jestem pewien czy Int czy Long - mój link do MSDN wyżej wskazuje jakieś mapowania typów WinAPI do typów VB6, możesz próbować)

Na razie tego nie sprawdze czy ten zapis jest poprawny... obszedłem problem pisząc bibliotekę w C++ a następnie bibliotekę tą używam w aplikacji napisanej w środowisku eVB.

Faktycznie dałem ciała :/
Na tej stronie http://msdn.microsoft.com/en-us/library/aa716201%28VS.60%29.aspx jest jak wół napisane i podany przykład tego co chciałem osiągnąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1