Создание Эльфов : Эльфостроение : Форум

Страница 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
 Блин, странный потому-что одна строчка немного не правильная :oops: , должно быть:
Код:
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 пары, не больше и не меньше? :lol:
Для новичка всё не так очевидно как для тебя, тем более если именно эти строки нигде и не разжевываются. ;-)

[ Редактировано 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