2009-11-10 10 views
5

Ich habe eine VS 2005-Lösung, die zahlreiche Projekte (die meisten sind DLL, 1 EXE, die ein CppUnit-Projekt ist) und ich versuche, eine feste Back-End-DLL hinzuzufügen für den Pantheios-Logger, damit ich eine einzige Logger-Instanz in der gesamten Lösung verwenden kann. Im Anschluss an die Anweisungen aus der folgenden URLs:Erstellen einer festen Back-End-DLL für Pantheios Logger

Ich scheine eine feste Back-End-DLL zu haben, das Basisprotokoll Aussagen Pantheios unterstützt z.B. log_DEBUG, log_ERROR etc. und sogar die Tracing API (http://www.pantheios.org/doc/html/group__group____tracing.html), z.B. PANTHEIOS_TRACE_NOTICE.

Aber ich bin nach vorne stecken zu gehen, weil Pantheios „Inserter“ erfordert (ein API-Grundtypen in String zu konvertieren) (http://www.pantheios.org/doc/html/group__group____application__layer__interface____inserters.html) zum Beispiel int zu handhaben, Doppel-, Schwimmer, Zeiger usw.

ich nicht wissen, wie diese "Einfüger" in der von mir erstellten festen Back-End-DLL implementiert werden. Wenn ich sie einfach von meinen anderen DLLs rufen dann bekomme ich einen Fehler wie folgt aus:

DLLApp.obj : error LNK2019: unresolved external symbol "public: __thiscall pantheios::integer::integer(int,int)" ([email protected]@@[email protected]@Z) referenced in function "public: void __thiscall DLLApp::DLLAppSetup(void)" ([email protected]@@QAEXXZ)

Ich bin nicht sicher, wenn ich kann (und muss) exportieren „integer“ (und andere Inserter) Klasse Verwenden Sie die .DEF wie im Artikel von sourceforge.net erwähnt ODER wenn es etwas anderes fehlt.

Jede Hilfe würde am meisten geschätzt werden. Danke im Voraus.

+0

Ist diese Frage schwer zu beantworten? Oder nicht ein häufig anzutreffendes Szenario? Oder vielleicht nicht richtig gefragt? Kommentare/Vorschläge sind sehr willkommen. Danke im Voraus. – ossandcad

+0

Vielleicht ist es auch abseits der ausgetretenen Pfade. Hast du versucht, das Pantheios-Projekt zu fragen? – dcw

+0

Ich habe das Pantheios-Projekt unter http://sourceforge.net/projects/pantheios/forums/forum/647484/topic/1639420 gefragt, bevor ich hier gepostet habe. Matt (der Autor) ist normalerweise sehr gut darin, Antworten zu veröffentlichen, hat aber (noch) keine meiner Fragen beantwortet. Ich nehme an, es ist zu abgelegen - obwohl ich angenommen hätte, dass die Verwendung eines einzelnen Loggers über mehrere DLLs üblich gewesen wäre. – ossandcad

Antwort

1

Ändern Sie auf der Projekteigenschaftenseite den Zeichensatz "Multi-Byte-Zeichensatz verwenden"

+0

Könnten Sie vielleicht Ihre Antwort erweitern? Ich bin mir nicht sicher, wie die Änderung des Zeichensatzes es ermöglicht, die Integer-Abhängigkeit zu erfüllen. Auch neuere Versionen von Pantheios unterstützen den breiten Zeichensatz (in VS-Fall, Unicode oder wchar_t). – ossandcad

+0

Rechtsklick zum Projekt, Eigenschaften> Konfigurationseigenschaften> Allgemein> Zeichensatz> Verwenden Sie Multi-Byte-Zeichensatz –

+0

Ich sollte mich entschuldigen. Ich wollte nicht fragen, wie man den Zeichensatz ändert? Ich wollte fragen: "Wie hilft es?", Da die Klasse fehlende Zeichen nicht erwähnt. – ossandcad

Verwandte Themen