Fenster über DLL öffnen
-
Shark85 schrieb:
der genaue Fehler ist das die Funktion DialogBox(...) immer -1 zurück gibt!
und GetLastError(); ?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/getlasterror.asp
-
bis jetzt habe ich GetLastError() noch nicht genutzt?
GetLastError()hat keine Wirkung!
Anderer Versuch ...
MessageBox(NULL, (LPCSTR)GetLastError(), Array, MB_OK|ICONINFORMATION);gibt Fehler cbi31.exe read ... konnte nicht ausgeführt werden!
sorry!

-
Warum hantierst du schon mit DLLs herum, wenn dir die WinAPI noch so völlig unvertraut ist

Du kannst nich einfach ein DWORD in einen String casten
-
Anderer Versuch ...
Code:
MessageBox(NULL, (LPCSTR)GetLastError(), Array, MB_OK|ICONINFORMATION);... wurst = (hans*) wurst

GetLastError() gibt ein DWORD zurück hat also nur Wirkung wenn
DWORD dwErr = GetLastError();
verwendet wird, GetLastError wirkt also auf dwErr ein.Welchen Wert hat dwErr wenn es die Zuweisung von GetLastError erfährt ?
Hast Du CommonControls auf dem Dialog ?
MfG
RB
-
Hi Leutz,
also um mal alles zu erklären muss ich ein „bisschen“ ausholen.
Ich habe 'ne Schulische Ausbildung zum Technischen Assistenten für Informatik gemacht, an der Schule hatten wir nat. Prog. Als ich die Bestellliste für die Bücher bekam war ich baff.
Programmierungsbücher: C, C++, Java, Java-Sript, HTML (Alle von Erlenkoetter) und einige andere … (hatte nat. 0 Plan von Prog). Was wir wirklich gemacht habe ist was anderes 1-2h HTML der Rest war ein bissel C/C++ das unser Lehrer (besser gesagt Lehrkraft) vor langen Zeiten mal hatte + ein bissel Selbststudium(Borland C++ Builder) gemacht hat. Unsere Klasse hatte ca. 17Schüler gerade mal 2(ich eingeschlossen) wollten Prog. lernen, da aber der Rest der Klasse keinen Bock drauf hatte kamen wir nie wirklich weiter und jetzt Stecke ich im halbjährlichen Praktikum. Die Firma Programmiert in Gupta SQLWindows(Centrasoft) nun soll ich eine Erweiterung für ihr System Programmieren zur Datenvisualisierung … . Das können die aber nur nutzen wenn ich das in eine DLL packe … . Funzt ja alles so weit nur mit Dialogen in DLLs und so habe ich halt meine Problemchen.PS: C/C++ & WinAPI habe ich nur durch Selbststudium gelernt(wie so viele), obwohl ich das eigentlich in der Schule hätte lernen müssen. Wie der „Lehrer“ das aber erklärt versteht das kaum einer bzw. man merkt genau in welchen bereichen er unsicher ist(und das sind nicht wenige) und oft mitten in der Stunde nicht weiter weiß … . Die an der Firma habe von WinAPI oder C/C++ keine Ahnung bin also ich auf mich allein gestellt und versuche mich so weit es geht nun mal durch zu kämpfen.
Kurz gesagt, ich bitte wenigstens um ein bisschen Verständnis!
@ flender
Man kann’s ja mal versuchen, probieren geht über Studieren(obwohl ein besseres Grundlagenverständnis nat. hilfreich währe, verweise auf oberen Text[Das heißt nicht das ich das als Ausrede nehme, in WinAPI bin ich noch ein „fast“ völliger Nub])@ RED-BARON
Danke!
in dwErr steht 1813, hab über den Debugger nachgesehen! Und was heißt das nun für mich?
Wie kann man das als Fehlermeldung anzeigen, wenn man es schon nicht casten kann?mfg Shark85
-
Shark85 schrieb:
@ RED-BARON
Danke!
in dwErr steht 1813, hab über den Debugger nachgesehen!
Wie kann man das als Fehlermeldung anzeigen, wenn man es schon nicht casten kann?bin zwar nicht ich, aber egal

die ganzen errorcodes
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.aspcode in text
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/formatmessage.asp
-
Wenn du ein Fenster erstellen willst brauchst du doch nicht die hInstance von der DLL sondern vom Aufrufenden Programm. Du kannst ja die als Parameter der Funktion verlangen (Beispiel:
INT Create(HINSTANCE Programminstanz))
-
jeanlebon schrieb:
Wenn du ein Fenster erstellen willst brauchst du doch nicht die hInstance von der DLL sondern vom Aufrufenden Programm.
warum ?
MSDN schrieb:
Handle to the instance that contains the window procedure for the class.
-
Probier es einfach aus, wenn es nicht klappt oder es dir nicht gefällt, kannst du ja natürlich auch noch die Funktion DllMain ausprobieren. Diese Funktion liefert beim Laden der Dll die HINSTANCE der Dll und du kannst sie dann auch benutzen.
-
jeanlebon schrieb:
kannst du ja natürlich auch noch die Funktion DllMain ausprobieren. Diese Funktion liefert beim Laden der Dll die HINSTANCE der Dll und du kannst sie dann auch benutzen.
ist äquivalent zu
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
-
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);das liefert aber nur das instance handle der exe
-
Hi Leutz,
Fehler 1813 siehe http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__1700-3999_.asp
Liegt wahrscheinlich and der Resouce-Datei selbst, er findet sie halt nicht!

Habe versucht die dialog.res einzubinden(Visual C++ 6.0)
Projekt->Einstellungen->Linker->Objekt-/Bibliotheks-Module
nun dialog.res eingegeben ...
LinkerFehler dialog.res kann nicht geöffnet werden!( is ja auch kein *.LIB)
Habe das hier noch gefunden http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sakSDK/sak_creating_a_resource_dll.asp
komme aber nit ganz so mit Punkt 1 und 2 zurecht und die ganzen Linkereinstellungen verwirren mich ein bisschen ... .
Da ich diese nicht in Linkereinstellungen und co im Compiler finde.
mfg Shark85
-
Shark85 schrieb:
Fehler 1813 siehe http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__1700-3999_.asp
Liegt wahrscheinlich and der Resouce-Datei selbst, er findet sie halt nicht!

Habe versucht die dialog.res einzubinden(Visual C++ 6.0)
Projekt->Einstellungen->Linker->Objekt-/Bibliotheks-Module
nun dialog.res eingegeben ...
LinkerFehler dialog.res kann nicht geöffnet werden!( is ja auch kein *.LIB)
Versuch es mal so: Seitlich auf Ressourcendateien (rechtsklick) und dann auf "Dateien zu Ordner hinzufügen..."
-
Hi Leutz,
@flenders
Unter welchen Ordner? Hab mich mal für "Ressourcendateien" entschieden und die dialog.res eingefügt!
LINK : fatal error LNK1104: Datei "dialog.res" kann nicht geoeffnet werden
mfg Shark85
-
Shark85 schrieb:
Habe das hier noch gefunden http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sakSDK/sak_creating_a_resource_dll.asp
der link bezieht sich doch auf embedded, ich denke nicht das dieses richtig für dich ist. oder?
-
Shark85 schrieb:
Unter welchen Ordner? Hab mich mal für "Ressourcendateien" entschieden und die dialog.res eingefügt!
Ich hatte es doch schon geschrieben: Seitlich auf Ressourcendateien (rechtsklick)
Shark85 schrieb:
LINK : fatal error LNK1104: Datei "dialog.res" kann nicht geoeffnet werden

Du musst das Ressource-Script (.rc) nicht die schon kompilierte Ressource (.res) hinzufügen

-
@fenders
Das habe ich wohl übersehen!
Es kommt zwar kein Fehler mehr beim erzeugen aber funzen tut es immer noch nit, also dwErr hat immer noch 1813 als wert!
PS: hatte dialog.rc schon im Ordner Quellcodedateien, macht das einen Ünterschied??
Der Fehler hält sich wirklich hartnäckig!

Hat jemand 'ne Idee?

-
Shark85 schrieb:
Der Fehler hält sich wirklich hartnäckig!

Ist logisch, da Du den Fehler nicht versuchst zu entfernen, da Deine Vermutung falsch ist.
Gib doch mal als hInstance
(HINSTANCE)GetModuleHandle("NameDerDll.dll");an, wie in der MSDN steht...
MSDN schrieb:
Pointer to a null-terminated string that contains the name of the module (either a .dll or .exe file). If the file name extension is omitted, the default library extension .dll is appended.
-
Hi Leutz,
@Hepi
SUPER es funzt danke!

Englisch ist leider nicht eine meiner Stärken, das soll sich aber bald ändern!mfg Shark85
PS: danke nochmal an alle die mir geholfen haben!
