[ mmix @ 26.11.2010. 10:53 ] @
Eve ga

Q&A:

1. Kako se koristi?
A: Dodati CelikNET u reference, u deployment dodati i CelikAPI jer ga CelikNET referencira.

2. Zasto CelikAPI nije u binaries?
A: Nisam siguran koja mu je licenca pa ga nisam ukljucio, u svakom slucaju imate radnu verziju u source arhivi

3. Zasto LGPL?
A: Cilj mi nije bio da zaradim pare na ovome, proizvod je besplatan samo ne zelim da ga neko prodaje za svoj ceh. LGPL umesto GPL da biste mogli da ga koristite u sopstvenim komercijalnim aplikacijama bez da ste nesto duzni meni ili komuni. Ako me se setite u About boxu za dan Bezbednosti, setite, ako ne to je bila moja gradjanska duznost.

4. User manual?
A: Mnogo hocete Pogledajte celikAPI doc, od mene ovoliko:

Code (csharp):

                using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
                {
                    CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
                    CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
                    CelikNET.DocumentData d3 = x.ReadDocumentData();
                    Bitmap c = x.ReadProfileImage();
                }
 


5. Sta je sa inicijalizacijom/cleanup-om?
A: Static type konstruktor inicijalizuje API, application cleanup ga cisti (preko destruktora static singletona). Sam CelikInterop koristi Disposable pattern za Begin/End read, tako da je sve transparentno, koristite using(...) {} i uzivajte

6. WPF ne koristi Bitmap image, kako da prikazem sliku
A: Postoji konvertor koji prebacuje GDI Bitmap u WPF BitmapSource, proguglajte

7. Podrska za cirilicu?
A: Tu je, cirilicna polja se vracaju kao unicode cirilica

8. Sta je CelikException?
A: Njega baca CelikNET kad neka od CelikAPI funkcija vrati negativan rezultat. CelikException Ima sledeca vazna polja (primer)
EIDErrorCode -> -1
EIDErrorDescriptionEn -> "General error"
EIDErrorDescriptionSr -> "Opšta greška" // <- cirilicom

9. Multithreading?
A: Sve instance metode su thread safe (serijalizuje se pristup APIu). Medjutim u ovom trenutku isntancijacija nije serijalizovana, ukoliko se uspostavi potreba za ozbiljan multithreading support, dodacemo.

Ova tema je otvorane za priedbe, komentare, sugestije.

UPDATE 2: Ubaceno ime roditelja. Fix za static konstruktor u C++/CLI.

[Ovu poruku je menjao mmix dana 01.12.2010. u 12:25 GMT+1]
[ vbvlada @ 26.11.2010. 22:47 ] @
Čini mi se da si zaboravio ime roditelja, vidim da ga nema u strukturi :)
Taman sam uključio binaries, kad ono nema tog podatka, pa pomislih da ti nije neki stariji build, kad ono, cvrc :)
[ mmix @ 26.11.2010. 23:15 ] @
yup, fali, updateovacu ujutro
[ vbvlada @ 27.11.2010. 14:16 ] @
Ne bih baš da zvocam, ali ako bi moglo da se builduje za .NET 2.0, ukoliko nije zahtev da je 4.0, a mislim da nije :)
[ vbvlada @ 01.12.2010. 10:55 ] @
Ovde ipak nešto nije kako treba...
Program radi samo u Debug modu kada se pokrene iz Visual Studia, i to na XP-u. Na Win7 pročita sve podatke iz nekoliko pokušaja, a nekad se baš zainati, mada verujem da je to do drajvera.


Sa CTRL + F5 pre pojavljivanja forme ispisuje se sledeća greška

Visual Studio Just-In-Time Dubugger:
An unhandled Microsoft .NET Framework exception occured in MojProgram.exe [58136]

.. i nudi mi da debagujem program...

Nakon prihvatanja da debagujem, to je dakle kada je program još uvek pokrenut, vidim da se izbacuje CelikException sa porukom "BeginRead nije izvršen", a to je prilikom kreiranja objekta CelikInterop. Stavio sam to u try-catch, čisto da vidim dokle ću da doguram, i nakon toga mi se forma prikazala. Naravno čitanja nije bilo, i prilikom zatvaranja aplikacije ista greška, samo vezana za EndRead.

Miljane, pošto si rekao da je baratanje sa životnim ciklusom tog objekta slobodno, shvatam da mogu da ga kreiram u konstruktoru neke moje klase tipa LKDataProvider, koja služi da pročita podatke i vrati ih onako kakvi mi trebaju.

Da li je možda do toga kako je DLL buildovan ili šta već (ja sam dodao referencu iz CelikNet - Binaries)
[ mmix @ 01.12.2010. 11:12 ] @
OK, pronasao sam o cemu se radi. C++ compiler je istripovan u release build-u

http://connect.microsoft.com/V...or-not-called-in-release-build

ubacicu workaround u klasu
[ mmix @ 01.12.2010. 11:26 ] @
Ok, skini novu verziju pa probaj, trebalo bi da je resen problem (sad vec radim na slepo jer sam morao da vratim licnu kartu)

[ vbvlada @ 01.12.2010. 12:32 ] @
Pomenuti problem je rešen.
Sada na XP-u radi bez greške u svim varijantama.
Ako misliš da će i drugima biti od koristi da se builduje za .NET 2.0, postavi tu verziju, ukoliko ne, onda ću instalirati C++, pa ću da buildujem za sebe :)
U svakom slučaju hvala još jednom!
[ dejansta @ 23.01.2011. 00:57 ] @
Pozdrav,
skinuo sam projekat i pokrenuo CelikNET-Source2/CelikNET.sln

Nakon Rebuild Solution i pokretanja (F5) dobijam poruku "Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found.

Nemam iskustva sa povezivanjem dll-ova pa bi mi pomoc oko ovoga dobro dosla.

Unapred hvala
[ aca andrijevic @ 26.01.2011. 12:31 ] @
CelikNET je napravljan u VS2010 i pod .NET 4.0 framework-om, pa pretpostavljam da pokusavas
da ga implementiras u starijim verzijama, sto je neizvodljivo.Resenje je da instaliras VS2010 pa
da razvijas u njemu.Mada ja bas gledam ovih dana nesto temu i napravio sam za mene verziju za
.NET 3.5, ali nisam stigao da je isprobam jer nemam citac pri ruci, pa cu upload-ovati ovde .dll pa
probajte (naravno samo ako se Miljan slaze). 8)
[ mmix @ 26.01.2011. 12:57 ] @
Okaci slobodno. Sve i da hocu (a necu) ne mogu da ti zabranim. LGPL.
[ aca andrijevic @ 26.01.2011. 15:13 ] @
Evo ga.Imam problema sa atributima, tj. ne pokazuju se kada se referencira
(kada ga otvoris posebno, tu su).Mozda je zbog express verzije c++ ili zato sto
je .NET 3.5, ne bih znao.Probajte pa javite.
[ aca andrijevic @ 27.01.2011. 21:17 ] @
Evo dobavih se do nekog citaca, radi sve.Zanimljivo je da je samo ime i prezime
na cirilici, ostali podaci su na latinici.Uglavnom VB.NET source test:



[ jablan @ 27.01.2011. 23:16 ] @
@mmix: Što ne okačiš na github ili tako negde?
[ mmix @ 28.01.2011. 07:50 ] @
lokal patriotizam i lojalnost prema ESu? :) Videcemo :)
[ dejansta @ 05.02.2011. 16:03 ] @
aco,

skinuo sam tvoj projekat citac licnih karata.rar i moze da se pokrene (ranije sam imao problem sa dll- om) .
Uspesno procita tekstualne podatke iz gornjeg dela forme ali neuspeva da procita "Ostale podatke " i sliku.

