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

Не работает в release - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает программма "перевертыш" http://www.cyberforum.ru/cpp-beginners/thread446946.html
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например "приветмир" а она тебе выдает "римтевирп". Написал код, скомпилировал а она вместо "римтевирп" пишет "Иримтевир". Вот код #include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv) { char ch,pr;
C++ первый шаг он трудный самый! Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге написано создать свою первую программу, которая выглядит так: #include <iostream.h> void main(void) { cout << "Учимся программировать на языке C++!"; } Когда я запускаю чета происходит но ниче существенного и понятново)))) Если можете объясните по возможности доступно что я делаю не так и... http://www.cyberforum.ru/cpp-beginners/thread446936.html
задача на minmax C++
Дано целое число N (> 1) и набор из N чисел. Найти номера двух соседних чисел из данного набора, произведение которых является мини- мальным, и вывести вначале меньший, а затем больший номер.
C++ Задача по классам.с++
Задание 1 Разработать пользовательский тип (класс) «матрица целых чисел». Класс должен содержать: – все нужные поля, исходя из условия задачи (будет оцениваться РАЗУМНЫЙ выбор полей и правильные имена), – конструктор по умолчанию, – конструктор с параметрами, – конструктор копирования, – деструктор.
C++ Булевская переменная http://www.cyberforum.ru/cpp-beginners/thread446916.html
Написать программу, в результате выполнения которой булевская переменная t получает значение true, если выполняется указанное условие, и значение false в противном случае: цифра m входит в десятичную запись четырехзначного числа n Почему выводит 0? //--------------------------------------------------------------------------- #pragma hdrstop ...
C++ Написать программу, демонстрирующую потери точности при арифметических операциях Можете рассписать по пунктам, что делать? Суть задания я уловила, а как реализовать - без единого понятия! Потеря точности при сложении: написать программу, демонстрирующую потерю точности при сложении и определяющую абсолютную и относительную погрешность машинного числа для используемых в системе программирования типов вещественных переменных. Потеря точности при вычитании: написать программу... подробнее

Показать сообщение отдельно
SAkonst
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 19
15.02.2012, 23:24  [ТС]     Не работает в release
Вы уверены, что сборка действительно в Release ?
А как выяснить в release или нет. Дословно я делаю следующее: Build -> Configuration Manager, а там меняю configuration c debug на release (скриншот). После чего нажимаю Rebuild Solution и получаю exe с файлом pdb (который я так понимаю не очень-то и нужен конечному пользователю) в папке Release.

Код я выложу, но как это поможет в решении этой проблемы? Я так понимаю, что проблема-то не в коде, а в настройках сборки в Release, хотя, конечно могу быть не прав)

Мой код исполняется при нажатии только одной кнопки и syslink. Весь остальной проект сотворен самой студией при создании MFC
(простите, комментарии пока не писал. При необходимости добавлю)
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
void CSearchWordsDlg::OnBnClickedCheck1()
{
    if (check == 0)
        check = 1;
    else
        check = 0;
    if (m_EditControlLCon.EnableWindow(FALSE))
        m_EditControlLCon.EnableWindow(TRUE);
}
void CSearchWordsDlg::OnBnClickedButton1()
{
    UpdateData(TRUE);
 
    #define BUFFSIZE 100
    char word[BUFFSIZE];
    int counter = 0;
    int counter2 = 0;
    int i;
    int n = 0;
    int j;
    int log = 0;
    int progress = 0;
    CString counterS;
    CString counterS2;
    CString LastChar;
    
    FILE *filedict;
    FILE *filelog;
    filedict = fopen ("zdb-win.txt", "r");
    filelog = fopen ("Filelog.txt", "w");
    
    if (filedict == 0)
                {
                    MessageBox(_T("Dictionary not found. It must be in folder with program. Please check"));
                    return ;
                }
 
    if (m_EditControlFC.GetLength() == 0 || (m_EditControlFC.GetLength() != 0 &&  check == 1 && m_EditControlLCon.GetWindowTextLength() == 0))
                {       
                    MessageBox (_T("Please, insert characters into field"));
                    return;
                }
    else if (m_EditControlLCon.GetWindowTextLength() > 1)
                {
                    MessageBox (_T("Only one simbol in last character"));
                    return;
                }
            
            
            m_EditControlRes.SetWindowText(_T("Searching..."));
            m_EditControlRes.UpdateWindow();
 
    while (! feof (filedict))
        {
            counterS.Format(_T("%d"), counter);
            counterS2.Format(_T("%d"), counter2);
            memset (word, 0, BUFFSIZE);
            i = 0;
            fscanf (filedict, "%s", word);
 
            while (word[i] == m_EditControlFC.GetAt(i) && m_EditControlFC.GetAt(i + 1) != 0)
                    i = i + 1;
            if (word[i] == m_EditControlFC.GetAt(i))
                {
                    counter = counter + 1;
                    if (check == 0)
                        fprintf (filelog, "%s \n", word);
                }
            
            progress = 1;
 
            if (m_EditControlLCon.GetWindowTextLength() == 1 && check == 1)
                {
                    m_EditControlLCon.GetWindowText(LastChar);
                    j = i;
                    while (word[j] != 0)
                        {
                            j = j + 1;
                            if (LastChar == word[j] && m_EditControlFC.GetAt(i) == word[i] && word[j + 1] == 0)
                                {
                                    fprintf (filelog, "%s \n", word);
                                    log = 1;
                                    counter2 = counter2 + 1;
                                }                       
                        }
                }
            }
            if (log == 0 && progress != 0 && counter == 0 || log == 0 && progress != 0 && check == 1)
                    m_EditControlRes.SetWindowText(_T("No match"));
            if (counter != 0 && check == 0)
                    m_EditControlRes.SetWindowText(counterS);
            if (log != 0)
                    m_EditControlRes.SetWindowText(counterS2);
            
            m_EditControlRes.UpdateWindow();
    
    fclose (filedict);
    fclose (filelog);
    progress = 0;
 
}
 
 
void CSearchWordsDlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
{
    PNMLINK pNMLink = (PNMLINK)pNMHDR;
    ::ShellExecute (m_SysLink.m_hWnd, _T("open"), _T("Filelog.txt"), NULL, NULL, SW_SHOWNORMAL);
    *pResult = 0;}
еще бывает ошибка, когда вызов функции вставляют в ассерт.
Покажусь нубом, но что есть "ассерт"?

трудно это после оптимизатора код на себя не похож
А есть возможность отключить оптимизаторы?

все таки кое-что можно попробовать подебажить в релизе
Опять-таки покажусь нубом. Как дебажить в релизе? Не работает если запускать сам exe, а внутри студии даже, если build стоит на Release то работает.
Миниатюры
Не работает в release  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru