Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
#1

При запуске прогаммы из папки Release вылетает - C++

06.11.2011, 17:26. Просмотров 960. Ответов 11
Метки нет (Все метки)

Есть программа написанная мной(500 строк)
Если запускаю дебаг, все работает так как надо
Если запускаю реалайз, все работает как надо
Но если зайты в папку реалайз то программа работает почти до конца, но вылытает

Наверно это связанно с настройками VS10? Если да то как исправить?

Добавлено через 4 часа 50 минут
up проблема все интересна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 17:26     При запуске прогаммы из папки Release вылетает
Посмотрите здесь:

Как в Visual Studio задать имя файла при запуске Release через Ctrl + F5? - C++
Я переименовал выходной файл в режиме Release в свойствах Linker->General->Output, но при попытки из студии как обычно запустить...

Программа вылетает при запуске - C++
День всем добрый! Я недавно заметил такую особенность. Если размещать файл программы по директории, содержащей русские символы,...

При запуске вылетает,а почему? - C++
#include <iostream> using namespace std; const int MAX=100; //ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ â èìåíè class emloyee { long...

При запуске приложения вылетает сообщение - C++
При запуске приложения вылетает следующее, приложение рабочее, помогите пожалуйста(

При запуске программы вылетает Dev-C++ - C++
Здравствуйте! Хотел я сделать программу которая. Просит на вход несколько данных. А на выходе выдает учеников школы 50 набравших...

Программа вылетает при запуске из консоли ( утечка) - C++
Добрый день. Столкнулся с интересной проблемой. Написал программу(см.ниже, в ней две небольших утечки - см.ниже). При фиксированных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.11.2011, 17:29     При запуске прогаммы из папки Release вылетает #2
с какой ошибкой вылетает?
и правильно говорить "рилиз")
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
06.11.2011, 17:49  [ТС]     При запуске прогаммы из папки Release вылетает #3
Так выглядет на одном компьютере
При запуске прогаммы из папки Release вылетает
а на другом просто пишет что возникшее проблемы привели к прекращению работы программы
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
06.11.2011, 17:56     При запуске прогаммы из папки Release вылетает #4
Я бы посмотрел ассемблерный код и посмотрел бы, что там за инструкция. Навскидку могу сказать, что это либо выход за пределы выделенной памяти, либо попытка чтения памяти, которая была выделена под функцию, но функция уже отработала, либо что-нибудь в этом роде.
Можешь весь свой код выложить.

Добавлено через 1 минуту
да, кстати, можешь нажать "отмена", должно что-то информативное открыться, например будет указана строчка кода, которая создает эту ошибку.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.11.2011, 17:57     При запуске прогаммы из папки Release вылетает #5
ошибка в коде программы.
попытка записи туда, куда не следует, вероятно.
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
06.11.2011, 18:01  [ТС]     При запуске прогаммы из папки Release вылетает #6
вот кусочки кода( примерно там момент вылета)

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include "head.h"
int main(int argc, char* argv[])
{
 
    setlocale(LC_CTYPE, ""); //русский текст
    cout<<"Чтение из файла\n";
    FILE *Fin;
    int r;
    if((Fin=fopen(file_in, "r+"))!=NULL)
    {
        
        while(r = fgets(buff,255,Fin)>0)
        {
            try
            {
                // сдесь набор функций( но в них не вылетает)
                obr4();
                cout<<"Последныя удаление одинаковых ссылок\n";
                obr5();
                cout<<"И еще раз\n";
                obr6();
                zapis=true;
                while(zapis)
                {
                    cout<<"Запись в файл\n";
                    if(zap_v_file())
                        zapis=false;
                    else
                    {
                        cout<<"Запись в файл не удачна.Проверте, существует ли файл "<<file_out<<" и не занет ли он другим процессом.После проверки нажмоте любою кнопку, затем Enter\n";
                        cin>>buff;
                    }
                }
            }
            catch(...)
            {
                cout<<"Ошибка";
            }
 
        }
    }
    else
    {
        cout<<"Не удалось открыть файл "<<file_in;
        cin>>buff;
    }
    cout<<"Все!!!\a";
    cin>>buff;
 
 
 
    return 0;
}
// здесь функции
// best - это вектор строк
bool obr5()
{
    int end=best.size()-2;
    for(int i=0;i<end;i++)
    {
        try
        {       
            if(best.at(i)==best.at(i+1) || best.at(i)==best.at(i+2))
                best.erase(best.begin()+i--);
        }
        catch(...)
        {
            cout<<"Ошибка в этой ссылке\n";
        }
 
    }
    return 1;
}
 
