Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



DDX

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: DDX

Autor: Frame1

22:32:24 03.05.2010

> Neexistují hloupé otázky, existují jenom hloupé
> odpovědi, ale na tohle se mi bude nehloupě
> odpovídat dost těžko

Niekedy su dobre aj hlupe odpovede, lespie ako ziadne. Dikes :)

> Takže udělat jedna-k-jedné přepis takovéto MFC
> aplikace do čisté WINAPI chce zkušenost s obojím.
> Dost velkou zkušenost a porozumění existujícímu
> kódu, zvláště jsou-li tam interakce netriviální. A
> znám dialogy, kde DoDataExchange je hrůza hrůz.

[bold]A ten prepis co som sem vlozil je spravny?[/bold]

> Doplňující dotazy k tématu.
>
> 4. Je ten stávající program spustitelný? Dá se
> krokovat? MFC má totiž tu skvělou vlastnost, že je
> krokovatelná až do zdrojáků a pro mě to bylo často
> zdrojem poučení.

[bold]Spusitelny je[/bold] a krokovat sa asi neda, resp. som to ani neskusal. Pustim kompilaciu a skompiluje to cele bez chyby.

> 5. Jak velký je asi ten přepisovaný projekt?
> (Orientačně počet řádků)

Je toho pre mna dost, ale vysledkom je jedno dialogove okno so 4 tlacitkami a s tymi tlacitkami RADIO na vybratie portu. Pricom tie 4 tlacitka vyvolavaju iba nejake funkcie. Takze tie som zapisal stylom:

case IDC_BUTTON1:
zatvorPort();
break;

lebo tam su zapisane takymto stylom:

void ... ::OnzatvorPort()
{
// TODO: Add your control notification handler code here
if (zatvorPort())
{
m_otvorPortBtn.EnableWindow();
m_zatvorPortBtn.EnableWindow(FALSE);
}
}

> 6. Proč se to přepisuje z MFC do WINAPI? To mi
> upřímně řečeno nedává vůbec smysl.

Lebo vo WinAPI sa vyznam o dost lepsie, co neznamena, ze som v tom dobry, ale urcite z toho viem vyse ako z MFC. Aj ked ratam s tym, ze to ma kopu nevyhod, ale dolezite je aby to fungovalo.

Citovat příspěvek

 

Re: DDX

Autor: Ondrej1

21:48:54 03.05.2010

Subject: Re: DDX [23|3286542]


>
>
> Co to nikto nevie? Alebo je to take lahke?
> --
Neexistují hloupé otázky, existují jenom hloupé odpovědi, ale na tohle se mi bude nehloupě odpovídat dost těžko

1. Velmi stručný úvod do DDX/DDV je možno nalézt třeba tady: http://msdn.microsoft.com/en-us/library/57weza95.aspx

2. Ten řádek
DDX_Radio(pDX, IDC_RADIO1, m_commPort);
slouží ke (aspoň) dvěma účelům
a) při inicializaci dialogu (a i jindy při volání UpdateData(FALSE) ) se zaškrtne RadioButton (ze skupiny začínající IDC_RADIO1) podle hodnoty m_commPort (je-li nula, tak první, je-li jedna tak druhý atd)
b) při ukončení dialogu tlačítkem OK (a i jindy při volání UpdateData(TRUE), tedy například při volání metody OnOK ) se podle nastavení zaškrtnutého Radiobuttonu nastaví hodnota proměnné m_commPort, a to opačně než v případě a)

Takže udělat jedna-k-jedné přepis takovéto MFC aplikace do čisté WINAPI chce zkušenost s obojím. Dost velkou zkušenost a porozumění existujícímu kódu, zvláště jsou-li tam interakce netriviální. A znám dialogy, kde DoDataExchange je hrůza hrůz.

3. Možná než otrocké přepisování existujícího kódu, kterému nerozumím bych zkusil pochopit, co dělá ten stávající a podle toho to napsat from scratch, i s tím, že se to bude místy chovat trochu jinak.

Doplňující dotazy k tématu.

4. Je ten stávající program spustitelný? Dá se krokovat? MFC má totiž tu skvělou vlastnost, že je krokovatelná až do zdrojáků a pro mě to bylo často zdrojem poučení.

5. Jak velký je asi ten přepisovaný projekt? (Orientačně počet řádků)

6. Proč se to přepisuje z MFC do WINAPI? To mi upřímně řečeno nedává vůbec smysl.

S pozdravem

Ondřej Pokluda


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: DDX

Autor: Frame1

20:38:53 03.05.2010

Co to nikto nevie? Alebo je to take lahke?

Citovat příspěvek

 

Re: DDX

Autor: Frame1

18:42:51 30.04.2010

Vedel by mi s tym niekto poradit? Staci, aj ked napisete, ze je to totalna blbost, aby som vedel na com som. ;)

Citovat příspěvek

 

Re: DDX

Autor: Frame1

10:35:33 29.04.2010

Takto by to neslo?

case IDC_RADIO4:


if(IsDlgButtonChecked(hlok, IDC_RADIO1) == BST_CHECKED)
{
m_commPort = 0;
CheckDlgButton(hlok, IDC_RADIO1, BST_UNCHECKED);
}
else
{
CheckDlgButton(hlok, IDC_RADIO1, BST_CHECKED);
}
break;
.
.
.
if(IsDlgButtonChecked(hlok, IDC_RADIO4) == BST_CHECKED)
{
m_commPort = 3;
CheckDlgButton(hlok, IDC_RADIO4, BST_UNCHECKED);
}
else
{
CheckDlgButton(hlok, IDC_RADIO4, BST_CHECKED);
}
break;

Citovat příspěvek

 

DDX

Autor: Frame1

10:24:44 29.04.2010

Caute, mam jednu dilemu. Mam program, ktory je robeny cez MFC a chcem ho prerobit na win32 aplikaciu. Ale neviem si poradit s tymto:

Mam funkciu, ktora ma parameter OtvoreniePortu(int portNumber) a ktora je v DLL.
V programe, kde je DLL-ko pouzite, je pouzita takto: OtvoreniePortu(m_commPotr+1),
pricom na zaciatku je definovane m_commPort=0

Su tam styri tlacitka, kde si vyberam cislo portu a v MFC aplikacii je zapisane daco takehoto:
DDX_Radio(pDX, IDC_RADIO1, m_commPort);

Nevedeli by ste mi poradit ako to prerobit?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: