Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

koriscenje c++ dll-ova

[es] :: .NET :: koriscenje c++ dll-ova

[ Pregleda: 3849 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.co.yu

Sajt: www.twitter.com/marko999


Profil

icon koriscenje c++ dll-ova12.07.2004. u 13:47 - pre 213 meseci
mozda je pitanje banalno ali tek pocinjem sa c# i .net-om
za pisanje aplikacije za uredjaj imam c++ dll-ove date na koriscenje..

da li je moguce i kako koristiti te pozive funkcija iz c# koda i kako?
kako se uopste vrsi ubacivanje drugog koda(npr c ili c++ ili npr. vb)?

pozdrav

Marko
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.jugopetrol.co.yu

Sajt: www.mika.rs


+6 Profil

icon Re: koriscenje c++ dll-ova12.07.2004. u 14:24 - pre 213 meseci
Evo ti primer:
Code:

using System.Runtime.InteropServices;
.
.
.
[DllImport("user32.dll")]
public extern static IntPtr GetWindowDC(IntPtr hwnd);


ako nije jasno vici
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: koriscenje c++ dll-ova12.07.2004. u 14:49 - pre 213 meseci
Primer koji ti je dusty dao pokazuje kako postupiti ako ti C++ DLLovi eksportuju samo C funkcije. Ako eksportuju i klase, onda ne možeš da ih direktno koristiš iz C#a.
 
Odgovor na temu

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.co.yu

Sajt: www.twitter.com/marko999


Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 08:52 - pre 212 meseci
hvala na odgovorima
imam jos tri mala pitanja

Imam funkciju koja se importuje iz dll-a i jedan od argumenata je UINT i visual se pri
kompajliranja buni i ne prepoznaje tip..kako se vrsi konverzija ili postoji neka druga metoda?

da li je neophodno da u projekat dodam dll koji koristim, npr. u References

u sample programu koji sam dobio uz jedan pda imam slicnu situaciju..sve je odradjeno isto kao sto ste i vi naveli da se radi samo dll koji se koristi ne postoji na hard disku, a opet sve radi kako treba..u cemu je stvar?

veliki pozdrav dotnetovci

marko
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.jugopetrol.co.yu

Sajt: www.mika.rs


+6 Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 09:43 - pre 212 meseci
Citat:

Imam funkciju koja se importuje iz dll-a i jedan od argumenata je UINT i visual se pri
kompajliranja buni i ne prepoznaje tip


Pa ako si probao nesto kao
Code:

[DllImport("user32.dll")]
public extern static void MojaFja(UINT broj);


onda je sve OK, jer C# nema tog tipa Stavi obicno int, ili Int32.
BTW ni UINT nije bas tip, to je definicija od unsigned int, da ne bi morao da kucas pun naziv svaki put.

Citat:
da li je neophodno da u projekat dodam dll koji koristim, npr. u References


Ne, a reference na neki .dll pisan u dot netu rade malo drugacije od ovih C-ovskih dll-ova, pa u tom slucaju neces ni moci.

Citat:
odradjeno isto kao sto ste i vi naveli da se radi samo dll koji se koristi ne postoji na hard disku, a opet sve radi kako treba..u cemu je stvar?


Stvar je u tome da _nikako_ ne treba da pijes pivo dok programiras Shalim se To je nemoguce. Da nema taj dll hidden postavljeno pa ga ne vidis ?
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.com

Sajt: www.twitter.com/marko999


Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 13:36 - pre 212 meseci
e pa dusty, ti si ba.. [..hik..] ..ovaj bas neki duhovit momak ;)
pivo se ne pije dok se programira, dobro znas i sam to pravilo ;))))

hvala na odgovorima

pozdrav

p.s. .NET forum mi postaje najomiljeniji
 
Odgovor na temu

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.com

Sajt: www.twitter.com/marko999


Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 14:04 - pre 212 meseci
jos jedna sitnica ;)

da li mogu proizvoljno da menjam argumente ako su oni vec definisani kako su definisani u dll-u koji importujem, konkretno UINT u int za koji mi prijavljuje gresku ili
char* u string jer se isto buni i kaze da koriscenje pokazivaca nije bezbedno ;)

a da i najvaznije, kada sve odradim prema vasim uputstvima, prijavim mi exception:


