C++ DLL Aufruf Fehler

19/11/2007 - 14:15 von Krunoslav Ostrouska | Report spam
Hallo
Ich habe ein Projekt mit Hauptteil in C# und einer DLL in C(++).
Der Projekt wurde vom VS2003 ins VS2005 konvertiert, und bislang funktionierte alles.
Heute will ich noch eine der DLL Funktionen exportieren. Es làsst sich alles gut kompilieren und linken aber beim Start bekomme ich die Laufzeitexception:
"Eine nicht behandelte Ausnahme des Typs "System.TypeLoadException" ist in WatchDogPRO_pe.exe aufgetreten.

Zusàtzliche Informationen: Der Typ WatchdogPro.Abarbeitung der Assembly WatchDogPRO_pe, Version=1.1.2879.25271, Culture=neutral, PublicKeyToken=null konnte nicht geladen werden, da die Methode ReadLogBuffer keine Implementierung (keine RVA) hat."

Die ReadLogBuffer() ist im Code und im Mapfile vorhanden. Es besteht kein Unterschied zur Deklaration aller anderen DLL Funktionen. Sie ist ebenfalls im .DEF File exportiert.
Ich bekomme dies nicht weg.
Bitte um Hilfe
Kruno
 

Lesen sie die antworten

#1 Günter Prossliner
19/11/2007 - 14:31 | Warnen spam
Hallo Krunoslav!

Heute will ich noch eine der DLL Funktionen exportieren. Es làsst
sich alles gut kompilieren und linken aber beim Start bekomme ich die
Laufzeitexception:
"Eine nicht behandelte Ausnahme des Typs "System.TypeLoadException"
ist in WatchDogPRO_pe.exe aufgetreten.



Sollte es sich um den weiter unten beschriebenen Fehler handeln, solltest Du
aber ein CS0626 Warning bekommen.

Zusàtzliche Informationen: Der Typ WatchdogPro.Abarbeitung der
Assembly WatchDogPRO_pe, Version=1.1.2879.25271, Culture=neutral,
PublicKeyToken=null konnte nicht geladen werden, da die Methode
ReadLogBuffer keine Implementierung (keine RVA) hat."



Höchstwarscheinlich hast Du im C# Code, die Methode zwar als "extern"
deklariert, aber kein DllImport("mydll.dll",...) angegeben.




OK?
mfg GP

Ähnliche fragen