Javlja sledecu poruku: Kod greske= -7 Kartica nije prisutna u citacu

Interesantno, dok sam ovo pisao prebacio sam ocitavanje slike ispred citanja ostalih podataka i sada sve radi odlicno!

'Podaci o ličnoj karti
Dim d1 As CelikNET.DocumentData = x.ReadDocumentData
TextBox1.Text = d1.docRegNo
TextBox2.Text = d1.issuingDate
TextBox3.Text = d1.expiryDate
TextBox4.Text = d1.issuingAuthority

'Lični podaci
Dim d2 As CelikNET.FixedPersonalData = x.ReadFixedPersonalData
TextBox5.Text = d2.personalNumber
TextBox6.Text = d2.givenName
TextBox7.Text = d2.surname
TextBox8.Text = d2.sex
TextBox9.Text = d2.placeOfBirth
TextBox10.Text = d2.stateOfBirth
TextBox11.Text = d2.dateOfBirth
TextBox12.Text = d2.communityOfBirth

'Slika
PictureBox1.Image = x.ReadProfileImage()

'Ostali podaci
Dim d3 As CelikNET.VariablePersonalData = x.ReadVariablePersonalData
TextBox13.Text = d3.state
TextBox14.Text = d3.community
TextBox15.Text = d3.place
TextBox16.Text = d3.street
TextBox17.Text = d3.houseNumber
TextBox18.Text = d3.houseLetter
TextBox19.Text = d3.entrance
TextBox20.Text = d3.floor
TextBox21.Text = d3.apartmentNumber

Imas li ideju zbog cega se ponasa ovako? Kada vratim citanje slike iza Ostalih podataka opet ne radi i javlja istu gresku.

Hvala mmix-u i aci za projekat.
[ mrxfon @ 11.02.2011. 12:39 ] @
Da li sam ja jedini kome ovaj projekat ne radi ?

Cudno mi je sto mi radi MUP app ali ovaj projekat prijavljuje -1 opstu gresku na

Code:
Dim d1 As CelikNET.DocumentData = x.ReadDocumentData


Da li znate sta moze da bude uzrok tome?
[ mrxfon @ 12.02.2011. 17:43 ] @
Ipak radi..
Nije hteo da mi proradi na poslu, pa mi nije bilo tesko da donesem citac i da probam app kuci. Radi bez problema.

[ Ronel123 @ 16.02.2011. 16:35 ] @
Pozdrav svima.

Dobio sam projekat u skolu za diplomski rad da napisem program za citac kartica i da podatke snimim u jednu msql bazu.
Probao sam da napisem svoj prevodic za CelikApi.dll za C# ali nece da radi. Nerazumem jos ovo marshalling mnogo...

A onda nasao sam ovaj wraper i izgleda da to bi mi perfektno odgovarao ali nerazumem neke stvari i te bih hteo da pitam i da dobijem malo pomoc za to ako moze.

Kada hocu da nazovem funkciju da citac procita podatke sa kartice i da to snimi onda treba samo da upisem ovo? :
Code:
using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
                {
                    CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
                    CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
                    CelikNET.DocumentData d3 = x.ReadDocumentData();
                    Bitmap c = x.ReadProfileImage();
                }


Ne treba nista drugo? Netreba ovaj EidStartup i ostali? To ne razumem. Ovaj mi je prvi put da radim sa wraperom i sa dllima. Noob sam sa ovima jos .
Ne treba da mu dam ime citac kartica da bih znao odakle da cita? Ili to radi automatski?

Izvinite ako ove pitanje izgledaju glupe ali ja to nerazumem.

Pozdrav,
Ronel123
[ mmix @ 16.02.2011. 21:13 ] @
Da, to je sve sto ti treba, inicijalizacija se radi transaprentno u pozadini. Sto se tice odabira citaca trenutna verzija to ne podrzava, uvek radi sa prvim citacem na sistemu.
[ Ronel123 @ 18.02.2011. 16:48 ] @
Hvala lepo na odgovor. Probacu ga ovako.
Poz
Ronel
[ KARABAYA @ 15.04.2011. 16:24 ] @
i meni javlja gresku :

"Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found."

Ne znam kako da resim probelm.

Koristim visual studio 2010 a ovo mi se desava akd poksuvam da pokrenem CelikNET-Source2.
[ Blue82 @ 16.05.2011. 13:37 ] @
Nisam još isprobao program na 2010 platformi ali za ovaj na 2008 platformi dobijam gresku:

Code:

System.IO.FileLoadException was unhandled
  Message="Could not load file or assembly 'CelikNET, Version=1.0.4043.27411, Culture=neutral, PublicKeyToken=null' or one of its dependencies. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)"
  Source="Citac licnih karata"
  FileName="CelikNET, Version=1.0.4043.27411, Culture=neutral, PublicKeyToken=null"
  FusionLog=""
  StackTrace:
       at Citac_licnih_karata.Form1.Button1_Click(Object sender, EventArgs e)
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(ApplicationContext context)
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       at Citac_licnih_karata.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Runtime.InteropServices.COMException
       Message="This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)"
       ErrorCode=-2147010895
       InnerException: 



U cemu je problem?
[ Mihajlo Cvetanović @ 16.05.2011. 14:02 ] @
CelikNET je wrapper oko Čelik API-ja. Da li imaš CelikAPI.dll u istom folderu gde je i CelikNET.dll?
[ Blue82 @ 16.05.2011. 15:05 ] @
Nalaze se u istom folderu.
[ Mihajlo Cvetanović @ 16.05.2011. 15:26 ] @
Zbog onog "HRESULT: 0x800736B1" slutim da je problem sa CelikApi.dll, ali ovako izdaleka ne mogu da kažem tačno šta. Da li je i tvoj EXE u istom folderu? Ako jeste, šta se dešava ako EXE pokreneš direktno (umesto iz Visual Studia)? Treća stvar, skini Dependency Walker, i vidi da li postoji neki problem sa DLL-om (ne bi trebalo, al' ajde da vidimo). Probaj da sklonis DLL (samo ga preimenuj) pa vidi da li se javlja ista greška (isti HRESULT).
[ Blue82 @ 16.05.2011. 15:34 ] @
hajde ovako posto verujem da cemo tako najbrze pronaci gresku. Pogledaj na prvoj strani poslednji post od Ace Andrijevic-a. Uz njegov post je prikacen sorce. Pokusaj ga samo otpakovati, nista nisam dirao, tako je kako stoji u primeru. Kada pokrenem kao exe manje vise isti slucaj. Slika u prilogu. Posle continue ne desi se nista.
[ Mihajlo Cvetanović @ 16.05.2011. 16:03 ] @
Na žalost, već sam uposlen drugim stvarima, tako da ne mogu time da se bavim, a kod kuće ni nemam Visual Studio. Mogu da pomognem samo savetima.
[ Blue82 @ 16.05.2011. 16:09 ] @
U svakom slucaju hvala. Pokusacu na 2010 platformi onaj drugi primer samo kad dodjem kuci pa mozda tamo proradi.
[ aca andrijevic @ 16.05.2011. 18:23 ] @
Nisam na ovoj temi nesto skoro pisao, izvinjavam se.Za Blue82:Verovatno nemas C++ runtime libraries
ili su ti starije verzije istih, jer da nemas dobar CelikAPI.dll ili CelikNET.dll bila bi drugacija poruka o gresci.
Kao sto je Mihajlo rekao skini DependecyWalker, pa vidi da li su ti sve reference fajlovi tu.
Pogledaj da skines Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) i instaliraj, pa probaj.

[ Blue82 @ 16.05.2011. 22:10 ] @
Hvala Aco, provericu to sutra posto sada nisam za tim racunarom, mada verovatno to nemam, jer kad god mi punudi update necega sa c++ ja odbijem, kao sta ce mi ako nemam c++ :)

