| |
VB.NET - FortgeschritteneVB2005 Structure in API-Deklaration | | | Autor: Spindler | Datum: 08.03.07 09:44 |
| Hallo,
ich habe ein Problem mit einer definierten Structure und einem API-Aufruf, in dem diese Structure benötigt wird:
Ich habe schon einiges gelesen und das Hauptproblem an der ganzen Sache ist wohl, dass in dem Structure ein Array mit definierter Größe vorkommt....
Die Structure sieht so aus:
Public Structure Mail
Dim iId As Short
Dim iInfo As Short
Dim iCommand As Short
Dim iDataSize As Short
Dim iFrameCount As Short
Dim iFrameNo As Short
Dim iOffsetHi As Short
Dim iOffsetLo As Short
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=255)> Dim abData() As Byte
Public Sub Initialize()
ReDim abData(255)
End Sub
End Structure Soweit, so gut. Das klappt auch alles, wenn ich eben nach der Instanzierung noch den Initialize aufrufe.
Anschließend wird der Typ mit Werte gefüttert und an eine Funktion übergeben:
Public Declare Auto Function ReceiveMail Lib "ABS.dll" Alias "ReceiveMail" ( _
ByVal pxPath As Integer, <MarshalAs(UnmanagedType.Struct)> ByRef psMail As _
AriadneMail, ByVal iTimeout As Short) As Integer Den Marshal-Aufruf hab ich eingebaut. Leider zeigt nichts so wirklich Wirkung. Die Online-Hilfe der IDE sagt, dass es in so einem Fall zu unvorhersehbaren Werten kommen kann und genau das dürfte mein Problem sein.
Oder ist die Structure schon falsch?
Es ist ein Beispielcode, den ich mit dem Upgrade-Assi von VB6 hochgezogen habe.
Ach ja, ich verwende vorher bereits die Funktion mit der Structure ohne Probleme. Da wird aber die Eigenschaft abData() nicht verwendet. Es muss also was in diese Richtung sein...
Ich hoffe, jemand kann mir weiterhelfen, mir sitzt irgendwie ein Termin und mein Chef im Nacken... | |
Re: VB2005 Structure in API-Deklaration | | | Autor: Drapondur | Datum: 08.03.07 20:34 |
| Hallo,
wie sind Struct und Function denn eigentlich in C++ beschrieben? | |
Re: VB2005 Structure in API-Deklaration | | | Autor: Spindler | Datum: 09.03.07 08:40 |
| Habs mittlerweile rausgefunden, war eigentlich ganz einfach:
Die Structure war das Problem, denn die war mit UINT16, sprich UShort definiert. Es hat gereicht, den Datentyp von Short auf UShort zu ändern.
Danke für die Antwort! | |
| 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|