Ich möchte meine Klasse in eine DLL auslagern, aber wie mache ich das am besten?
-
Wenn es ein Compiler-Fehler ist, dann ist die lib-Datei erstmal irrelevant.
Du mußt noch lernen zwischen Kompilieren und Linken zu unterscheiden. Das kannst du beim MSVC sehr gut am Error-Code erkennen. Compiler-Errorcodes fangen mit C an, z.B. C2049. Ein Link-Error kann erst dann kommen, wenn der Compiler erfolgreich durchlief. Link-Errorcodes fangen mit LNK an.
Gib doch einfach mal den Errorcode in den Index deiner MSDN-Hilfe ein. Meistens sind die Erklärungen dazu sehr hilfreich.
Ansonst kann ich nur sagen: ohne Code und genauen Fehlermeldungstext kann man dazu nicht viel sagen.
-
Also es sind Compiler Warnungen/Fehler:
Error 1 error C2146: syntax error : missing ';' before identifier 'cChart' Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int Error 3 error C2065: 'cChart' : undeclared identifierAlso aus irgendeinem Grund ist ihm also doch die Klasse unbekannt, kann ich aber nicht verstehen, wenn sie unter '::' aufgeführt wird.
Gruß Tobi.
-
Mal was ganz anderes:
Benötigst Du wirklich eine DLL? Oder würde Die eine statische Library nicht auch genügen. Dann müsstest Du Dir keine Gedanken machen was wie wohin und wann exportiert wird.
Just an idea...
-
T0bi schrieb:
hmm und wenn ich das ganze einfachn ur als statische lib generieren will und auf die dll verzichte muesste es doch sdann gehen?
Ja, es würde mir auch als statische lib völlig reichen und ich habe sie ja auch schon generiert, ich bekomme halt nur in dem Projekt wo ich die lib benutzen will die Fehler da.
-
T0bi schrieb:
Also es sind Compiler Warnungen/Fehler:
Error 1 error C2146: syntax error : missing ';' before identifier 'cChart' Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int Error 3 error C2065: 'cChart' : undeclared identifierAlso aus irgendeinem Grund ist ihm also doch die Klasse unbekannt, kann ich aber nicht verstehen, wenn sie unter '::' aufgeführt wird.
Gruß Tobi.
Was soll :: heißen? Behebe doch erst mal den 1. Error, bevor du dich an den 3. machst. Die Meldungen sagen doch was das Problem ist. Nur suchen mußt du selber, wir können nicht hellsehen. Und mit statischer oder dynamischer Library haben die wie gesagt nichts zutun.
-
Artchi schrieb:
Was soll :: heißen? Behebe doch erst mal den 1. Error, bevor du dich an den 3. machst. Die Meldungen sagen doch was das Problem ist. Nur suchen mußt du selber, wir können nicht hellsehen. Und mit statischer oder dynamischer Library haben die wie gesagt nichts zutun.
Wenn er, wie in seinem ersten Posting zu dem Thema Syntaxfehler macht in Bezug auf declspec oder extern "C", dann hängt das schon miteinander zusammen.
Aber im Endeffekt liest mir TObi meiner persönlichen Meinung nach einfach zu wenig in der Doku, dass haben meiner Erfahrungen in seinen letzten Postings immer wieder gezeigt...
-
Ich weiss was die erste Meldung sagt, aber icgh sehe da kein Sinn drin, denn:
in der Lib ist eine Klasse definiert
class Test { };
und wenn ich jetzt in meinem Projekt die Klassen Variable benutzen will:
static Test test;
dann kommen alle 3 Meldungen.
Und mit '::' meine ich, wenn man im Quelltext :: schreibt dann zeigt er mir doch alle zur Verfügung stehenden Funktionen ect. an, darunter auch meine, aber meint sie gehören nicht zum globalen namensraum.
-
*push*
-
Keiner will mir helfen

-
T0bi schrieb:
Keiner will mir helfen

Wahrscheinlich sind Deine Informatinen einfach falsch oder unvollständig!
Der folgende Code kompiliert bei mir sofort ohne Felder in jeder Art von Projekt:
class Test { }; static Test test;
-
ich weiss echt nicht was es sein sollte, kann ich dir nicht einfach das Projekt mal der Mail oder so geben un du sagst mir ob ich da ne Falsche Einstellung oder so habe? Du sollst ja nicht den Code kontrollieren, halt nur schaun ob da evtl. irgendwo ne kleinigkeit ist.
Gruß Tobi.