mobiles.lt forumas
Telefonų modeliai => Sony Ericsson => Darbas su programine įranga => Temą pradėjo: Denukas Sausio 31, 2008, 18:23
-
ELF'ų kurimas
Paprastų elfų kūrimas nereikalauja ypatingų programavimo žinių, bet be jų nesukūrsite nieko gero! Elfų kūrimas su "Embedded Workbench 4.0 Evaluation" vyksta C++ kalba. Sukūrtą elfą galite išbandyti ar naudoti tik telefone, kuriame yra įrašytas elfpackas. Daugiau apie elfpacko įrašymą i telefona ir jau sukūrtus elfus galite pasiskaityti šioje temoje ***ELFpack & ELFs*** (http://www.mobiles.lt/forum/index.php/topic,6641.0.html).
Instrukcija
Kaip minėjau visas programavimas vyksta su "Embedded Workbench 4.0 Evaluation" (http://mobilefree.ru/mydownloads/showfile.php?lid=567) programa, tad ją parsisiunčiame. Parsisiuntę, išskleidžiame ją ir jos aplanke sukuriame kitą aplanką "SE". Tada parsisiunčiame iš iš čia (http://perk11.info/svn/SE/) bent "C++", "include", "Library", "ElfPack" ir kokį "HelloWorld" elfą (rekomenduočiau parsisiųsti viską, kas tame aplanke yra, dauguma tų failų opensource elfai), bei sukeliame viską į prieštai sukurtą "SE" aplanką.
Tuomet įeiname į nurodyįą direktoriją "...\Embedded Workbench 4.0 Evaluation\SE\HelloWorld" ir paleidžiame "HelloWorld.eww" failą. Atidarytas failas turi atrodyti panašiai į šį:
(http://i187.photobucket.com/albums/x241/denukas/elfprog/1.jpg)
Du kartus spragtelėkite su pele ant main.c, jums atidarys programavimo langą.
(http://i187.photobucket.com/albums/x241/denukas/elfprog/3.jpg)
Prieš pradedant programuoti pirmiausią atlikite šį veiksmą!
Project -> Edit Configurations... -> Release -> OK
(http://i187.photobucket.com/albums/x241/denukas/elfprog/4.jpg)
Norint patikrinti ar jūsų komandose nėra klaidų spauskite Project -> Compile arba Alt+F7.
Jeigu norite išsaugoti elfą spauskite Project -> Rebuild All, elfas bus išsaugotas "...\SE_ELF\Elf\Release\Exe" aplanke.
(http://i187.photobucket.com/albums/x241/denukas/elfprog/2.jpg)
Raudonai apibrauktas kodas turi būti įtraukiamas, kuriant betkokį elfą:
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
Mėlynai apibrauktas kodas yra jusų programuojamo elfo komadu kodas: taip pat kiekvienas elfas turi turėti pagrindine funkciją:
int main (void)
Sėkmės, kuriant naujus ir kietus elfus!!!
Jeigu sudomino, labai daug pamokų, naudojant sudėtingesnes funkcijas rasite čia. (http://mobilefree.ru/newbb_plus/viewforum.php?forum=27)
Elfų funkcijų kodai:
StatusIndication_ShowNotes(STR("čia rasomas tekstas, kuris bus rodomas ant ekrano"));
StatusIndication_ShowNotes(0x6FFFFFFF); - išvalo ekraną.
SetLampLevel(skaičius nuo 0 iki 100, tai yra blykstės švietimo stiprumo %);
SUBPROC(elf_exit); - išjungia elfą,
int NewKey(int key, int r1 , int mode)
{
if (key==mugtuko kodas)
{
if(mode==paspaudimo kodas)
{
}
}
Elfų main.c failai:
SystemTemp
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
BATT bat;
u16 ws[193];
int NewKey(int key, int r1 , int mode)
{
if (key==KEY_POWER)
{ if(mode==KBD_SHORT_PRESS)
{
ModifyKeyHook(NewKey,0);
StatusIndication_ShowNotes(0x6FFFFFFF);
SUBPROC(elf_exit);
return(0);
}
}
if(key==KEY_PLAY)
{
if(mode==KBD_SHORT_PRESS)
{
GetBattaryState((int const*)1 , &bat);
snwprintf(ws,196,(u16*)L"Temp = %d C",bat.SystemTemperature);
StatusIndication_ShowNotes(Str2ID(ws,0,SID_ANY_LEN));
}
return(-1);
}
return(0);
}
int main(u16 *exename,u16 *filename)
{
ModifyKeyHook(NewKey,1);
return(0);
}
Lighter
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
int i=0;
char flag=0;
int NewKey(int key, int r1 , int mode)
{
if (key==KEY_POWER)
{
if(mode==KBD_SHORT_PRESS)
{
ModifyKeyHook(NewKey,0);
StatusIndication_ShowNotes(0x6FFFFFFF);
SetLampLevel(0);
SUBPROC(elf_exit);
return(0);
}
}
if(key==KEY_VOL_UP)
{
if(mode==KBD_SHORT_PRESS)
{
if(i<100)
{
if(i==110)i=100;
i+=10;
if(flag==1)StatusIndication_ShowNotes(int2strID(i/10));
SetLampLevel(i^0x01);
}
}
return(-1);
}
if(key==KEY_VOL_DOWN)
{
if(mode==KBD_SHORT_PRESS)
{
if(i>0)
{
if(i==-10)i=0;
i-=10;
if(flag==1)StatusIndication_ShowNotes(int2strID(i/10));
SetLampLevel(i^0x01);
}
}
return(-1);
}
if(key==KEY_CAMERA_FOCUS)
{
if(mode==KBD_SHORT_PRESS)
{
if(flag==0)
{
StatusIndication_ShowNotes(STR("ïîêąç óšîâí˙ ˙šêîñòč âêėž÷¨¨í"));
flag=1;
}else
{
flag=0;
StatusIndication_ShowNotes(0x6FFFFFFF);
}
}
return(-1);
}
return(0);
}
int main(const u16 *exename, const u16 *filename)
{
ModifyKeyHook(NewKey,1);
return(0);
}
SoundOnKeyPress v1.3
#include "..\include\Lib_Clara.h"
#include "..\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
bool pl=false;
u16 * Path;
u16 * PathMP3;
u16 * SFile;
bool ismute=false;
bool stby=false;
int UIHook1(UI_MESSAGE* mes)
{
stby=false;
return 0;
}
int UIHook2(UI_MESSAGE* mes)
{
stby=true;
return 0;
}
int id;
int NewKey(int key, int r1 , int mode)
{
if (mode==KBD_SHORT_PRESS)
{
if (key==KEY_POWER)
{
ModifyKeyHook(NewKey,0);
ModifyUIHook(PHONE_IN_STBY_EVENT,UIHook2,0);
ModifyUIHook(UI_STANDBY_UNFOCUS_EVENT,UIHook1,0);
SUBPROC(elf_exit);
return(0);
}
if(isKeylocked()==0 && stby==true && ismute==false)
{
switch(key)
{
case 0x10:
SFile=(u16*)L"/KeySound/0.mp3";pl=true;break;
case 0x11:
SFile=(u16*)L"/KeySound/1.mp3";pl=true;break;
case 0x12:
SFile=(u16*)L"/KeySound/2.mp3";pl=true;break;
case 0x13:
SFile=(u16*)L"/KeySound/3.mp3";pl=true;break;
case 0x14:
SFile=(u16*)L"/KeySound/4.mp3";pl=true;break;
case 0x15:
SFile=(u16*)L"/KeySound/5.mp3";pl=true;break;
case 0x16:
SFile=(u16*)L"/KeySound/6.mp3";pl=true;break;
case 0x17:
SFile=(u16*)L"/KeySound/7.mp3";pl=true;break;
case 0x18:
SFile=(u16*)L"/KeySound/8.mp3";pl=true;break;
case 0x19:
SFile=(u16*)L"/KeySound/9.mp3";pl=true;break;
case 0x1A:
SFile=(u16*)L"/KeySound/z.mp3";pl=true;break;
case 0x1B:
SFile=(u16*)L"/KeySound/r.mp3";pl=true;break;
default:
pl=false;break;
}
if(pl)
{
Path=GetDir(1);
id=PlayFile(Path,SFile);
if(id)
{pl=false;return(1);}
Path=GetDir(0);
id=PlayFile(Path,SFile);
if(id)
{pl=false;return(1);}
Path=GetDir(9);
id=PlayFile(Path,SFile);
if(id)
{pl=false;return(1);}
Path=GetDir(8);
id=PlayFile(Path,SFile);
if(id)
{pl=false;return(1);}
id=PlayFile(PathMP3,SFile);
if(id)
{pl=false;return(1);}
}
}
}
if (mode==KBD_LONG_PRESS)
{
if (key==KEY_DIEZ)
{
if(ismute)
ismute=false;
else
ismute=true;
}
}
return(1);
}
int main(const u16 *exename, const u16 *filename)
{
PathMP3=(u16*)L"/card/MP3/";
ModifyUIHook(UI_STANDBY_UNFOCUS_EVENT,UIHook1,1);
ModifyUIHook(PHONE_IN_STBY_EVENT,UIHook2,1);
ModifyKeyHook(NewKey,1);
return(0);
}
KeyCode
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
u16 timer;
int nkey;
char s[28]="KeyCode (c) Deitro :)";
void onTimer (u16 * unk , void * data)
{
StatusIndication_ShowNotes(Str2ID(s,1,25));
delay(500);
}
int NewKey(int key, int r1 , int mode)
{
if (mode==KBD_SHORT_PRESS)
{
if (key==KEY_DIEZ)
{
StatusIndication_ShowNotes(0x6FFFFFFF);
ModifyKeyHook(NewKey,0);
SUBPROC(elf_exit);
return(0);
}
}
if (key==KEY_ESC)
return(-1);
s[9]=char(key/10+0x30);
s[10]=char(key%10+0x30);
nkey=key;
timer=Timer_Set(500,onTimer,0);
return(-1);
}
int main()
{
ModifyKeyHook(NewKey,1);
return 0;
}
HelloWord
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
u16 timer;
int lamp=0;
int n=10;
void onTimer (u16 * unk , void * data)
{
if(n--)
{
Timer_ReSet(&timer,500,onTimer,0);
SetLampLevel(lamp^=0x10);
}
else
{
StatusIndication_ShowNotes(0x6FFFFFFF);
SetLampLevel(0);
SUBPROC(elf_exit);
}
}
int main (void)
{
StatusIndication_ShowNotes(STR("Hello World!"));
timer=Timer_Set(500,onTimer,0);
return(0);
}
Manau pradžiai užteks. Bandykit ir išmoksit!!!
-
BookManager
#include "..\\include\Lib_Clara.h"
#include "..\\include\Dir.h"
int onRootListChanged(void * r0, BOOK * bk);
void onMyBookClose(BOOK *);
void CloseMyBook(BOOK * Book, void *);
int CreateMenu(void * r0, BOOK * bk);
typedef struct
{
BOOK book;
char * filebuf;
void * oldOnKey;
LIST * session_list;
}MyBOOK;
typedef struct
{
BOOK * book;
UI_APP_SESSION * session;
int book_name;
}BOOK_ITEM;
typedef struct
{
UI_APP_SESSION * session;
LIST * book_list;
int session_name;
int book_in_session;
}SESSION_ITEM;
// äýôîėòíūå çíą÷åíč˙
int KeyPressMode=3;
int KeyActiv=0x00;
int KeyTerminate=0xff;
int Ignore_KeyLock=0;
int ItemMode=0;
MyBOOK * bman_book=0;
int isBookManager(BOOK * struc);
const PAGE_MSG bk_msglst[] @ "DYN_PAGE" =
{
BOOK_DESTROYED_EVENT_TAG,onRootListChanged,
0,0};
const PAGE_DESC bk = {"BookManagerBook",0,&bk_msglst[0]};
void elf_exit(void)
{
kill_data(&ELF_BEGIN, (void(*)(void*))mfree_adr());
}
//=====================================================================================
int isBookManager(BOOK * struc)
{
if (struc->onClose==(void*)onMyBookClose)
{
return(1);
}
else
{
return(0);
}
}
// âç˙òü çíą÷åíčå čç číč-ôąéėą
int GetParam(char * name)
{
u16 ws[50];
int sID=0;
MyBOOK * myBook = (MyBOOK *) FindBook(isBookManager);
if (myBook->filebuf)
{
char * param;
if (param=manifest_GetParam(myBook->filebuf,name,0))
{
str2wstr(ws,param);
sID=Str2ID(ws,0,SID_ANY_LEN);
mfree(param);
return(sID);
}
}
if(!sID)
{
str2wstr(ws,name);
sID=Str2ID(ws,0,wstrlen(ws));
}
return(sID);
}
// ïîėó÷čòü čì˙ ęąâū
int GetJavaName(BOOK * bk)
{
u16 ws[100];
TextID2wstr(Book_GetSession(bk)->name,ws,100);
if (!wstrncmp(ws,(u16*)L"Foreign app",11))
{
return(JavaSession_GetName());
}
return(0);
}
// ñîç乸ì ñïčñîê ñåññčé/êíčã
void CreateBookLst(MyBOOK * myBook)
{
int i,j,k,cnt;
BOOK * book;
UI_APP_SESSION * session;
SESSION_ITEM *si;
i=root_list_get_session_count();
cnt=0;
for (j=0;j<i;j++)
{
si=0;
session=root_list_get_session(j);
for (k=0;k<session->listbook->FirstFree;k++)
{
book=(BOOK*)ListElement_GetByIndex(session->listbook,k);
if( book->xguilist->guilist->FirstFree)
{
if ((!isBookManager(book))&&(!isVolumeControllerBook(book))&&(!isRightNowBook(book)))
{
if (!si)
{
char s[100];
u16 ws[100];
si=new SESSION_ITEM;
si->book_list=List_New();
TextID2wstr(session->name,ws,100);
si->session_name=GetParam(wstr2strn(s,ws,100));
si->session=session;
}
BOOK_ITEM * b = new BOOK_ITEM;
b->book=book;
b->session=session;
b->book_name=0x6fffffff;
if (!(b->book_name=GetJavaName(book)))
{
b->book_name=GetParam(book->xbook->name);
}
ListElement_Add(si->book_list,b);
}
}
}
if (si)
{
si->book_in_session=si->book_list->FirstFree;
ListElement_AddtoTop(myBook->session_list,si);
cnt++;
}
}
SetNumOfMenuItem(myBook->book.gui,cnt);
}
// ïšč óįčéñòâå êąêîé ėčįî êíčãč
int onRootListChanged(void * r0, BOOK * bk)
{
// åñėč ÃÓČ åñòü, òî óįčėč
if (bk->gui) GUI_Free((GUI*)bk->gui);
// ñîçäąėč ìåíž
CreateMenu(0,bk);
return(0);
};
int SubItem=0;
// óñòąíąâėčâąåì òåêñòū â ïóíêòąõ ìåíž
int onLBMessage(GUI_MESSAGE * msg)
{
// static const u16 *sss="jwefg " __DATE__ "sdjkfwe";
MyBOOK * myBook = (MyBOOK *) FindBook(isBookManager);
int item;
SESSION_ITEM * si;
switch(msg->msg)
{
// onCreateListItem
case 1:
item=GUIonMessage_GetCreatedItemIndex(msg);
si=(SESSION_ITEM *)ListElement_GetByIndex(myBook->session_list,item);
SetMenuItemText0(msg,TextCopyId(si->session_name));
SetMenuItemText2(msg,Str2ID (L"\nBookManager v2.1\nbuild 140108\nCopyright (c) 2007-2008\nHussein",0,100));
if (si->book_list->FirstFree>1)
{
List2lineSetAsSubitem(msg,0,si->book_in_session);
}
else
{
SetMenuItemText1(msg,TextCopyId((int)(((BOOK_ITEM*)(ListElement_GetByIndex(si->book_list,0)))->book_name)));
}
SubItem=0;
break;
// onCreateListSubItem
case 3:
item=GUIonMessage_GetCreatedSubItemParrentIndex(msg);
si=(SESSION_ITEM *)ListElement_GetByIndex(myBook->session_list,item);
BOOK_ITEM * bi =(BOOK_ITEM *) ListElement_GetByIndex(si->book_list,SubItem++);
List2lineSubitemAddText(msg,TextCopyId(bi->book_name));
break;
}
return(1);
};
// ïšč âūįîšå ïóíêòą
void onEnterPressed(BOOK * book,void * lt)
{
MyBOOK * myBook = (MyBOOK *) book;
SESSION_ITEM * si= (SESSION_ITEM*)ListElement_GetByIndex(myBook->session_list,GetFocusetListObjectItem(book->gui));
// ñòąâčì ôîêóñ íą âåšõížž êíčãó â ñåññčč
BookObj_SetFocus(((BOOK_ITEM*)(ListElement_GetByIndex(si->book_list,0)))->book,0);
CloseMyBook(book,0);
};
// ïšč íąęąòčč "Ñ"
void onDelPressed(BOOK * book,void * lt)
{
MyBOOK * myBook = (MyBOOK *) FindBook(isBookManager);
SESSION_ITEM * si= (SESSION_ITEM*)ListElement_GetByIndex(myBook->session_list,GetFocusetListObjectItem(book->gui));
BOOK *bk =(BOOK*)(((BOOK_ITEM*)(ListElement_GetByIndex(si->book_list,0)))->book);
if (bk)
{
if (GetJavaName(bk))
{
JavaSession_Manager(0x0E);
}
else
{
if (Find_StandbyBook()!=bk)
{
UI_Event_toSID(RETURN_TO_STANDBY_EVENT,bk->BookID);
}
}
}
};
// ïąò÷åíūé onKey îò ñâîåé ìåížõč...;)
void myOnKey(void *p, int i1, int i2, int i3, int i4)
{
void (*OldOnKey)(void *, int, int, int, int);
MyBOOK * myBook = (MyBOOK *) FindBook(isBookManager);
OldOnKey=(void(*)(void *,int,int,int,int))myBook->oldOnKey;
OldOnKey(p,i1,i2,i3,i4);
if ((i4==KBD_SHORT_RELEASE)||(i4==KBD_LONG_PRESS))
{
if (i1==KEY_DEL)
{
onDelPressed((BOOK*)myBook,0);
}
if (i1==KEY_DIEZ)
{
if (i4==KBD_SHORT_RELEASE)
{
if (Find_StandbyBook()!=0)Show(Find_StandbyBook());
}
else
{
UI_Event(RETURN_TO_STANDBY_EVENT);
}
CloseMyBook((BOOK*)myBook,0);
}
if (myBook->filebuf)
{
char key[20];
char * param;
sprintf(key,i4==3?"[S_KEY%d]":"[L_KEY%d]",i1-0x10);
if (param=manifest_GetParam(myBook->filebuf,key,0))
{
u16 par[256];
str2wstr(par,param);
StartAPP(par);
mfree(param);
if (Find_StandbyBook()!=0)Show(Find_StandbyBook());
CloseMyBook((BOOK*)myBook,0);
}
}
}
};
// ñîçäąíčå ìåíž
GUI_LIST * CreateGuiList(void * r0, BOOK * bk)
{
int p[2];
GUI_LIST * lo;
lo =CreateListObject(bk,0);
bk->gui=(GUI*)lo;
p[0]=Str2ID (L"Heap : ",0,7);
p[1]=int2strID (GetFreeBytesOnHeap());
GuiObject_SetTitleText(lo,Str2ID(p,5,2));
CreateBookLst((MyBOOK*)bk);
OneOfMany_SetonMessage((GUI_ONEOFMANY*)lo,(void*)onLBMessage);
SetCursorToItem(lo,0);
SetMenuItemStyle(lo,ItemMode);
AddMSGHook(lo,ACTION_BACK, CloseMyBook);
AddMSGHook(lo,ACTION_SELECT1,onEnterPressed);
((MyBOOK*)bk)->oldOnKey=(void*)DISP_OBJ_GetOnKey(lo->DISP_OBJ);
DISP_DESC_SetOnKey( DISP_OBJ_GetDESC (lo->DISP_OBJ), (DISP_OBJ_ONKEY_METHOD)myOnKey );
return(lo);
};
// ñîçäąíčå č îòîįšąęåíčå ìåíž
int CreateMenu(void * r0, BOOK * bk)
{
bk->gui=(GUI*)CreateGuiList(0,bk);
ShowWindow(bk->gui);
return(0);
}
int h2i(char * h)
{
char c;
int res=0;
while((*h++)!='x');
do
{
c=*h++;
if (c>0x60) c-=0x20; else c-=0x30;
if (c>9) c-=7;
res<<=4;
res|=c;
}
while(*h!=';');
return(res);
}
// ïšč çąêšūòčč êíčãč
void onMyBookClose(BOOK * book)
{
MyBOOK * myBook=(MyBOOK*)book;
if (myBook->filebuf)
{
mfree(myBook->filebuf);
myBook->filebuf=0;
}
LIST * lst = myBook->session_list;
SESSION_ITEM * si;
while (lst->FirstFree)
{
int i=0;
si=(SESSION_ITEM *)ListElement_Remove(lst,0);
while (i<si->book_list->FirstFree)
{
BOOK_ITEM * bi=(BOOK_ITEM *)ListElement_GetByIndex(si->book_list,i++);
TextFree(bi->book_name);
delete(bi);
}
TextFree(si->session_name);
List_Free(si->book_list);
delete(si);
}
List_Free(myBook->session_list);
}
void CloseMyBook(BOOK * Book, void *)
{
FreeBook(Book);
bman_book=0;
};
// ñîįñòâåííî ñòąšò
__root int CreateBookList(void)
{
int file;
// u16 f[100];
if (!bman_book)
{
MyBOOK * myBook =bman_book= (MyBOOK *)malloc(sizeof(MyBOOK));
memset(myBook,0,sizeof(MyBOOK));
CreateBook(myBook,onMyBookClose,&bk,"BookManager",-1,0);
//
myBook->session_list=List_New();
myBook->filebuf=0;
// îòêšūâąåì äė˙ ÷òåíč˙ bookman.ini
if ((file=_fopen(GetDir(DIR_INI),(u16*)L"bookman.ini",0x001,0x180,0))>=0)
{
FSTAT fstat;
// îïšåäåė˙åì åãî šąçìåš
if (isFileExist(GetDir(DIR_INI),(u16*)L"bookman.ini",&fstat)==0)
{
// âūäåė˙åì ïąì˙òü
myBook->filebuf=(char*)malloc(fstat.fsize+1);
// ÷òčòąåì åãî
fread(file,(char*)myBook->filebuf,fstat.fsize);
}
// çąêšūâąåì
fclose(file);
}
CreateMenu(0,(BOOK*)myBook);
}
return(0);
}
int NewKey(int key, int r1 , int mode)
{
if (mode==KeyPressMode)
{
if (key==KeyTerminate)
{
if ((isKeylocked())&&(!Ignore_KeyLock)) return(0);
ModifyKeyHook(NewKey,0);
SUBPROC(elf_exit);
return(0);
}
if (key==KeyActiv)
{
if ((isKeylocked())&&(!Ignore_KeyLock)) return(0);
BOOK * bk;
if (!(bk=FindBook(isBookManager)))
{
CreateBookList();
return(-1);
}
else
{
CloseMyBook(bk,0);
return(0);
}
}
}
return(0);
}
// įåšåì çíą÷åíč˙ čç číč-ôąéėą
void get_ini_key(void)
{
int file;
char * buf;
if ((file=_fopen(GetDir(DIR_INI),(u16*)L"bookman.ini",0x001,0x180,0))>=0)
{
FSTAT fstat;
if (isFileExist(GetDir(DIR_INI),(u16*)L"bookman.ini",&fstat)==0)
{
buf=(char*)malloc(fstat.fsize+1);
fread(file,buf,fstat.fsize);
char * param;
if (param=manifest_GetParam(buf,"[START_KEY]",0))
{
KeyActiv=h2i(param);
mfree(param);
}
if (param=manifest_GetParam(buf,"[KEY_MODE]",0))
{
KeyPressMode=h2i(param);
mfree(param);
}
if (param=manifest_GetParam(buf,"[TERMINATE_KEY]",0))
{
KeyTerminate=h2i(param);
mfree(param);
}
if (param=manifest_GetParam(buf,"[IGNORE_KEYLOCK]",0))
{
Ignore_KeyLock=h2i(param);
mfree(param);
}
if (param=manifest_GetParam(buf,"[EXT_MODE]",0))
{
if(h2i(param)) ItemMode=3;
mfree(param);
}
mfree(buf);
}
fclose(file);
}
}
int main (void)
{
get_ini_key();
ModifyKeyHook(NewKey,1);
return(0);
}
-
Denukas eilini karta neblogai padirbejo.. :) Na ka gal kada reiks isbandyt.. Laukiam mes jusu forumieciai sukurtu elfu.. bus tikrai idomu paziureti ka sukure forumieciai.. ;D
-
Butu n ejuokai paciam kazka parasyt... :D asmeniskas as bandysiu kokio nors jau sukurto elfo funkcijas patobulint, padaryt "update" ;D
-
Gerai padirbejote, Denuk! Uz tai jums duodu +. Man reikes pabandyti kurti, taip pat mokytis C++.
-
nelabai suprantu kaip veikia elfai,tai ir ant siemensu buvo parasyta viskas su cc++?
-
nelabai suprantu kaip veikia elfai,tai ir ant siemensu buvo parasyta viskas su cc++?
Jop. Siemens elfai irgi parašyti su šita pačia programa, tik naudojant jiems pritaikytą library.
P.S. Atsidarykite Lib_Clara.h failą ten surašytos visos galimos funkcijos.
-
man elfo neissaugo... :'(
-
man elfo neissaugo... :'(
Turbut kazkur padarei klaida , paziurek apacioje programavimo lanngo atsiranda laukelis, kuriame uzrasomi komentarai. Jeigu padarai klaidu ten uzraso ir salia eilutes, kurioje yra klaida, atsiranda zenkliukas.
-
O kaip atsidaryt elfa? As noreciau paredaguot?
-
O kaip atsidaryt elfa? As noreciau paredaguot?
Pats nežinau, tie kas nori, kad jų elfus tobulintų duoda source jų.
-
O kaip atsidaryt elfa? As noreciau paredaguot?
pabandyk googlint su užklausa "[.elf extension] to [source file extension] converter" ar pan, buvau radęs tokiu būdu SA:MP skriptams
-
Sveiki visi, jei ši tema dar "nemirus" tai gal galėtumet kasnors atnaujinti nuorodas, nes turiu tik programa o tuos kitus failus tai ne visus.
-
Sveikas, na tema kaip ir mirus. :)
-
O tu nezinai kokie failai turetu buti tame se_elf aplankale? Arba gal siaip zinai informacijos kaip tuoj elfus kurt?
-
Na aš pats, tai ne. Bet su Denuku susirašau. Galėsiu užklausti.
-
Butu labai gerai jei uzklaustum :)
-
Sutarta, paprašysiu, kad jis apsireikštų šioje temoje. :)
-
@Bandytojas
Mečiau aš jau telefonų modingą. Gal kada ir grįšiu paprogramint elfų, kai atsiras elfpakas ant se k850.
Viskas ko tik gali prireikt elfų kūrimui slepiasi vat čia. (http://mobilefree.ru/newbb_plus/viewforum.php?forum=27) Ten rasi visus aprašymus, kaip ką padaryt, kas jau naudojama elfuose, tik gaila rusų kalba, pats verčiaus su google translator (jei nemoki versk į en, nes išvertus į lt nieko nesuprasi.).
Ryt poryt, kai turėsiu priėjimą prie senojo pc, pabandysiu surast tuos failus ir atnaujint nuorodas, bet tikrai galima rast ir tam forume, kurio linką katik daviau.
Įrašyta: Rugpjūtis 03, 2010, 20:58
Nu va truputį pakoregavau tutorialą ir atnaujinau linkus. Sėkmės kuryboje.
-
Labai dekui :)