Re: "AS ANY" Problem mit MoveMemory Funktion
From: Thomas Scheidegger [MVP] (spam.netmaster_at_swissonline.ch)
Date: 06/29/04
- Next message: Mirko Nowak: "Ist MDAC installiert?"
- Previous message: U. Knebel: ""AS ANY" Problem mit MoveMemory Funktion"
- In reply to: U. Knebel: ""AS ANY" Problem mit MoveMemory Funktion"
- Next in thread: u.knebel_at_wepp.dee: ""AS ANY" Problem mit MoveMemory Funktion"
- Reply: u.knebel_at_wepp.dee: ""AS ANY" Problem mit MoveMemory Funktion"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 29 Jun 2004 17:13:22 +0200
Hallo Udo
> Nach der Konvertierung meines Projektes in VB.NET kann ich die Deklaration "as any" nicht mehr verwenden.
> Folgende Deklaration war in VB6 noch gültig:
> Private Declare Sub MoveMemory Lib "kernel32" Alias
> "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
API-Declares aus VB6 sind in .NET -IMMER- zu überarbeiten.
(Die API-Konvertierungen wären IMHO sowieso fragwürdig)
Nun, gerade das 'MoveMemory' - API macht unter
.NET oft gar keinen Sinn mehr,
kann man meist besser mit anderem Ansatz oder der Marshal-Klasse lösen.
Meistens ist das 'MoveMemory' zwischen
zwei (oder mehr) anderen API-Calls eingefügt.
Nicht selten sogar fast nutzlos.
Wenn du uns also etwas mehr zum 'Umfeld' sagst,
schaut evtl. eine viel modernere (.NET) Lösung heraus...
> PVOID und const VOID* konvertiere
dies sind in C++ irgendwelche (untypisierte) Pointer,
hängt eben vom Umfeld / Situation ab.
.NET ist viel strikter, man muss
da die Lage jedesmal genau analysieren, sonst
hat man Leaks oder Crash (u.U. an ganz anderer Stelle!)
Eine erste Möglichkeit [1:1 Ersatz zu VB6] wäre etwa:
<MarshalAs(UnmanagedType.AsAny)> ByVal x As Object
<MarshalAs(UnmanagedType.AsAny)> ByRef y As Object
aber bitte nicht einfach 'probieren' welches geht...
-> in MSDN über Marshaling lesen.
-- Thomas Scheidegger - MVP .NET - 'NETMaster' http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
- Next message: Mirko Nowak: "Ist MDAC installiert?"
- Previous message: U. Knebel: ""AS ANY" Problem mit MoveMemory Funktion"
- In reply to: U. Knebel: ""AS ANY" Problem mit MoveMemory Funktion"
- Next in thread: u.knebel_at_wepp.dee: ""AS ANY" Problem mit MoveMemory Funktion"
- Reply: u.knebel_at_wepp.dee: ""AS ANY" Problem mit MoveMemory Funktion"
- Messages sorted by: [ date ] [ thread ]