Strona 3 z 3
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 10 maja 2016, 20:01
autor: JarekZ
dla "ułatwienia"

wywalenie AttachThreadToClarion(1);
powoduje, że dalej działa bez problemów

Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 10 maja 2016, 20:07
autor: rafalW
Dzieki
Czyli czas na reinstalacje kompa
JarekZ pisze:dla "ułatwienia"

wywalenie AttachThreadToClarion(1);
powoduje, że dalej działa bez problemów

Logowanie zawsze dziala, nawet jak wyjmiesz haspa

Ale dorzuc sobie jakies tworzenie dokumentu, najlepiej w petli kilka sztuk, w oddzielnym watku na bank bedziesz mial SEHException
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 26 wrz 2016, 09:05
autor: rafalW
Moze komus sie przyda. Przed zamknieciem aplikacji trzeba wywolac AttachThreadToClarion z parametrem 0, wazne aby to byl inny watek niz ten z ktorego korzystalismy do odwolan Api.
Jesli api bylo w nowym watku, to AttachThreadToClarion wywolujemy w watku okna. I odwrotnie, jesli api bylo w watku okna, to tworzymy nowy watek:
Kod: Zaznacz cały
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
ThreadStart ts = new ThreadStart(ApiCleanupThread);
Thread t = new Thread(ts);
t.Start();
}
private void ApiCleanupThread()
{
CdnApi.AttachThreadToClarion(0);
}
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 30 paź 2017, 15:39
autor: dotb
viesiek1 pisze:W załączniku jest program który robi logowanie i wylogowanie z XL. U mnie działa. Testowałem na 2016.0. Wypróbuj, porównaj i daj znać jaki wynik.
ErpXlLogin.zip
Zastanawiam się gdzie powinienem podpinac AttachThreadToClarion w windows serwisie? Czy wystarczy na starcie serwisu? Czy za każdym razem jak jest wywoływana 1. metoda z API na logowanie?
Z góry dziękuję
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 31 paź 2017, 07:31
autor: rafalW
Jesli logujesz sie zawsze w tym samym watku, to wystarczy raz
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 07 sty 2018, 17:29
autor: smsoftware
Standardowo ERP-XL nie obsługuje dostęu wuielowątkowego i stąd błąd.
Jeżlei mamy mieć wielowątkową obsługę API należy korzytsać z
[DllImport("ClaRUN.dll")]
public static extern void AttachThreadToClarion(int _flag);
Każdy nowy wątek ma na początku wywołać metodę AttachThreadToClarion(1)
Re: API 2016 - AppCrash w ClaRUN.dll po zamknieciu aplikacji
: 19 mar 2020, 10:03
autor: RONINZGR
Witam.
Bardzo odgrzeję ten temat, ale mocno mnie zaciekawił.
Czy ktoś się spotkał, że wywołanie metody AttachThreadToClarion() wykonuje się w nieskończoność?
Mówiąc w prost, program uruchamia metodę ale nie otrzymuje końca jej działania tym samym aplikacja 'zawiesza' się na amen.