Disordine in assemblaggi misti C ++ / CLI
-
05-07-2019 - |
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?
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.