Om man skall skicka med en address till något i C++ skriver man ett &-tecken framför. Ja nästan. >Hur gör jag i VB.NET? Om du ska skicka structar till C++ så är den klass du ska kolla på IntPtr. Skicka address till API (&?)
Hur gör jag i VB.NET?
' Allocate a buffer for the control
'hmem = GlobalAlloc(&H40, Len(mxc))
hmem = GlobalAlloc(GMEM_FIXED, Len(mxc))
mxlc.pamxctrl = GlobalLock(hmem)
mxc.cbStruct = Len(mxc)
Hittade detta MED API. Borde finnas något lättare.
Får väl annars övergå till C++...Sv: Skicka address till API (&?)
Men nu är det addressen till en instans av en struktur.
Finns mycket under system.runtime... som man förmodligen skall använda men har inte fattat så mycket där ännu...Sv: Skicka address till API (&?)
Beror lite på vilken datatyp det gäller. För en Structure deklarerar du parametern ByRef.
MSSv: Skicka address till API (&?)
Jag har bara använt detta från C#, vet inte om den kan användas från VB.NET. I C# så kan man ju använda void* genom unsafe code, men det kan man ju inte i VB.NET eftersom den väl alltid är CLS-compliant.
Ur hjälpen:
The IntPtr type is designed to be an integer whose size is platform-specific. That is, an instance of this type is expected to be 32-bits on 32-bit hardware and operating systems, and 64-bits on 64-bit hardware and operating systems.
The IntPtr type can be used by languages that support pointers, and as a common means of referring to data between languages that do and do not support pointers.
IntPtr objects can also be used to hold handles. For example, instances of IntPtr are used extensively in the System.IO.FileStream class to hold file handles.
/Mattias