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.