Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: название исполняемого файла  (Прочитано 71685 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 22-12-2007 18:18 » 

мне срочно требуется вправка мозгов Отлично

объясните мне одну вещь, потому что чувствую - что то я не догоняю. В настройках нашёл опцию  с/с++ -> language -> enable exception handlers

по умолчанию галка поставлена. Попробовал убрать - исключения всё равно работают, например
Код:
int i=0;
try
{
i=1/i;
}
catch(...)
{
//сюда попадаем
}


, но при компиляции появилось 1 (одно) предупреждение -
e:\...\... .h(124) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify -GX

код там такой:
Код:
class CGridEdit1153 : public CStatic
{
...
...
public:
struct CVBarInfo
{
int posfrom;
int minpos;
int maxpos;

CVBarInfo()
{
...
}

double GetFromPerCent()
{
double d=0;
try
{
d=((double)posfrom)/((double)(maxpos-minpos));
}
catch(...)
{
d=1.0;
}
return (d<=1.0?d:1.0);
}
};

...
...
};

как понимать ? Что же эта опция делает ?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 22-12-2007 18:52 » 

вообще, может есть у кого вменяемая дока по настройкам проекта ?
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #32 : 23-12-2007 08:27 » 

Какая студия?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 23-12-2007 09:01 » 

Джон, VC++6.0
Записан

Anchorite
Гость
« Ответ #34 : 23-12-2007 11:05 » 

Эта предупреждение возникает потому, что ты указал компилятору НЕ ВЫЗЫВАТЬ ДЕСТРУКТОРЫ автоматических объектов созданных внутри блока try {} после возникновения исключения.

Маленькая прога демонстрирующая все это. Попереключай опцию и посмотри выводимый результат

Код:
#include <stdio.h>

class A {
public:
A(int n) :
m_n(n)
{
printf("Constructor of A(%d)\n", m_n);
}

~A()
{
printf("Destructor of A(%d)\n",m_n);
}

private:
int m_n;
};

int main(int argc, char* argv[])
{
A a(1);

try {
printf("Inside TRY\n");
A b(2);
int i = 0;
throw i;
}

catch(...) {
printf("Inside CATCH\n");
}

return 0;
}

Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #35 : 23-12-2007 13:19 » 

Anchorite, так я ж ничего вроде не создаю в блоке try

а кроме того - почему нет ругани на другие try , их полно в проекте
Записан

Anchorite
Гость
« Ответ #36 : 23-12-2007 17:06 » 

Ты создаешь анонимные объекты в стеке при преобразовании типов.
Почему на другие блоки не ругается - не знаю. Может ограничивается одним предупреждением. Попробуй этот блок try - catch прикоментить.  Может начнет и на другие ругаться.
« Последнее редактирование: 23-12-2007 17:12 от Anchorite » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #37 : 24-12-2007 15:05 » 

Anchorite, нет, я проверял , ругается (замечу - не error , а warning) только на этот try .

кстати,
 
нашёл )

в файле *.rc  , в описании иконок имщем строчку
Код:
IDR_MAINFRAME        ICON    DISCARDABLE     "res\\.....ico"

и при помощи дефайнов выбираем нужную икону

Код:
#if defined def_1
IDR_MAINFRAME        ICON    DISCARDABLE     "res\\.....ico"
#elif defined def_2
IDR_MAINFRAME        ICON    DISCARDABLE     "res\\.....ico"
#else
IDR_MAINFRAME        ICON    DISCARDABLE     "res\\.....ico"
#endif

- вот это всё же не работает Жаль  Если сунуться в редактор ресов, то студия благополучно расставляет всё точки над Ё , то есть ручная правка пропадает нафик и вертается всё взад... А жаль.
Записан

Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #38 : 24-12-2007 16:07 » 

Сам не пробовал, но как идея: может, разные файлы ресурсов с иконками подключать в зависимости от варианта сборки?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #39 : 24-12-2007 16:14 » 

Вад, порылся я , не нашёл , как путь к иконке задать в настройке. Там есть только включить/исключить файл. Это я тоже уже использовал - полезная штука
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #40 : 25-12-2007 22:50 » 

Лёш, ща времени нет детально во всём разбираться. Посему кратко (может поможет):

