Сейчас на форуме: (+3 невидимых)

 eXeL@B —› Дневники и блоги —› Symbian C++ - разберёмся вместе?
Посл.ответ Сообщение

Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 02 марта 2009 14:28
· Личное сообщение · #1

Начинаю кодить под симбу на си) первый опыт - первый крах (дескрипторы)
Code:
  1. HBufC *FPath=HBufC::NewLC(38);
  2. FPath->Des().Append(FilePath);
  3. CleanupDeletePushL(FPath);

Прога падает, в карбиде только
Code:
  1. Thread [Thread id: 6016] (Suspended: Signal 'Halt' received. Description: User halted thread.)     
  2.   6 0x60004A5A( EUSER.DLL )()  0x60004a5a    
  3.   5 0x5B24564( FLOGGER.DLL )()  0x05b24564   
  4.   4 0x5B2443E( FLOGGER.DLL )()  0x05b2443e   
  5.   3 0x60019BC0( EUSER.DLL )()  0x60019bc0    
  6.   2 0x5B00D103( EKERN.DLL )()  0x5b00d103    
  7.   1 0x7C80B50B( KERNEL32.dll )()  0x7c80b50b 

Что только не пробовал, и delete, и CeanupStack::PopAndDestroy(ЛЮБОЕ_ЧИСЛО_И_БЕЗ_ЧИСЛА)
В стек тоже не клал, всё равно... Кто сталкивался, поделитесь)



Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 02 марта 2009 14:34 · Поправил: zombiee
· Личное сообщение · #2

Ха-ха-ха))) Значит так, при создании дескриптора юзаем NewL, а не NewLC, почему - хз, щас буду искать... Просто в каком-то примере увидел NewLC и начал юзать)
// ADD:
NewLC добавляет данные сразу в стек и удаляет при завершении функции)



Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 02 марта 2009 20:42 · Поправил: NetSpider
· Личное сообщение · #3

Почитал тему, стало интересно. Где можно взять компиль и SDK для разработки приложений?




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 02 марта 2009 21:36
· Личное сообщение · #4

для нокии тут www.forum.nokia.com/



Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 03 марта 2009 13:59 · Поправил: zombiee
· Личное сообщение · #5

to Oott:
Извиняюсь, не увидел предыдущего поста) Извини)
------------------------------
Я юзаю карбид 1.3, Билд 024 + Сдк под 7.0 и 8.0
Могу небольшой хелп накатать, как ставить) а, хотя зачем он?) И так всё есть)



Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 03 марта 2009 14:14
· Личное сообщение · #6

Кстати, может кто знает (гугл не ответил):
При закрытии программы на эмуле вылетает "Program closed: %PROG_NAME%"
Как я понимаю, не освободил память... На ноге 3230 закрывается норм (еррор репортинг минимальный стоит), а вот на самсунге Д730 вылетает то-же окошко...
Проверил пять раз - всё, подо что выделял память, освобождаю... В чём загвоздка - не могу понять...



Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 03 марта 2009 15:18 · Поправил: zombiee
· Личное сообщение · #7

Код для получения текущей папки приложения (e.g C:\System\Apps\ArtDrive\):
Code:
  1. CEikonEnv &ee=*CEikonEnv::Static();
  2. CEikAppUi &ea=*(ee.EikAppUi());
  3. TParse Par;
  4. iAppPath=HBufC::NewL(256);
  5. Par.Set(ea.Application()->AppFullName(), NULL, NULL);
  6. iAppPath->Des().Append(Par.DriveAndPath()); // в iAppPath путь)


В колонку инклуда добовляем:
Code:
  1. #include <eikapp.h>


а в .mmp файл (файл проекта) добавляем библиотеку (если нет) eikcore.lib

з.ы:
iAppPath объявлен как private класса
Code:
  1.   private:
  2.     HBufC *iAppPath;


з.ы.ы:
Не забываем освободить память!!!
Code:
  1.   delete iAppPath;





Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 03 марта 2009 16:13 · Поправил: zombiee
· Личное сообщение · #8

Ещё интересная инфа:
При использовании Format и/или AppendFormat, для замены %S на строку, её (строку), необходимо передавать по ссылке, т.е &Buf;
Пример:
Code:
  1. _LIT(Fmt, "Path: '%S'");
  2. _LIT(Path, "C:\system");
  3. _LIT(Info, "Formatted text:");
  4. HBufC *Bf=HBufC::NewL(1023);
  5. Bf->Des().AppendFormat(Fmt, &Path);
  6. CEikonEnv::Static()->InfoWinL(Info, *Bf);
  7. delete Bf;

Вотъ



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 04 марта 2009 05:55 · Поправил: Zorn
· Личное сообщение · #9

zombiee пишет:
Ха-ха-ха))) Значит так, при создании дескриптора юзаем NewL, а не NewLC

Так делать не советую (учитывая что ты CleanupStack:: PushL не делаешь).
L - в конце означает что в случае чего функа сделает Leave (то есть опасная если объект не в CleanupStack'е)
C - что функа помещает объект в CleanupStack за тебя и тебе нужно после использования его оттуда вытащить.

Советую почитать
http://www.symbiantutorial.org/symbian-tutorial/?&sitemap http://www.symbiantutorial.org/symbian-tutorial/?&sitemap раньше был другой адрес и на русском можно было почитать щас русский не нашел
Особенно раздел Symbian Fundamentals (главу CleanupStack)

PS. А вообще в идеале прога на эмуле должна закрываться тихо. Обычно если че то вылазиет значит что то не удалилось или в стеке осталось...




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 04 марта 2009 15:23
· Личное сообщение · #10

зачем использовать HBufC* для работы с именами файлов? Есть специальный класс TFileName, для которого не требуется выделять в хипе (и соответственно затем удалять)




Ранг: 141.4 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 04 марта 2009 21:49
· Личное сообщение · #11

у нокии есть форум для кодеров, где можно получить ответ на большинство вопросов: discussion.forum.nokia.com/forum/forumdisplay.php?f=6
кроме того, у них там есть еще и своя википедия с советами и примерами.



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 марта 2009 22:43
· Личное сообщение · #12

по мелочи замечания, можно HBufC не выделять самому
iAppPath->Des().Append(Par.DriveAndPath());

а писать
iAppPath = Par.DriveAndPath().Alloc(); // AllocLC AllocL по настроению




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 05 марта 2009 19:34 · Поправил: Satanael
· Личное сообщение · #13

Извиняюсь что влез...
Народ может Symbian OS Reference для Symbian 9.3 есть у кого-нибудь в html или chm формате?

У кого нибудь сюда заходит:

Server: ftp://ftp.symbian.com
Username: symd1013
Password: 9bj8*Sd)

-----
Никто не знает столько, сколько не знаю я




Ранг: 17.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 12 марта 2009 15:18
· Личное сообщение · #14

Ух ты, спасибо, мужики)))) Zorn, [wl], intro - Какие знакомые ники)))
to Satanael:
Где-то на форуме мобилаба выкладывали вроде.... (на серв не заходит)
---
Извиняюсь, что так дого не был) А насчёт форума я знаю) Но всё же, сюда не меньше народу заходит) Да и потом можно будет сделать что-то типа архива статей и т.д)


 eXeL@B —› Дневники и блоги —› Symbian C++ - разберёмся вместе?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати