ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
483
483
EMPFEHLEN
-
Hallo zusammen!
Ich habe ein kleines Problem mit einer DLL, welche ich in einer .net Anwendung verwende. In der DLL habe ich die Funktion:
Code :1
void CDumpImpl::DumpTarget(FILE* f)
Welche geerbt ist von:
Code :1
virtual void IDumpInterface::DumpTarget(FILE*) = 0;
Den Header habe ich auch in der .net Anwendung.
Ich lade da die DLL, initialisiere alles und rufe dann folgendes auf:
Code :1 2 3 4 5
const char* path = (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(textBox1->Text).ToPointer(); FILE* f = fopen(path, "a"); IDump->LoadObjects(); IDump->DumpTarget(f); fclose(f);
Während bei LoadObjects alles gut geht funktioniert dann DumpTarget nicht. f ist zwar ein gültiger Zeiger, aber wenn ich in DumpTarget eine MessageBox mit der Adresse des dortigen Parameters einbaue kommt zwar ein Zeiger mit Adresse raus, allerdings steht "bad_ptr".
Weiss jemand von euch, warum sämtliche Parameter (std::string, const char*, FILE*, ...) immer ungültig werden mit DumpTarget? Ist das ein Konflikt .net <-> "normales" C++?
/EDIT:
Wenn ich jetzt anstelle von FILE* die Parameter in const char* ändere und den Filename mitliefere, so ist vor IDump->DumpTarget(path) der Pfad korrekt, rufe ich in der DLL in DumpTarget eine MessageBox mit dem Parameter auf, so kommt "¬ç|¢. -¨" u.ä. als Text...
/EDIT2:
Es scheint ein Problem zwischen .net und normalem C++ zu sein. Verwende ich die DLL in einem Projekt ohne CLR geht alles einwandfrei!
Gruss
CromonGeändert von Cromon (14.08.09 um 18:48 Uhr)
-
Problem gelöst!
Hab zuerst mal Speicher vom nicht-verwalteten speicher genommen und da dann den Text reinkopiert, das funktionierte dann soweit, allerdings dann der Fehler vom Debugger wegen illegalem hin- und her zwischen verwaltetem und unverwaltetem Code, daher dann:
Code :1 2 3 4 5 6 7
#pragma unmanaged void Dump(const char* f) { IDump->LoadObjects(); IDump->DumpTarget(f); } #pragma managed
Dann hat am Schluss alles funktioniert
Gruss
Cromon
Ähnliche Themen
-
CGI Parameterübergabe ?
Von ert18 im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 5Letzter Beitrag: 20.12.07, 10:12 -
DLL-Parameterübergabe
Von dimi0579 im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 10.09.07, 15:40 -
parameterübergabe
Von php_idiot im Forum PHPAntworten: 8Letzter Beitrag: 21.07.06, 14:52 -
parameterübergabe
Von coolsummer im Forum XML TechnologienAntworten: 1Letzter Beitrag: 22.09.04, 21:20 -
Parameterübergabe
Von m_lorenzi im Forum PHPAntworten: 6Letzter Beitrag: 02.08.01, 11:29





Zitieren
Login