Javim sutra!
[ Blue82 @ 17.05.2011. 06:08 ] @
Na zalost, jutros sam probao i istu gresku prijavljuje. Instalirao sam C++ runtime libraries a DependecyWalker ne znam kako se koristi.
[ vbvlada @ 06.06.2011. 14:34 ] @
Nevezano za par prethodnih postova, već za čitače uopšte: da li je neko našao Smart Card čitač koji može bez problema da radi na Win 7?
Jer kad smo krenuli u ovu priču, ustanovili smo da je možda drajver kriv što se svi podaci ne čitaju kako treba odjednom.
Ja imam neki stari čitač na kome ima etiketa za XP i stvarno tamo radi kako treba; i CelikNET i Celik od MUP-a, dok ovamo oba štucaju.
Ima li neko predlog za čitač za Win 7?
[ vbvlada @ 10.06.2011. 13:43 ] @
Ima li nekog kome ovo radi kako treba na Windows 7?

Pre ovog .NET Wrapper-a ja sam napravio DLL import varijantu ali mi i ona pravi probleme - radi samo u Debug modu, dok pri pokretanju EXE fajla čita naizmenično fiksne podatke, pa one promenljive, pa onda pukne kod čitanja slike itd...
[ aca andrijevic @ 10.06.2011. 14:36 ] @
Jedino sto mi pada na pamet(ako vec nisi to uradio) je da u Project>Project Properties>Compile>
Advanced Compiling Options>Target CPU izaberes x86.Imao sam problem sa jednom drugom aplikacijom
koju sam radio u VS2008 da nateram da radi u Windows7, pa sam negde procitao da treba to da promenim.
[ vbvlada @ 10.06.2011. 15:05 ] @
Ne znam sad za koji projekat pričaš, misliš na ovaj sa DLL import-om što sam pomenuo ili na .NET Wrapper?
Kod oba su target platform x86, tako da ne znam šta je u pitanju.

Što se tiče slučaja da radi samo kada pokrenem u Debug modu iz VS2010, negde sam pročitao da je to zato što tada VS sam inicijalizuje neke promenljive, dok bez debug-a to ne radi, pa mogu da postoje razlike. E sad, meni to kada ne radi, jednostavno mi C funkcija vrati prazna polja, dakle bez podataka.
Videću u ponedeljak sa drugim čitačem kako će da se ponaša, jedna firma će mi dozvoliti pre prodaje da ih probam, a kažu da bez problema radi na win7.
[ draganksg @ 19.08.2011. 11:36 ] @
Cao momci,

izvinjavam se sto se malo kasnije ukljucujem, ali tek sada imam potrebu za citacem LK.

"Wrapper za CelikAPI" kod mene radi samo na XP. U 7 imam isti problem kao i Blue82.

Iz VS2008 na XP radi sve ok.
Iz VS2010 na XP imam sledeci probem : Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

PS : Nisam bas vican VS i C#. Koristim neke druge dev alate. Tako da mi je potreban odgovor (resenje) sto je najvise moguce u detalje opisano resenje. HVALA unapred.
[ _owl_ @ 19.08.2011. 11:54 ] @
Probaj da instaliras VC++ 2010 Redistributable
[ draganksg @ 19.08.2011. 14:08 ] @
Pozdrav _owl_,

hvala na odgovoru, ali nije 'delovalo'. Mozda bi trebalo jos malo da objasnim sta mi se desava .
Najpre sta sam uradio u svom kodu .
Oba koda su ista i u VS 2008 i uVS 2010.

CelikNET je referenciran, dok sam CelikApi.dll samo fizicki kopirau u Debug folder.
U button click dogadjaju sam ubacio samo par redova koda za samo nekoliko podataka koje sam za probu zeleo da procitam sa LK

using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
{
CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
CelikNET.DocumentData d3 = x.ReadDocumentData();
Bitmap c = x.ReadProfileImage();

txtBrojLK.Text = d3.docRegNo;
txtJBMG.Text = d1.personalNumber;
txtIme.Text = d1.givenName;
txtPrezime.Text = d1.surname;

pctSlika.Image = x.ReadProfileImage();
}

U XP-u :

kod iz VS2008 radi pozvan iz njega ili pozivom na exe fajl.

U WIN 7 :

taj poziv exe fajlu izaziva gresku kao na slici





Sto se tice VS2010 :

u XP-u kada pozovem na izvrsenje programa iz VS javlja mi : Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

a u WIN 7 kada pozovem exe javlja mi se opet ista greska kako i kod exe fajla iz 2008.


Ako imas malo bolji uvid u moj problem ili neko drugi zna sta mi je ciniti molio bih vas da mi ponudite resenje.
Podsecam vas da mi VS i C# nije glavni alat za razvoj vec samo zelim da napravim exe koji ce mi citati podatke LK i na XP-u i na WIN7 i upisivati ih u txt fajl. a kao dodatak cuvati fotografiju sa LK u zasebnom jpg ili nekom drugom tipu fajl. Tako da ove podatke i sliku mogu preuzeti u mojoj glavnoj aplikaciji, i dalje smestati ih u bazu podataka .

Jos jednom se unapred zahvaljujem.



[Ovu poruku je menjao draganksg dana 19.08.2011. u 17:13 GMT+1]
[ draganksg @ 24.08.2011. 08:00 ] @
Upotrebom cuvene metode "MUUP - metoda uzaludnih uzastopnih pokusaja" , dosao sam do resenja mog problema i problema koji ima 'Blue82'.

Samo u slucaju izvrsavanja koda u WIN 7, treba kopirati sledece dll-ove : msvcm90d.dll, msvcp90d.dll i msvcr90d.dll
u folder gde se nalazi CelikNET.dll.

Ove dll-ove cete naci negde u \Windows\winsxs\ folderu. Ako se ne snadjete mogu kasnije bas da vam dam i tacan folder gde se nalaze.

Zao mi je samo sto niko od kolega nije hteo da podeli resenje samnom, cime ne bih izgubio vreme na MUUP. Ali to je njihov sebican problem.

Jos jednom se zahvaljujem kolegi MMIX sto je nesebicno podelio sa nama CelikNET.dll. HVALA.

PS: ja sam svoj kod razvijao u VS2010 zasebno u XP i u WIN7, iako je prilicno slican. Zasto je to tako moralo biti nisam imao vremena da istrazujem.
Uglavnom kod napisan u XP nije hteo da se izvrsava u WIN7 sve dok ga nisam na WIN 7 ubacio u VS2010 i tu BUILD-ovao.
Za sada ovako radi, mada nisam puni test obavio. Javljam kasnije kako sve to radi pod XP i pod WIN 7.


POZDRAV
[ Mihajlo Cvetanović @ 24.08.2011. 09:27 ] @
Za CelikAPI i za CelikNET ti sigurno ne trebaju msv*d.dll biblioteke (sa "d" na kraju), jer su to Debug verzije biblioteka. Te verzije su stoga potrebne za nešto drugo što nema veze sa Čelikom, a što je vezano za tvoj projekat. To je ujedno i razlog zašto niko nije mogao da ti pomogne. Problem je negde drugde.
[ Fanthom @ 22.06.2012. 13:55 ] @
Vec 2 dana pokusavam da resim problem:

"Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found."

Sve sam probao, problem je sto ne ucitava fino CelikApi.dll, kao da ne moze da ga nadje, iako je u istom folderu kao CelikNet.dll.. Slucajno sam naleteo u drugoj temi na odgovor, pa samo da ustedim drugima koji imaju isti problem. jer vidim da ovde taj problem nije resen..

Resenje je da se prekopira CelikApi.dll u Windows/system32 folder..
Ukoliko je u pitanju 64bitna masina onda se kopira u Windows\SysWOW64

Ne znam zasto to tako, jer ocigledno kod drugih radi i bez toga, tj dovoljno je da je CelikApi u istom folderu kao CelikNet, ali cim sam prekopirao, odmah mi je proradilo..

Ako neko mozda ima objasnjenje, bilo bi dobro da ga napise..

[Ovu poruku je menjao Fanthom dana 22.06.2012. u 19:45 GMT+1]
[ Scorpio76 @ 22.05.2013. 10:46 ] @
Ako ima još ljudi koji su imali problema na Windows 7 sa povremenim čitanjem a povremenim vraćanjem greške, ili problema sa Debug vs Release varijantama ili sličnih gremlin varijanti proverite koju verziju CelikApi.dll koristite.

Meni su se na primer javljali gremlini u Windows 7 sa verzijom CelikApi.dll 1.0.1.0 koja je veličine 843.776b dok mi je sa verzijom 1.1.0.0 veličine fajla 929.792b sve proradilo na 100% read. Verzija 1.1.0.0. radi i sa CelikNET fw4.0 i sa CelikNET fw3.5 koji su postavljeni ranije u ovom threadu.

Nadam se da će ovo još nekom pomoći.

Pozdrav
[ Mihajlo Cvetanović @ 22.05.2013. 11:15 ] @
Verzija 1.1 (ili neformalno Čelik+) ima neke nove funkcionalnosti i nove funkcije, ponajpre proveru potpisa na kartici. Stari CelikNET radi sa novom verzijom API-ja, ali da bi se koristile nove funkcionalnosti potrebno je unaprediti CelikNET. Za ovu proveru potpisa potrebni su razni sertifikati, koji dolaze uz instalaciju Čelika+, a mislim da mogu i posebno da se skinu sa sajta MUP-a.
[ srboljub79 @ 10.04.2014. 14:20 ] @
Pitanje u vezi deploymenta

Implemetirao sam u aplikaciji koriscenje CelikApi.dll.
Razvojno okruzenje je VS 2008
U isti folder sam stavio i CelikApi.dll i CelikNET.dll
Referencirao sam CelikNET.dll.
Sve lepo radi, ali kad uradim publish na drugom racunaru ne radi i izbacuje gresku...
Pri deploymentu sam ukljucio oba dll.
Probao sam na drugom racunaru da stavim biblioteke u sistemski folder c:\windows\system32
ali mi opet izbacuje sledecu gresku:

"Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found."

Da li neko mozda ima ideju kako bih mogao ovo da resim?
[ Mihajlo Cvetanović @ 11.04.2014. 16:21 ] @
Možda je problem što na tom drugom računaru nisu instalirane redistributabilne biblioteke za Visual Studio 2008. To je spomenuto na sajtu MUP-a, ali bez linka. Ovo je link: http://www.microsoft.com/en-us/download/details.aspx?id=5582
[ srboljub79 @ 14.04.2014. 07:58 ] @
[ srboljub79 @ 14.04.2014. 08:05 ] @

Nije u tome problem, jer sam instalirao runtime biblioteke sa sajta

Ako imas jos neku ideju molim te posalji...

U svakom slucaju
Hvala
[ Mihajlo Cvetanović @ 14.04.2014. 10:33 ] @
Treba nam više informacija. Potrebno je da pokreneš program koji se zove Process Monitor. Taj program se inače nalazi i u kolekciji korisnih programa nazvanoj Sysinternals Suite, ali sa prvog linka može da se skine i pokrene posebno. Process Monitor prati sve što se može pratiti u sistemu (što je baš obimno), ali u našem slučaju mi samo želimo da vidimo kako to da ČeliApi ne može da se učita. Zato kad te program pita za filtere daj mu filter čiji su parametri <Path> <ends with> <celikapi.dll>. Ako sve radi kako treba u Proces Monitoru u status baru (ona najniža linija u prozoru na koju obično niko ne obraća pažnju) počeće da se brzo uvećava jedan broj. Sada pokreni svoj program do tačke kad se desi problem. Proces Monitor će prikazati nešto, i na osnovu tog nečeg možda se može izvući nekakav zaključak. Možda će i tebi biti jasnije šta se dešava.

Ako je potrebno pošalji ovde ono što Process Monitor bude ispisao. Sačuvaj sadržaj (Ctrl+S). Opcija čuvanja treba da bude "Events displayed using current filter", a format nije bitan, pa može da bude i nativni .PML. Taj fajl će nam dati više informacija.

Možda je ovo samo prvi korak, jer mi se čini da je ipak u pitanju problem sa bibliotekama. Koliko god da je koraka potrebno, moramo ih sve načiniti.
[ Mihajlo Cvetanović @ 14.04.2014. 10:38 ] @
Mala napomena: tek kad sam napisao sve ovo gore pročitao sam da se program žali da ne može da pronađe CelikNET.dll, a ne Celikapi.dll. Ako ne može da pronađe CelikNET.dll onda možda ti misliš da pokrećeš exe koji je zajedno sa CelikNET, ali zapravo ne pokrećeš taj exe nego neki drugi, u drugom folderu, koji nije zajedno sa CelikNET.dll...
[ srboljub79 @ 14.04.2014. 12:27 ] @
U folder gde je exe fajl sam snimio oba dll fajla plus neke msd...dll biblioteke koje je pomenuo u ovoj temi Blue82 kao moguce resenje(za svaki slucaj).
Sve to sam snimio i u C:\Windows\System32 i u C:\Windows\SySWoW foldere(za svaki slucaj).
Instalirao sam runtime biblioteke sa sajta.
Prilikom pokretanja aplikacije, pokrenuo sam bas taj exe koji je u istom folderu sa bibliotekama i opet izbacuje istu grešku.
Kod mene i kolege radi lepo, ali kod nas ima VS. Ja sam publish-ovao verziju, a on update-ovao. Kod mene je Windows 7 a kod njega Xp.
Na racunaru na kome treba da se koristi čitač , je Vista i sve gore pomenuto sam uradio na njemu...

Ako imas bilo kakvu novu ideju ...?

Hvala jos jednom na pomoci
[ Mihajlo Cvetanović @ 14.04.2014. 16:39 ] @
Nemam novu ideju, ali probaj da odradiš postojeću ideju, i vidi šta Process Monitor ima da kaže.
[ srboljub79 @ 15.04.2014. 09:54 ] @
Probao sam da vidim u cemu je stvar preko programa ProcessMonitor.
Ne mogu da bas protumacim po event-ima u cemu je stvar.
U arhivi greske se nalaze cetiri print screen-a
Kada se postavi za path putanja C:\....\CelikApi.dll ili C:\....\CelikNet.dll
i do pokretanja programa gde se javlja greska brojka na dnu raste,
kao i posle pokretanja forme u kojoj se javlja greska.