1. Обрати внимание на файл *.rc2 - Это файл специально для ресурсов изменяемых ползователем. *.rc для пользователя - табу. Тебе надо всё делать в .rc2  его редактор ресурсов не трогает

2. В этом файле ты можешь определить след.:

IDR_MAINFRAME           ICON                   MY_CURRENT_ICON

3. Добавляешь ещё один .h файл с содержимым:

#ifdef твоё условие
#define  MY_CURRENT_ICON "res\\myicon2.ico"
#endif


#ifdef твоё условие
#define  MY_CURRENT_ICON "res\\myicon1.ico"
#endif

и тд

Короче идея такая
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #41 : 26-12-2007 14:20 » 

мысль Улыбаюсь  щас пороемся...
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #42 : 26-12-2007 15:35 » 

в общем , если просто указывать в rc2

IDR_MAINFRAME        ICON    DISCARDABLE       "res\\....ico"

то всё чЮдесно. Но с дефайнами туда не подсунуться , потому что дефайны видны лишь после #include "stdafx.h"  , а сюда его засунуть не удаётся Жаль 
дополнительный h-файл никак положение не спасает. Уфф. Тупик какой то Отлично
Записан

Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #43 : 26-12-2007 15:54 » 

Хм, я precompiled headers вообще не использую, и stdafx.h никуда не подключаю, но дефайны из Preprocessor Definitions у меня работают везде, может тебе с ними попробовать?
Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #44 : 26-12-2007 16:01 » 

Scorp__), отключил, никакой реакции  Да что ты говоришь?..

что то я не понимаю...
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #45 : 26-12-2007 17:49 » 

Просто сделай дополнительный mydef.h. Его же инклудишь в .rc и .rc2 и если тебе флаги ещё где-то нужны то инклудишь его и в stdafx.h. И в нём определяешь дефайны.

Вобще-то это даже не идея, а один из способов используемых для автоматического увеличения версии при каждой компиляции. Вместо ICON используется блок VERSION. И всё замечательно работает.

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #46 : 26-12-2007 19:26 » 

Джон, не понимаю... Не хотит без stdafx.h дефайны видеть , хоть с дополнительным инклудом, хоть нет , а вставить stdafx.h тоже не позволяет

приведи пример с этим самым VERSION
Записан

Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #47 : 26-12-2007 21:38 » 

Алексей1153++, странно, то ли студия у тебя так интересно работает, то ли одно из двух... Улыбаюсь А ты включил дефайны в настройках проекта-то? Мне просто негде проверить, у меня последние проекты все без ресурсов вообще.
Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #48 : 26-12-2007 22:06 » 

Лёш, быстро - посмотри в МСДН, я оттуда всё брал. Весь сценарий. Если не найдёшь, потом пороюсь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #49 : 27-12-2007 03:54 » 

Scorp__), конечно включил я дефайны - проекты то компилятся нормально, у меня 3 разных файлика на выходе получается, тут всё норм.

Джон
, пойду рыться в мсдн )
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #50 : 27-12-2007 05:54 » 

фсё , кажись я победил , теперь точно Улыбаюсь
в мсдн ничего не отыскал , зато:

дело было вот в чём: в alt+f7 дефайн для проекта указал я во вкладке c/c++ , в окошке "preprocessor definitions:". Эти дефайны видны везде после #include "stdafx.h". Соответственно, в файле ресурсов они не определены ещё. А , оказывается , на такой случай в настройках есть вкладка Resources и там в окошке "preprocessor definitions:" тоже надо вписать тот глобальный дефайн - это специально для видимости в ресах.

в GuardN.rc2 написал (названия из проекта , но суть понятна):
Код:
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...

//икона проекта по умолчанию
#define MY_MAIN_ICON "res\\GuardN.ico"

//переопределение иконы (если в проекте включен файл)

#ifdef def_INSTALL_PROGRAMM
#undef MY_MAIN_ICON
#define MY_MAIN_ICON "res\\InstallIcon.ico"
#endif

#ifdef def_demoVer_300objectsMax_0x07
#undef MY_MAIN_ICON
#define MY_MAIN_ICON "res\\GSIcon.ico"
#endif