An unhandled exception of type 'System.DllNotFoundException' occurred in DLL IMPORT.exe

Additional information: Unable to load DLL (multidll.dll).


marko
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
212.62.55.*



Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 15:34 - pre 212 meseci
Generalno bi trebao da se pridrzavas nekih pravila, tj. ne mozes da mu preneses float tamo gde on, recimo, ocekuje int. Pogledaj ovu tabelu koja je deo clanka koji se bavi nekim osnovama koriscenja Win32 dll-ova u Frameworku (P/Invoke). Za UINT koristi System.UInt32 (ili skraceno samo uint) a za string, evo primera:

Code:

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace TestingPInvoke
{
    public class App
    {
        public static void Main()
        {
            StringBuilder str = new StringBuilder(256);
            Console.WriteLine(GetSystemDirectory(str, str.Capacity));
            Console.WriteLine(str.ToString());
        }
        
        [DllImport("Kernel32.dll")]
        // UINT GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);
        public static extern bool GetSystemDirectory(StringBuilder lpBuffer, int uSize);
    }
}


ili ovako nesto:

Code:

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace TestingPInvoke
{
    public class App
    {
        public static void Main()
        {            
            int size = 256;
            StringBuilder str = new StringBuilder(size);
            GetUserName(str, ref size);
            
            Console.WriteLine("User: {0}\tSize: {1}", str.ToString(), size);
            
            Console.ReadLine();
        }
        
        [DllImport("Advapi32.dll")]
        // BOOL GetUserName(LPTSTR lpBuffer, LPDWORD nSize)
        public static extern bool GetUserName(StringBuilder lpBuffer, ref int nSize);
    }
}


p.s. Nisam vodio racuna o ansi i unicode karakterima

Sto se tice drugog dela pitanja, gde ti se nalazi dll? Da li je u direktorijumu gde je i aplikacija?
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.com

Sajt: www.twitter.com/marko999


Profil

icon Re: koriscenje c++ dll-ova09.08.2004. u 23:36 - pre 212 meseci
dll mi se nalazi u istom direktorijumu kao i projekat
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.jugopetrol.co.yu

Sajt: www.mika.rs


+6 Profil

icon Re: koriscenje c++ dll-ova10.08.2004. u 10:30 - pre 212 meseci
Dll bi trebao da smestis u folder gde je kompajliran program. Ako radis u Debug modu onda je to <folder solutiona>\Bin\Debug

That should do the trick
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

v.marko

Član broj: 26565
Poruke: 223
*.mobtel.co.yu

Sajt: www.twitter.com/marko999


Profil

icon Re: koriscenje c++ dll-ova10.08.2004. u 13:06 - pre 212 meseci
program radi program radi !!!!!!!!!!!

puno hvala svima koje nije mrzelo da mi objasnjavaju elementarne stvari, narocito razdraganom dusty-iju ;)

mali tip za one koji koriste PInvoke po prvi put, dll treba iskopirati u system32 direktorijum

veliki pozdrav

Marko
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: koriscenje c++ dll-ova10.08.2004. u 13:24 - pre 212 meseci
Citat:
v.marko:
mali tip za one koji koriste PInvoke po prvi put, dll treba iskopirati u system32 direktorijum


Prijateljski savet: nemoj to da radiš.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu

Sajt: www.mika.rs


+6 Profil

icon Re: koriscenje c++ dll-ova10.08.2004. u 20:20 - pre 212 meseci
Citat:

puno hvala svima koje nije mrzelo da mi objasnjavaju elementarne stvari, narocito razdraganom dusty-iju


Molim, sluzim narodu

Evo i jedan neprijateljski savet: nemoj to da radiš Tu bi trebalo da se smeste stvari koje koristi masa aplikacija (npr. MFC biblioteke) inace bi se zvao garbage32

Koliko me secanje ne vara (ali posle toliko hektolitara piva, nisam siguran ), kada se pozove neki dll, Windows ga prvo trazi u folderu gde je program, pa u folderu %SystemRoot% (po defaultu Windows), pa u System i System32.
Nije mi jasno kako ga nije skontao ako si stavio dll u isti folder gde je i exe ?!
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

[es] :: .NET :: koriscenje c++ dll-ova

[ Pregleda: 3849 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.