Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> abnormal program termination, *.dll 
V
    Опции темы
GeraldIstar
Дата 5.4.2012, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



Работаю в MSVS2008, пишу dll-ку для одной софтинки. Код:

Код

int ResolvePoint(Environment *env, RoboF::Point nodePoint)
{
    int i, homeIn, OpponentIn, collision;
    float robotSize = ROBOT_SZ; 
    collision = 1;

    RoboF::Point homeBotPos, oppBotPos;

    for (i = 0; i < 5; i++) 
    {
        homeBotPos.x = env->home[i].pos.x;
        homeBotPos.y = env->home[i].pos.y;

        oppBotPos.x = env->opponent[i].pos.x;
        oppBotPos.y = env->opponent[i].pos.y;

        homeIn = RoboF::PointBelongsCircle(homeBotPos, nodePoint, robotSize);
        OpponentIn = RoboF::PointBelongsCircle(oppBotPos, nodePoint, robotSize);

        if ( homeIn == 1 )
        {
            collision = 0; //Нормально работает
        };
        if ( OpponentIn == 1 ) 
        {
            collision = 0; //Нормально работает
        };
    };

    //Провеяряем по границам - вот тут программа валиться.
        if ( ( FTOP - robotSize ) > nodePoint.y )
        {
            collision = 0; //При том валиться на присвоении (манипуляции с другими переменными проходят успешно)
        };
        if ( ( FBOT + robotSize ) < nodePoint.y )
        {
            collision = 0; 
        };
        if ( ( FRIGHTX - robotSize ) > nodePoint.x )
        {
            collision = 0; 
        };
        if ( ( FLEFTX + robotSize ) < nodePoint.x )
        {
            collision = 0; 
        };
        

    return collision;

}


Суть в следующем - функция делает ряд проверок, и в случае если условие срабатывает - сбрасывает collision в 0. Но вот если с первыми двумя все работает (именно работает), но на 4х оставшихся проверках - просто валиться. Точнее валиться не на самих проверках, а на присвоении collision = 0. Повторюсь - без последних 4х проверок - функция работает нормально, как и та часть программы, что использует результат работы этой функции. А вот если добавить эти проверки (вернее опреции сброса переменной в ноль), но все - ёк.
Подскажите, в чем может быть проблема.
PM MAIL   Вверх
bsa
Дата 5.4.2012, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



GeraldIstar, каким компилятором собрана основная программа? Если другим, то попробуй сменить компилятор.
PM   Вверх
GeraldIstar
Дата 5.4.2012, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



Проблема решена - я просто крайне не внимательный, блин ( Тему можно закрывать.

Это сообщение отредактировал(а) GeraldIstar - 5.4.2012, 12:28
PM MAIL   Вверх
borisbn
Дата 5.4.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



GeraldIstar, и в любом случае (даже если один компилятор) в проекте основной программы и в проекте твоей dll-ки должны совпадать
1) типы вызова функций (__stdcall или __cdecl)
2) размер упаковки структур (#pragma pack...)


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.