🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
6 messages
6 total messages Started by Krzysztof Thu, 15 Jan 2004 16:56
Blokada wykladania sie aplikacji
#416
Author: Krzysztof
Date: Thu, 15 Jan 2004 16:56
22 lines
1802 bytes
Hi all

Mam takie pytania:

1. Jak w kodzie .Net zaszyc sprawdzenie czy .Net jest zainstalowany. Nie
chce by aplikacja na wstepie sie wykladala i pisala ze nie ma mscore.dll.
Ewentualnie jak juz sie wyklada to jak przechwycic ten wyjatek i go zmianic
na komunikat - przyczyne bledu?

2. Czy mozna przechwytywac w jednym miejscu wszystkie wyjatki aplikacji?
Oczywiscie te nie przechwytywane w klasach/metodach? Powiedzmy pojawia sie
cos niespodziewanego w watkach, warstwie sicei albo cos w tym stylu.... Hm,
troszke metne, ale mam nadzieje ze ktos zrozumial. Myslalem o jakims
mechanizmie, ktory sygnalizuje dla calosci kodu aplikacji, ze
nieprzychwycone wyjatki obslugiwac "ta procedura obslugi wyjatkow". Inaczej,
czy mozna dla kazdej klasy zdefiniowac domyslna metode obslugi bledow?

3. Wlasciwie rozwiniecie 2. Jak przechwytywac wyjatki Framework.Net by nie
wlaczal sie ekran Debug?

Pozdrawiam
Krzysztof
Re: Blokada wykladania sie aplikacji
#417
Author: Marcin
Date: Thu, 15 Jan 2004 19:09
33 lines
1984 bytes
Witam

U�ytkownik "Krzysztof" <kkdi...@poczta.onet.pl> napisa� w wiadomo�ci
news:bu6glm$l6s$1@news.onet.pl...
> Hi all
>
> Mam takie pytania:
>
> 1. Jak w kodzie .Net zaszyc sprawdzenie czy .Net jest zainstalowany.

Nie znam sie za dobrze na c# ale jak chcesz w apliakcji dzilajacej pod
.Net sprawdzic czy jest zainstalowane .Net? Przeciez
jak frameworka nie ma to program nie wykona zadnych
instrukcji, ktore zaprogramowales....
W pliku EXE powstajacego z kodu c# pierwsza instrukcja (i jedyna zrozumiala
dla komputera
bez .Net) to wywoalnie DLLa. Jak nie ma zainstalowanego frameworka
to nie znajdzie DLLa i koniec. Dalsze instrukcje sa niezrozumiale
dla procesora.

Rozwiazanie jakie mi przychodzi do glowy. Piszesz program (np. w VC++)
kompilowany do kodu natywnego, ktory sprawdzi czy jest zainstalowany
.Net i ewentualnie uruchomi wlasciwy program w .Net.
Bardzo prawdopodobne, ze juz taki program powstal
i wystarczy tylko poszukac ;)


Pozdrawiam

Marcin

kupiesoftware (at) gazeta (dot) pl
Re: Blokada wykladania sie aplikacji
#418
Author: Krzysztof
Date: Thu, 15 Jan 2004 19:23
31 lines
2236 bytes
> Nie znam sie za dobrze na c# ale jak chcesz w apliakcji dzilajacej pod
> .Net sprawdzic czy jest zainstalowane .Net? Przeciez
> jak frameworka nie ma to program nie wykona zadnych
> instrukcji, ktore zaprogramowales....
> W pliku EXE powstajacego z kodu c# pierwsza instrukcja (i jedyna
zrozumiala
> dla komputera
> bez .Net) to wywoalnie DLLa. Jak nie ma zainstalowanego frameworka
> to nie znajdzie DLLa i koniec. Dalsze instrukcje sa niezrozumiale
> dla procesora.
>
> Rozwiazanie jakie mi przychodzi do glowy. Piszesz program (np. w VC++)
> kompilowany do kodu natywnego, ktory sprawdzi czy jest zainstalowany
> .Net i ewentualnie uruchomi wlasciwy program w .Net.
> Bardzo prawdopodobne, ze juz taki program powstal
> i wystarczy tylko poszukac ;)
> Pozdrawiam
> Marcin

Moje pytanie nasunelo mi sie przez analogie. Jak prubujesz uruchomic
aplikacje windows pod DOS dostajesz komunikat, ze ta aplikacja chodzi tylko
pod Windows 32 bit  i cos tam dalej...
W takim razie by dac taki komunikat musi byc zrobiona albo obsluga bledu,
albo wgrany fragment kodu dzialajacy pod DOS. Wiec czy nie mozna do
aplikacji .Net wgrac takiego fragmentu?

Wiem ze to bardziej gdybanie niz pytanie, ale rozne mysli chodza czasem po
glowie ....

Pozdrawiam
Krzysztof
Re: Blokada wykladania sie aplikacji
#419
Author: Marcin
Date: Thu, 15 Jan 2004 20:43
43 lines
2533 bytes
Witam

U�ytkownik "Krzysztof" <kkdi...@poczta.onet.pl> napisa� w wiadomo�ci
news:bu6p8m$8dv$1@news.onet.pl...

>
> Moje pytanie nasunelo mi sie przez analogie. Jak prubujesz uruchomic
> aplikacje windows pod DOS dostajesz komunikat, ze ta aplikacja chodzi
> tylko
> pod Windows 32 bit  i cos tam dalej...

