Gledajući u log fajl može se zaključiti da ti je filter bio CelikNET.dll, a ne CeliApi.dll. Bolje stavi filter da putanja sadrži reč "celik", pa nam to prosledi. I (ovo sigurno znaš, ali za svaki slučaj da napomenem) Proces Monitor mora da radi dok se greska desava.
Takođe, nije mi jasno zašto je SmartPDF proces u kome se CelikNET izvršava. To nije tvoja aplikacija, zar ne? Šta se tu dešava?
62/183 Mihajlo Cvetanović @ 26.05.2014. u 11:30
Uzgred, osnovni problem sa kombinovanjem .NET i native biblioteka je to što native biblioteke nisu u putanji. Programeri misle da je dovoljno da native dll stave u isti folder u kome je i .NET dll, ali to tako ne radi. Native dll mora da stoji ili u folderu u kome je aplikacija (.exe), ili u putanji (PATH). Neki ljudi iskopiraju native dll u system32 (ili syswow64) folder, ali to je pogrešno, jer taj folder ne pripada korisnicima nego Mikrosoftu. Ako je instalacija aplikacije pod vašom kontrolom onda stavite dll u folder gde je exe. Ako exe nije pod vašom kontrolom (na primer pravite web servis za IIS) onda proširite PATH novim folderom, u kojem će stajati native dll.
63/183 markoub @ 26.05.2014. u 13:31
Napisah u poruci, ali sad vidim da sam to mogao i malo jasnije... :-)
Dakle, kada prodjem sa filterom "celikapi.dll" nemam nijedan pogodak. Tako da zakljucujem da do njega uopste ne stize.
Kada prodjem sa celiknet.dll onda dobijem ovo sto sam zakacio.
Filter koji samo sadrzi "celik" daje isto sto i "celiknet.dll", ocekivano.
A SmartPDF jeste moja aplikacija, koja cita saobracajne dozvole (uspesno) i licne karte (kao sto rekoh da develop masini uspesno inace ne) i popunjava raznorazne obrasce, pravi pdf-ove uz pomoc podataka sa Smart kartica, otud moje kreativno ime!:-)
Oba dll-a su mi u istom folderu sa .exe-om. kopirao sam ih i u sistemske foldere, mada sam i ranije znao da ce to tesko pomoci... :-)
Jos jedna stvar od koje ludim je sto pregledam spisak instaliranih programa na masinama, i sto se tice redistributable paketa skroz je identicna stvar na svim, pa mi nista nije jasno.
Drugu biblioteku (eVehicleRegistration, ili tako nesto, za citanje saobracajnih) sam sredio, ona je COM, tako da cim sam je registrovao na drugoj masini proradila je.
Ali od ovog poludeh.
Pored ovih, koristim i jos jedan dll, PdfSharp, koji normalno radi, sam se lepo kopira i sve je kako treba.
Naravno, postavljeno mi je za CelikNET referencu opcija "CopyLocal", tako da ako ovde niko nema ideju preostaje mi samo da poludim!:-)
Uključi to, pa da vidimo na šta se konkretno .NET žali.
65/183 markoub @ 31.05.2014. u 11:59
Evo iz Fusion-a...
Ovo je bio jedini vezan za CelikNet.dll, pobrisao sam sve pre sto se desilo pre ucitavanja ovog problematicnog. Opet se nigde ne pominje CelikAPI.dll, ni ne stigne do njega...
The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Users\Marko\Desktop\Release\SmartPDF.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = CelikNET, Version=1.0.5257.27699, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///C:/Users/Marko/Desktop/Release/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = SmartPDF.exe
Calling assembly : SmartPDF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Marko\Desktop\Release\SmartPDF.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/Marko/Desktop/Release/CelikNET.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\Users\Marko\Desktop\Release\CelikNET.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: CelikNET, Version=1.0.3987.22185, Culture=neutral, PublicKeyToken=null
LOG: Binding succeeds. Returns assembly from C:\Users\Marko\Desktop\Release\CelikNET.dll.
LOG: Assembly is loaded in default load context.
</pre></html>
66/183 markoub @ 31.05.2014. u 12:13
Imam i velikih problema sa spustanjem verzije zahtevanog .NET frameworka, jer 4.5 ne postoji za XP, a vec 4.0 pravi probleme...
Nekako sam uspeo jednom, ali sada ponovo nece... Kada ukljucim CelikNET u reference kaze da "could not be resolved because it was built against the 4.5". I to koristim onaj CelikNET.dll iz binarne verzije sa ove teme, ne iz source koju ja ovde kompajliram u 4.5. :-(
EDIT:
Ovo sam nekako uspeo. Uspeo sam da kompajliram za stariju verziju i bio je problem sto moram da se ocisti build folder, jer nece da iskopira novi CelikNET ako je tu vec prisutan stari. Uglavnom, to sam resio, ali ostatak nikako... :-)
[Ovu poruku je menjao markoub dana 31.05.2014. u 12:31 GMT+1]
67/183 Mihajlo Cvetanović @ 01.06.2014. u 22:05
Fusion log kaže da je CelikNET učitan, a sam program kaže da nije? To prevazilazi moje znanje. Ne znam, možda se više informacija krije u InnerException od exceptiona koji si napisao u prvoj poruci. Možda neko drugi ima neku drugu ideju...
68/183 nneexx @ 01.09.2014. u 15:25
Meni isto ovo treba za Alasku xbase++
Da li je neko resavao problem za ovaj programski jezik ?
Pozdrav.
69/183 MACTEPx @ 01.09.2014. u 16:23
Objavljena je nova verzija api-ja sa kojom ovaj wrapper ne radi: celik api
70/183 Mihajlo Cvetanović @ 01.09.2014. u 17:19
Tako je. Povećala su se neka polja i dodata su neka nova, čitanje sertifikata i promena lozinke (za sada) ne rade za novu ličnu kartu, ali i dalje rade za staru, i za novu ličnu kartu ne postoj verifikacija bloka portreta, nego se verifikacija portreda radi zajedno sa preostalim nepromenljivim podacima. Funkcija EidBeginRead daje informaciju koji je tip lične karte u pitanju, pa algoritam treba tu informaciju da uzme u obzir.