Hvala jos jednom na pomoci
[ srboljub79 @ 15.04.2014. 12:07 ] @
U prilogu su novi prt scr za ProcessMonitor.
U arhivi sam stavio prt scr kod mene(gde lepo radi) i na racunaru gde ne radi.
Jedino sto primecujem kao razliku je da kod mene nalazi i CelikNet i CelikApi u istom folderu(isao sam sa ends with) dok na drugom racunaru ih nalazi u razlicitim folderima.
Mozda je do toga?
[ Mihajlo Cvetanović @ 15.04.2014. 12:48 ] @
Putanje u kojima su dll-ovi su baš neobični. Guglovanjem dolazim do toga da koristiš ClickOnce tehnologiju. To je vrlo bitan podatak. Ako je to tačno onda teško da ja mogu da ti pomognem. Google je pun pitanja kako pokrenuti native dll preko ClickOnce. Da li pored CelikAPI.dll imaš i neki drugi native (ne C#) dll koji uspešno koristiš preko ClickOnce? Ako nemaš onda napravi neki mali testni C/C++ dll i probaj to da proteraš i savladaš.

Uzgred, zašto nisi po uputstvu sačuvao .PML fajlove direktno iz Proces Monitora, nego print skrinove u okviru Word i Works dokumenata? Neki podaci su isečeni iz slika.
[ srboljub79 @ 16.04.2014. 08:55 ] @

Pogledacu malo detaljnije deployment na google-u.

Nisam poslao PML fajlove jer dosta zauzimaju (13MB).

Hvala jos jednom na pomoci

[ Mihajlo Cvetanović @ 16.04.2014. 10:11 ] @
Nema na čemu. Uzgred i ja sam na početku pogrešio kad sam rekao da su za ČelikAPI potrebne CRT biblioteke za Visual Studio 2008. Potrebne su za aplikaciju Čelik, a samo za ČelikAPI nisu.

Pogledao sam i problem sa veličinom .pml fajlova, i umeju da budu veliki, ali smanje se na podnošljivu veličinu kad se isključi opcija "Also include profiling events". Moraću da saznam šta se uopšte dobija tom opcijom :)
[ Cyberghost @ 14.05.2014. 12:54 ] @
Samo da se zahvalim za odlicno odradjen posao. Biblioteka za C# u VS2010 na Windows 8.1 64bit, sve je proslo glatko iz prve.
Spašeno je nekoliko dana programiranja i cimanja da se sve portuje na C#.

Hvala, hvala jos jednom
[ Cyberghost @ 22.05.2014. 15:49 ] @
Danas sam testirao kod koji koristim za prijavu na sistem preko mticnog broja iz licne karte.

Slucajno sam izvukao licnu kartu iz citaca, program je uhvatio gresku i ispravno je pokazao, nakon ponovnog pokusaja sa ubacenom licnom kartom
prijava je prosla ali je program izbacio gresku kao sto je i kolegama u ranijim postovima.

Code:
CelikException was unhandled. EndRead nije izvrsen