// мне кажется что вылетает в этой функции , поэтому так много блоков try
bool obr6()
{
    try
    {
        int end=best.size()-1;
        for(int i=0;i<end;i++)
        {
            try
            {   
                int na[3];
                string tmp0;
                string tmp1;
                string tmp2;
                na[0]=best.at(i).rfind("http://");
                na[1]=best.at(i+1).rfind("http://");
                na[2]=best.at(i+2).rfind("http://");
 
                    tmp0=best.at(i+0).substr(na[0]);
                    tmp1=best.at(i+1).substr(na[1]);
                    tmp2=best.at(i+2).substr(na[2]);
            
                if(tmp0==tmp1 || tmp0==tmp2)
                    best.erase(best.begin()+i--);
 
 
            
            }
            catch(...)
            {
                cout<<"Ошибка в этой ссылке\n";
            }
 
 
        }
        try
        {
            best.erase(best.end()-1);
        }
        catch(...)
        {
            cout<<"Ошибка удаления последней ссылки\n";
        }
        return 1;
    }
    catch(...)
    {
        return 0;
    }
}
    
 
bool zap_v_file()
{
    try
    {
        FILE *output;
        char kon_str[2];
        strcpy(kon_str,"\n");
    
        if((output=fopen(file_out, "a+t"))==NULL)
           return 0;
        for(int i=0;i<best.size();i++)
        {
            fputs(best.at(i).c_str(), output);
            fputs(kon_str, output);
        }
        fclose(output);
        best.clear();
        return 1;
    }
    catch(...)
    {
        return 0;
    }
}
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
06.11.2011, 18:05     При запуске прогаммы из папки Release вылетает #7
Ну так вот оно:
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
C++
1
2
na[1]=best.at(i+1).rfind("http://"); 
na[2]=best.at(i+2).rfind("http://");
когда i=end-1 происходит выход за пределы строки(или что там у тебя)

Добавлено через 1 минуту
и здесь тоже
C++
1
if(best.at(i)==best.at(i+1) || best.at(i)==best.at(i+2))
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
06.11.2011, 18:08  [ТС]     При запуске прогаммы из папки Release вылетает #8
Цитата Сообщение от Kastaneda Посмотреть сообщение

Добавлено через 1 минуту
да, кстати, можешь нажать "отмена", должно что-то информативное открыться, например будет указана строчка кода, которая создает эту ошибку.
Когда я запускаю из студии то ошибка не появляется, а когда кликаю на exe шник то она появляется.

когда нажимаю отмена меня посылает в файл free.c
на строчки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __cdecl _free_base (void * pBlock)
{
 
        int retval = 0;
 
 
        if (pBlock == NULL)
            return;
 
        RTCCALLBACK(_RTC_Free_hook, (pBlock, 0));
 
        retval = HeapFree(_crtheap, 0, pBlock);
        if (retval == 0)
        {
            errno = _get_errno_from_oserr(GetLastError());
        }
}
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
06.11.2011, 18:11     При запуске прогаммы из папки Release вылетает #9
здесь кстати выкидывается исключение, которое выкидывает at()
C++
1
2
3
4
5
6
7
8
9
 try
                {               
                        if(best.at(i)==best.at(i+1) || best.at(i)==best.at(i+2))
                                best.erase(best.begin()+i--);
                }
                catch(...)
                {
                        cout<<"Ошибка в этой ссылке\n";
                }
ну и во втором случае тоже.
Mиxaил
06.11.2011, 18:12
  #10

Не по теме:

Цитата Сообщение от OstapBender Посмотреть сообщение
и правильно говорить "рилиз")
елиз" правильно будет

ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
06.11.2011, 18:13  [ТС]     При запуске прогаммы из папки Release вылетает #11
если выкидывает это исключение она это пишет, и продолжает работать
а моем случае вылетает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2011, 18:37     При запуске прогаммы из папки Release вылетает
Еще ссылки по теме:

Borland c 5.02 при запуске по шагам (F8) вылетает окошко CPU c кодом АСМ как его убрать? - C++
День добрый. Кто знает подскажите пожалуйста в Borland C++ 5.02 при пошаговом запуске программы выдает окошко CPU с асемблерным кодом как...

При запуске из среды программа работает, при запуске выполняемого файла выдает ошибку - C++
Добавлено через 1 минуту 35 секунд как исправить ошибки в названии темы? там должно было быть исполняемого файла

Ошибки при Solutions Configuration->Release - C++
Здравствуйте! Я пишу программу на С++ Win APi. Если поставить Solutions Configuration-&gt;Debug, программа работает нормально, то если...

Ошибка при построении Release в VC 2010 Express. - C++
Использую qt-win-opensource-4.8.1-vs2010 с VC 2010 Express. Проект разделён на три файла: mainwindow.h #include &lt;QtGui&gt; #include...


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

Или воспользуйтесь поиском по форуму:
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.11.2011, 18:37     При запуске прогаммы из папки Release вылетает #12
Mиxaил, какая разница ? оО
Yandex
Объявления
06.11.2011, 18:37     При запуске прогаммы из папки Release вылетает
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru