Domanda

In un sistema Windows XP, sto scrivendo una libreria Mangaged C ++ che chiama il codice in un C # dell'Assemblea. Purtroppo, non appena comincio riferimento a un simbolo nella C # Assemblea, eseguendo la libreria Managed C ++ non riesce con questo errore (ho copiato questo dalla finestra di incidente XP):

EventType : clr20r3
P1 : treeviewdemo.exe
P2 : 0.0.0.0
P3 : 4a5d6d62
P4 : system.windows.forms
P5 : 2.0.0.0
P6 : 4889dee7
P7 : 12fc     
P8 : ac
P9 : system.io.filenotfoundexception    

La libreria Manged C ++ è fondamentalmente solo:

#using "C:\\MyCSharpAssembly.dll";

__declspec(dllexport) void callMangagedCode() {
  ManagedObject ^o = nullptr;
}

Il '#using' in sé non sembra causare alcun problema, ma non appena comincio usando i simboli costituiscono il C # DLL, ottengo problemi. Qualcuno sa che cosa sta succedendo?

La parte system.io.filenotfoundexception mi fa pensare che alcune DLL non viene trovato, ma non ho idea di quale o dove sta cercando.

È stato utile?

Soluzione

Sono tutte le dipendenze di MyCSharpAssembly.dll disponibile sullo stesso percorso? Se non si è sicuri, provare a caricare il C-Sharp Assemblea in ILDASM strumento per scoprire quali sono le sue dipendenze.

Come un controllo di integrità, controllare anche che se questo C-Sharp DLL può essere caricata da un altro C-Sharp eseguibile o meno.

Altri suggerimenti

file non trovato?

C # Assemblea non ha trovato?

copiarlo finestre o system32 e avere una prova

se il fallimento, tenta di registrare

Avete accesso al codice sorgente C # assemblee? Si può eseguire il codice gestito C ++ nel debugger? Varrebbe la pena di vedere una traccia dello stack di eccezione, questo potrebbe dare ulteriori suggerimenti su ciò che accade quando si verifica l'eccezione.

avrei il sospetto che l'incidente potrebbe essere correlato al funzionamento che si sta facendo. Come menzionato Aamir, l'altra possibilità potrebbe essere una dipendenza del gruppo C # ...

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