Jag hade i min ägo för en tid sedan en liten VB-kodsnutt som använde RtlMoveMemory för att byta plats på strängarna; detta gick mycket snabbare än att använda en vanlig temporärsträng... Hej Hej Nej, deklarationen hade jag... dock inte hur koden såg ut! Men jag tror att jag hittade rätt kod efter mycket sökande: Hej igenRtlMoveMemory - vid sortering av sträng-array
Jag hittade en länk (som inte fungerar) : http://www.vb2themax.com/Articles/Arrays/article.asp
Den skulle handla om hur man gör just detta... Min fråga är: Är det någon som har koden tillgänglig? Jag kommer inte riktigt ihåg hur man gjorde...Sv: RtlMoveMemory - vid sortering av sträng-array
Hittade den inledande Deklarationen om det hjälper dig något
Private Declare Sub RtlMoveMemory Lib "kernel32.dll" _
( Destination As Any, Source As Any,ByRef Length As SIZE_T )
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(pDst As Any, pSrc As Any, ByVal ByteLen As Long)
· Destination
Points to the starting address of the copied block’s destination.
· Source
Points to the starting address of the block of memory to copy.
· Length
Specifies the size, in bytes, of the block of memory to copy.
mvh
SvenSv: RtlMoveMemory - vid sortering av sträng-array
Efter att läst din fråga blev jag mer nyfiken och hittade denna
intressanta artikel.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnovba01/html/Lightweight.asp
Vidare hittade jag detta som jag inte hade en an...ing om.
Getting a string pointer.
VBA comes with a number of undocumented (and unsupported)
functions that return pointers: StrPtr, VarPtr, and ObjPtr.
Of these functions, StrPtr returns a pointer to the internal
Unicode string - exactly what we need when we want
to call an API function that expects a Unicode string pointer.
mvh
SvenSv: RtlMoveMemory - vid sortering av sträng-array
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Source As Any, Byval numBytres As Long)
Dim saveAddr As Long
saveAddr = StrPtr(s1)
CopyMemory ByVal VarPtr(s1), ByVal VarPtr(s2), 4
CopyMemory ByVal VarPtr(s2), saveAddr, 4
Och eftersom den använder VarPtr() och StrPtr() så lär den koden inte fungera i .NET såvitt jag har förstått... Eller har jag fel?Sv: RtlMoveMemory - vid sortering av sträng-array
Nej du har rätt dessa funktioner har inte stöd i .Net
Man blir mer och mer fundersam på hur .Net ställer till det.
Skulle vara kul att hör hur mycket extra tid utvecklarna
får debitera för att följa MS påhitt. Hela saken är sjuk,mycket sjuk
DS