Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 20.09.2011
Сообщений: 52

Netbios, ошибка "Stack around the variable was corrupted"

23.11.2011, 18:06. Показов 1878. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите плииз есть вот такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <strstream>
#include <string>
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "netapi32.lib")
using namespace std;
 
bool GetAdapterInfo(int nAdapterNum, string & sMAC)
{
    UCHAR uRetCode; 
    // Reset the LAN adapter so that we can begin querying it 
    NCB Ncb;
    memset(&Ncb, 0, sizeof(Ncb));
    Ncb.ncb_rto=1;
    Ncb.ncb_command = NCBRESET;
    Ncb.ncb_lana_num = nAdapterNum;
uRetCode = Netbios((NCB*) &Ncb );
if ( uRetCode != NRC_GOODRET )  
{
        char acTemp[80];
        ostrstream outs(acTemp, sizeof(acTemp));
        outs << "error " << Ncb.ncb_retcode << " on reset" << ends;
        sMAC = acTemp;
        return false;
    }
    
    // Prepare to get the adapter status block 
    memset(&Ncb, 0, sizeof(Ncb));
    Ncb.ncb_command = NCBASTAT;
    Ncb.ncb_lana_num = nAdapterNum;
    strcpy((char *) Ncb.ncb_callname, "192.168.249.220");
    struct ASTAT {
        ADAPTER_STATUS adapt;
        NAME_BUFFER NameBuff[30];
    } Adapter;
    memset(&Adapter, 0, sizeof(Adapter));
    Ncb.ncb_buffer = (unsigned char *)&Adapter;
    Ncb.ncb_length = sizeof(Adapter);
    
    // Get the adapter's info and, if this works, return it in standard,
    // colon-delimited form.
uRetCode = Netbios((NCB*) &Ncb );
if ( uRetCode == NRC_GOODRET )  
{
        char acMAC[18];
        sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X",
                int (Adapter.adapt.adapter_address[0]),
                int (Adapter.adapt.adapter_address[1]),
                int (Adapter.adapt.adapter_address[2]),
                int (Adapter.adapt.adapter_address[3]),
                int (Adapter.adapt.adapter_address[4]),
                int (Adapter.adapt.adapter_address[5]));
        sMAC = acMAC;
        return true;
    }
    else {
        char acTemp[80];
        ostrstream outs(acTemp, sizeof(acTemp));
        outs << "error " << Ncb.ncb_retcode << " on ASTAT" << ends;
        sMAC = acTemp;
        return false;
    }
}
 
int main()
{
    // Get adapter list
    LANA_ENUM AdapterList;
    NCB Ncb;
    memset(&Ncb, 0, sizeof(NCB));
    Ncb.ncb_command = NCBENUM;
    Ncb.ncb_buffer = (unsigned char *)&AdapterList;
    Ncb.ncb_length = sizeof(AdapterList);
    Netbios(&Ncb);
 
    // Get all of the local ethernet addresses
    string sMAC;
    for (int i = 0; i < AdapterList.length; ++i) {
        if (GetAdapterInfo(AdapterList.lana[i], sMAC)) {
            cout << "Adapter " << int (AdapterList.lana[i]) <<
                    "'s MAC is " << sMAC << endl;
        }
        else {
            cerr << "Failed to get MAC address! Do you" << endl;
            cerr << "have the NetBIOS protocol installed?" << endl;
            break;
        }
    }
    _getchar_nolock();
    return 0;
}
возвращает mac адрес lan карты, но если ее не онлайн или это не компьютер получаю ошибку
Run-Time Check Failure #2 - Stack around the variable 'Ncb' was corrupted.
nbtstat -a возвращает
Hoste note found
как на эту функцию поставить timeout ? или как вообще избежать данной ошибки? заранее благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2011, 18:06
Ответы с готовыми решениями:

Ошибка «Stack around the variable 'p' was corrupted»
После вывода консолью ASCII-символов, в коде вылазит ошибка «Stack around the variable 'p' was...

Ошибка - Stack around the variable 'ary' was corrupted
Привет, форумчане. #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main()...

Ошибка: Stack around the variable 'Material' was corrupted
При компиляции кода на C++, выводит ----Run-Time Check Failure #2 - Stack around the variable...

1
0 / 0 / 0
Регистрация: 20.09.2011
Сообщений: 52
28.11.2011, 13:04  [ТС]
покапавшись в документации, я к сожалению не нашел как можно программно исправить эту ошибку. Stack around the variable was corrupted. Steck вокруг переменной поврежден.
в версии vs 2010 есть есть вот такие хорошие вещи как например /RTC runtime_checks http://msdn.microsoft.com/en-u... sb93x.aspx и /GS Buffer Security Check http://msdn.microsoft.com/en-u... f701c.aspx которие следят за переполнение буфера и за состоянием Стека. Oтключаете иx в дебагере, и будет вам щастье.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2011, 13:04
Помогаю со студенческими работами здесь

Ошибка Run-Time Check Failure #2 - Stack around the variable 'h' was corrupted
Формирование координат графика экспоненциальной функции #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted
Суть работы: Дана непустая последовательность слов (не более 30), в каждом слове не более восьми...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'B' was corrupted
Ошибка Run-Time Check Failure #2 - Stack around the variable 'B' was corrupted Суть работы - дан...

Ошибка Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted
Ошибка Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted. Есть ошибочки...

Ошибка: Run-Time Check Failure #2 - Stack around the variable 'ttt1' was corrupted
Ошибка при дебаге. Помогите понять в чем дело. Visual Studio 2010 Код #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru