WinFuture-Forum.de: C++ Bibliothek Mit Visual C++ 2005 Express - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C++ Bibliothek Mit Visual C++ 2005 Express


#1 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 16. Oktober 2006 - 13:32

Sehr geehrte Forenbesucher, Forenbesucherinnen, sehr geehrte Mitglieder und Mitgliederinnen des Winfuture-Forums,

ich hab mal wieder ne dumme Frage, diesmal im Zusammenhang mit C++ : Mein Problem ist gerade, dass ich ein paar Klassn hab (.cpp und .h files) die ich gerne benutzen würde, ich aber nicht richtig weiss, wie ich diese Klassen zum Klassepfad hinzufüge (so nannte man das bei Eclipse). Man könnte wohl auch von einer Klassenbibliothek sprechen, die ich einbinden will und als API benutzen möchte. Diese Dateisammlung besteht aus mehreren Verzeichnissen, z.b. gibt es etliche verzeichnis mit header und cpp dateien und auch eins mit Beschreibung der Klassen. Mein Frage:

Wie füge ich diese Verzeichnisse zu einem Projekt hinzu um dann mit Ihnen zu programmieren ?

Besten Dank schonmal,
Euer plichel.


Hab grad keine Ahnung ob ich das Thema jetzt richtig platziert habe. Hab halt nix spezielles zu IDEs gefunden.

Dieser Beitrag wurde von plichel bearbeitet: 16. Oktober 2006 - 13:34

0

Anzeige



#2 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 16. Oktober 2006 - 18:14

falls mir jemand ein schönes buch über dieses IDE nennen könnte, werde ich mich auch freuen und dies in mit ein paar treffenden Dankesworten honorieren. am besten ein kostenloses Ebook. :rolleyes:
0

#3 Mitglied ist offline   LostGhost 

  • Gruppe: aktive Mitglieder
  • Beiträge: 295
  • Beigetreten: 18. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bremen
  • Interessen:Zocken, Programieren, Kino, Am Windows rumbasteln (nicht unbedingt in dieser Reihenfolge :-)

geschrieben 16. Oktober 2006 - 20:06

Für alle Projecte:
Menu -> Optionen -> Projekte und Projektmappen -> VC++-Verzeichnisse -> Verzeichnisse anzeigen fur: -> Includedateien

zusätzlich kannst du bei jedem c++-Projekt es auch getrennt einstellen:
ALT + F7 -> Konfigurationseigenschaften -> C++ -> Allgemein -> Zusätzliche Includeverzeichnisse
LostGhost

Eingefügtes Bild
0

#4 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 17. Oktober 2006 - 09:12

schönes Ding ! musste zwar noch ein bisschen Suchen, aber das lag wohl an meiner Unerfahrenheit. (Die Einstellung für "alle Projekte" ist bei mir nämlich unter Extras -> Optionen -> ...). Also nochmal Danke !

hm, aber noch mal kurz ne Frage: Ist es denn auch möglich, dass Visual Studio nicht nur in dem angebenen Verzeichnis nach Quellen sucht, sondern auch in allen Unterverzeichnissen ? Hab hier nämlich eine ausgeprägte Struktur an Verzeichnissen und Unterverzeichnissen - das ist mühsam, die alle einzeln anzgeben !! Oder gibt es noch einen anderen Weg ? z.b. ein Archiv erstellen ?

Dieser Beitrag wurde von plichel bearbeitet: 17. Oktober 2006 - 09:33

0

#5 Mitglied ist offline   LostGhost 

  • Gruppe: aktive Mitglieder
  • Beiträge: 295
  • Beigetreten: 18. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bremen
  • Interessen:Zocken, Programieren, Kino, Am Windows rumbasteln (nicht unbedingt in dieser Reihenfolge :-)

geschrieben 17. Oktober 2006 - 10:07

Beitrag anzeigenZitat (plichel: 17.10.2006, 10:12)

(Die Einstellung für "alle Projekte" ist bei mir nämlich unter Extras -> Optionen -> ...)
Bei mir eigentlich auch :)

Beitrag anzeigenZitat (plichel: 17.10.2006, 10:12)

hm, aber noch mal kurz ne Frage: Ist es denn auch möglich, dass Visual Studio nicht nur in dem angebenen Verzeichnis nach Quellen sucht, sondern auch in allen Unterverzeichnissen ? Hab hier nämlich eine ausgeprägte Struktur an Verzeichnissen und Unterverzeichnissen - das ist mühsam, die alle einzeln anzgeben !! Oder gibt es noch einen anderen Weg ? z.b. ein Archiv erstellen ?
Man gibt üblicherweise nur den Hauptordner bei "alle Projekte" an. und in der c++ Datei den Rest:

Zitat

#include <pfad\zur\header.h>
....

LostGhost

Eingefügtes Bild
0

#6 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 17. Oktober 2006 - 16:19

danke, LostGhost, für deine Hinweise.

Leider komme ich immernoch nicht so richtig zu recht. Das mit dem Hauptordner habe ich denke ich verstanden, aber trotzdem funzt es noch net so richtig. Ich habe den Eindruck, dass ich auch in den "third party" files, (ist das ne korrekte Bezeichnung ? oder kann ich sagen Klassenbibliothek ?) die includes anpassen muss.

Lass uns einmal folgende Situation betrachten:

ich include eine Header Datei mit:

#include "sdk\calvin_files\array\src\ArrayAudit.h"


so wie du mir das geraten hast. (Habe das Verzeichnis oberhalb von sdk in die Liste der zu inkludierenden Verzeichnise eingetragen). Dies hat nun bewirkt, dass die ArrayAudit.h gefunden wird. Allerdings habe ich in der ArrayAudit.h nun weitere includes:

#include "AffymetrixBaseTypes.h"
#include "AffymetrixGuid.h"
#include "Parameter.h"
#include "DateTime.h"


diese includes können nun wieder nicht aufgelöst werden. Dies ist irgendwo auch klar, da ja die Verzeichnisse nicht mit in der Liste stehen. Die Lösung würde also darin bestehen, nun alle Verzeichnisse anzugeben oder die Quellen entsprechend zu editieren, dass nun z.b.

#include "Pfad1/AffymetrixBaseTypes.h"
#include "Pfad2/AffymetrixGuid.h"
#include "Pfad3/Parameter.h"
#include "Pfad4/DateTime.h"


da drinne steht.

Dummerweise hab ich nun folgende Verzeichnisstruktur (der "third party" quellen):


sdk/
-----verz1/
------------unterverz1/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)
------------unterverz2/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)
------------unterverz3/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)
------------unterverz4/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)
------------unterverz5/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)
------------unterverz6/
-------------------------src/
-----------------------------verschiedene .h und .cpp files
-------------------------test/
-----------------------------verschiedene .h und .cpp files (zum Testen)


-----verz2/
------------verschiedene .h und .cpp files


Das heißt ich hab hier ne "schöne" Hierarchie an Ordnern und Unterordnern, die ich nicht unbedingt alle explizit benennen bzw. editieren möchte. Was schlägst du da vor ?
0

#7 Mitglied ist offline   LostGhost 

  • Gruppe: aktive Mitglieder
  • Beiträge: 295
  • Beigetreten: 18. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bremen
  • Interessen:Zocken, Programieren, Kino, Am Windows rumbasteln (nicht unbedingt in dieser Reihenfolge :-)

geschrieben 17. Oktober 2006 - 21:52

Da bleibt wirklich nichts anderes übrig als alle Ordner in "alle Projekte" hinzufügen. ;D

Welches Bibliothek macht denn solche Schwierigkeiten? wenns kein Geheimnis.

Dieser Beitrag wurde von LostGhost bearbeitet: 17. Oktober 2006 - 21:56

LostGhost

Eingefügtes Bild
0

#8 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 18. Oktober 2006 - 09:17

nö also ist kein geheimnis: is ne Bibliothek von Affymetrix (Biotechnologie Unternehmen, stellen Geräte und Software für die anfallenden Daten her), die nennen das Teil dann sogar SDK. Die kann auch jeder benutzen, der sich dort anmeldet. (Affymetrix Website)

... achso und der genaue Name lautet: affymetrix fusion SDK oder so ähnlich.

Dieser Beitrag wurde von plichel bearbeitet: 18. Oktober 2006 - 11:37

0

#9 Mitglied ist offline   LostGhost 

  • Gruppe: aktive Mitglieder
  • Beiträge: 295
  • Beigetreten: 18. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bremen
  • Interessen:Zocken, Programieren, Kino, Am Windows rumbasteln (nicht unbedingt in dieser Reihenfolge :-)

geschrieben 18. Oktober 2006 - 14:05

Habs mir runtergeladen.

Wenn *.cpp und *.h Dateien in einem Ordner befinden, dann gehören sie üblicherweise zu selben Projekt!
Ich habe Datei sdk\calvin_files\array\test\test.sln mit VC++2005 Express geöffnet:
Eingefügtes Bild

Trotzdem konnte ich es nicht compilieren da mir Datei <cppunit/extensions/HelperMacros.h> fehlt.
LostGhost

Eingefügtes Bild
0

#10 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 18. Oktober 2006 - 16:57

beim include gibts 2 Dinge

"Header-DAtei such im aktuellen Projektpfad" und <Header-DAtei> sucht in den suchpfaden

hast du die Datei überhaupt auf deiner Platte und ist der Pfad korrekt?
0

#11 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 18. Oktober 2006 - 17:08

... naja ich hab halt erstma nicht mit den test projekten angefangen, sondern dachte mir, dass ich nur die Klassen benutze, da ich mir mein eigenes Programm zusammenbasteln will. Demanch dann auch ein eigenes Projekt dafür anlegen muss.

Hab mal kurz im Web geschaut, die cppunit/extensions/HelperMacros.h ist bestandteil von cppunit ein Framework zum Testen, wies aussieht. Das sollte man sich dann noch extra beschaffen.

soweit so gut oder schlecht, ich hab jetzt ein Problem beim Linken, vielleicht hat da noch jemand nen Tipp auf Lager. Das Problem tritt immer dann auf, wenn ich eine bestimmte Header datei inkludiere (#include "ParameterNameValueType.h") Lass ich die weg ist alles schön. Grundsätzlich bin ich so vorgegangen, dass ich ein WindowsForm Projekt angelegt habe. Dabei hat MS VC++ gleich mal die stdafx.cpp und .h angelegt, in dieser .h datei inkludiere ich dann munter meine "externen" Klassen. Ist das soweit korrekt ?


Zitat

Verknüpfen...
stdafx.obj : error LNK2028: Nicht aufgelöstes Token (0A000019) ""public: __clrcall affymetrix_calvin_parameter::MIMEValue::MIMEValue(
class affymetrix_calvin_parameter::MIMEValue const &)" (?0MIMEValue@affymetrix_calvin_parameter@@$$FQAM@ABV01@@Z)", auf das in Funktion ""public: __clrcall affymetrix_calvin_parameter::ParameterNameValueTyp
e::ParameterNameValueType(class affymetrix_calvin_parameter::ParameterNameValueTyp
e const &)" (?0ParameterNameValueType@affymetrix_calvin_paramete
r@@$$FQAM@ABV01@@Z)" verwiesen wird.

stdafx.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __clrcall affymetrix_calvin_parameter::MIMEValue::MIMEValue(
class affymetrix_calvin_parameter::MIMEValue const &)" (?0MIMEValue@affymetrix_calvin_parameter@@$$FQAM@ABV01@@Z)" in Funktion ""public: __clrcall affymetrix_calvin_parameter::ParameterNameValueTyp
e::ParameterNameValueType(class affymetrix_calvin_parameter::ParameterNameValueTyp
e const &)" (?0ParameterNameValueType@affymetrix_calvin_paramete
r@@$$FQAM@ABV01@@Z)".

C:\Dokumente und Einstellungen\user\Eigene Dateien\Visual Studio 2005\Projects\Affymetrix_Fusion_SDK\Debug\Affi_test.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.


Sieht für mich so aus, als ob ein Zeichen (=Token ?) nicht verarbeitet werden kann, oder ?
Dann entspricht public: __clrcall affymetrix_calvin_parameter::ParameterNameValueTyp
wahrscheinlich der klasse parameter im paket affymetrix/calvin und dort gibts dann ne Methode wo besagtes Zeichen vorkommt bzw. referenziert wird, oder wie ?



Eine weitere Sache ist noch, dass ich in der Klasse Form1.h (ebenfalls von VC++ automatisch angelegt) nicht auf meine Hauptklasse, die ebenfalls von der IDE erstellt worden ist und nach meinem Projektnamen benannt wurde, zugreifen kann. In dies Hauptklasse, ich nenn sie jetzt mal main_projekt.cpp ist z.b. die main Mthode enthalten:

[STAThreadAttribute]
int main(array<System::String ^> ^args) { ..}


In dieser Klasse hab ich mir nun noch eine weitere Methode definert, mit der ich dann ein paar "berechnungen" durchführen will. diese Methode nennen wir mal calc_somthing und ich habe sie wie folgt definiert:

bool calc_somthing(System::String^ FileName) {
	MessageBox::Show(FileName);
	return true;
}


Leider kann ich diese Methode nicht von Form1.h aus aufrufen. Dies halte ich momentan aber für notwendig, da ja in Form1.h alle Ereignisse wie z.b. mit Maus geklickter Button verarbeitet werden. (Zumindest generiert mir der Designer entsprechende Methoden die ausgeführt werden, wenn ich den entsprechenden Button drücke.)

Thanks in advance,
plichel

Dieser Beitrag wurde von plichel bearbeitet: 18. Oktober 2006 - 23:24

0

#12 Mitglied ist offline   plichel 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 09. Oktober 06
  • Reputation: 0

geschrieben 19. Oktober 2006 - 08:45

... hab nochmal kurz nachgeschaut: (zum ersten Problem)

es gibt 2 Dateien ParameterNameValueTyp.h und .cpp in ParameterNameValueTyp.h ist u.a. auch eine Klasse selbigen Namens definiert. Konnte dort aber nix auffälliges Finden. Hat jemand ne Idee wonach ich dann eigentlch suchen muss ? Bzw. was mir die Fehlermeldung sagt ? Denn blöderweise gibt der Linker auch keine Zeilennummer an ...

Dieser Beitrag wurde von plichel bearbeitet: 19. Oktober 2006 - 08:46

0

#13 Mitglied ist offline   LostGhost 

  • Gruppe: aktive Mitglieder
  • Beiträge: 295
  • Beigetreten: 18. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bremen
  • Interessen:Zocken, Programieren, Kino, Am Windows rumbasteln (nicht unbedingt in dieser Reihenfolge :-)

geschrieben 19. Oktober 2006 - 09:16

Wie es aussieht hast du ein .Net Framework Projekt gestartet (Windows.Form). Da kannst du den C++ (affymetrix) mit Managed-C++ (.Net Framework) nicht ohne weiteres "mischen".

Es ist aber nicht unmöglich !! In der Doku steht alles was dafür nötig ist, um von .Net Framework auf C++ zuzugreifen und umgekert.
LostGhost

Eingefügtes Bild
0

#14 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 19. Oktober 2006 - 17:35

Das ist ja schon fast irritierend. VisualC 2003 unterstützte ausschließlich C++/CLR und C++/Mixed, das als Managed-C++ bekannte C++/Pure gibt's erst seit VisualC 2005 und man muss sich schon gehörig anstrengen, um eben nicht in C++/Mixed zurückzufallen.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0