![]() |
|
|
![]()
|
|
| spleaner |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
Добрый день!
Мучаюсь с небольшой (но довольно срочной:( ) проблемой.. Имею проект test в visual C++ 8 (windows forms) имеются, как всегда, файлы test.h и test.cpp . в test.cpp находятся несколькой функций, глобальных переменыых и (!) нужный мне глобальный массив.. объявляю его (до написания всех функций и до #include "test.h") так:
пробывал и так:
но в любом случае, при вызове первой функции и попытке его обнулить (хотя бы тупо перебором в цикле)
ничего не происходит:( В нем как были, так и остаются "левые" значения... (типа 11191934, 11191940, 0, 0, 20 и т.п.) А мне нужно, чтобы была возможность изменять его и из test.cpp и из test.h (ну и считывать, разумеется) Подскажите пожалуйтся, как его правильно объявить и как правильно к нему обращаться :( Это сообщение отредактировал(а) spleaner - 5.6.2007, 12:51 |
||||||
|
|||||||
| zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
честно говоря, не очень понял, что тебе нужно, может это:
в одном (и только одном) из cpp файлов определяем массив глобально (те вне тел функций):
затем в других файлах, где хотим увидеть этот массив предварительно объявляем его (можно делать сколько угодно раз):
помогло? |
||||
|
|||||
| spleaner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
нет :( не помогло:(
чтобы было понятней - напишу подробней.. вот код файла noti.cpp (собственно проблемы лезут отсюда).. p.s. все лишнее - убрал.. чтобы не засорять
во время исполнения цикла включаю пошаговый режим и там четко видно, что элементы массива не изменятся:( вот скрин: ![]() т.е. он пытается присвоить значение abc[k] , но там все равно остается "19878028" (ну в каждом элементе массива по-разному).. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
||||
|
||||
| spleaner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
наверно просто скриншот не удачный
вот так: ![]() ниодним элемент не обнулился.. (с 10го по 34ый элемент - нолики, т.к. он изначально такой создается.. после 34 опять фигня всякая) |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 3 Всего: 60 |
||||
|
||||
| spleaner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
нет конечно чуть выже же висит код файла.. нету.. а даже если бы и было - я ведь смотрю watch'ем в прям времени этот цикл пощагово.. и ничего не происходит.. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
spleaner, если я скажу, что так не бывает, тебе это поможет?
попробуй на всякий случай повыводить элементы куда нить (в файл например) чтобы убедится, что watcher не врет |
|||
|
||||
| spleaner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
zkv
за 3 минуты то того, как обновил страницу поступил аналогично - и не поверил watcher'у... Сделал еще один цикл. Забил в строку символов все значения массива (в массиве было 2,2,2,0,4,3 и дальше нули) хоть вотчер и показывал всякую фигню - в строке оказалось то, что нужно... Видимо то, что показывал watcher - это не значения, а что-то типа адресов переменных (хотя утверждать не берусь - сам в этом, как видно, не силен) Тогда вопрос - а как же следить за массивом в пошаговом режиме? (хотя сейчас лично мне это не актуально) Всем совет - не верьте вотчеру |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
spleaner, смотрю я на это:
И понимаю что ты не на сях пишеш а на C++/CLR, ты малость разделом ошибся идиты на .NET. В шарпе есть Gaebage Collector, а что в этом ужазним си, я если честно не знаю. Может он и есть, может он тебе массив и удаляет, незнаю. Поидее в .нет все переменные в классах должны быть обявлениы, там даже функций глобальных нет!!! да и классы все по пространствам имён раскиданы. Да и вообще!!!! нафиг тебе глобальные переменные, во всех книгах написано что так делать НЕ желательно!!! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| spleaner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.2.2007 Репутация: нет Всего: 3 |
Rapalex
если честно, я сам не фанат Си++, уже давно пишу на #.. Но с преподами по "Визуальным системам программирования" не поспоришь.. Вот и приходится мучатся.. Не задумывался на тему что принято и что нет, делаю для того, чтобы отвзались.. Но столкнувшись с такой проблемой был удивлен и решил разузнать что да как.. Всем спасибо за помощь |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 4 Всего: 23 |
[offtop]
spleaner, программа использующая .NET Framework гараздо медленее любой проги на С++ с использованием MFC или иной GUI библиотеки по определению. И если ты пишеш на C# то мог бы и этот массив в класс запихнуть бы это было бы более правильно, да и более привычно для тебя [/offtop] |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Согласен на все 100.
Что ты такое сказал!!! Разница между тем си на котором ты пишеш и шапом - СИНТАКСИС. Всёравно получается сборка а не экзешник, и без фреймворка не потянет. Всёравно что кнопки да/нет/отмена заменить пофиг/нефиг/нафиг, и сказать что это что этоновая ось. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Разница порядка десятка-двух процентов. |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 4 Всего: 23 |
[offtop]
nerezus, когда мы работали со скинированиям это процент почти до половины дорос, хотя мы ускоряли как могли. Мы думали, что это мы дураки, но когда поискали по инету, то нашли кучу вопросов о том как ускорить когда работу проги когда у тебя за 100 контролов и ещё, не дай бог, скины ибо начинались такие тормоза с прорисовкой, что мама не горюй. В итоге всю визуальную часть переписали на Builder, а не визуальную (сервисы и всё в этом духе) на VC. Щас прога летает (гдето 130 кнопок со скинами, реклама - фильмы, гифки, флеш, и ещё куча скинированных контролов), ни одного подтормахивание, в то время когда на шарпе мы видели как кнопка одна за одной рисуется и, ещё раз повторю, не одни мы такой фигню наблюдали [/offtop] P.S. Всё завязываем эти религиозные войни в отдете WinAPI Это сообщение отредактировал(а) SenkraD - 5.6.2007, 18:05 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |