rodzina 4601–4812
Kody błędów wskaźników i buforów
Tworzenie wskaźników, dostęp do ich buforów i przydział pamięci. Pełna lista kodów z tej rodziny wraz z tym, co je wywołuje.
1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.
Tworzenie wskaźników i dostęp do ich buforów. Tu warto rozróżnić dwa momenty: błąd przy tworzeniu uchwytu i błąd przy kopiowaniu danych.
Przy tworzeniu dostaniesz 4802, 4805 albo kod o złych parametrach. Przy kopiowaniu — 4806, gdy danych jeszcze nie ma, albo 4807, gdy uchwyt przestał być ważny. To dwie różne przyczyny, a bywają mylone, bo oba objawiają się zwróceniem minus jedynki przez CopyBuffer.
Pełna lista
| Kod | Stała | Co znaczy |
|---|---|---|
| 4601 | ERR_BUFFERS_NO_MEMORY | za mało pamięci na przydział buforów wskaźnika |
| 4602 | ERR_BUFFERS_WRONG_INDEX | zły indeks bufora wskaźnika |
| 4603 | ERR_CUSTOM_WRONG_PROPERTY | zły identyfikator właściwości wskaźnika własnego |
| 4801 | ERR_INDICATOR_UNKNOWN_SYMBOL | nieznany symbol |
| 4802 | ERR_INDICATOR_CANNOT_CREATE | nie da się utworzyć wskaźnika |
| 4803 | ERR_INDICATOR_NO_MEMORY | za mało pamięci na dodanie wskaźnika |
| 4804 | ERR_INDICATOR_CANNOT_APPLY | wskaźnika nie da się nałożyć na inny wskaźnik |
| 4805 | ERR_INDICATOR_CANNOT_ADD | błąd nakładania wskaźnika na wykres |
| 4806 | ERR_INDICATOR_DATA_NOT_FOUND | żądanych danych nie znaleziono |
| 4807 | ERR_INDICATOR_WRONG_HANDLE | zły uchwyt wskaźnika |
| 4808 | ERR_INDICATOR_WRONG_PARAMETERS | zła liczba parametrów przy tworzeniu wskaźnika |
| 4809 | ERR_INDICATOR_PARAMETERS_MISSING | brak parametrów przy tworzeniu wskaźnika |
| 4810 | ERR_INDICATOR_CUSTOM_NAME | pierwszym parametrem tablicy musi być nazwa wskaźnika |
| 4811 | ERR_INDICATOR_PARAMETER_TYPE | zły typ parametru w tablicy przy tworzeniu wskaźnika |
| 4812 | ERR_INDICATOR_WRONG_INDEX | zły indeks żądanego bufora wskaźnika |
Jak czytać te kody w praktyce
Odczyt kodu błędu bez zgadywania
//--- zerujemy przed operacja, ktorej wynik chcemy sprawdzic
ResetLastError();
double bufor[];
ArraySetAsSeries(bufor, true);
if(CopyBuffer(uchwyt, 0, 0, 10, bufor) < 10)
{
int kod = GetLastError();
PrintFormat("nie udalo sie skopiowac danych, kod %d", kod);
ResetLastError();
return;
}