Kod koristim ovako:

         try
            {
                using (CelikNET.CelikInterop oCelik = new CelikNET.CelikInterop())
                {
                    CelikNET.FixedPersonalData oFixedPersonalData = oCelik.ReadFixedPersonalData();
                    CelikNET.VariablePersonalData oVariablePersonalData = oCelik.ReadVariablePersonalData();
                    CelikNET.DocumentData oDocumentData = oCelik.ReadDocumentData();
                }
            }
             catch (CelikNET.CelikException exp)
            {
                MessageBox.Show("Neuspelo očitavanje lične karte.\nProverite da li je lična karta u čitaču i pokušajte ponovo.\nStatus greške: " + exp.EIDErrorDescriptionSr, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }



Koristim Visual Studio 2010 i .NET Framework 4, Windows 8.1
Biblioteke msvcm90d.dll, msvcp90d.dll i msvcr90d.dll sam dodao pored CelikNET.dll ali opet isto.
Napominjem da sve radi besprekorno kada je kartica u citacu.

[ markoub @ 26.05.2014. 01:03 ] @
Prvo, puno hvala za trud, mnogo vremena stedi! :-)
Na mom racunaru radi perfektno sve, ali ni na jednom drugom nece... :-(

Prikazuje sledecu gresku:

Code:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found.
File name: 'CelikNET.dll'
   at SmartPDF.frmMain.procitajProdavca()
   at SmartPDF.frmMain.button1_Click(Object sender, EventArgs e) in c:\Users\Marko\Documents\Visual Studio 2012\Projects\SmartPDF\SmartPDF\frmMain.cs:line 62
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

...


E, sad... Kada preimenujem (sakrijem) CelikNET fajl onda prikaze drugaciju gresku, nesto pominje neke verzije... Dakle, zna sigurno gde je fajl, ali ima neki problem.
Naravno, i CelikAPI je u istom folderu, ali nista...
Kada sakrijem CelikAPI sve je identicno, tako da imam utisak da do njega ni ne dodje.
Preciznije, kada prodjem kroz ProcessMonitor sa filterom za CelikAPI.dll nema nijedan pogodak.
Greske su tipa "file locked with only readers" (sta god to znacilo) i "buffer overflow"...

Inace, CelikNET sam iz source-a kompajlirao, pa je u 4.5 verziji framework-a.

Nadam se da ima neko resenje, ja sam sve pokusaje potrosio... :-)
[ Mihajlo Cvetanović @ 26.05.2014. 10:00 ] @
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?
[ Mihajlo Cvetanović @ 26.05.2014. 10: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.
[ markoub @ 26.05.2014. 12: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!:-)
[ Mihajlo Cvetanović @ 26.05.2014. 18:19 ] @
Možda bi bilo dobro da uključiš Fusion logove. Evo članka koji opisuje šta i kako u vezi s tim: http://www.hanselman.com/blog/...oDebugObscureLoaderErrors.aspx

U ovom članku je i link na MSDN, http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

Uključi to, pa da vidimo na šta se konkretno .NET žali.
[ markoub @ 31.05.2014. 10: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...

Code:
<meta http-equiv="Content-Type" content="charset=unicode-1-1-utf-8"><!-- saved from url=(0015)assemblybinder: --><html><pre>
*** Assembly Binder Log Entry  (5/31/2014 @ 11:55:05 AM) ***

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>


[ markoub @ 31.05.2014. 11: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]
[ Mihajlo Cvetanović @ 01.06.2014. 21: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...
[ nneexx @ 01.09.2014. 14:25 ] @
Meni isto ovo treba za Alasku xbase++

Da li je neko resavao problem za ovaj programski jezik ?

Pozdrav.
[ MACTEPx @ 01.09.2014. 15:23 ] @
Objavljena je nova verzija api-ja sa kojom ovaj wrapper ne radi:
celik api
[ Mihajlo Cvetanović @ 01.09.2014. 16: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.
[ Mihajlo Cvetanović @ 18.09.2014. 14:13 ] @
Novi Čelik API nije kompatibilan sa starim Čelik NET-om, i potrebno je doraditi Čelik NET da bi mogao da koristi novi Čelik API. Olakšavajuća okolnost je što postojeći Čelik NET projekat dolazi sa verzijom Čelik API-ja 1.0.2.1. Tu čak nema ni verifikacije iz verzije 1.1. Zbog toga dorade se svode na uvođenje novih fajlova u folder CelikAPI u projektu CelikNET. Novi fajlovi su dati na stranici MUP-a http://ca.mup.gov.rs/CelikApi%20Windows%201.2.zip . Posle toga u fajlu CelikNET.cpp u liniji 163 promeniti EidStartup(1) u EidStartup(2). Posle toga rebildovati CelikNET.

Da bi se uvela i verifikacija blokova potrebno je dodati nove funkcije u CelikNET.
[ savab @ 04.03.2015. 09:51 ] @
Pozdrav svima.

Ako nekome treba kod za C# napravio sam test konzolni program koji cita podatke i pretvara ih sve u latinicu.
Sve radi sa novom i starom verzijom licne karte i moze se upotrebiti za win programe.

Pozdrav.
[ Mihajlo Cvetanović @ 06.03.2015. 13:52 ] @
Postoje neki detalji kod konvertovanja ličnih imena iz ćirilice u latinicu, o kojima treba povesti računa. Prvo, slova naše ćirilice nisu jedina koja mogu da se pojave u imenu. Da li će program znati da kovertuje Ѓ i Ќ u latinicu? Drugo, proces romanizacije (kako se zove ovaj vid koverzije, transliteracija u latinicu) može da se razlikuje od jednog jezika do drugog. U srpskom jeziku Ѓopѓe bi se konvertovalo u Đorđe, ali sami Makedonci bi možda više voleli da se kovertuje u Gjorgje.

Ako neko želi da dobro pokrije sve slučajeve mora da povede računa i o ovakvim detaljima.
[ cubbe04 @ 30.10.2015. 13:13 ] @
Citat:
savab:
Pozdrav svima.

Ako nekome treba kod za C# napravio sam test konzolni program koji cita podatke i pretvara ih sve u latinicu.
Sve radi sa novom i starom verzijom licne karte i moze se upotrebiti za win programe.

Pozdrav.



Zdravo,

Da li bi mogao/la da mi prosledis ovu verziju aplikacije ? :)


Da li neko ima mozda verziju aplikacije u C# koja cita i nove i stare licne karte ?
[ acewarrior97 @ 02.02.2016. 20:39 ] @
Pozdrav svima, je l ima neko interop wrapper za C# za novu verziju API-a? Pokusao sam nesto da napravim ali mi izbacuje General Error, nisam bas iskusan s DLLovima ali recimo ovaj winscard.dll wrapper mi okej radi. Znam da moram Maršalovanje da radim. Bilo bi okej da se javi kreator ove teme.
Ja se nadam da neko ima ažuriran ovaj CelikNET ili neki wrapper.
Na linku je ono što sam uradio do sada.
CelikC# Wrapper pokusaj

Hvala unapred :D
[ Mihajlo Cvetanović @ 02.02.2016. 21:30 ] @
Ako koristiš postojeći CelikNET, sa izmenama koje su navedene nekoliko poruka iznad onda bi to trebalo da ti radi (čitanje podataka, bez verifikacije) bez potrebe za tvojim ličnim wrapperom. Nema ažuriran CelikNET, ali imaš sve što je potrebno da ga sam ažuriraš.
[ pseudo_programer @ 16.03.2016. 18:49 ] @
Pozdrav svima. Imam Windows 10, VS 2015 i limitirano znanje iz programiranja. Deć 3 dana čitam ovu temu i unapred i unazad . Stigao sam do kraja svojih ideja i mogućnosti. Kako da okačim kod da mi neko da uputstva gde grešim i šta da radim?
[ Mihajlo Cvetanović @ 17.03.2016. 00:15 ] @
Možeš odgovarajuće delove koda da postaviš direktno u poruku, a možeš i poruci da pridodaš fajlove (ako ih ima više onda je možda bolje jedan .zip). Obrati pažnju na dugmiće tik ispod poruke. Treba ti onaj na kome piše "Upload uz poruku".
[ pseudo_programer @ 17.03.2016. 00:24 ] @
Evo, da pokušam:
[ pseudo_programer @ 17.03.2016. 00:28 ] @
Ne mogu da se uklopim u 1024k. Kako da Ti dostavim projekat?
[ Mihajlo Cvetanović @ 17.03.2016. 09:43 ] @
Kakav to početnički projekat ima više od jednog megabajta zipovanog sorsa? U zip treba da idu samo sors fajlovi (.cs), a ne i rezultat bildovanja (bilo šta u \bin folderu). Ne samo da treba da pošalješ samo sors, nego i taj sors treba da bude minimalan. Izvuci samo ono što je bitno za problem koji imaš. Napravi novi minimalni projekat u kojem se vidi problem, i zipuj samo sors od toga.

Naravno, lepo bi bilo i da opišeš šta se tačno dešava. Pogledaj kako drugi ljudi ovde traže pomoć za svoje probleme. Svi opišu svojim rečima problem. Tako treba i ti da radiš.
[ pseudo_programer @ 17.03.2016. 14:34 ] @
Mislim da je osnovni problem u Solution platforms.
Menjao sam platforme, pa bildovao. Sad neće više da ga bilduje.
Greška koju javlja je:
An unhandled exception of type 'System.BadImageFormatException' occurred in System.Windows.Forms.dll

Additional information: Could not load file or assembly 'CelikNET.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
Klijentski projekat treba samo da pokupi podatke u string i prikaže ga u MsgBox-u.
[ Cyberghost @ 17.03.2016. 14:43 ] @
Hmmm ja bih rado pomogao ali ne radim C++ a ovo i nije tema o C++ već o wrapper-u oko izvorne C++ biblioteke.
[ pseudo_programer @ 18.03.2016. 00:08 ] @
Ponovo sam pročitao ovu i još dve teme. Zatim sam krenuo sve iz početka. Svašta sam usput naučio.
Konačno radi.
[ pseudo_programer @ 18.03.2016. 20:06 ] @
Novi dan, novi problem. Imam VB formu sa jednim dugmetom i sledećim kodom:

Public Class Form1

Dim CitacLK As CelikNET.CelikInterop

Private Sub btnCelik_Click(sender As Object, e As EventArgs) Handles btnCelik.Click

CitacLK = New CelikNET.CelikInterop
'Attribute ReaderEngine.VB_VarHelpID = -1

Dim strFinal As String
Dim a = CitacLK.ReadDocumentData
Dim b = CitacLK.ReadFixedPersonalData
Dim c = CitacLK.ReadVariablePersonalData

strFinal = ""
strFinal = strFinal & "Reg. broj: " & a.docRegNo & vbCrLf
strFinal = strFinal & "Izdao: " & a.issuingAuthority & vbCrLf
strFinal = strFinal & "Izdana dana: " & a.issuingDate & vbCrLf
strFinal = strFinal & "Istice: " & a.expiryDate & vbCrLf

strFinal = strFinal & "Prezime: " & b.surname & vbCrLf
strFinal = strFinal & "Ime: " & b.givenName & vbCrLf
strFinal = strFinal & "Ime roditelja: " & b.parentGivenName & vbCrLf
strFinal = strFinal & "Datum rodjenja: " & b.dateOfBirth & vbCrLf
strFinal = strFinal & "Mesto rodjenja: " & b.placeOfBirth & vbCrLf
strFinal = strFinal & "Opstina rodjenja: " & b.communityOfBirth & vbCrLf
strFinal = strFinal & "Drzava rodjenja: " & b.stateOfBirth & vbCrLf
strFinal = strFinal & "JMBG: " & b.personalNumber & vbCrLf
strFinal = strFinal & "Pol: " & b.sex & vbCrLf

strFinal = strFinal & "Drzava: " & c.state & vbCrLf
strFinal = strFinal & "Opstina stanovanja: " & c.community & vbCrLf
strFinal = strFinal & "Mesto: " & c.place & vbCrLf
strFinal = strFinal & "Ulica: " & c.street & vbCrLf
strFinal = strFinal & "Broj: " & c.houseNumber & vbCrLf
strFinal = strFinal & "Slovo: " & c.houseLetter & vbCrLf
strFinal = strFinal & "Ulaz: " & c.entrance & vbCrLf
strFinal = strFinal & "Broj stana: " & c.apartmentNumber & vbCrLf
strFinal = strFinal & "Sprat: " & c.floor & vbCrLf

CitacLK = Nothing
MsgBox(strFinal)
End Sub

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing

End Sub
End Class

Pokrenem program, stavim LK u čitač, očitam podatke, sve OK. Stavim drugu LK i dobijem podatke iz prve LK. Kako da pozovem BeginRead i EndRead funkcije?
[ Mihajlo Cvetanović @ 20.03.2016. 23:43 ] @
Kao što u C# treba koristiti using u VB treba koristiti Using. https://msdn.microsoft.com/en-us/library/htd05whh.aspx

BeginRead se poziva unutar konstruktora CelikNET.CelikInterop. EndRead se poziva po izlasku iz Using bloka. Postoji i opcija ako ne želiš da koristiš Using, i to je objašnjeno na linku, ali velike su šanse da želiš.
[ pseudo_programer @ 21.03.2016. 10:15 ] @
Umesto:

CitacLK = Nothing

stavio:

CitacLK.Dispose()

i sve radi. Imam još samo kedan problem: instalacija. Napravim instalaciju koja radi samo na mom računaru. Na ostalim mašinama, kad pritisnem btnCelik javi: "Could not load file or assembly CelikNET.dll or one of its dependeces. The specified module could not be found." U folderu u kome je exe nalaze se i CelikNET.dll i CelikApi.dll. Taj folder je u path-u. Dll-ove sam iskopirao i u System32 i u SysWOW64 foldere, ali ne vredi. Šta je lek?
[ Mihajlo Cvetanović @ 21.03.2016. 10:58 ] @
Upozorenje: ako ručno koristiš Dispose() onda treba da ga koristiš onako kako je propisano u linku koji sam dao u prethodnoj poruci. Postoji razlog zašto se tako radi. Poenta je međutim da ljudi treba da koriste Using, jer je tako istovremeno i lakše za programiranje i pravilno za izvršavanje. Elem, ako se desi neki exception (a desiće se; Marfijev zakon kaže da se uvek desi nešto nepredviđeno) pre tvog ručnog poziva Dispose() onda se taj Dispose() neće pozvati i imaćeš problem koji si i ranije imao, da se "čita" prethodna lična karta. To je loše programiranje.

Bolje se navikni na dobro programiranje sada, a ne kasnije, kad moraš prvo da se odvikavaš od lošeg. Koristi Using.

Što se tiče putanje do .dll fajla nekoliko ljudi je na ovoj temi već imalo slične probleme, pa pogledaj, možda pomogne. Po tvom opisu ispada da je u pitanju nešto što nikad do sad nisam susreo, ili je možda isto ono što je i korisnik markoub imao, ali to je bila neka misterija, a taj korisik se nije posle javio sa svojim rešenjem, ako je rešenja i bilo.

Moguće je da bilduješ 64-bitnu verziju svoje aplikacije, a koristiš 32-bitnu verziju CelikApi-ja. Na 64-bitnom Windowsu C:\Windows\System32 je za 64-bitne dll-ove, a SysWOW64 je za 32-bitne. Arhitekture svih modula u procesu moraju da se poklapaju.
[ teofil013 @ 23.03.2016. 18:35 ] @
Pokušavam u C# program da implementiram očitavanje LK preko CelikNET.dll i imam silne probleme.
Prepravio sam EidStartup(2) (bez toga ništa nije radilo) i prebacio target na .net 4.5.1
u programu pozivam

using (CelikNET.CelikInterop x = new CelikNET.CelikInterop())
{

CelikNET.FixedPersonalData d1 = x.ReadFixedPersonalData();
CelikNET.VariablePersonalData d2 = x.ReadVariablePersonalData();
CelikNET.DocumentData d3 = x.ReadDocumentData();
Ime = d1.givenName
Prezime = d1.surname
.....
}


i sada sve radi pri prvom startovanju i ako je kartica unutra,
ali kad kartica nije u čitaču dobijam exception koji ne mogu da zaobiđem sa praznim catch{}

Ima li neko ideju?


(izmena zbog slučajno pritisnutog send)
[ Vreljanski Milan @ 30.08.2016. 12:25 ] @
Aj da bampujem i updejtujem post.

Dobih juce task da citac prilagodim novim lk, nije radio. Imamo program radi i saobracajnu i lk.

Hvala prvo na wrapperu. izmenjeno je sve sto treba i to sljaka. Sjajan posao i dobra riznica znanja. ES!

@teofil

ako si vec uzeo celikNET source, i prekompajlirao novi dll, trebalo bi da mozesh da resish, taj detalj u C projektu celik NET.

kod mene je to otprilike ovako uradjeno u aplikaciji koja referencira celikNET

Dim d1 As CelikNET.FixedPersonalData = x.ReadFixedPersonalData()
If d1.personalNumber.Length = 0 Then
// nema kartice

tako nekako mozesh valjda i na timer, ne znam sad su mi iskljuceni timeri, secam se da sam imao i neku opstu gresku, a to je kad nema kartice a timer vrti.

poz, ako treba nesto javljajte.

takodje... ja sam iskoristio 1.2.1 ili 1.2.2 API sa sajta mupa. Izashao je i 1.2.3 sto je poslednja verzija.

poz.

P.S. Evo npr sta se nama desilo, znaci nije problem u wrapperu, ali jeste da kazem logicki.

Naime ista forma cita i saobracajne i licne.

preko iste procedure.


[Ovu poruku je menjao Vreljanski Milan dana 30.08.2016. u 15:54 GMT+1]
[ LazaBre @ 05.10.2016. 12:27 ] @
Pozdrav drugai,
da li je ko uspeo da napravi VB.net Applikaciju kroz NetFrameWork 4+, ja sam pokushao apsolutno sve varijante pa i kroz NET FrameWrok3 i 3.5, konstantno mi se vraca da mi fali CelnikAPI (koji sam dodao i u rootu exe applikacije kao i u System32 i syswow...)
Da li neko uopste ima resen CelikNET i CelinAPI koji radi vb.net-u?

Pozdrav:)
[ dusans @ 05.10.2016. 13:14 ] @
A šta se dešava kada kompajliraš kao x86 (32-bit) umesto AnyCPU?
[ LazaBre @ 06.10.2016. 08:09 ] @
Probao sam, i na 32Bitnom winu da startujem i na 64bitno, u svim mogucim varijantama, i da buldiujem i jednu i drugu arh..ali nikako da proradi.. :( Ne znam vise sa da probam :P
[ Mihajlo Cvetanović @ 08.10.2016. 09:46 ] @
Čovek te pita za AnyCPU. Da li si postavio projekat da ne bude AnyCPU nego x86?

Takođe, da li si CelikNET dodao kao projekat, ili samo kao dll? Možda bi pomoglo da se doda kao projekat, i da "target framework" bude isti u tvom projektu i u CelikNET.

Takođe, odakle si preuzeo Celik API? Uzmi najnoviju verziju sa sajta MUP-a.
[ LazaBre @ 08.10.2016. 16:26 ] @
Izvinjvam se na glupom odgovoru, kada sam napisao da sam probao da bildujem za obe arh, mislio sam da se podrazumeva da jesam probao da postavim da bude i x64 i x86, sto se tice CelikApi postavljao sam ga samo kao DLL i pokusao sam varijante i sa MUPovog sajta kao i iz rar arhive koju sam preuzeo sa ES-a. Ne zna gde gresim ali nikako da mi proradi :P Hvala na svakoj pomoci.
[ Mihajlo Cvetanović @ 09.10.2016. 00:27 ] @
Da li praviš desktop app ili Windows Store app?

Probaj da napraviš najprostiji konzolni projekat, i u njemu pročitaš ličnu kartu preko CelikNET-a.

Probaj da pozoveš neku funkciju iz nekog sistemskog dll-a, recimo funkciju Sleep iz kernel32.dll. Ako to radi onda mora i CelikApi.dll da radi, ako je bilo gde u PATH putanji.
[ LazaBre @ 11.10.2016. 11:23 ] @
Pokusavam da napravim APP za desktop tj Windows, jos se slabo snalazim, nikako da se malo pokrene da proradi da namestim... :P
Trudim se...Moram da postavim jedno glupo pitanje...Ako je Windows 64BIT - CelikAPI 32Bit-a ide u System32/syswow64/ , a CelikAPI 64Bita ide normalno u System32/?

Pozz
[ Mihajlo Cvetanović @ 11.10.2016. 13:15 ] @
Tako je. Ali probaj da pozoveš neku funkciju iz neke druge sistemske biblioteke, čisto da utvrdiš da to uopšte može.

Takođe, nije neophodno da CelikAPI.dll stoji bilo gde u windows folderima (Mikrosoft ne voli da ljudi to rade, jer Windows folder oni kontrolišu, i "njihov" je). CelikAPI.dll može da stoji i na nekom svom mestu, ali to mesto samo mora da se doda u PATH.

Probaj da uradiš predlog iz moje prethodne poruke.
[ JUDO_BLACK_BOY @ 24.10.2016. 12:49 ] @
Pozdrav svima!
Znam da je tema zapoceta jako davno ali ja sad radim na jednom programu u kome zelim da ocitam nekoliko podataka sa licne karte(5,6 svega)
Citam ovu temu vec 5,6 dana ali i dalje cupkam u mestu...
Konkretno moj problem su 2 greske:

BeginRead nije izvrsen
ReadDocumentData nije izvrsen

ReadDocumentData je trenutni problem, beginread mi se ne pojavljuje trenutno

ako neko ima volje da mi pregleda kod bicu jako zahvalan.

Using x As New CelikNET.CelikInterop()

'Podaci o ličnoj karti

Dim d1 As CelikNET.DocumentData

d1 = x.ReadDocumentData ' < ----Greska se javlja u ovom redu, jos uvek nisam krenuo dole.


TextBox1.Text = d1.docRegNo

End Using



greska:
MsgBox(Err.Description)
End Sub

[ pseudo_programer @ 24.10.2016. 21:40 ] @
U prilogu Vam šaljem rešenje prerađeno iz C# u VB.NET. Kod pozivate na sledeći način:

Dim CitacLK As BasCelik.CelikAPI
Dim Citac As BasCelik.SmartCardManager
Dim Ime As String
Dim strPodbroj As String

Citac = New BasCelik.SmartCardManager
Ime = Citac.GetReaders(0)
CitacLK = New BasCelik.CelikAPI

Naravno,na kraju ide:

CitacLK.Dispose()

Nadam se da sam pomogao.
[ JUDO_BLACK_BOY @ 26.10.2016. 12:50 ] @
Hvala vam puno!!!!

Danas krecem da radim na tome pa javljam ishod.
[ JUDO_BLACK_BOY @ 26.10.2016. 18:31 ] @
Uspeo sam!!!

HVALA PUNO!!!


[Ovu poruku je menjao JUDO_BLACK_BOY dana 26.10.2016. u 21:27 GMT+1]
[ Mihajlo Cvetanović @ 26.10.2016. 22:42 ] @
Da li radi čitanje kartice iz samog Čelika? Da li radi čitanje iz tvog koda ako svom kodu podmetneš Čelik API koji dolazi uz instalaciju Čelika?
[ shimesrle @ 27.10.2016. 13:16 ] @
@pseudo programer

Meni sve radi sa vašim apijem ail ne čita podatke sa kartice (svi podaci su prazni).
Da li možete da pošaljete ceo projekat?

Pozdrav
[ shimesrle @ 27.10.2016. 13:43 ] @
Rešio problem.
[ Mihajlo Cvetanović @ 28.10.2016. 09:28 ] @
Bilo bi lepo kad bi oni koji reše svoj problem ukratko napisali ovde prirodu problema i kako je rešen, tako da budući posetioci sa istim problemom ne moraju da se cimaju i troše vreme. Nije važno ako je problem "glup", ili ako nema direktne veze sa CelikNET bibliotekom i projektom. I dalje može da se desi da neko drugi ima sličan problem, i dođe ovde po pomoć.
[ JUDO_BLACK_BOY @ 29.10.2016. 08:13 ] @
Dim CitacLK As BasCelik.CelikAPI
Dim Citac As BasCelik.SmartCardManager
Dim Ime As String
Dim strPodbroj As String
CitacLK.read() '<=================PROBLEM JE BIO OVDE treba pozvati read opciju.
Citac = New BasCelik.SmartCardManager
Ime = Citac.GetReaders(0)
CitacLK = New BasCelik.CelikAPI

Naravno,na kraju ide:

CitacLK.Dispose()
[ zoki9707 @ 20.07.2017. 07:54 ] @
Da li neko ima CelikNet API za VS 2015 ?

Probao sam sve verzije, ali mi ni jedna ne radi.
[ Mihajlo Cvetanović @ 24.07.2017. 14:57 ] @
Najbolje je možda da lično bilduješ biblioteku koristeći projekat dat u prvoj poruci na ovoj temi (fajl CelikNET-Source2.zip - 383.18k) i uz izmene navedene u poruci od 18.9.2014. U toj poruci spominje se .zip fajl sa sajta MUP-a, ali je dat link ka staroj verziji. Najnovija verzija Celik API-a na MUP-ovom sajtu je v1.2.3, i dolazi u obe arhitekture, 32-bitnoj i 64-bitnoj. Moraćeš u tvom .NET projektu da se opredeliš za jednu od ove dve arhitekture (ne može da bude "Any CPU" zbog Celik API dll-a).

Ima i na GitHubu neki CelikNET projekat, ali nešto mi je sumnjivo u tom projektu. Nisam 100% siguran da radi kako treba. Dva različita projekta se zovu CelikNET, što verovatno nekima unosi zabunu.
[ mmix @ 24.07.2017. 15:50 ] @
Mozda je vreme da tuzim nekog za brand violation Kad moze Ubuntu

A mozda je i vreme da ponovo pretresem projekat i napravim sopstveni fork... Videcemo.
[ zoki9707 @ 25.07.2017. 14:11 ] @
Pratio sam uputstvo medjutim test apliacija ne moze da pozove CelikNET.dll a greska je:

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
Additional information: Could not load file or assembly 'CelikNET.dll' or one of its dependencies. The specified module could not be found.

Attachovacu source code koji sam napravio za VS 2015 Net Framework 4, pa ako moze neko neka pomogne.

Hvala.
[ Cyberghost @ 25.07.2017. 14:45 ] @
Code:

System.IO.FileNotFoundException


Neki fajl koji mu treba nije na traženoj putanji. Nemam C++ na sistemu ne mogu da pokrenem projekat. Ali greška je krajnje jednostavna.
[ zoki9707 @ 26.07.2017. 07:34 ] @
Kompajliranje u VS 2015 prolazi bez problema (za CelikNET i Konzolnu aplikaciju koju koristim da pročitam podatke), ali kada pokrenem program javlja se ova greška.
Kad skinem referencu na CelikNET.dll program ne javlja grešku, a kad stavim referencu na CelikNET.dll javlja tu grešku.

Zato sam i stavio source code u poruci.
[ ravni @ 31.07.2017. 09:00 ] @
Citat:
Mihajlo Cvetanović:
Najbolje je možda da lično bilduješ biblioteku koristeći projekat dat u prvoj poruci na ovoj temi (fajl CelikNET-Source2.zip - 383.18k) i uz izmene navedene u poruci od 18.9.2014. U toj poruci spominje se .zip fajl sa sajta MUP-a, ali je dat link ka staroj verziji. Najnovija verzija Celik API-a na MUP-ovom sajtu je v1.2.3, i dolazi u obe arhitekture...
Velika je steta da se ovaj zaista koristan projekat ovako komplikovano koristi.
[ tresnjic @ 08.07.2018. 18:18 ] @
Da li mozes da mi prosledis kod za C#, i hoce li raditi sa Visual Studiom 2015? Hvala.
[ tresnjic @ 08.07.2018. 18:21 ] @
Citat:
savab:
Pozdrav svima.

Ako nekome treba kod za C# napravio sam test konzolni program koji cita podatke i pretvara ih sve u latinicu.
Sve radi sa novom i starom verzijom licne karte i moze se upotrebiti za win programe.

Pozdrav.



Da li mozes da mi prosledis kod za C#, i hoce li raditi sa Visual Studiom 2015? Hvala.