Ein einzelnes Projekt kann bis zu 32.000 Bezeichner (nicht reservierte Wörter) enthalten, einschließlich (aber nicht beschränkt auf) Formulare, Steuerelemente, Module, Variablen, Konstanten, Prozeduren, Funktionen und Objekte. Beachten Sie, dass die tatsächliche Anzahl der Bezeichner durch den verfügbaren Speicher begrenzt ist.
Variablennamen in Visual Basic dürfen nicht länger als 255 Zeichen sein und Formular-, Steuerelement-, Modul- und Klassennamen dürfen nicht länger als 40 Zeichen sein. Visual Basic begrenzt die tatsächliche Anzahl verschiedener Objekte in einem Projekt nicht.
◆Kontrollbeschränkungen◆
Jedes nichtgrafische Steuerelement (alle Steuerelemente außer Formen, Linien, Bildern und Beschriftungen) verwendet ein Fenster. Jedes Fenster beansprucht Systemressourcen, sodass die Gesamtzahl der Fenster, die gleichzeitig vorhanden sein können, durch die verfügbaren Ressourcen begrenzt ist. Die genaue Grenze hängt von den verfügbaren Systemressourcen und der Art der verwendeten Steuerung ab. Um den Verbrauch von Systemressourcen zu reduzieren, können Sie beim Erstellen oder Anzeigen von Grafiken anstelle von Bildrahmen-Steuerelementen Form-, Linien-, Beschriftungs- und Bildsteuerelemente verwenden.
1. Gesamtzahl der Kontrollen
Die maximal zulässige Anzahl von Steuerelementen in einem einzelnen Formular hängt von der Art der verwendeten Steuerelemente und den verfügbaren Systemressourcen ab. Es gibt jedoch eine feste Grenze von nur 254 zulässigen Kontrollnamen pro Formular. Da alle Steuerelemente im Array einen gemeinsamen Steuerelementnamen haben, zählt das Steuerelement-Array diesen Grenzwert nur einmal. In allen Versionen liegt die Grenze für die Kontrollarray-Indizes im Bereich von 0 bis 32.767. Wenn Sie Steuerelemente über jedem Steuerelement platzieren, beispielsweise Rahmensteuerelemente in einem Frame verschachteln, akzeptiert Visual Basic im Allgemeinen nur nicht mehr als 25 Ebenen verschachtelter Steuerelemente.
2. Einschränkungen bei Sonderkontrollen
In der folgenden Tabelle sind die Eigenschaftseinschränkungen für spezielle Steuerelemente in Visual Basic aufgeführt.
List- und ListCount-Listbox-Steuerelemente und Kombinationsfeld-Steuerelemente: Die maximale Anzahl von Elementen beträgt 32 KB und die Größenbeschränkung für jedes Element beträgt 1 KB (1024 Byte).
Textfeldsteuerung: auf 64 KB begrenzt;
Beschriftungssteuerung für Untertitel: begrenzt auf 1024 Byte;
Befehlsschaltflächen-Steuerelemente, Kontrollkästchen-Steuerelemente, Rahmensteuerelemente und Optionsschaltflächen-Steuerelemente: auf 255 Zeichen begrenzt, und alle Titel, die diese Begrenzungen überschreiten, werden abgeschnitten;
Titel der benutzerdefinierten Steuereigenschaft: auf 32 KB begrenzt
Menüsteuerung: auf 235 Zeichen begrenzt
Alle Steuerelemente markieren: auf die verfügbare Speichergröße beschränkt
Benennen Sie alle Steuerelemente: auf 40 Zeichen begrenzt
Beachten Sie, dass in Visual Basic die Namen von Steuerelementeigenschaften auf 30 Zeichen beschränkt sind.
◆Code-Einschränkungen◆
Die Gesamtzahl der Codezeilen, die in ein Formular, eine Klasse oder ein Standardmodul geladen werden können, ist auf 65.534 Zeilen begrenzt. Eine Codezeile ist auf 1023 Bytes begrenzt. Vor dem eigentlichen Text in einer Zeile dürfen nicht mehr als 256 führende Leerzeichen und in einer logischen Zeile nicht mehr als 25 Zeilenfortsetzungszeichen (_) stehen.
1. Prozeduren, Typen und Variablen
Die Anzahl der Prozeduren pro Modul ist unbegrenzt. Jeder Prozess kann bis zu 64 KB Code enthalten. Wenn eine Prozedur oder ein Modul diesen Grenzwert überschreitet, generiert Visual Basic einen Fehler bei der Kompilierung. Wenn Sie auf einen solchen Fehler stoßen, können Sie ihn vermeiden, indem Sie eine besonders große Prozedur in mehrere kleinere Prozeduren aufteilen oder die Deklaration auf Modulebene in ein anderes Modul verschieben. Visual Basic verwendet Tabellen, um Bezeichnernamen (Variablen, Prozeduren, Konstanten usw.) im Code zu speichern. Jede Tabelle ist auf 64 KB begrenzt.
2. Deklarationstabelle der Dynamic Link Library
Jedes Formular- und Codemodul verwendet eine Tabelle, die die Struktur des Einstiegspunkts der Dynamic Link Library beschreibt. Jede Struktur ist etwa 40 Byte groß und die Größe der Tabelle ist auf 64 KB begrenzt, was zu etwa 1500 Deklarationen pro Modul führt.
3. Projektliste
Die gesamte Anwendung verwendet eine Tabelle, die alle Namen enthält. Zu diesen Namen gehören:
·Konstanter Name
·Variablenname
·Benutzerdefinierter Typdefinitionsname
·Modulname
·Deklarationsname der DLL-Prozedur
Es gibt keine Begrenzung für die Gesamtgröße der Projektnamentabelle, aber Einträge, bei denen die Groß-/Kleinschreibung beachtet werden darf, dürfen 32 KB nicht überschreiten. Wenn die 32-KB-Grenze überschritten wird, kann der PRivate-Bezeichner in einem anderen Modul wiederverwendet werden, um die Anzahl der Einträge, bei denen die Groß-/Kleinschreibung beachtet wird, auf 32 KB zu begrenzen.
4. Eingabetabelle
Jedes Mal, wenn in einem anderen Modul auf einen Bezeichner verwiesen wird, wird ein Eintrag in der Eingabetabelle erstellt. Jeder dieser Einträge ist mindestens 24 Byte groß, aber auf 64 KB begrenzt, sodass jedes Modul etwa 2000 Referenzen haben kann.
5. Moduleintragstabelle
Jedes Modul in dieser Tabelle ist bis zu 125 Byte groß, es gibt jedoch eine Gesamtgrenze von 64 KB, sodass jedes Projekt etwa 400 Module produzieren kann.
◆Datenbeschränkung◆
Die folgenden Einschränkungen gelten für Variablen in der Visual Basic-Sprache.
1. Formular-, Standard- und Klassenmoduldaten
Der Datenabschnitt des VBA-Moduls (d. h. die im Deklarationsabschnitt definierten Daten) eines beliebigen Formulars oder Moduls in Visual Basic umfasst bis zu 64 KB Datenabschnitt, der die folgenden Daten enthält:
·Lokale Variablen, die mit Static deklariert wurden
·Variablen auf Modulebene, die keine Arrays sind, und Zeichenfolgen variabler Länge
·Jedes Modularray und jeder String variabler Länge belegt 4 Bytes
2. Prozeduren, Typen und Variablen
Wenn eine Prozedur oder ein Modul die Codebeschränkung von 64 KB überschreitet, generiert Visual Basic einen Fehler bei der Kompilierung.
Wenn die in einer Prozedur definierten lokalen Variablen 64 KB überschreiten, wird der Fehler „Zu viele lokale nicht statische Variablen“ generiert.
Wenn die in einem Modul definierten Variablen auf Modulebene 64 KB überschreiten oder der definierte benutzerdefinierte Typ größer als 64 KB ist, tritt die Fehlermeldung „Feste oder statische Daten dürfen 64 KB nicht überschreiten“ auf.
Wenn Sie auf einen solchen Fehler stoßen, können Sie ihn vermeiden, indem Sie eine zu große Prozedur in mehrere kleinere Prozeduren aufteilen oder die Deklaration auf Modulebene in ein anderes Modul verschieben.
Als Variablen deklarierte Arrays können nicht den gesamten Array-Speicherplatz nutzen; nur Array-Deskriptoren tragen zur 64-KB-Grenze bei. Beispielsweise in einer Prozedur oder als Deklaration auf Modulebene deklariert: Dimx(1000000)AsByte. Wenn Sie jedoch ein großes Datensatzarray mit fester Größe deklarieren und dann Instanzen dieser Datensätze als Variablen deklarieren, kann es zu einem Speicherüberlauf kommen.
3. Kundenspezifische Typen
Obwohl die Summe vieler benutzerdefinierter Zeichenfolgen variabler Länge 64 KB überschreiten kann (jede benutzerdefinierte Zeichenfolge variabler Länge belegt nur 4 Bytes und der tatsächliche Inhalt der Zeichenfolge wird separat gespeichert), können die benutzerdefinierten Variablen 64 KB nicht überschreiten. Benutzerdefinierte Typen können mit anderen benutzerdefinierten Typen definiert werden, die Gesamtgröße dieses Typs darf jedoch 64 KB nicht überschreiten.
4. Stapelplatz
Parameter und lokale Variablen belegen zur Laufzeit Stapelplatz. Variablen auf Modulebene und statische Variablen belegen keinen Stapelplatz, da sie im Datenabschnitt des Formulars oder Moduls zugewiesen sind. Jede aufgerufene DLL-Prozedur verwendet bei der Ausführung den Stack.
Visual Basic selbst nutzt den Stack beispielsweise, um bei der Auswertung von Ausdrücken Zwischenwerte zu speichern.
Die in Visual Basic verfügbare Gesamtstapelgröße beträgt ein Megabyte (1 MB) pro Thread. Allerdings kann die Stapelgröße diese Grenze überschreiten, wenn angrenzender freier Speicher vorhanden ist.
◆Einschränkungen der Systemressourcen◆
Bestimmte Einschränkungen von Visual Basic und damit erstellten Anwendungen werden von Microsoft Windows beeinflusst. Diese Einschränkungen variieren je nach Version von Microsoft Windows.
Jedes geöffnete Fenster beansprucht Systemressourcen (den von Microsoft Windows verwendeten Datenbereich). Wenn es außerhalb des Systemressourcenbereichs ausgeführt wird, tritt der Laufzeitfehler „Nicht genügend verfügbare Ressourcen für die Ausführung von Windows“ auf. Sie können „Info“ aus dem Menü „Hilfe“ des „Programmmanagers“ oder „Dateimanagers“ in Windows NT3.51 auswählen oder „Info“ aus dem Menü „Windows Explorer-Hilfe“ in Windows 95 und Windows NT4.0 auswählen. um den Prozentsatz der verbleibenden Systemressourcen zu ermitteln. Anwendungen können auch die Windows-API GetFreeSystemResources aufrufen, um Systemressourcen zurückzugewinnen, Fenster zu schließen (z. B. offene Formulare und „Code“-Fenster sowie Fenster in anderen Anwendungen) und laufende Anwendungen zu beenden.
->