Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:16.4.2014 19:39

Ahoj, znovu se na vás obracím s menším problémem, při pokusu o vytvoření nového objektu mi program vyhodí chybu, viz. screenshot

http://screenshot.cz/…eference.png

Odpovědět
16.4.2014 19:39
Mo8ilε 15 Ѐλđ
Avatar
Odpovídá na Theodor Johnson
Neaktivní uživatel:16.4.2014 19:44

Místo abys definoval Game1 jako statický atribut třídy, zkus:

Game1 game = new Game1()
Nahoru Odpovědět
16.4.2014 19:44
Neaktivní uživatelský účet
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Theodor Johnson:16.4.2014 19:46

Stejný problém, původně byla chyba označována v konstruktoru Game1 (i prázdném) pak jsem kostruktor odstranil a je přímo v Program.cs

Nahoru Odpovědět
16.4.2014 19:46
Mo8ilε 15 Ѐλđ
Avatar
Paradise
Tvůrce
Avatar
Paradise:16.4.2014 19:56

Víš jak funguje static? :) Inicializuje se to automaticky při spuštění.

 
Nahoru Odpovědět
16.4.2014 19:56
Avatar
coells
Tvůrce
Avatar
Odpovídá na Theodor Johnson
coells:16.4.2014 20:03

Podle všeho se ta výjimka vyhodí během inicializace třídy.

  1. V okně, které máš na screenshotu, klikni na "View detail..." a tam se přes "Inner Exception" proklikej až k řádce, kde se to stane.

nebo

  1. než začneš debugovat ve studiu, zmačkni ctrl-alt-E a v levém sloupci si nech chytat všechny manageované výjimky (2. řádek, myslím), pak to spusť a studio by se mělo zastavit na přesném místě, kde k výjimce dojde
 
Nahoru Odpovědět
16.4.2014 20:03
Avatar
coells
Tvůrce
Avatar
Odpovídá na Paradise
coells:16.4.2014 20:04

Nikdo neví, jak v C# funguje static, takže je lepší to slovo moc nepoužívat.

 
Nahoru Odpovědět
16.4.2014 20:04
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Paradise
Theodor Johnson:16.4.2014 20:04

Vím. Původně bylo v souboru vygenerováno

using (Game1 game = new Game1())
{
    game.Run();
}

ale to taky nefunguje

Nahoru Odpovědět
16.4.2014 20:04
Mo8ilε 15 Ѐλđ
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na coells
Theodor Johnson:16.4.2014 20:08

InnerException je null, takže se nemám kam proklikat

Nahoru Odpovědět
16.4.2014 20:08
Mo8ilε 15 Ѐλđ
Avatar
coells
Tvůrce
Avatar
Odpovídá na Theodor Johnson
coells:16.4.2014 20:12

V tom případě je to ve statickém inicializéru třídy. Udělej postup, který jsem popsal ve (2).

 
Nahoru Odpovědět
16.4.2014 20:12
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na coells
Theodor Johnson:16.4.2014 20:15

To jsem taky zkoušel a zastaví se to na stejném řádku se stejnou chybou. Dokud třída Game1 dědí z Microsoft.Xna­.Framework.Ga­me tak chyba nastane vždy...

Nahoru Odpovědět
16.4.2014 20:15
Mo8ilε 15 Ѐλđ
Avatar
coells
Tvůrce
Avatar
Odpovídá na Theodor Johnson
coells:16.4.2014 20:30

Hmm, není nad nativní kód :-) Nejspíš špatně inicializuješ něco okolo XNA. Občas nezbývá, než zakomentovat co největší kus kódu a po částech zkoušet, která část způsobí chybu.

 
Nahoru Odpovědět
16.4.2014 20:30
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na coells
Theodor Johnson:16.4.2014 20:33

Chyba

public class Game1 : Game
{

}

V pořádku

public class Game1 //: Game
{

}

Třída Game je přímo v knihovnách SharpDx takže s tím asi nic nenadělám...

Nahoru Odpovědět
16.4.2014 20:33
Mo8ilε 15 Ѐλđ
Avatar
coells
Tvůrce
Avatar
Odpovídá na Theodor Johnson
coells:16.4.2014 20:39
  1. může se bít verze knihoven, zvlášť pokud používáš NUGet
  2. jsi si jistý, že prázdná třída je správně? není potřeba něco inicializovat?
  3. zkus si z internetu stáhnout nějaké zdrojáky ukázkové aplikace a začni s tím
 
Nahoru Odpovědět
16.4.2014 20:39
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na coells
Theodor Johnson:16.4.2014 20:41

Už si ani nevspomínám jestli to bylo součástí monogame nebo jsem to někde stáhl. Jo, prázdná třída je správně, žádná chyba, program se jen spustí, neudělá nic a zase se ukončí.

Nahoru Odpovědět
16.4.2014 20:41
Mo8ilε 15 Ѐλđ
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Petr Nymsa:16.4.2014 20:45

Snažím se tu celou dobu vzpomenout jak jsem to vyřešil - měl jsem jednou podobný problém. Snad si vzpomenu a dám vědět

Nahoru Odpovědět
16.4.2014 20:45
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na coells
Theodor Johnson:16.4.2014 20:46

Díky, ale to není v Xna... SharpDx má akorát stejně pojmenované knihovny aby bylo snažší přepsat projekt z Xna do SharpDx

Nahoru Odpovědět
16.4.2014 20:46
Mo8ilε 15 Ѐλđ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 17 zpráv z 17.