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

"Premoscavanje" "klasicnog" i .net dll-a

[es] :: .NET :: "Premoscavanje" "klasicnog" i .net dll-a

[ Pregleda: 2578 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12671



+4666 Profil

icon "Premoscavanje" "klasicnog" i .net dll-a28.07.2007. u 22:42 - pre 161 meseci
Nije bas najsrecniji naslov...

O cemu se radi.. Cesto neke aplikacije imaju podrsku za plugin-ove. To je obicno realizovano tako sto onaj ko pravi plug-in napravi .dll sa C++ funkcijama (slicnim kao Win32 API) koje onda glavna aplikacija poziva.
E sad, posto ja C++ bas i ne znam nesto narocito dobro i posto sada C++ moze da koristi .NET potrebna mi je sledeca stvar - "klasican" dll koji ce imati neku fuknkciju koja ce, kada je aplikacija pozove, da pozove funkciju iz .net dll-a (class library) koji bih ja napravio.
Znaci, ako bi neko napisao samo taj poziv u c++u i okacio project uz poruku pa bih ja to na dalje koristio kao sablon (dodavao na isti nacin funkcije, menjao ime i parametre itd) bio bih zahvalan :)

Nadam se da sam uspeo da napisem dovoljno razumljivo
 
Odgovor na temu

prog
Bihac

Član broj: 106882
Poruke: 77
*.PPPoE-699.sa.bih.net.ba.



Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a28.07.2007. u 23:39 - pre 161 meseci
http://www.pinvoke.net/
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12671



+4666 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a29.07.2007. u 00:18 - pre 161 meseci
Nije to to. Tu su date deklaracije za pozivanje Win32 API-a iz .net aplikacije.
Meni treba pozivanje .net funkcije (odnosno metoda neke klase) iz C++ projekta.
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
212.200.218.*



+2 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a29.07.2007. u 00:20 - pre 161 meseci
ANSI c++ ili ovaj C++ iz .NET?
Ne razumemo te :)
Recimo pišeš .dll u c# i hoćeš to u Managed c++, jel to?
Ako je tako:

Napravio sam jedan .dll u C#
Code:

using System;
using System.Collections.Generic;
using System.Text;

namespace Sabiranje
{
   public class Sabiranje
   {
       public static int Saberi(int x, int y)
       {
           return x + y;
       }
   }
}

Napravio novi c++ win forms projekat.
Ides na project > References... > Add new reference... > Browse...
I tamo prođeš .dll koji te zanima.
Postaviš jedno dugme na formu
I napišeš sledeći kod u click eventu:
Code:

int y = Sabiranje::Sabiranje::Saberi(5,6);
MessageBox::Show(y.ToString());


Ako nije, pojasni :)
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12671



+4666 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a29.07.2007. u 01:10 - pre 161 meseci
E to :)

Samo, da taj projekat u C++ ne bude GUI aplikacija, nego .dll sa obicnim funkcijama.
Znaci ovo:
Code:
int y = Sabiranje::Sabiranje::Saberi(5,6);
MessageBox::Show(y.ToString());


Se ne poziva klikom na taster, vec pozivom exportovane (ili kako se zove) funkcije.

Znaci (u slucaju plugin-a): Winamp --> C++.dll saberi(2, 4) --> C#/VB .dll saberi(2, 4)

[Ovu poruku je menjao Shadowed dana 29.07.2007. u 10:40 GMT+1]
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
*.adsl.net.t-com.hr.



+19 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a29.07.2007. u 08:57 - pre 161 meseci
kreiras class library u .net-u za C# jezik.

ja sam radio racun za kvadratnu jednadzbu.

ubacis u projekt i zoves samo varijable.
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-1.sezampro.yu.



+2 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a30.07.2007. u 00:14 - pre 161 meseci
Čoveka zapravo zanima kako napraviti .DLL u C++ koji ima referencu na neki drugi (externi) .DLL i kako da pozove metode iz externog .DLL-a u svom .DLL-u.
Možda bi bilo najbolje da ovo premestiš u c++ forum jer pitanje nema toliko veze sa .NET i buni ljude.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12671



+4666 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a30.07.2007. u 00:49 - pre 161 meseci
Da, upravo to.

Ostavicu jos par dana, pa ako ne bude resenja prebacicu u C++ forum.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

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

Sajt: www.mika.rs


+6 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a30.07.2007. u 09:00 - pre 161 meseci
Kakav DLL si imao na umu, MFC ili Win32, ili ti je samo bitno da calling convention funkcija ima C++ dekoraciju ?
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

Shadowed
Vojvodina

Član broj: 649
Poruke: 12671



+4666 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a30.07.2007. u 10:47 - pre 161 meseci
Win32, kao sto su API funkcije (SetWindowPos npr.). Ovo sa C++ dekoracijom ne razumem, verovatno jer nemam pojma C++ :)
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

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

Sajt: www.mika.rs


+6 Profil

icon Re: "Premoscavanje" "klasicnog" i .net dll-a30.07.2007. u 14:18 - pre 161 meseci
Tja, prekopao sam po disku, ali mi je izgleda ta aplikacija kod kuce na bekapu.

Davno sam to radio, ali uglavnom, managed dll koji ce da korsiti Win32 dll treba da bude registrovani COM objekat, sto je, je'l te logicno jer je sam CLI baziran na COM-u
Napravis u managed dll-u interfejs za tvoj tip (nisam siguran da li mora da se dodaju IUnknown i IDispatch interfejsi ili to sam kompajler ubaci) i registrujes ga preko RegAsm. RegAsm izgenerise type library (tlb) koji uvezes najobicnije sa #import "MyDLL.tlb" using MyDLLNamespace, inicijalizujes COM (CoInitializeEx(NULL)) i deklarises pointer na interfejs tvoga tipa i kreiras instancu preko CoCreateInstance. Pristupanje promenljivama je moguce samo preko accessora-a, koje ce kompajer (ako se ne varam) da pretvori u dve metode sa prefiksom set_* , odnosno get_*.

Koliko se secam, ne mogu se praviti smart pointeri nad tvojim tipom (bese tu neka cela zavrzlama), pa moras da pazis da ih deinicijalizujes sa Release() kada zavrsis sa njima.

Nasao sam nesto .... might help ....
http://support.microsoft.com/kb/828736
http://msdn2.microsoft.com/en-us/library/zsfww439(vs.71).aspx

[Ovu poruku je menjao dusty dana 30.07.2007. u 16:58 GMT+1]
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 :: "Premoscavanje" "klasicnog" i .net dll-a

[ Pregleda: 2578 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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