//окончательная главная иконка
IDR_MAINFRAME           ICON    DISCARDABLE     MY_MAIN_ICON

/////////////////////////////////////////////////////////////////////////////

только выдаётся бестолковое предупреждение
D:\.....\GuardN.rc2(29): Could not find the file MY_MAIN_ICON
думаю, это даже полезно - чтобы помнить, где заменял иконку )

можно ещё и без
#undef MY_MAIN_ICON
обойтись , но тогда немного ругается на переопределение. Ну это - добавлять по вкусу Улыбаюсь

Всем спасиб за помощь Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #51 : 27-12-2007 10:17 » 

Лёш, в прицепе проектик, который, в зависимости от выбора компиляции (я сделал только для дебуг), генерит три файла с разными именами и иконками без всяких undef и ошибок.

Про версию с ходу не нашёл. Ключевые слова autoincrement build version etc.

Потом ещё поищу.

* t1.zip (11.65 Кб - загружено 869 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #52 : 27-12-2007 11:07 » 

ок, дома поразбираюсь Улыбаюсь

----
кратко глянул - так я и думал , что дело во вкладке Ressourcendateien Прыгаем вместе То есть с этим я уже вроде понял, как бороться Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #53 : 27-12-2007 11:50 » 

Да это ты правильно. Только я не понял, почему у тебя ошибка и андеф надо делать. Поэтому проектик сделал. Так быстрей.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #54 : 27-12-2007 16:05 » 

undef надо, потому что у меня определена иконка по умолчанию

//икона проекта по умолчанию
#define MY_MAIN_ICON "res\\GuardN.ico"
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #55 : 28-12-2007 00:43 » 

Дык это ж проще делается. В самом конце делаешь

#ifndef MY_MAIN_ICON
//икона проекта по умолчанию
#define MY_MAIN_ICON "res\\GuardN.ico"
#endif

ХОтя я противник мешанины. Те все компиляции должны подчинятся одной логике (в данном случае содержать дефайны). А так у тебя будет половина так, половина эдак. Через полгода сам же не разберёшься. Или ещё хуже - забудешь и добавишь новую компиляцию.
Твой дефолтный случай и сработает. Получишь ЕХЕ с другой иконкой. А так ошибка сразу напомнит. Но это только моё мнение. Делай как хочешь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #56 : 28-12-2007 03:44 » 

Джон, я незапутаюсь - я как раз делаю так, чтобы потом легко разобраться, если что Улыбаюсь А остальное - комментарияим пишу
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #57 : 29-12-2007 08:53 » 

Не совсем так. Ты же сам написал

только выдаётся бестолковое предупреждение
D:\.....\GuardN.rc2(29): Could not find the file MY_MAIN_ICON
думаю, это даже полезно - чтобы помнить, где заменял иконку )

И это правильно, только ошибка должна появляться, когда она действительно есть.

Если ты подготавилваешь компиляции С дефайнами, то они ВСЕ должны быть с дефайнами.
НИкаких дефолтов. Это однотипная логика. И когда ты добавишь новую компиляцию - ошибка сразу напомнит тебе про дефайн и ты всё сделаешь правильно - сознательно.
А у тебя получается мешанина. Грубо говоря, забыв про эту логику и добавив в проект пару десятков компиляций (например для разных языков) у тебя просто сработает дефолт, потом ещё и ещё,  в итоге, когда тебе понадобится, ты уже не будешь знать что где, запаришься искать, те в которых дефайны не определены. Эт я по себе знаю.
А коментарии свои ты тоже не видишь сразу.

А вот если ты сделаешь как я говорю, то прыгнув по ошибке, ты сразу прочтёшь комент, почему это так и даже  с указанием, что именно надо сделать. Эт ты сейчас значешь, что в ресурсах тоже надо указать дефайн. А через год? Два? Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #58 : 29-12-2007 12:59 » 

Джон, я уверен, что именно этот момент я не забуду Улыбаюсь Другое дело - когда навороченный алгоритм в более, чем одном файле или на несколько экранов
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #59 : 30-12-2007 10:04 » 

Джон, я уверен, что именно этот момент я не забуду Улыбаюсь

Ну-ну... Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines