Domanda

Esiste un modo per nascondere le definizioni dei segnaposto nativi dai metadati gestiti (visibili in Reflector)?

Sto creando un assembly C ++ / CLI in modalità mista contenente alcuni file compilati con / clr e alcuni compilati senza.

Sto usando boost e MFC solo nel codice nativo, ma le intestazioni boost / MFC devono ancora essere #incluse nei file di codice gestiti. Non appena questo viene fatto (indipendentemente dal fatto che si trovino in un blocco #pragma non gestito o meno) tutti gli spazi dei nomi e i nomi delle classi (anche se non hanno una reale implementazione) da boost e ATL (aka MFC) appaiono nella vista Riflettore del assemblaggio.

Questo non è un problema serio (dopo tutto, le cose funzionano ancora bene), ma sembra un disordine e preferirei che non fosse lì. C'è un modo per sbarazzarsene?

È stato utile?

Soluzione

No, non c'è modo di liberarsene.

L'idea con C ++ / CLI è che il codice gestito dovrebbe essere in grado di accedere al codice non gestito. L'unico modo per farlo è creare un wrapper gestito per tutte le funzioni C ++.

Ho provato " collegamento a livello di funzione " e "ottimizzazione dell'intero programma" ma non ha ridotto il numero di simboli esportati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top