2009-04-06 15 views
5

cercando di avvolgere una classe cpp nativa usando la classe C++ gestita.Ottengo LNK2028 quando provo a eseguire il wrapping della classe C++ nativa usando C++ gestito

tutto sembra buono ma per qualche motivo non verrà compilato.

ottenendo i seguenti errori del linker:

errore 25 error LNK2028: non risolti del token (0A0002CE) errore 27 errore LNK2019: simbolo esterno non risolto

Tutte le idee come posso risolvere questo? : \

bene, ecco un errore completo di una delle funzioni:

errore 20 errore LNK2028: Token irrisolto (0A0002CF) "pubblico: bool __thiscall RCSclient :: ResumeChannel (char *, int, __ Int64) "(? ResumeChannel @ RCSclient @@ $$ FQAE_NPADH_J @ Z) a cui si fa riferimento nella funzione" public: bool __clrcall RCSClientWrapper :: RCSclientWrapper :: ResumeChannel (class System :: String ^, int, class System :: DateTime ^) "(? ResumeChannel @ @ RCSclientWrapper RCSClientWrapper @@ $$ FQ $ AAM_NP $ AAVString @ sistema @@ HP $ AAVDateTime @ 4 @@ Z) RCSClientWrapper.obj RCSClientWrapper

cercando di aggiungere l'user32.lib senza risultati ..

0.123.516,41 mila

Ofer

risposta

3

C++/CLI consente di mixare in C++ nativo praticamente a piacimento, ma usando C++/CLI rende la vostra applicazione dipendono dal framework .NET.

Il motivo è che il progetto C++/CLI non ha alcune librerie (user32.lib, in esempio) l'installazione nell'input del linker è che il framework .NET fornisce già servizi simili e l'IDE presuppone che si preferisca quelli ai più anziani, quelli nativi.

Controllare il progetto e aggiungere riferimento alla libreria corrispondente.

0

Forse hai dimenticato una parola chiave virtuale nella dichiarazione della funzione di intestazione C++ nativa per chiamare dal wrapper gestito !?

Problemi correlati