vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
C "Übersetzung" gesucht 
Autor: MajorTom
Datum: 04.11.05 12:37

Mahlzeit!

Ich habe Probleme, die C Dokumentation für eine dll Funktion eines Framegrabber Boards in VB zu "übersetzen" und zu verwenden. Die Funktion nennt sich

ULNG OlImgGetDeviceInfo(LPOLT_IMGDEVINFO lpDevList, ULNG ulListSize);

wobei ulListSize die Größe des übergebenen Arrays ist und LPOLT_IMGDEVINFO definiert ist als:

typedef struct olOLT_IMGDEVINFO
{
ULNG StructSize;
OLT_IMGDEVTYPE DeviceType;
ULNG DeviceId;
char Alias[OLC_MAX_ALIAS_STR_SIZE];
char DeviceName[OLC_MAX_DEVICE_NAME_STR_SIZE];
} OLT_IMGDEVINFO,
FAR *LPOLT_IMGDEVINFO;

Die ..MAX.. Teile sind beide 20, OLT_IMGDEVTYPE ist:

typedef enum olOLT_IMGDEVTYPE
{
OLC_IMG_DEV_BOGUS = 0,
OLC_IMG_DEV_MONO_FRAME_GRABBER = 1,
OLC_IMG_DEV_COLOR_FRAME_GRABBER = 2,
} OL_IMGDEVTYPE,
FAR *LPOL_IMGDEVTYPE;

Mein Ansatz war: (die OlImgGetDeviceCount Funktion stammt vom selben SDK und funzt wunderbar! OLC_STS_... sind Fehlerwerte)

---------------------------------------------------------------------------------------------------------------
Private Declare Function OlImgGetDeviceCount Lib "olimg32.dll" (ByRef iCount As Long) As Long

Private Declare Function OlImgGetDeviceInfo Lib "olimg32.dll" (ByRef OLT_IMGDEVINFO() As TOLT_IMGDEVINFO, ByRef Length As Long) As Long

Enum OLT_IMGDEVTYPE
OLC_IMG_DEV_BOGUS = 0
OLC_IMG_DEV_MONO_FRAME_GRABBER = 1
OLC_IMG_DEV_COLOR_FRAME_GRABBER = 2
End Enum

Type TOLT_IMGDEVINFO
StructSize As Long
DeviceType As OLT_IMGDEVTYPE
DeviceId As Long
Alias As String * 20
DeviceName As String * 20
End Type

Const OLC_STS_NORMAL = &H0&
Const OLC_STS_NOSHARE = &H1&
Const OLC_STS_NOMEM = &H2&
Const OLC_STS_NOMEMLOCK = &H3&
Const OLC_STS_RANGE = &H4&
Const OLC_STS_STRUCTSIZ = &H5&
Const OLC_STS_NULL = &H6&
Const OLC_STS_BUSY = &H7&

Function GetDeviceCount() As Integer
Dim Devices As Long
Dim OLT_IMGDEVICEINFO() As TOLT_IMGDEVINFO

If OlImgGetDeviceCount(Devices) = OLC_STS_NORMAL Then
ReDim OLT_IMGDEVICEINFO(Devices-1)
If OlImgGetDeviceInfo(OLT_IMGDEVICEINFO, Devices *LenB(OLT_IMGDEVICEINFO(0))))=OLC_STS_NORMAL then
GetDeviceCount = 1
Else
GetDeviceCount = -1
End If
End If
End Function
---------------------------------------------------------------------------------------------------------------

(Die erfüllt noch keinen bestimmten Zweck!) Dabei krieg ich als Rückgabe besagter Funktion ständig OLC_STS_NULL, will heißen: "One of the pointers received by the library or device driver was NULL. Check to make sure that all pointers are valid before calling the requested function. Make sure that each pointer is pointing to a valid memory location." ?!? Könnte jemand mal darüberschauen und mir sagen ob und was ich falsch mache!

Vielen herzlichen Dank schon mal im Vorraus!!


Thomas
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
C "Übersetzung" gesucht1.045MajorTom04.11.05 12:37
Re: C "Übersetzung" gesucht703Radeonmaster05.11.05 13:35
Re: C "Übersetzung" gesucht645MajorTom06.11.05 23:40
Re: C "Übersetzung" gesucht646MajorTom08.11.05 11:36
Re: C "Übersetzung" gesucht635MajorTom08.11.05 11:41
Re: C "Übersetzung" gesucht616MajorTom10.11.05 15:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel