Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Ahoj, mám potíž s knihovnou, konkretně s jejím použití po kompilaci.

Používám knihovnu AutoItX3.dll (která je součásti AutoIT jazyka), klasicky jí vložím přes References/Ad­d/Browse a vložím tam knihovnu. Poté v kodu importuji takto:

using AutoItX3Lib;
.
.
class XXX{
   private static AutoItX3 _autoit = new AutoItX3();

Všechno funguje jak má, i když pustím zkompilovaný file (Debug i Release), tak vše běhá jak má, problém nastává, když chci spustit program na jiném PC, po práci s knihovnou to hodí chybu, XXX has stoped working.. Po serii testů sem zjistil, že to je problémem s chybějící knihovnou. I když jí přibalím do složky s exe souborem, stejně to nefunguje.

Potřebuji nějak říct jazyku, že se knihovna nenchází někde pryč, ale přímo u xxx.exe a at jí tahá odsud, bohužel sem na netu nenašel konkerétní řešení a sám přesně nevím jak.

Byl bych rád za jakoukoliv radu co mi alespon trochu pomůže. Jelikož pokud to nevyřeším, budu muset použít vlasní funkce, které nejsou tak rychlé.

Jěště chci dodat že používám .NET Framework 4.5 v Winforms application.

Editováno 3.6.2014 11:55
Odpovědět 3.6.2014 11:54
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
Odpovídá na Hadi.k
Luboš Běhounek (Satik):

Aplikace se pro DLL dívá postupně do složek zhruba takhle:

  • složka, odkud byla aplikace spuštěna
  • System
  • Windows
  • Working directory
  • ostatní složky, které jsou nadefinované v win proměnné PATH

Takže by mělo stačit ji jen přibalit do složky s exáčem.
Pokud to failuje, hledal bych problém někde trochu jinde - třeba x64/x86, debug/release apod.

Nahoru Odpovědět 3.6.2014 12:09
:)
Avatar
Hadi.k
Člen
Avatar
Hadi.k:

Děkuji za informace.
Je možné, že ta knihovna na tom daném PC neběhá, bohužel se to stalo na více PC.

Zkusím tomu trochu času věnovat, ale asi se budu muset spolehnout na vlastní funkce, což nebude moc štastné řešení.

Jěště bych chtěl dodat, že to failne, po kliknutí na button, kde je určitá funkce z té knihovny, s načtením to nejspíše nema potíž, protože přímo ve formuláři mam using i deklaraci, až po zavolání funkce to padne (na jiném PC).

Editováno 3.6.2014 12:13
Nahoru Odpovědět 3.6.2014 12:12
"Ajťák" nikdy nebere telefon po prvním zazvonění!! Vždy je totiž velice vytížen - buď musí nejprve dopít ká...
Avatar
annihilator
Člen
Avatar
annihilator:

Vidím tam několik problémů. AutoItX3.dll není .NET knihovna. Potom bude napsaná v čéčku(++)? a na cílovém stroji mohou chybět

  • Cčkový runtime knihovny
  • knihovny na kterých je závislá tato knihovna, z adresáre autoitX
  • ta knihovna je ActiveX control, tyhle věci můžou mít svá specifika, každopádně je potřeba je na cílovém stroji minimálně zaregistrovat

http://raveendran.wordpress.com/…utoitx3-dll/

Pakliže se budeš chtít vystříhat problémů na cizích strojích, je potřeba to ozkoušet alespoň jako nástřel na nevývojářském mašině. VirtualBox s čistým systémem je na tohle úplná ideálka.

Nahoru Odpovědět 3.6.2014 14:59
Hnát se za bystrým zrakem v království jednookých - uzavíráním diskuzí je krátkozraké
Avatar
m4r10
Redaktor
Avatar
m4r10:

K zjisteni zavislosti je velmi dobry tento program: http://www.dependencywalker.com/

Ukazuje to stromove zavislosti a zobrazi chybejici nebo nekompatibilni knihovny. Mnohokrat mi to hodne pomohlo.

 
Nahoru Odpovědět 8.6.2014 17:00
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 5 zpráv z 5.