Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 4.348 pregleda

Najnovija ↓

Problem sa C++ Managed kodom 08.11.2003. u 10:41 · pre 279 meseci #1
Prvi put sam probao da napravim saradnju izmedju klase pisane u VC++ managed kodu i natrcao na problem...Dakle da li je neko probao da iskoristi klasu pisanu u managed kodu u nekoj VB.NET aplikaciji? Sve lepo funkcionise osim.... Kada napravim dogadjaj u managed C++ klasi i lepo tu klasu instanciram u VB aplikaciji u editor mi podigne gresku HRESULT 0x80131019 i naravno nemam design pogledna formu. Dogadjaj se uredno poziva i radi - problem je samo u design modu...
Pretrazih net ali nista pametno nisam nasao (hehe mozda trazim na pogresnim mestima) ...
Pomagajte !
Potpis
Lenjost je majka kreativnosti
Re: Problem sa C++ Managed kodom 08.11.2003. u 18:55 · pre 279 meseci #2
Ja sam dosta koristio Managed C++, ali ne mogu ovako napamet da ti pomognem. Možeš li da postuješ kratak primer koda koji bi doveo do problema koji pominješ?
Potpis
IOCC
Re: Problem sa C++ Managed kodom 08.11.2003. u 21:31 · pre 279 meseci #3
Kao prvo - hvala na dobroj volji !
A sad evo trivijalnog primera
C++:
Code:

#pragma once
using namespace System;
namespace CCC
{
    public __gc class Proba
    {
    public:
        int nesto;
        __event void ProbniDogadjaj();
        void PokreniDogadjaj() {ProbniDogadjaj();};
    };
}

VB.NET
Code:

Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim WithEvents x As New CCC.Proba()
#Region " Windows Form Designer generated code ..........
    Private Sub x_ProbniDogadjaj() Handles x.ProbniDogadjaj

    End Sub
End Class

BTW U medjuvremenu sam otkrio kako da bajpasujem problem - medjutim to mi nije resenje jer imam smarace koji ce da mi nadju zamerku ...Naime problem nestaje kada skinem referencu, ugasim VS pa ga zatim pokrenem i vratim referencu....

Molim za bolje resenje - ako je moguce :)
Potpis
Lenjost je majka kreativnosti
Re: Problem sa C++ Managed kodom 08.11.2003. u 22:03 · pre 279 meseci #4
Potkrala se greska u C++ kodu :))
Code:

#pragma once
using namespace System;
namespace CCC
{
    public __gc class Proba
    {
    public:
        int nesto;
        __event void ProbniDogadjaj();
        void PokreniDogadjaj() {__raise ProbniDogadjaj();};
    };
}
Potpis
Lenjost je majka kreativnosti
Re: Problem sa C++ Managed kodom 08.11.2003. u 23:46 · pre 279 meseci #5
Nisam uspeo da reprodukujem problem, ali u svakom slučaju ti fali

[event_source(managed)] ispred C++ klase.

Dakle:

Code:

#pragma once
using namespace System;
namespace CCC
{
[event_source(managed)]
public __gc class Proba
{
public:
int nesto;
__event void ProbniDogadjaj();
void PokreniDogadjaj() {__raise ProbniDogadjaj();};
};
}
Potpis
IOCC
Re: Problem sa C++ Managed kodom 09.11.2003. u 00:06 · pre 279 meseci #6
Probao sam i sa atributom [event_source(managed)](BTW nije neophodan), i sa delegacijom i sa "advanced" sintaksom( add, remove i raise) i uvek isto.... Pazi sve uredno radi kada se iskompajluje, medjutim u editoru se forma VB-a zabeli pojavi se upozorenje o grescici koju sam naveo i nemoguce je koristiti za dizajn....
Elem da bi se problem pokazao trebalo bi uraditi sledece:
1. Napraviti C++ managed class library i u njoj klasu koja bi trebalo da podigne dogadjaj...
2. Napraviti VB projekat u istom solutionu i dodati referencu na projekat C++ koji ima klasu koja podize dogadjaj (bas sam joj lepo ime smislio)
3. Instancirati objekat tipa klase koja podize dogadja sa withevents
4. iz spiska dogadjaja izabrati dogadjaj tako da se pojavi kod za handlovanje dogadjaja
5. vratiti se na design view.... i eto nama problema......
Pozdrav...
Potpis
Lenjost je majka kreativnosti
Re: Problem sa C++ Managed kodom 09.11.2003. u 00:54 · pre 279 meseci #7
Sorry, razumem ja sve to, ali mi se problem ne javlja. Da li bi neko dugi probao? Možda je do instalacije VS-a.

OT: da li je moguće da C# nema onaj spisak događaja kao VB? Što više radim sa C#-om sve manje mi se dopada - na kraju ću da pređem na kombinaciju VB i C++ :(
Potpis
IOCC
Re: Problem sa C++ Managed kodom 09.11.2003. u 02:54 · pre 279 meseci #9

Pa nije li dovoljno otkucati npr.
this.
da se dobije spisak koji uključuje i događaje?

Ako se otkuca recimo
this.Closing +=
Intellisense će odmah ponuditi da "odradi" metodu koja bi obrađivala događaj, dovoljno je da se pritisne TAB. Što sve skupa i nije onda nešto mnogo drugačije nego u VB.

Potpis
Commercial-Free !!!
Re: Problem sa C++ Managed kodom 09.11.2003. u 17:49 · pre 279 meseci #10
Ne bih se složio da je baš isto. Prvo, to "this" moraš da otkucaš na pravom mestu, drugo - kad ga otkucaš pojave ti se ne samo događaji već i sve ostalo (properties, methods, data members - prava zbrka) i treće moraš "ručno" da unosiš metod koji obrađuje događaj. Mislim da je to mnogo bolje rešeno u VB IDE-u.
Potpis
IOCC
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme