DLL/Klassen/Funktionen
-
Hallo,
haben noch eine Person mit dem gleichen Prob. gefunden,
siehe Beitrag ^16:13:27 18.11.2003 SilentSurfer^
[url]http://www.c-plusplus.net/forum/viewtopic.php?t=55626&highlight=dll+klassen+delete
[/url]dort steht aber auch keine Lösung!!!!!!!!!!!

-
Hallo
kannst du dein Projekt online stellen
(finden sich moeglicherweise einige die das dann checken)MfG
Klaus
-
-
hat schon wer nen Anhaltspunkt

-
kann ihm denn keiner helfen der ist bestimmt schon ganz frustriert

-
-
Hallo,
habe gerade von einem aufmerksamen User erfahren das viele gar keine *.rar Dateien öffnen können. Dachte eigentlich das sich RAR durch die grössere Leistung gegenüber ZIP schon mehr durchgesetzt hat .....

Vielen Dank an Hinterthuer Dieter für die Info

Hier der Link im ZIP Format:
-
Hallo Hinterthuer Dieter,
RAR haben wohl doch recht viele Leute,
habe mal auf meinem Webserver die Zugriffe geprüft und musste feststellen
das die *.rar bereits von 20 Leuten geladen wurde und die *.zip nur von 2 Leuten, wovon eine du sein wirst
Gruß
IcemanX--------------------------------------------------------------------------
HATT EINER DER 22 LEUTE SCHON NEUIGKEITEN FÜR MICH

-
Bin einer der 22... habs nicht gerafft.
Bleiben noch 21.
-
Plemplem schrieb:
Bin einer der 22... habs nicht gerafft.
Bleiben noch 21.
Bekommst du auch nen Speicherzugriffsfehler beim delete oder was ??????
Gruß
IcemanX
-
Es wäre sicher hilfreich, wenn du neben dem reinen DLL-Code auch ein lauffähiges (Minimal)Projekt mitliefern würdest, in dem die DLL geladen bzw. Klassen/Funktionen daraus verwendet werden.
-
Jansen schrieb:
Es wäre sicher hilfreich, wenn du neben dem reinen DLL-Code auch ein lauffähiges (Minimal)Projekt mitliefern würdest, in dem die DLL geladen bzw. Klassen/Funktionen daraus verwendet werden.
Einfach ein neues Projekt mit einem Fenster und 3 Buttons indem
CRLib.h und CRLib.lib eingebunden werden, dann noch im header folgenden Code:extern PACKAGE TCRVerInfo *pVersionInfo; extern PACKAGE TCRCPUInfo *pCUPInfo;------------------------------------------------------------------------------
Button1
pVersionInfo = new TCRVerInfo(Application->ExeName); pCUPInfo = new TCRCPUInfo();Button2
int iCPUUsage = pCUPInfo->getUsage(); char szCPUUsage[10]; strcpy(szCPUUsage, itoa(iCPUUsage, szCPUUsage, 10)); MessageBox(NULL, szCPUUsage, "", MB_OK); // Dazu muss *.exe resource Daten besitzen!!!!! //String sProductname = pVersionInfo->GetVerInfo(VI_PRODUCT_NAME); //MessageBox(NULL, sProductname.c_str(), "", MB_OK);Button3
//hier kommt der Fehler delete pVersionInfo; delete pCUPInfo;Gruß
IcemanX
-
IcemanX schrieb:
Fullqoute gelöscht.
--------------------------- Fehler --------------------------- Programm 'S:\SOURCE\Cescon\C\Test\Memwatch\1.00.0000\Memwatch.exe' kann nicht gefunden werden. --------------------------- OK ---------------------------Ich hab die Projektdatei geöffnen und F9 gedrückt... während dem Linken (oder schon beim Programmstart?) kommt die Meldung.(Ich sage doch, dass ich es nicht raffe! :p )
Edit:
Zitate bitte auf das Notwendigste beschränken. Danke!
-
Plemplem schrieb:
Programm 'S:\SOURCE\Cescon\C\Test\Memwatch\1.00.0000\Memwatch.exe' kann nicht gefunden werden.
einfach mal unter start parameter die host anwendung entfernen

ich schließe daraus, das du auch noch nicht lang mit Borland C++ entwickelstGruß
IcemanXEdit:
Zitate bitte auf das Notwendigste beschränken. Danke!
-
Das ist genau mein Punkt: wenn du möchtest, dass etwas für dich getestet wird dann solltest du das nach Möglichkeit so vorbereiten, dass andere es ohne Anpassungen an den eigenen Rechner ausprobieren können.
Zum einen ist es für den Tester bequemer und damit die Wahrscheinlichkeit höher, dass sich jemand die Mühe macht, zum anderen werden eventuelle Unterschiede in der Konfiguration als mögliche Fehlerquelle ausgeschlossen.
-
Danke für den Tip,
werde ich das nächste mal beachten!!!!!

-
Hallo Leute,
jetzt wird es kniffelig.
Habe einen Anhaltspunkt zum problem gelesen.
Es scheint als läge das Problem daran das der Speicher im Programm reserviert wird und die eingentliche Freigabe aber durch den Dekonstruktor erfolgt, der sich aber in der DLL befindet (logischer weise).Beispiel:
pVersionInfo = new TCRVerInfo(Application->ExeName); // Speicher wird im Programm reserviert delete pVersionInfo; // Speicherfreigabe wird vom Programm aufgerufen /////////////////////////////////////////////////////////////////////////// // wirkliche freigabe scheint aber erst hier statt zu finden :( declspec_mode TCRVerInfo::~TCRVerInfo(){ return; // hier kommt es zum Fehler :rage: }Wie kann mann das umgehen, wie machen das ander Sprachen!!!!!!!

Irgend ein Speicher Profi anwesend ?????
Gruß
IcemanX
-
Du brauchst doch hier keinen Destruktor. Am besten ist es, du löschst das ganze Ding. Ein return im Destruktor ist sowieso Unsinn. Aber das hatte man dir schon gesagt.
Ich glaube aber nicht das es am Destruktor (nicht "Dekonstruktor") liegt.
Ich kann dein Projekt nicht selbst testen (ohne größeren Aufwand), da ich Builder 5 habe.
-
Braunstein schrieb:
Fullquote gelöscht
Habe den Destruktor auch schon mal weggelassen, bringt auch nichts

das muss irgendwas mit Speicher Anwendung zu DLL sein, wie ich breits geschrieben hab, oder klappt es bei deinen eigenen DLL´s mit Klassen????Gruß
IcemanXEdit:
Zitate bitte auf das Notwendigste beschränken. Danke!
-
Ich lagere Klassen eher selten in dlls aus. Normalerweise verwende ich statische libs. Außerdem ist es keine gute Idee mit AnsiStrings in dlls zu arbeiten (siehe Hinweise vom dll Assistenten). Ich verwende hier meistens std::string. Ich weiss aber nicht ob es daran liegt. Denn eigentlich sollte es mit dieser Klasse keine Probleme geben.
Ciao