- Milyen okostelefont vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Xiaomi 14 - párátlanul jó lehetne
- iPhone topik
- Milyen GPS-t vegyek?
- Poco X3 Pro - hardverfrissítés
- Betiltották a Pixel 7-et Japánban
- Magisk
Aktív témák
-
dreamex
tag
Sok sikert!
Azert vetettem fel a Python-t, mert nehez kezdonek a Symbian C++ fejlesztes.
Egy gyakorlott C++ programozonak is ujra kell tanulnia egy csomo mindent:
cleanupstack exception-k helyett, descriptor az std::string helyett, STL hianya
(bar van mar STLPort), es jopar a rendszer altal kikenyszeritett dolog aminek
eleget kell tenni, stb.
Kivancsi vagyok majd a kesobbi tapasztalataidra is. -
pjoc
csendes tag
KB 2 hete kezdtem Symbian alapú programfejlesztésbe. 2 fejlesztőeszközt néztem: a Borland Builder 6-ost a hozzá készült Mobile Edition bővítéssel és a CodeWarriort.
Szerintem ez utóbbit jobb használni a témában szereplő feladatra.
Ehhez le lehet tölteni a http://www.forum.nokia.com oldalról a 2.8.3-as personal vagy a 3.0 OEM és prof (ez egyben van, telepítéskor kell választani) verziót. A különbségek köztük a gyártó oldalán (www.metrowerks.com) olvasható.
Még egy lényeges különbség: a 2.8.3-as 30 napig használható, a 3.0-as 15 napig.
Ha letelt az idő uninstallálni kell majd kitörölni a telepítési könyvtárból a lizens.dat filet és a windows könyvtárból a winprod.dll-t majd jöhet az újra telepítés és máris kezdődik elölről az új periódus.
Ami még letöltendő a nokia oldalról az a CodeWarriorhoz szóló SDK. Én kettőt töltöttem le: a SERIES 60 SKD 1.2 -est ez a 6-os Symbian op rendszerrel üzemelő telefonokhoz történő fejlesztéshez kell (pl. Siemens SX1) és a SERIES 60 2.1 -est ez a 7-es rendszerhez kell (pl. Nokia 6600). Elméletileg a 6-os rendszerben készült programok futtathatóak a 7-es op rendszerű telefonokon is.
Így elsőre ennyit. -
dreamex
tag
Csak, hogy ne offoljak..
A Symbianra most mar elerheto a Python is, ami talan meg jobb valasztas elsore
mint a C++ vagy a Java. En ezzel probalkoznek elsore. -
-
flugi
tag
a switch főleg a polimorfizmus miatt ellenjavallt, igen.
Effective C++, Design Patterns témákat már kerülgettem, nagyon jók, aztán belevágtam a template metaprogramming bugyraiba, és feladtamÖsszesen nincs 6 év szakmai múltam, 3-4 évet dolgoztam, ebből is csak 1 év volt ilyen téren kihívás. Most pl webes kiszolgálót kell csinálnom adatbázishoz delphiben. broáf.
-
dreamex
tag
Ez mar OFF, de miert ellenjavalt a switch() ? Ha polimorfizmusra gondolsz akkor ertem.
''néhány hónap gyakorlat kellett ahhoz, hogy megértsem, mi mire jó valójában a C++-ban.''
Szereny vagy.8 ev C++ (ebbol tobb mint 6 mint fejleszto cegnel) ugy erzem, hogy
van nemi tapasztalatom es ralatasom a dolgokra, de meg mindig nagyon sokat lehet
tanulni. Ha mar eligazodsz az alapokan, menj tovabb Effective C++, C++ Gems,
es a design pattern-ek iranyaban. -
dreamex
tag
Szia,
Ha meg nem merultel el tulsagosan a c++-ban, en megis a java-t javasolnam
elso megkozelitesben. Javaban sokkal hamarabb megtanulod az alapokat es
konnyeben eljutsz a programjaid megirasahoz.
A Symbian C++-ban irodott ezert vannak dolgok amihez nem tudsz majd
konnyen hozzaferni Javabol, de ha ide eljutsz akkor mar jobban fogsz haladni
a C++ megertesevel is. Kulon nehezseg egyebkent, hogy Symbian-on egy
specialis ''dialektusa'' van a C++-nak, ami sajatos C++ osztalyokat illetve
kezi kivetelkezelest jelent, ami mind plusz nehezseg meg egy egyebkent
gyakorlott C++ programozo szamara is. -
flugi
tag
válasz
#18379748 #62 üzenetére
Bizonyos szempontból persze jogos amit mondasz, mert ha idősebb vagy, és már régebben kezdtél programozni, akkor a C++ fejlődésének még egy korai szakaszában még igaz lehetett az a vélekedés, hogy a C az alap, a C++ pedig egy ráhúzott plusz.
Persze az is lehet egy szemlélet, hogy minden ami C-ben is van, az a C, és minden ami a C-ben nincs, az a C++, de ez nem igaz. A C++ egy teljes nyelv, vannak olyan pontok, ahol még másképp is működik mint a C (gondolj a // kommentre: a //* semmi C++-szal, ''/'' régi C fordítóval. A legújabb C szabványban már van // is)
Helyesebb tehát azt mondani, hogy a C++ nem az osztályoknál és a template-knél kezdődik, hanem a típusoknál, ciklusoknál, feltételeknél, éppúgy mint a C, és jé, néhol hogy hasonlít. Azért helyesebb, mert a C++ bizony különbözik annyira a C-től, hogy már az alapokat is úgy tanulja meg az ember, hogy az a nyelvhez illeszkedjék. Egy jó C++ programban például ellenjavallt switch(), ellenjavallt a #define alakú konstans szám, nem használunk char* stringet, stb. Ha valaki C-ben tanul meg először, aztán áll át C++-ra, óhatatlanul belefut tervezési gondokba, és tipikusan C programokat ír C++-ban.
Az alapokhoz szerény és részrehajló véleményem szerint érdemes tanárhoz fordulni, amennyiben a tanár a téma értője (írt már nagyobb lélegzetvételű C++ programot többedmagával (határidőre) mert az alapok megértését a személyes magyarázat nagyon megkönnyíti. Programozni megtanulni pedig tény, hogy csak úgy lehet, hogy az ember magától csinál programot, akár kényszer alatt is. Én legalábbis akkor lettem jó C++ programozó, amikor elkezdtem dolgozni. Előtte tipikus C++ tanuló diáktudásom volt, néhány hónap gyakorlat kellett ahhoz, hogy megértsem, mi mire jó valójában a C++-ban.
A véleményem pedig azért részrehajló, mert jelenleg C++-t okítok -
#18379748
törölt tag
>hujuj.. akkor ez mit keres egy c++-t oktató könyveb, mint példaprogi!?
Ha peldul azert hogy az alapveto c szintaxal tisztaban legy. Azert nyoszorgom en a c-t mert hiaba akarunk c++-ozni ha nem tudunk egy feltetelt vagy egy ciklust megirni vagy stringeket kezelni akkor az c++-ban sem fog menni (raadasul ott meg hozzajon az oop is)... szvsz.
>Mellesleg látom, hogy ez nehezebb lesz, mint gondoltam!
Ezt nyoszorgom ez nem annyi hogy printf osz csokolom, itt ablakozas van esemenykezeles meg api tomentelen. Nem ezzel kene kezdeni (bar lehet csak ugy igen munkas lesz.
> Majd infotanárral konzultálok, mert látom hogy magamtól nemfog menni..
Szerintem nem ez az igazi ut. Az altalam ismert valodi programozok (velem egyutt ha oda sorolhatom magam;) nem infotanartol tanultak meg progizni (igazan). Hanem nekiall es magatol sajat magat kepezve (konyvek/net/peldaprogik segitsegevel) sikerul elernie azt amit. Sok ido es lassu haladas lesz, cserebe elmelyultebb tudas a problemak atlatasa es megoldasa a nyereseg... -
flugi
tag
válasz
kapcs-ford #59 üzenetére
úgy érted egyenesen Flash-t nyomni a telefonra?
Egyszerű alkalmazásokat talán meg lehet oldani így, kicsit bonyolultabbakat Java-ban, és mindent C++ -ban. Arra érdemes gondolni, hogy a telefon 120-150 MHz processzora futtatja a Flash vagy Java gépet.. -
flugi
tag
válasz
kapcs-ford #58 üzenetére
Két megjegyzés:
1. Nem a nyelv, hanem az interface miatt hosszú a program
2. Egy sima jegyzettömb alig pár sorral hosszabb a HelloWorld-nél.
A dolog oka az, hogy már a HelloWorld is tartalmazza a GUI programok klasszikus rétegelését, amiben legalul van egy dokumentum (mint Wordben a szöveg formázás-információkkal, vagy egy passziánszban a kártyák állapota), és arra épül a felhasználói interfész (AppUI), ami kezeli az eseményeket, és azoknak megfelelően módosítja a dokumentumot, illetve elkészítteti a képernyőt az AppView-val, aminek csak az a dolga, hogy a dokumentum tartalmát grafikára tegye át. Az egészet beindítani az Application-ban kell.
Amint azt bárki kitalálhatta eddig is, egy HelloWorld programhoz valószínűleg nem kell ennyi infrastruktúra, de a hivatalos HelloWorld program ilyen, mert úgyis mindenki ezt kezdi el átírni, és akkor már kövesse az interface-t.
Miért jó az interface követése?
Mert az alkotóelemek közötti kapcsolat már készen van. Megvannak a callback függvények írva, neked már csak azt kell implementálni, hogy milyen eseményre milyen reakciót hajts végre, az események gyűjtését elvégzi helyetted a már megírt rendszer (NEM az operációs rendszer, hanem a C++ interface alja). Pont mint az ablakozós környezetekben: azért használod, mert nem akarsz windows API-kat hivogatni közvetlenül, sokkal kényelmesebb már nyelvi szintre hozott megoldásokkal dolgozni. -
kapcs-ford
őstag
Igaz-e az hogy kezdőként sok őszhajszáltól kímélhetjük meg magunkat ha elsőnek egy DCT-3 -asba kezdünk el okoskodni?
-
flugi
tag
C++ Symbian kód, UIQ (vagyis Ericsson vonal) kiadásra egy hivatalos HelloWorld:
Minden fájl neve bennevan kommentként.
//////
// HelloWorld.h
// ------------
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////
// HelloWorld
// ----------
//
//
// The class definitions for the simple example application
// containing a single view with the text ''Hello World !'' drawn
// on it.
//
// The class definitions are:
//
// CExampleApplication
// CExampleAppUi
// CExampleAppView
// CExampleDocument
//
//
////////////////////////////////////////////////////////////////////
#ifndef __HELLOWORLD_H
#define __HELLOWORLD_H
#include <coeccntx.h>
#include <eikenv.h>
#include <eikappui.h>
#include <eikapp.h>
#include <eikdoc.h>
#include <eikmenup.h>
#include <eikon.hrh>
#include <helloworld.rsg>
#include ''helloworld.hrh''
////////////////////////////////////////////////////////////////////////
//
// CExampleApplication
//
////////////////////////////////////////////////////////////////////////
class CExampleApplication : public CEikApplication
{
private:
// Inherited from class CApaApplication
CApaDocument* CreateDocumentL();
TUid AppDllUid() const;
};
////////////////////////////////////////////////////////////////////////
//
// CExampleAppView
//
////////////////////////////////////////////////////////////////////////
class CExampleAppView : public CCoeControl
{
public:
static CExampleAppView* NewL(const TRect& aRect);
CExampleAppView();
~CExampleAppView();
void ConstructL(const TRect& aRect);
private:
// Inherited from CCoeControl
void Draw(const TRect& /*aRect*/) const;
private:
HBufC* iExampleText;
};
////////////////////////////////////////////////////////////////////////
//
// CExampleAppUi
//
////////////////////////////////////////////////////////////////////////
class CExampleAppUi : public CEikAppUi
{
public:
void ConstructL();
~CExampleAppUi();
private:
// Inherirted from class CEikAppUi
void HandleCommandL(TInt aCommand);
#if defined(_DEBUG)
/* Only used in this application to add a Close item in Debug mode */
void DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane);
#endif
private:
CCoeControl* iAppView;
};
////////////////////////////////////////////////////////////////////////
//
// CExampleDocument
//
////////////////////////////////////////////////////////////////////////
class CExampleDocument : public CEikDocument
{
public:
static CExampleDocument* NewL(CEikApplication& aApp);
CExampleDocument(CEikApplication& aApp);
void ConstructL();
private:
// Inherited from CEikDocument
CEikAppUi* CreateAppUiL();
};
#endif
// HelloWorld.hrh
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
enum TExampleMenuCommands
{
EExampleItem0 = 200,
EExampleItem1,
EExampleItem2
};
// HelloWorld.mmp
//
// Copyright (c) 2002 Symbian Ltd. All rights reserved.
//
// using relative paths for sourcepath and user includes
TARGET HelloWorld.app
TARGETTYPE app
UID 0x100039CE 0x101F6163
TARGETPATH \system\apps\HelloWorld
SOURCEPATH .
SOURCE HelloWorld_Main.cpp
SOURCE HelloWorld_Application.cpp
SOURCE HelloWorld_Document.cpp
SOURCE HelloWorld_AppUi.cpp
SOURCE HelloWorld_AppView.cpp
USERINCLUDE .
SYSTEMINCLUDE \epoc32\include
RESOURCE HelloWorld.rss
LIBRARY euser.lib apparc.lib cone.lib eikcore.lib eikcoctl.lib
// HelloWorld.RSS
//
// Copyright (c) 1997-1999 Symbian Ltd. All rights reserved.
//
NAME HEWO
#include <eikon.rh>
#include <eikcore.rsg>
#include ''helloworld.hrh''
RESOURCE RSS_SIGNATURE { }
RESOURCE TBUF { buf=''''; }
RESOURCE EIK_APP_INFO
{
hotkeys=r_example_hotkeys;
menubar=r_example_menubar;
}
RESOURCE HOTKEYS r_example_hotkeys
{
control=
{
HOTKEY { command=EEikCmdExit; key='e'; }
};
}
RESOURCE MENU_BAR r_example_menubar
{
titles=
{
MENU_TITLE { menu_pane=r_example_first_menu; txt=''HelloWorld''; }
};
}
RESOURCE MENU_PANE r_example_first_menu
{
items=
{
MENU_ITEM { command=EExampleItem0; txt=''Item 0''; },
MENU_ITEM { command=EExampleItem1; txt=''Item 1''; },
MENU_ITEM { command=EExampleItem2; txt=''Item 2''; }
};
}
RESOURCE TBUF r_example_text_Hello { buf=''Hello World!''; }
RESOURCE TBUF r_example_text_Item0 { buf=''Item 0''; }
RESOURCE TBUF r_example_text_Item1 { buf=''Item 1''; }
RESOURCE TBUF r_example_text_Item2 { buf=''Item 2''; }
RESOURCE TBUF r_example_close_command { buf=''Close (debug)''; }
//// És most jön a lényeg
// HelloWorld_CExampleApplication.cpp
// ----------------------------------
//
// Copyright (c) 2002 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////////
//
// Source file for the implementation of the
// application class - CExampleApplication
//
////////////////////////////////////////////////////////////////////////
#include ''HelloWorld.h''
const TUid KUidHelloWorld = { 0x101F6163 };
// The function is called by the UI framework to ask for the
// application's UID. The returned value is defined by the
// constant KUidHelloWorlde and must match the second value
// defined in the project definition file.
//
TUid CExampleApplication::AppDllUid() const
{
return KUidHelloWorld;
}
// This function is called by the UI framework at
// application start-up. It creates an instance of the
// document class.
//
CApaDocument* CExampleApplication:: CreateDocumentL()
{
return new (ELeave) CExampleDocument(*this);
}
// HelloWorld_CExampleAppView.cpp
// ------------------------------
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////////
//
// Source file for the implementation of the
// application view class - CExampleAppView
//
////////////////////////////////////////////////////////////////////////
#include ''HelloWorld.h''
//
// Constructor for the view.
//
CExampleAppView:: CExampleAppView()
{
}
// Static NewL() function to start the standard two
// phase construction.
//
CExampleAppView* CExampleAppView::NewL(const TRect& aRect)
{
CExampleAppView* self = new(ELeave) CExampleAppView();
CleanupStack:: PushL(self);
self->ConstructL(aRect);
CleanupStack:: Pop();
return self;
}
//
// Destructor for the view.
//
CExampleAppView::~CExampleAppView()
{
delete iExampleText;
}
// Second phase construction.
//
void CExampleAppView:: ConstructL(const TRect& aRect)
{
// Fetch the text from the resource file.
iExampleText = iEikonEnv->AllocReadResourceL(R_EXAMPLE_TEXT_HELLO);
// Control is a window owning control
CreateWindowL();
// Extent of the control. This is
// the whole rectangle available to application.
// The rectangle is passed to us from the application UI.
SetRect(aRect);
// At this stage, the control is ready to draw so
// we tell the UI framework by activating it.
ActivateL();
}
// Drawing the view - in this example,
// consists of drawing a simple outline rectangle
// and then drawing the text in the middle.
// We use the Normal font supplied by the UI.
//
// In this example, we don't use the redraw
// region because it's easier to redraw to
// the whole client area.
//
void CExampleAppView:: Draw(const TRect& /*aRect*/) const
{
// Window graphics context
CWindowGc& gc = SystemGc();
// Area in which we shall draw
TRect drawRect = Rect();
// Font used for drawing text
const CFont* fontUsed;
// Start with a clear screen
gc.Clear();
// Draw an outline rectangle (the default pen
// and brush styles ensure this) slightly
// smaller than the drawing area.
drawRect.Shrink(10,10);
gc.DrawRect(drawRect);
// Use the title font supplied by the UI
fontUsed = iEikonEnv->TitleFont();
gc.UseFont(fontUsed);
// Draw the text in the middle of the rectangle.
TInt baselineOffset=(drawRect.Height() - fontUsed->HeightInPixels())/2;
gc.DrawText(*iExampleText,drawRect,baselineOffset,CGraphicsContext::ECenter, 0);
// Finished using the font
gc.DiscardFont();
}
// HelloWorld_CExampleAppUi.cpp
// ----------------------------
//
// Copyright (c) 2002 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////////
//
// Source file for the implementation of the
// application UI class - CExampleAppUi
//
////////////////////////////////////////////////////////////////////////
// To enable the dynamic loading of the menu with a Close command in the UDEB version
#include <eikmenub.h>
#include ''HelloWorld.h''
// The second phase constructor of the application UI class.
// The application UI creates and owns the one and only view.
//
void CExampleAppUi:: ConstructL()
{
// BaseConstructL() completes the UI framework's
// construction of the App UI.
BaseConstructL();
// Create the single application view in which to
// draw the text ''Hello World!'', passing into it
// the rectangle available to it.
iAppView = CExampleAppView::NewL(ClientRect());
}
// The app Ui owns the two views and is.
// therefore, responsible for destroying them
//
CExampleAppUi::~CExampleAppUi()
{
delete iAppView;
}
// Called by the UI framework when a command has been issued.
// In this example, a command can originate through a
// hot-key press or by selection of a menu item.
// The command Ids are defined in the .hrh file
// and are 'connected' to the hot-key and menu item in the
// resource file.
// Note that the EEikCmdExit is defined by the UI
// framework and is pulled in by including eikon.hrh
//
void CExampleAppUi::HandleCommandL(TInt aCommand)
{
switch (aCommand)
{
// Just issue simple info messages to show that
// the menu items have been selected
case EExampleItem0:
iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM0);
break;
case EExampleItem1:
iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM1);
break;
case EExampleItem2:
iEikonEnv->InfoMsg(R_EXAMPLE_TEXT_ITEM2);
break;
// Exit the application. The call is
// implemented by the UI framework.
case EEikCmdExit:
Exit();
break;
}
}
// This is a way to dynamically initialize the menu.
// If it is the debug version, the menu should contain a Close command.
// In the release version, there should be no Close command.
#if defined(_DEBUG)
void CExampleAppUi:: DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane)
{
if(aMenuId == R_EXAMPLE_FIRST_MENU)
{
CEikMenuPaneItem::SData itemData;
TBuf<16> closeCommandText;
iEikonEnv->ReadResource(closeCommandText, R_EXAMPLE_CLOSE_COMMAND);
itemData.iText=closeCommandText;
itemData.iCommandId=EEikCmdExit;
itemData.iFlags=0;
itemData.iCascadeId=0;
aMenuPane->AddMenuItemL(itemData);
}
}
#endif
// HelloWorld_CExampleDocument.cpp
// -------------------------------
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////////
//
// Source file for the implementation of the
// document class - CExampleDocument
//
////////////////////////////////////////////////////////////////////////
#include ''HelloWorld.h''
// The constructor of the document class just passes the
// supplied reference to the constructor initialisation list.
// The document has no real work to do in this application.
//
CExampleDocument:: CExampleDocument(CEikApplication& aApp)
: CEikDocument(aApp)
{
}
// This is called by the UI framework as soon as the
// document has been created. It creates an instance
// of the ApplicationUI. The Application UI class is
// an instance of a CEikAppUi derived class.
//
CEikAppUi* CExampleDocument:: CreateAppUiL()
{
return new(ELeave) CExampleAppUi;
}
// HelloWorld_Main.cpp
// -------------------
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
////////////////////////////////////////////////////////////////////////
//
// HelloWorld
// ----------
//
//
// The example is a simple application containing a single view with
// the text ''Hello World !'' drawn on it.
//
// The example includes code for displaying a very simple menu.
//
// ---------------------------------------------------------------------
//
// This source file contains the single exported function required by
// all UI applications and the E32Dll function which is also required
// but is not used here.
//
////////////////////////////////////////////////////////////////////////
#include ''HelloWorld.h''
// The entry point for the application code. It creates
// an instance of the CApaApplication derived
// class, CExampleApplication.
//
EXPORT_C CApaApplication* NewApplication()
{
return new CExampleApplication;
}
// This function is required by all EPOC32 DLLs. In this
// example, it does nothing.
//
GLDEF_C TInt E32Dll(TDllReason)
{
return KErrNone;
}
/////////////////////
Laza, mi?
[Szerkesztve: szmájlikat kiírtottam amik a kódban a kettőspont-dé és hasonlók miatt jöttek be]
[Szerkesztve] -
flugi
tag
ha symbianon futó decompilert kérdezel, az természetesen nincs (sajnos fejlesztőeszközök mind keresztfordítanak)
Ha PC-n futó decompilert keresel, az is nehézkes, tekintve hogy a Symbian rendszer elég sokféle procin fut, pl XScale, StrongARM, különböző gépi kódok vannak. Érdemes volna procispecifikus decompilereket keresni, és az operációs rendszer szolgáltatásait valahogy utólag kezelni, bár én még nem láttam semmilyen eszközre még csak utalást sem, hogy ilyet tudna.. ettől persze még bőven lehet. -
GodHeart
senior tag
hujuj.. akkor ez mit keres egy c++-t oktató könyveb, mint példaprogi!?
Mellesleg látom, hogy ez nehezebb lesz, mint gondoltam!Majd infotanárral konzultálok, mert látom hogy magamtól nemfog menni.. sokkal több dolog van amire figyelni kell, és az alappal sem vagyok tisztában.. nah majd holnap beszélke vele!
-
flugi
tag
két hello world progit láttam a példaprogramok között, nem tudom melyikre gondolsz.
Az egyik, amikor egy üres alkalmazás about ablakában van egy Hello World felirat, a másik pedig az appviewban nyitott grafikus mezőre ír.
iBitmapGc->CopyRect(TPoint(0,-iFontHeight),Rect());
const TRect messageRect(0,Rect().iBr.iY - iFontHeight,Rect().iBr.iX,Rect().iBr.iY);
iBitmapGc->DrawText(aMessage,messageRect,iFontAscent);
Window().Invalidate();
Látható, hogy a képernyő görgetéséről is külön kell gondoskodni.
Én fogok a legjobban örülni ha van ennél egyszerűbb mód is, úgyhogy ha megtalálod hogy hogyan csináltátok akkor ne kímélj -
flugi
tag
Ez teljesen C kód, nincs benne semmi C++.
Hogy olyan eszközöket használj, ami C++ szemléletű, a kiírásokat így csináld:
cout << ''blabla'' << x;
ahol x bármilyen változó
Beolvasást pedig
cin >> x;
vagy, ha több szóból álló sort szeretnél olvasni, akkor
getline(cin, s)
ahol x bármilyen (akár int) változó, s pedig string.
Ettől függetlenül a probléma az, hogy nem csináltál project-et, meg hasonlókat, és valamiért a TForm-ra hivatkozik egy olyan object fájl, ami valamiért olyan mintha kellene. Minden programot úgy kezdj, hogy új project, és ne törölj ki belőle semmit (lehet hogy a programkódot ugyan felülírtad ezzel, de a resource fájlok bennemaradtak a projectben)
Arra pedig készülj fel, hogy Symbian-on ez az egész pepecselés hatványozottan megy. -
GodHeart
senior tag
// kozos.cpp - C++
#include <stdio.h>
#include <conio.h>
void main () {
char nev [20];
int a;
double b;
printf(''Kérem a szöveget: '');
scanf(''%s'',nev);
printf(''A='');
scanf(''%d'',a);
printf(''B='');
scanf(''%lf'',b);
printf(''%s : A*B=%lf\n'',nev,a*b);
getch();
}
Nah itt egy ilyen 1x progi, amit bemásoltam, hogy tanuljak rajta, de a végén mikor futtatni szeretném, kidob egy hibaüzit! /mér is ne menne.../
[Linker Error] Unresolved external 'TForm1::' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT2.OBJ
Ezt! :\ Most mi a probléma!? -
GodHeart
senior tag
nah megtörtént a csoda!
Felment a progi... Igaz, hogy kellett hozzá egy windows reinstall, de most megy!
És sikerült még 1 progit le is futtatni!Létrehoz egy ablakot!
wow
-
flugi
tag
no ez az, hogy telefonra nincs ''kis szöveges program'', szöveg kiírásához ugyanolyan applikációt kell gyártani mint minden egyéb grafikus felülethez. Tulajdonképpen olyan, mintha egy ablakba nyitnál egy szövegmezőt amire már van szöveg kiírási lehetőség..
(ugyanis a telefon nem konzol alapú, mint ahogy a PC-k történeti okokból azok.) -
GodHeart
senior tag
-
flugi
tag
C++ -szal kell kezdened. Ellentétben az előttem szólóval, én nem bátorítalak, hogy sima C nyelvben különösen elmélyülj, mert a nyelv filozófiája nem passzol azzal az eseményvezérelt, objektumorientált világgal, ami a Symbian rendszereken bizony az egyedüli lehetőség.
Amit ajánlok, az az, hogy miután sikerült felrakni a Borland Buildert, próbálj néhány PC-s ablakozós programot megírni, számológépet, vagy bármit amiben gombok meg editormezők vannak. Rá kell érezni arra, hogy az ember mit hová kell írjon.
Ebben egyrészt sok segítséget nyújthatnak a Borland Builder példaprogramjai, másrészt a nyelv részleteiről vagy egy jó könyvben (szerintem a létező legjobb amit olvashatsz, az a nyelv szerzőjének könyve, Bjarne Stroustrup: A C++ programozási nyelv, igaz hogy vaskos, de neked az első kötet elég)
Ha már könnyedén megy a dolog PC-n, akkor van értelme elővenni a beágyazott rendszereket, mert az olyan elvi hibákat, amiket az eseményvezérelt objektumorientált programozásban való járatlanság okoz, hatványozottan nagyobb szenvedés idegen operációs rendszeren kibogozni. -
#18379748
törölt tag
akkor aztmondod , hogy először c-vel kezdjek!?
Ja bizony, mivel a c++ az a c szintaxist hasznalja, megfejelve az oop technikaval.
Abort/Retry/Ignore akkor jon elo (alatalaban) ha nem tud olvasni vagy irni egy lemezt a progi. Meg kene gyozodni, hogy olvashato e az egesz telepitolemezed es, hogy ahova telepited ott van e eleg hely (soxor 2-3x-os hely kell mert eloszor kicsomagolja magat, aztan elofordul, hogy mas driveokat is hasznal az atmeneti fajloknak es ott sincs eleg hely).
Ha egybol windows progi kodolassal kezdesz az nem lesz egyszeru. Kezdesnek probalj meg mezei c-ben egyszeru karakteres progikat irni (linux vagy cigwin alatt a gcc nagyon jo e celra es ingyenes, de a borland c is nagyon jo foleg regebbi dos-on vagy dos-ablakban is futni kepes verzio).
Meg aztan nem art valami rendes szagirodalmat szerezni. Szerintem magyar nyelvu c kezdo konyv az egyik legjobb a peto adam fele abC-konyv.
Valaki emlitette, hogy van az a symbian progizos konyv. En a mamutban levo libriben lattam. Eleg vekonka es alapnak veszi, hogy a delikvens ismeri a c/c++ es esemenyverelt programozast.
A masik emlitett konyv azaz oop (objektum orientalt programozas) cimu iromany. Mikor megjelent megneztem (nem ma volt) es eleg gyengecskenek tunt, a piko fele tp konyvben sokkal szemleletesebben es gyakorlatiasabban van leirva (igaz az nem annyira elmeleti viszont sokkal erthetobb az egesz oop lenyege). -
GodHeart
senior tag
válasz
#18379748 #34 üzenetére
az a baj, hogy még ilyen szakkifejezéseket nemigen értek... :\
egyenlőre az alapokat szeretném valahonnan elsajátítani, beírni programokat, azokat buzerni, hogy tudjam mégis mi mit csinál, majd meglátom hogy alakulnak a dolgok. csak egyenlőre lenne már programom.... ÁÁÁÁÁ -
GodHeart
senior tag
válasz
#18379748 #34 üzenetére
akkor aztmondod , hogy először c-vel kezdjek!?
másik kérdés. eléggé ideges vagyok már.. végre megszereztem a borland c++-t, telepítem fel, és megint hibát ír ki... a regisztrivel van megin baja... ugyanazt írja ki, mint amint egy előző hozzászókásomban belinkeltem, csak most azelőtt még 3-4 ablakot is kidob, amire a ''retry'' ''abort'' ''ignore'' választások vannak... Valakinek valami használható 5lete, hogy miért nem megy fel ez a ****!? pls!! -
#18379748
törölt tag
Hi!
En aktivan fejlesztek palmOS-re. Altalaban ezek a kezigep/mobil os-ek rendesen megcsinalt esemenyvezerelt rendszerek (nem egy bgi-re valtok aztan rajzolgatok a kepernyore kategoriajuak..).
Leggyakoribb a C/C++ nyelvu programozas (a pascal nem nagyon tamogatott plane nem a standard pascal inkabb az oop-s kiterjesztes). Mindenkepp kell egy fejlesztoeszkoz+fordito (pl. eclipse+gcc+es valamilyen eroforrasszerkeszto) meg egy sdk. Az sdk tartalmazza a konyvtari fuggvenyeket es altalban tartalmaz emulatort es debuggert is. Raadasul az igazan jo eszkozok kemenyen fizetosek (pl. codewarrior).
Nagyon melegen ajanlott, hogy legyen egy fizikai eszkozunk is amin tudunk tesztelni (raadasul nem art ha azt nagyon jol ismerjuk nem csak sima juzer szinten).
A programozas nem ecceru, altalaban api hegyek vannak amiket megfeleloen parameterezve kell egy esemenykezo ciklusban hivogatnunk (hasonloan a windows-hoz). Raadasul itt nem nagyon vannak rapid 4gl eszkozok, hanem pure c-ben kell irogatni, pointereket, handlereket kezelni.
Szerintem egy alap pascal az nagyon nem eleg (sot a pascal utan c sem tul egeszseges). Mindenkepp az alap c-t fejbol kell fujni (ne legyen gond egy ciklusszervezes, pointerkezeles, cast, stringkezeles) stb.), utana neki lehet esni a mobil eszkozunknek. Egy-egy nehany gombos/ablakos semmit sem csinalo progi is tobb szaz sor es rengeteg ido.
Ha valaki belevag akkor szamitson arra, hogy rengeteg ido, nagyon lassu haladas es soxor a legegyszerubb dolog is istentelenul bonyolult lesz. Nemely resz lehetetlenul el van bonyolitva (pl timer,hires,modal) es a progi rengeteg elagazast es extra esemenykezelest igenyel a minimlais hw kompatibilitas miatt (mert ugye nagyon sok verziouju os van kulonbozo szolgaltatasokkal, ugyanigy a hw-k is erosen elterenek). -
shev7
veterán
bocsi, elfelejtkeztem rólad
szóval
Symbian:
Charaf Hassan: Symbian alapú szoftverfejlesztés - Szak kiadó (www.szak.hu)
ISBN: 963 9131 66 0
OOP:
Kondorosi Károly...: Objektum Orientált Szoftverfejlesztés - ComputerBooks kiadó
ISBN 963 618 108 X
C++-hoz pedig sztem jó könyv az, amit kérdeztél. -
GodHeart
senior tag
up
-
sonar
addikt
simbianos decompilert merre lehet találni?
-
GodHeart
senior tag
Bővebben: link
Ezt a könyvét érdemes megvenni!? Más fórumokon eléggé dícsérték, és objektumorientált dolgok is vannak benne.
Gondolom először úgyse fog mobilra menni a dolog! :\ De nembaj.
[Szerkesztve] -
GodHeart
senior tag
itt egy printscreen a hibáról! :] a regedittel már énhoztam létre a mappákat /kulcsokat/, de az sem segít.. majd pedig aadtam neki teljes hozzáférést, de az sem segített! Valakinek valami 5let!?
Bővebben: link -
GodHeart
senior tag
hát nekem viszont közbejött a telepítésnél egy gond.. mikor elkezdzem és végigmegy a telepítés, akkor valami regisztris hibát kiír, és leszedi magát! :\
-
flugi
tag
könnyen lehet, hogy a Borland nem önálló program, csak feltelepített (pénzes) Borland C++ Builderrel megy.
A második a fontos, ahogy shev is mondta. Abban van egy emulátor, egy csomó könyvtár, sok példaprogram. Én csak a példaprogramoktól vagyok okostelepítési kérdéseket nem tudom megválaszolni.
-
GodHeart
senior tag
akkor letöltöm a 2.at is!
-
shev7
veterán
Ha nem tévedek túl nagyot, az első egy fejlesztői környezet akar lenni, a második meg egy SDK (talán legegyszerűbben így lehetne leírni: az összes beépített könyvtár amire szükséged lehet)
Az első nélkül lehet programozni, de a segítségével sokkal könnyebb, de a második nélküln nem.
Amire te gondolsz az egy emulátor (ezen lehet tesztelni a programodat) A Nokia esetében ez része az SDK-nak emlékeim szerint. -
GodHeart
senior tag
juj de jó kösz!
ui.: ehhez mit szóltok!? most találtam a nokia hp-ján: Borland C++ Mobile Edition for Series 60, Nokia Edition
Ez nekem jo!? Most ez egy c++ akar lenni, direkt arra mire én használnám!?
ui2.: és ez mi!? ->> Series 60 Developer Platform SDK's for Symbian OS, for C++
//időközben rájöttem asszem. ez ilyen amin kipróbálhatjuk a megírt progikat, anélkül, hogy telóra tennénk! jól gondolom?//
[Szerkesztve] -
GodHeart
senior tag
nokia-ra akarom regelni magam.. hát ***** lassú! ! !
pedig elég jó dolgok vannak ott! -
GodHeart
senior tag
és ha belekell ugye ásnom magam a c++ba is, arra van valami jó könyv ajánlásotok!? Mert azt nemszeretem, hogy bemegyek a boltban és keresgélek, tapasztalat alapján szívesebben veszem!
-
shev7
veterán
Felvettem a kurzust, ott Symbian-t tanítanak (konkrétan Series 60-t), de sajnos meló miatt nem volt időm a házit megcsinálnom, így hát ugrott. A Java-t azért javasoltam, mert első programot vmivel egyszerűbb megírni benne, és ha előtte nem tanult OOP-t akkor azzal könnyebb elindulni.
-
flugi
tag
Igen, az SDK-t kell letöltened. Ha abban megnézed a példaprogramokat, akkor már konkrét kérdéseid lesznek, amit akár a fórumon is meg tudok válaszolni.
Mindenképpen ajánlott előtte valamilyen ablakozós C++-ban néhány egyszerű program készítése, pl Borland C++ Builderrel, vagy Visual C++-szal. -
shev7
veterán
Amint a közelemben lesz a könyv, minden szükséges infót leírok ide, viszont sztem egy jó c++ könyvbe sem ártana befektetni, de a mobil témánál maradva, lehet, hogy szerencsésebb lenne java-val kezdeni. Javaban talán egyszerűbb kis programokat írni telefonra, és közben el lehet sajátítani az objektumorientált szemléletet.
-
GodHeart
senior tag
nagyon megköszönném, ha ennek a könyvnek a kódját megtudnád adni, mert azt már kis városomban is megtudom rendelni, és meg is fogom.
sajnos a c++ ismeretem egyenlőre a 0val egyenértékű, melyről a mai oktatás rendszer tehet... /gimibe még mindig a DOS a téma... nc/ -
shev7
veterán
A BME-n van egy tárgy, Szoftverfejlesztés mobil eszközökre a címe. Főleg Symbiannal foglalkoznak. Előző félévben jött ki a könyv, most nincs itt nállam, de meg tom mondani címét, kiadót, ha visszamentem Pestre.
Visszatérve a programozáshoz. Sajnos nem úgy megy, hogy írok pár sort lefordítom és megy. Egy egyszerű programhoz (Hello world!) jó sok programkódot kell írni. De sokkal okosabb leszel abból a könyvből. De az tény, hogy elég sok szenvedés, míg összehozol egy épkézláb programot. Főleg ha előtte nem tanultál C++, és nincs objektumorientált szemléleted. Sajnos azt kell mondjam, hogy Pascal tudással itt semmire sem mész. -
GodHeart
senior tag
öö Symbian könyv alatt mit értesz!? Hogy hogyan programozzunk e telefonra!? Ha igen akkor érdekel!
-
GodHeart
senior tag
jah és még kérdés, azt konkrétan gondolom nemneház megcsinálni, hogy full screen, majd valamit kiír, aztán mondjuk aztán opciók gomb és hogy ott van egy kilép. Gondolom ez elég alapszintű dolog, de ha 1 ilyet valaki mutatni, és részletesen letudná írni, onnan én sokkal könnyebben eltudnék indulni. Látnám az egész felépítését.
-
-
flugi
tag
Symbian telefon programozásához nem árt, ha már van egy kis gyakorlatod ablakozós programok készítésében, mert a rendszer nagyon a meglevő eseményvezéreltekre hasonlít. C++ nyelven jó esélyed van a Java mellett.
Programoztam már Nokia 9200-t, és egy Series60-asat is. Fontos hogy legyen olyan telefonod, amire programot akarsz írni, és tudd, hogy melyik sorozatból való. A gyártótól le tudod tölteni a megfelelő fejlesztői környezeteket, de jó ha van pénzes fordító (pl Visual Studio vagy Borland Builder). Érdemes az ehhez adott példaprogramokat kipróbálni, végigkecmeregni a különböző telepítési és konfigurálási buktatókat.
Van magyar nyelvű Symbian könyv, bár a kezemben még nem volt (hamarosan lesz) -
GodHeart
senior tag
kösz! meglesegetem őket!
-
yksz
aktív tag
Bővebben: link Ha jól láttam vannak konyvek is, meg softwarek is.
-
GodHeart
senior tag
én nagyon akarok, csak hát nemsok mindent értek egyenlőre hozzá.. viszont mondom kéne valami olyan dolog amiből az alapokat is ellehet sajátítani. Inkább sys-es azaz symbianos progikat szertnék írni.
pl elindítom pascalt, bepötyögök valamit, azt lefodítom és kész a progi, nah először hogy ilyen symbianos cuccot miben lehet/kell megírni, szóval egyenlőre semmire sincs semmi fogalmam, de szvsz először mindenki ígyvolt! És az akarás a legfontosabb!
[Szerkesztve] -
GodHeart
senior tag
Nos bizonyos dolgok miatt, szerertném az időm hasznosan eltölteni, és mivel úgyis igen jóban vagyok a telefonokkal, és van időm is, gondoltam megtanulok programozni.
Ebben kéne a segítségetek. Érzek magamban kellő ambíciót, hogy valóban elsajátítsam. Elsősorban Symbian alapú telefonokra gondoltam, de a Java-t sem vetem meg. Igazából foggalmam sincs, hogy honnan induljak el. Olyan segítség kéne, hogy mondjuk milyen nyelven kell ezeket megírni, és hogy van-e valami általatok is bevált könyv, amiből tanulhatnék, vagy esetleg kis példaprogramok. Közelemben nincs ilyen tudású ismerős/tanár, szal ez kifújva.
Régebben tanultam programozni Pascalba, ott is csak a saját erőfeszítésem miatt jutottam el egy szintre, bár bizonyos dolgokban elakadtam akkor de midn1.
Remélem van olyan ember, aki ilyennel foglalkozik, és tud nekem segíteni.
Aktív témák
- VÉGKIÁRUSÍTÁS - REFURBISHED - Lenovo ThinkPad 40A9 docking station
- Azonnali A320 B350 X370 B450 X470 A520 B550 X570 chipset alaplap felvásárlás személyes/csomagküldés
- Honor 400 Lite 256GB Kártyafüggetlen 1Év Garanciával
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest