www.mikrocontroller.net

Forum: PC-Programmierung Dll für VC6 erneut umsetzen, in VC2k3 nutzen ohne alte Inputs


Autor: Linker quähler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich habe ein kleines Problem und würde mich freuen wenn ihr mir helfen 
könntet.

Also, ich nutze erst ein mal Microsoft VC2k3. Ich möchte Can Module 
Ansprechen, Can-Botschaften liegen im Vector *.dbc Format vor.
Habe von Vector eine Schittstelle dabei, die mir erlaubt die Botschaften 
auszulesen, anzusprechen, wenn Sie ein mal in der *.dbc definiert sind.

Problem 1:
Der Code von Vector, besteht aus 3 Headers mit Lib und Dll.
Möchte ich dieses in VC2k3 nutzen, erhalte ich Linker Errors. Analyse 
ergab das vom Sprung von VC6 auf VC2k3 das Händling mit den Iteratoren 
anders ist.

Lösung: Nutze VC6

Eigentliches Problem:
Ich habe in VC6 einen Wrapper geschrieben, ich erstelle eine Instanz der 
Klasse von Vector und reiche die Funktion einfach nur durch.
Die Dll wird erstellt und zum Schluss habe ich aus den 3 Vector Dateien 
einen Wrapper.

Mein Wrapper ist einfach nur eine neue Klasse, welche die gleichen 
Methoden besitzt (anders geschrieben) und einfach nur die alte Klasse 
zum ausführen nutzt.

Rufe ich jetzt eine Methode des Wrappers auf, möchte dieser die alten 
*.lib Dateien von Vector. Womit dann VC2k3 wieder Probleme bekommt.

Warum möchte mein Linker noch ein mal diese alten *.lib

Wie bekomme ich den Linker dazu die Funktionen komplett in meine 
Wrapper-Klasse zu übernehmen. Wenn ich schon eine Instanz der Vector 
Klasse erstellt habe und die Funktionen darin nutze, und dies einfach 
durchreiche. Ist es ja schon gelinkt und VC2k3 sollte keine Probleme 
mehr haben.

Habe ich etwas anderes nicht bedacht? Es tut mir leid das ich keinen 
Code Posten kann, aber das Vector-Kram unterliegt Lizensen. Und damit 
Spaßen die bestimmt nicht.

Falls ich etwas vergessen habe, einfach fragen, bin für Hilfe dankbar 
und lerne gern.

Gruß.

Autor: -- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VC6 DLLs sind nicht binärkompatibel zu vc7/8.
die .net Umstellung... .

In >= vc7 neu kompilieren oder neu.

Gruß

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Sofern die DLLs mit C-linkage angesprochen werden können, also 
keine dekorierten Symbolnamen verwenden, ist es vollkommen wurscht, mit 
welchem Compiler sie erstellt wurden, sie lassen sich selbstverständlich 
auch mit neueren VC-Versionen ansprechen.
Bei C++-DLLs (also welchen mit dekorierten Namen) sieht das schon ganz 
anders aus, auch bei DLLs, die die MFC nutzen. Denn die ist/sind, obwohl 
schon oft totgesagt, weiterentwickelt worden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.