014
22.07.2003, 14:13 Uhr
~Gast
Gast
|
Hallo Uwe!
Ich mal wieder....
Ich habe ein neues/altes Problem!
Also der VB-Code sieht ja (verkürzt) so aus:
Code: |
Option Explicit Private Declare Function StringArray Lib "test.dll" Alias "_StringArray@4" _ (s() As String) As Integer Private Sub Command1_Click() ReDim str(2) As String Dim i As Integer str(1) = "String 1" str(2) = a$21 //Siehe unten! zu str(2) i = StringArray(str) End Sub
|
Das Problem betrifft str(2), also a$21!
zu str(2):
mein str(2) ist ein String, der ca. 200.000 Zeichen lang ist.
Nun bin ich in vb an die Grenzen gestoßen, als ich diesen String manuell eingeben wollte. Ich teilte also den String in 20 verschiedene Strings auf:
a1$, a2$ ... a20$
Zum Schluß habe ich alle 20 Strings in einen einzigen String "a21$" gepackt:
a21$ = a1$ + a2$ + ....+ a20$
und habe:
str(2) = a21$
geschrieben
Wenn ich beim Debuggen Len$(a21$) eingebe, zeigt er mir korrekterweise 200.000 an, d.h. er hat den Gesamtstring in a21$ gespeichert und müßte (normalerweise) diesen Gesamtstring ja auch an "str(2) übergeben! Bis hierhin ist alles korrekt.
Aber im c++-DLL ist vom Gesamtstring nur ein winziger Teil (nämlich nur 1/10 des Strings a1$ zu sehen!).
Wo liegt das Problem?
- Sind die 200.000 Zeichen einfach nur zu viel und ist (char*)bstr nicht in der Lage so viele Zeichen aufzunehmen?
Hast Du eine Idee? |