Gdy _prObujesz_ ;)
Aplikacja pod win32 to tak naprawde dwie aplikacje w jednym pliku exe.
Jedna to normalna aplikacja win32 a druga to program dosowy.
Polaczenie jest tak sprytne, ze w dosie zostanie uruchomiona
aplikacja dla dosa i pokaze komunikat.
W win32 wystartuje aplikacja dla win32 a dosowy kawalek
nie bedzie wcale uruchamiany.

To co zaproponowalem w swoim rozwiazaniu to wlaciwie
to samo tylko, ze podane w sposob jawny.


Teoretycznie mozna by z .Netem zrobic jak z apliakcjami win32,
ale mi sie to nie podoba:
- mieszanie kodu rzeczywistego i wirtualnego w jednym pliku.
- .Net powinien byc przenosny na inne systemy/procesory
 (np. opensourcowy projekt mono).

Mi sie nie podoba juz samo dodanie wywoalnia DLLa do kodu wirtualnego.
Mozna bylo przeciez zrobic tak by programy skompilowane do .Neta
dostaly inne rozszerzenie niz exe. Wtedy system widzac taki
plik moglby sam wywolac odpowiedni dll. Np. tak jak pliki jar
w Javie.

Obecnie w mono to pierwsze wywolanie DLLa jest pomijane.
Gdyby bylo tego wiecej (i o zmiennej dlugosci) to pewnie by sie pojawily
problemy...

Pozdrawiam

Marcin
Re: Blokada wykladania sie aplikacji
#420
Author: Pawel Zabza
Date: Thu, 15 Jan 2004 22:08
45 lines
2894 bytes
Witam,

> Aplikacja pod win32 to tak naprawde dwie aplikacje w jednym pliku exe.
> Jedna to normalna aplikacja win32 a druga to program dosowy.
> Polaczenie jest tak sprytne, ze w dosie zostanie uruchomiona
> aplikacja dla dosa i pokaze komunikat.
> W win32 wystartuje aplikacja dla win32 a dosowy kawalek
> nie bedzie wcale uruchamiany.

Dokladniej, to tak moze byc ale nie musi.  Format pliku EXE nie wymusza 
zeby w 'dosowej' czesci cokolwiek bylo - mozna zrobic taki EXE, ktory 
zawiera tylko kod windowsowy.



> To co zaproponowalem w swoim rozwiazaniu to wlaciwie
> to samo tylko, ze podane w sposob jawny.

Zauwaz, ze o tym jak zostanie zrozumiana zawartosc pliku EXE decyduje 
loader OSa, na ktory to loader nie bardzo mamy wplyw (patrzac na sprawy 
praktycznie).  Twoj pomysl (osobnego programu) jest jak najbardziej 
realizowalny (i bardzo mozliwe ze, jak przypuszczasz, juz zrealizowany). 
  Dla mnie wic tylko w tym, ze taka czesc sprawdzajaca powinna byc 
wewnatrz EXE; MSCOREE nalezaloby usunac z sekcji imports zeby loader 
uruchomil program przy jej braku (zamist krzyczec), i trzebaby dodac 
kawalek sprawdzajacy istnienie runtime'u, ladujacy MSCOREE i wolajacy 
odpowiednia funkcje z tejze.
Mnie to wyglada na szukanie guza =).


[...]

> Mi sie nie podoba juz samo dodanie wywoalnia DLLa do kodu wirtualnego.
> Mozna bylo przeciez zrobic tak by programy skompilowane do .Neta
> dostaly inne rozszerzenie niz exe. Wtedy system widzac taki
> plik moglby sam wywolac odpowiedni dll. Np. tak jak pliki jar
> w Javie.

Dla mnie .NET jest czyms w rodzaju nowoczesnej wersji Win32 API.  Nie 
wydaje mi sie, zeby standaryzacja jego fragmentow byla istotnym watkiem 
jego rozwoju, raczej pobocznym.  Nie zeby mnie to martwilo - jestem 
windowsowym programista =).

Pozdrawiam,
Pawel
Re: Blokada wykladania sie aplikacji
#421
Author: Marek Janaszewski USUNTO. z adre...
Date: Fri, 16 Jan 2004 18:58
26 lines
2287 bytes
W artykule news:bu730f$7h1$1...@news.onet.pl,
niejaki(a): Pawel Zabza z adresu <pza...@poczta.onet.pl> napisał(a):

[...]
> Zauwaz, ze o tym jak zostanie zrozumiana zawartosc pliku EXE decyduje
> loader OSa, na ktory to loader nie bardzo mamy wplyw (patrzac na
> sprawy praktycznie).  Twoj pomysl (osobnego programu) jest jak
> najbardziej realizowalny (i bardzo mozliwe ze, jak przypuszczasz, juz
>   zrealizowany). Dla mnie wic tylko w tym, ze taka czesc sprawdzajaca
[...]

Witam!

Może to rola dla instalatora, który sprawdza czy wszystko jest w systemie.
Tylko sam instalator musi być aplikacją niezarządznom. Wydaje mi się, że
Microsft ma jakieś rozwiązanie dla tego problemu. O ile pamiętam treść The
.NET Show oraz doświadczenia z instalacji Borland C# Builder-a to wywoływany
jest jakiś Bootstrap, który załatwia sprawę.

Poszukaj:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingsetupexebootstrappersamplewithapplication.asp

-- 
Pozdrawiam,
Marek Janaszewski
[ j_m...@gazeta.pl ]
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads