Înlocuirea acestui indicator la programarea funcției statice

Folosind C ++ sintaxa

hr = CoCreateInstance # 40; CLSID_Object, NULL. CLSCTX_ALL, __ uuidof # 40; IObj # 41;. # 40; LPVOID * # 41; oPointer # 41; ; // a crea o instanță a unui obiect la CLSID și returnează indicatorul de interfață
dacă # 40; ESUAT # 40; hr # 41; # 41; # 123;
MessageBox # 40; 0, L "Nu se poate crea obiect", L "eroare", MB_OK # 41; ;
Goto Uninit;
# 125;
IConnectionPointContainer * lpConCont = NULL;
hr = oPointer -> QueryInterface # 40; IID_IConnectionPointContainer, # 40; void ** # 41; lpConCont # 41; ; // Ia-o referință la interfață IConnectionPointContainer pentru obiect în lpConCont
dacă # 40; hr. = S_OK # 41;
întoarce hr;

hr = lpConCont -> FindConnectionPoint # 40; DIID__Interface, lpConPoint # 41; ; // obține un punct de conectare la interfața DIID__Interface
lpConCont -> lansare # 40; # 41; ; // elibera recipientul
lpConCont = NULL;
dacă # 40; hr. = S_OK # 41;
întoarce hr;

hr = lpConPoint -> Consiliază # 40; acest lucru. dwConPointID # 41; ; // stabilește o conexiune între punctul de conectare și receptorul

Receptorul doar în Windows versiunea este aceasta. și anume IDispatch obiect de clasă, și funcționează la fel de bine în consola - eroare.

Nu știu de ce atât de doriți să-obiect receptor a fost obiectul, în care metoda și conexiunea (folosind indicatorul acest lucru), dar oh bine.

de ce nu vreau să? Cu plăcere am o aplicație consolă. Eu va pune în aplicare ca IDispatch obiect receptor -> eroare. Ie aplicație are un MyIDispatch clasa copil, există metode adecvate. pentru că funcție, deasupra cele de mai sus este, de asemenea, o metodă a acestei clase, respectiv, cauzate de aceasta.
Dacă este posibil, o altă soluție - în studio! Vom fi recunoscători.

Oricum, clasa-receptor trebuie să corect (probabil în aceasta constă eroarea) pentru a pune în aplicare interfața IDispatch.

Dacă nu știi cum să-l pună în aplicare în mod corect, poate doriți să utilizați funcția CreateStdDispatch (care creează un obiect de clasă care implementează interfața IUnknown, unele standard de punere în aplicare IDispatch).

Da, voi încerca, dar ceea ce va fi diferit de la expediere standard „la fel de bine? La urma urmei, același lucru, nu este?

nu nu nu nu nu.
Această eroare, niciodată nu am fost în stare să câștige și recrea aplicația consola de la zero. Totul este deja modificat în consolă. Și un astfel de rezultat.

În WinMain „este, totul este bine! Cântă cântece, muzică joacă. Dar este necesar pentru a merge la consola.
omologul Consola nu vrea să lucreze cu Dispatch'em (deși nici un agent de legătură sau linker să nu vă jurați, jură deja Windows)

Și chiar HRESULT conține de obicei o eroare în depanare și nu este - aceasta este pur și simplu zboară vindosovskaya stiva de eroare.

Folosind C ++ sintaxa

O excepție netratată în „0x1024c0d2 (msvcr100d.dll)“ în „console2.exe“. 0xC00000FD. Stack Overflow.