ERLEDIGT
JA
JA
ANTWORTEN
20
20
ZUGRIFFE
493
493
EMPFEHLEN
-
08.08.11 15:39 #1
Hallo ich schreibe gerade ein DLL und bisher hat auch alles geklappt nun wollte ich noch etwas ändern und habe 2 Datein hinzugefügt Ver.h und Ver.cpp in Ver.h steht das:
und in Ver.cpp:Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13
#include <string> using namespace std; //string g_sDatentyp; //bool b_OK; class ver_ent { public: string ver(); string ent(); };
nun habe ich ein projekt mit der DLL Datei gemacht ich konnte auch alles verwenden bis auf die Klasse Ver funktion ver!Code cpp:1 2 3 4 5 6
#include <Ver.h> string ver_ent::ver() { Beep(200,200); }
Was mache ich falsch****
Danke MFGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
Hi
wo ist das declspec?
-
08.08.11 16:11 #3
In einer andere Datei
Der aufbau der Dll ist der hier:
TestDLL.cpp = Eingie wichtige sachen
TestDLL.h = declspec ( also noch mehr mit Präprozesoor usw) danach kommen noch einige includes:
Und in meine Testprogramm ist dann nur die libs gelinkt usw und halt #include<TestDLL.h> wo dann auch direkt nach #pragma once declspec kommtCode cpp:1 2 3 4 5 6 7 8 9 10 11 12
#pragma once #ifdef TEST_EXPORTS #define TEST_API __declspec( dllexport ) #else #define TEST_API __declspec( dllimport ) #endif //Präprozessor ist richtig! ... ... ... #include "Ver.h"
MFG DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
In einer anderen Datei...

Ist dir klar, was dieser Block tut?Code cpp:1 2 3 4 5
#ifdef TEST_EXPORTS #define TEST_API __declspec( dllexport ) #else #define TEST_API __declspec( dllimport ) #endif
Solange du nirgends TEST_API und TEST_EXPORTS hinschreibst, tut der gar nichts.
Du musst vorschon TEST_API schreiben.Code cpp:1
class ver_ent
Wie hast du denn das Ganze bisher mit klassenlosen Funktionen gemacht?
Und falls du es noch nicht hast: In den Projekteinstellungen der DLL muss TEST_EXPORT definiert werden.
Gruß
-
08.08.11 17:16 #5
Oh hehe stimmt

Aber jetzt habe ich es ergänzt:
Ver.h
Ver.cpp keine änderungCode cpp:1 2 3 4 5
class TEST_API ver_ent { public: string ver(); };
und trotzdem bekomme ich: ver nichtdeklarierter bezeichner!
Danke
EDIT:
Test Exports ist definiert also der untere Code abschnitt ist ausgeblendet (in msvc++ 2010)Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
08.08.11 17:31 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Einmal fehlt in deiner Methode ein return.
Dann zeig mal den Code wo du ver_ent verwendest.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hmm...willst du mal das Ganze als Zip raufladen?
-
08.08.11 17:35 #8
Hallo
Eigentlich fehlt kein return bei anderen gings ja auch!
ver_ent verwende ich in Main.cpp(ist ein anderes projekt wo die Dll hinzugelinkt ist) und dort einfach den #include um alle Headerdateien einzubinden und dann einfach ver();
und ver ist in Ver.cpp als string ver();
DankeFehlermeldung bitte!
Google - Dein Freund und Helfer
-
08.08.11 17:49 #9
Als zip ist das ganze zu groß denn die komplette DLL hängt noch von einer GameEngine ab nunja und die hat schon bissl code!
MFGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
08.08.11 18:26 #10
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Es fehlt definitiv ein return, da die Methode einen std::string zurückgeben muß.
Was schwafelst du da?
Ist es denn zuviel verlangt 3 Zeilen Code zu zeigen?
Statt Code zu posten wo man nur mal kurz draufblicken muß, schreiben alle Esays wo dann niemand wirklich weiß wie der Code aussieht. Von der folgenden Diskussion warum das alles schon OK wäre und der Code ja gar nicht fehlerhaft sein kann ganz zu schweigen.
http://www.tty1.net/smart-questions_de.html
Du machst vermutlich einfach etwas falsch.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
08.08.11 18:26 #11
OOKKKK also ich versteh die Welt nicht mehr ich habe es jetzt mal in der Main so ausprobiert:
und welch ein wunder es BeeptCode cpp:1 2
ver_ent v; v.ver();


aber warum geht ds nur so****?
Danke MFGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
08.08.11 18:28 #12
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
08.08.11 18:34 #13
@deepthroat was soll ich den posten fürn Code les mal durch alle Datein sin gepostet und wenn ihr wirklich die komplette DLL haben wollt gibts nett

naja das du gleich so aggresiv bist -.-
liegt wohl an mir naja -.-
Danke
@deepthroat Thread 2:
Wie ist C++? bei anderen klassen mach ich auch einfach nur Init Exit() usw und die sehen genauso aus und gehen anderst
OMG Ich bin echt verwirrt******
MFGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
08.08.11 18:45 #14
Sry tread mit post verwechselt -.-
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
Hallo,
wo hast den den TEST_EXPORT genau definiert? Es müsste entweder in den Projekteinstellungen der DLL sein, oder in der ver.cpp.Test Exports ist definiert also der untere Code abschnitt ist ausgeblendet (in msvc++ 2010)
Dem kann ich nur zustimmen, da der C++ Standart vorschreibt das jede Methode die nicht void ist ein return-Statement enthalten muss. Da deine Methode offensichtlich eine string zurückgeben soll, muss auch irgendwo ein return mit einem String stehen.Einmal fehlt in deiner Methode ein return.
Ähnliche Themen
-
Properties in Klassen mit geerbten abstrakten Klassen
Von Razorhawk im Forum .NET CaféAntworten: 4Letzter Beitrag: 11.07.07, 14:35 -
C# und C++ DLLs
Von sirvival im Forum .NET CaféAntworten: 17Letzter Beitrag: 01.11.06, 09:49 -
Abstrakte Klassen und Objekte von andere public Klassen
Von Sirakov im Forum JavaAntworten: 2Letzter Beitrag: 05.07.06, 14:55 -
Dlls
Von Cirrizt im Forum Delphi, Kylix, PascalAntworten: 2Letzter Beitrag: 05.11.04, 08:29 -
C++ DLLs in VB
Von Zorck im Forum C/C++Antworten: 8Letzter Beitrag: 21.01.03, 19:31





Zitieren



Login






