C/C++ - ManagedClass - DLL und C#-App
-
Montag, 1. August 2011 21:59
Hi,
aus fremden C/C++ - code (sehr komplexe Daten lieferung) habe eine dll, die ich mittels mfc- App benütze um die Daten zu Bearbeiten und anzuzeigen.
Da diese mfc-app nachteile hat, und viel mit c# - usercontrol arbeitet, Versuche ich jetzt das ganze
mit einer C#-App zu realisieren, muss aber fremden C/C++ code weiter verwenden.
Hierzu habe eine ManagedClass - DLL, mit CLR Support (/clr), erstellt, wo fremder code als
UnMangedClass-en sind.
Mit einer C#-TestApp wo ich mit paar trivialen klassen getestet habe, kann ich ins unmanaged class-en rein debugen, und ...es läuft.Wenn ich aber alles in die Dll reinpacke (über 100 klassen), Compiler und Linker ohne Fehler, und App starte:
bekomme ich gleich beim: Application.Run(new myapp())
eine Assertion:
File: ...\vctools\crt_bld\self_x86\crt\src\fgets.c
Line; 57
Expression (str!=NULL) ????????????????
Warum, wer kent das und wie kann man das lösen?
Hoffe, ich habe mich kurz und klar verständlich gemacht.Danke
Ljuba
Alle Antworten
-
Dienstag, 2. August 2011 06:03Moderator
eine Assertion:
File: ...\vctools\crt_bld\self_x86\crt\src\fgets.c
Line; 57
Expression (str!=NULL)
Schau Dir den Sourcecode an.
Der FILE* den Du an fgets übergibst ist NULL.
Vermutlich hast Du keinen Test beim fopen gemacht wenn dieser fehlschlägt.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Als Antwort vorgeschlagen Martin RichterMVP, Moderator Dienstag, 2. August 2011 11:21
- Bearbeitet Martin RichterMVP, Moderator Dienstag, 2. August 2011 11:21
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Owner Dienstag, 2. August 2011 12:41
-
Dienstag, 2. August 2011 09:35
Hallo Martin,
das habe ich schon gesucht und fand nichts. Ich muss weiter suchen in dem ich klassen mit fopen untersuche.
Die ganze, o.g. Verzeichnis struktur, finde ich in meinem rechner nicht.
Gruss
Ljuba
-
Dienstag, 2. August 2011 09:43Moderator
> Die ganze, o.g. Verzeichnis struktur, finde ich in meinem rechner nicht.
Die CRT Sourcen befinden sich bei mir in:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\srcDer Pfad der angezeigt wird ist der Build Pfad in dem die CRT von MS erzeugt wurden.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort vorgeschlagen Martin RichterMVP, Moderator Dienstag, 2. August 2011 11:20
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Owner Dienstag, 2. August 2011 12:41
-
Dienstag, 2. August 2011 11:18
Danke Martin.
Ich habe inzwischen den Fehler gefunden, selbst bein gestellt.
Gruss
Ljuba
PS: CRT Sourcen sind auch bei mir an der gleiche stelle.:)

