Создание Эльфов : Эльфостроение : Форум |
Страница 140 из 211: « 1 ... 136 137 138 139 [140] 141 142 143 144 ... 211 » |
arban: |
19.07.10, 00:10 |
Pavlus, Код: int main (void) { if(FindBook(isMyElfBook)){ char * strMsg=BookName; strcat(BookName," is running"); MessageBox(0x6FFFFFFF,Str2ID(strMsg,6,SID_ANY_LEN),NOIMAGE,1,5000,0); SUBPROC(elf_exit); return(0); } else{ CreateMYBook();} timer=Timer_Set(500,onTimer,0); return(0); } пробуй. А вообще код странный очень, так то лучше: Код: int main (void) { if(FindBook(isMyElfBook)) { MessageBox(0x6FFFFFFF,STR("Already runned"),NOIMAGE,1,5000,0); SUBPROC(elf_exit); } else { CreateMYBook(); timer=Timer_Set(500,onTimer,0); } return(0); } [ Редактировано arban в 19.7.10 00:13 ] |
Pavlus: |
19.07.10, 09:37 |
Блин, странный потому-что одна строчка немного не правильная , должно быть: Код: strcat(strMsg," is running"); Но не пойму от чего именно может быть ребут? Может потому - что переменная с именем бука изменилась?И что делает ф-я STR()? [ Редактировано Pavlus в 19.7.10 08:38 ] |
arban: |
19.07.10, 09:43 |
STR это макрос #define STR(__STR__) Str2ID(_T(__STR__),0,SID_ANY_LEN). Возвращает STRID текста, который туда вписал Pavlus писал: Но не пойму от чего именно может быть ребут? Может потому - что переменная с именем бука изменилась? переполнение буфера [ Редактировано arban в 19.7.10 09:45 ] |
Pavlus: |
19.07.10, 09:47 |
arban пишет: переполнение буфера при склеивании strMsg+" is running"? [ Редактировано Pavlus в 19.7.10 08:48 ] |
arban: |
19.07.10, 09:59 |
Pavlus, а ты для strMsg выделяешь память? |
Pavlus: |
19.07.10, 10:09 |
Нет, я думал автоматом выделится. Попробовал так: Код: if(FindBook(isMyElfBook)){ const int bufsize=strlen(BookName)+strlen(" is running"); char * strMsg[bufsize]=BookName; strcat(strMsg," is running"); MessageBox(0x6FFFFFFF,Str2ID(strMsg,6,SID_ANY_LEN),NOIMAGE,1,5000,0); SUBPROC(elf_exit); } Ругается на строку Код: char * strMsg[bufsize]=BookName; Код: Error[Pe259]: constant value is not known I:\Patches&ELFs\MyFirstElf\main.c 90 |
arban: |
19.07.10, 10:17 |
char * strMsg=new char[bufsize+1]; strcpy(strMsg,BookName); strcat(strMsg," is running"); MessageBox(0x6FFFFFFF,Str2ID(strMsg,6,SID_ANY_LEN),NOIMAGE,1,5000,0); if(strMsg)delete(strMsg); SUBPROC(elf_exit); |
Pavlus: |
19.07.10, 10:26 |
Спасибо, но после появления сообщения опять ребут :( Заменил SUBPROC(elf_exit); на TerminateElf и ребут пропал и всё работает [ Редактировано Pavlus в 19.7.10 09:31 ] Добавлено 19.7.10 09:33 Объясните пожалуйста значение этих строк: Код: const PAGE_MSG MY_PageEvents[]@ "DYN_PAGE" ={ ELF_TERMINATE_EVENT , TerminateElf, ELF_SHOW_INFO_EVENT , ShowAuthorInfo, 0,0 }; как я понял это установка обработчиков событий, но что означают последние нули? |
Joker XT: |
19.07.10, 10:57 |
Нули означают что конец, ёпт) Как телефон по твоему должен конец находить И вообще, ты таймер там зачем запускаешь? |
Pavlus: |
19.07.10, 11:01 |
Та так, уже не запускаю :) забыл удалить. А про конец: может там константное количество значений, можно 3 пары, не больше и не меньше? Для новичка всё не так очевидно как для тебя, тем более если именно эти строки нигде и не разжевываются. [ Редактировано Pavlus в 19.7.10 10:06 ] |
Страница 140 из 211: « 1 ... 136 137 138 139 [140] 141 142 143 144 ... 211 » |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=2479&start=1390 © 2005-2018 supertrubka.org |