| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| VB6 голям масив ? http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1799 |
Страница 1 от 1 |
| Автор: | nickich [ Нед Фев 12, 2006 5:41 pm ] |
| Заглавие: | VB6 голям масив ? |
Как се декларира голям ( 1М елементи) масив във VB6? |
|
| Автор: | Nikola Kirov [ Нед Фев 12, 2006 5:52 pm ] |
| Заглавие: | |
И на мен ми е интересно как става работата с много големи масиви в Visual C++ na Microsoft. |
|
| Автор: | nickich [ Нед Фев 12, 2006 9:47 pm ] |
| Заглавие: | |
..ако може и някой да ми каже дали има и как се прави #define на VB6 ... |
|
| Автор: | Balkana [ Нед Фев 12, 2006 9:55 pm ] | |||||||||
| Заглавие: | ||||||||||
На С (и ++ предполагам), като си правиш Windows приложение, неща от вида
си работят съвсем нормално; писал съм и под ДОС extender подобни неща; Грижата остава в операционната система, и ако няма как - гърми и не пуска програмата изобщо. |
||||||||||
| Автор: | Реконструктор [ Нед Фев 12, 2006 9:59 pm ] | ||||||||||||||||||
| Заглавие: | Re: VB6 голям масив ? | ||||||||||||||||||
|
|||||||||||||||||||
| Автор: | Реконструктор [ Нед Фев 12, 2006 10:01 pm ] | |||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||
после задължително не трябва да се забравя да се освободи:
|
||||||||||||||||||||||||||||
| Автор: | nickich [ Нед Фев 12, 2006 11:03 pm ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
Мерси Реконструктор, стана
Но защо като декларирам:
а като декларирам:
или както е написал Реконстуктор, си работи нормално ? .. може да задавам тъп въпрос, но не съм работил много с VB и не се сещам а, и трябва ли да се освобождава после масива ? |
|||||||||||||||||||
| Автор: | bateAz [ Нед Фев 12, 2006 11:08 pm ] |
| Заглавие: | |
Защото компилаторът ти изчислява 1024 * 128 и се мъчи да го напъха в integer ( max 32767 ). Напиши ((1024 * 128)ul). |
|
| Автор: | Реконструктор [ Нед Фев 12, 2006 11:39 pm ] | |||||||||
| Заглавие: | ||||||||||
Точно така бате, но това няма да работи. |
||||||||||
| Автор: | nickich [ Пон Фев 13, 2006 10:13 am ] | |||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||
Добре де, като декларирам
работи, въпреки, че 131072 > 32767. Тази декларация не означава ли че искам да ми задели 131072 Integer-а ?? Защо трябва размера да се мъчи да го напъха в Integer? Значи ако му кажа:
примерно, също работи. А
Нещо ми се губи логиката ... |
||||||||||||||||||||||||||||
| Автор: | bateAz [ Пон Фев 13, 2006 12:24 pm ] |
| Заглавие: | |
Гърми, когато предпроцесорът изчислява. Ако го вземе "сдъвкано" - няма проблем. |
|
| Автор: | nickich [ Пон Фев 13, 2006 12:26 pm ] | |||||||||
| Заглавие: | ||||||||||
аааа, сега стоплих мерси! ..баси колко съм отвеян |
||||||||||
| Автор: | Реконструктор [ Пон Фев 13, 2006 12:38 pm ] | ||||||||||||||||||||||||||||||||||||
| Заглавие: | |||||||||||||||||||||||||||||||||||||
VB е доста тъп език с доста странности. Значи за конкретната странност на VB. Определянето на типа на аргумента в скобите става според стойността му.
транслатора вижда, че 131072 > 32767 и сътветно пъха това число в променлива тип Long. Ако напишеш
понеже отново 131072 > 32767, транслатора го приема за Long и после умножава по 5, като резултата е, че нямаш проблеми.
след като 1024 < 32767, транслатора го приема за Integer, постава 1024 в променлива от тоя тип и после като умножи със 128 се получава препълване на Integer-a. По повод на горното, че няма решение на проблема, малко поизлъгах, забравил съм тоя език. По принцип за цифровите константи има постфиксни определители на типа. Например, & е определител за Long, а # е определител за Double. Ако напишеш, например
Няма да имаш проблеми, защото & force-ва транслатора да приема 1024 за Long, въпреки, че е < 32767. Същото се отнася, ако напишеш (1024# * 128) - в този случай 1024 ще се приеме за Double. |
|||||||||||||||||||||||||||||||||||||
| Автор: | nickich [ Пон Фев 13, 2006 12:52 pm ] |
| Заглавие: | |
Е, тва не го знаех! Мерси, Реконструктор!
|
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|