Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Значения переменных в Release


Автор: Гость_Гость 15.1.2005, 11:34
Как узнать значение переменных в Release ?
Можно сделать вывод массива в файл ?

Дело в том что в дебуге прога работает правильно а в Release нет.
Ошибок никаких невыдаёт.

Автор: S.A.P. 15.1.2005, 11:48
Цитата
Как узнать значение переменных в Release ?
Можно просто через MessageBox();

Цитата
Можно сделать вывод массива в файл ?

Код

FILE *file;
char buf[500];
file=fopen(fileName, "w");
fwrite( buf, 1, 500, file);


Цитата
Дело в том что в дебуге прога работает правильно а в Release нет.
Ошибок никаких невыдаёт.
покажи код. может что и решим. Не забудь воспользоваться тегами [code=cpp]

Автор: Guest 15.1.2005, 12:07
Спасибо !

Весь код очень большой ...... около 100 листов...

Автор: Guest 15.1.2005, 12:21
Что здесь неправильно ?

Код

int MasPairNogID[20][2];
CreateMasPairNogID(MasPairNogID,pTaskData); // заполнение массива


FILE *file;
CString buf;
file=fopen("C:\test.txt", "w");
int ff=0;
while ( MasPairNogID[ff][0] !=0)
{
 buf = itoa(MasPairNogID[ff][0],buf.GetBuffer(10),10);
 fwrite( buf, 1+ff*10,10, file);
 ff++;
}


Автор: bel_nikita 15.1.2005, 12:30
Для начала, я бы с оптимизацией поиграл smile Отмени всякую оптимизацию и скомпилируй в Release.

Автор: Leopard25 15.1.2005, 13:08
Зачем отменять оптимизацию ?
Я хочу найти место где происходит неправильное действие...

после:
file=fopen("C:\test.txt", "w");

file равно NULL .... Почему ?

Автор: Leopard25 15.1.2005, 13:44
Цитата(bel_nikita @ 15.1.2005, 12:30)
Для начала, я бы с оптимизацией поиграл smile Отмени всякую оптимизацию и скомпилируй в Release.

Если Maximize Speed (/O2) заменить на Disabled (/Od)
работает правильно , в каких функциях может быть ошибка ?

Автор: S.A.P. 15.1.2005, 23:30
Цитата(Leopard25 @ 15.1.2005, 13:08)
C:\test.txt
ну так не правильно!

Код

C:\\test.txt
вот так надо. Потому что компилятор по своему преобразует символы \t .

Автор: Leopard25 16.1.2005, 23:39
А как правильно вывести
int MasPairNogID[20][2]

что писать в fwrite( buf, ....... , ..... , file); ?

Автор: S.A.P. 17.1.2005, 00:01
Leopard25 так просто не получиться, вроде. Через цикл сделай:
у тебя двухмерный массив int MasPairNogID[x][y]
Код

for (int a=0; a<x; a++) fwrite( *(MasPairNogID+a), sizeof( int ), y, file);

Добавлено @ 00:02
Код не проверял, может где и ошибся, но смысл, думаю, понятен...

Автор: Leopard25 17.1.2005, 06:54
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)