BCB5 und wsprintfW
-
Hallo Forum
Ich erhalte beim kompilieren meines Quellcodes einen Fehler mit dem ich gar nichts anfangen kann.
E2451 Undefined symbol 'wsprintfW_instead_use_StringCbPrintfW_or_StringCchPrintfW'Der Fehler bezieht sich auf die Zeile:
wsprintfW(wsz1, L"FilterGraph %08x pid %08x", (DWORD*)pUnkGraph, GetCurrentProcessId());Kennt jemand das Problem?
Forumsuche war erfolglos und google auch.Danke für jede Antwort.
-
Hallo
die fehlermedlung besagt das wsprintfW nicht bekannt ist.
Du hast das wohl falsch geschrieben, richtig muß es swprintf heißen, laut meiner BCB-Hilfe#include <stdio.h>
int sprintf(char *buffer, const char *format[, argument, ...]);
int swprintf(wchar_t *buffer, const wchar_t *format[, argument, ...]);bis bald
akari
-
Danke für die schnelle Antwort.
Die Header war bereits eingebunden.
Ich habe es auch schon sprintf und swprintf versucht.
Leider kommt immernoch die Fehlermeldung.
bei sprintf:
E2451 Undefined symbol 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA'bei swprintf:
E2451 Undefined symbol 'swprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW'harr
Vielleicht liegt es daran, daß ich ein VisualStudio Projekt mit dem BCB Tool Visual C++ Project Conersation Utility konvertiert habe?
Mfg Matthias
-
Hallo
scheint etwas mit der Konvertierung zu tun haben, denn die Befehle StringCbPrintfA,... sind anscheinend WinAPI-Befehle
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/strings/stringreference/stringfunctions/stringcbprintf.aspeventuell hilft es ja, wenn du statt sprintf bzw. swprintf die vorgeschlagenen WinAPI-befehle nimmst.
warum du aber die eigentlichen Funktionen nicht nutzen kannst, weiß ich nicht. Ist da irgend ein Makro aktiv?
bis bald
akari
-
Hmmm.. bei mir kompiliert deine Zeile fehlerfrei (auch ohne stdio). Vllt. könntest du mal ein wenig mehr Quelltext zeigen. Z.B. welche Header mit eingebunden werden.
-
Hallo Akari
Danke für deine Tipps
Die WinAPI Befehle soll/darf ich nicht nehmen.
Ich habe die Zeile betreffende Zeile ausdokumentiert, eine kleine Änderung in einer anderen Methode und nun läuft es. Nun gibt mein Programm zwar nur leer ErrorMessages aus, das ist im Moment aber egal.
Danke nochmals für deine Tipps.Mit den Makros bin ich mir nicht sicher. Wo kann ich nachprüfen welche Makros aktiv sind (verwende erst seit kurzem CBuilder)
Mfg Matze
-
Hallo
Mit den Makros bin ich mir nicht sicher. Wo kann ich nachprüfen welche Makros aktiv sind (verwende erst seit kurzem CBuilder)
Makros bzw. Präcompiler-Symbole sind C++ Answisung wie
#ifdef __BUILDING_THE_DLL #define __EXPORT_TYPE __export #else #define __EXPORT_TYPE __import #endifwas für eine Beeinflußung des Quellcodes vor den Kompilieren sorgt.
Deshalb meine Vermutuzng, dassprintf_instead_use_StringCbPrintfA_or_StringCchPrintfAein Makro oder das Ergebnis eines Makros ist.
Kannst ja mal mit Menü Suchen/In Dateien suchen nach einzelnen Teilen aus dem Ausdruck suchen lassen. Vielleicht findest du was.bis bald
akari
-
Hallo @ all
Hat sich erledigt. Der Fehler hatte mit der strsafe.h zu tun.
siehe http://www.microsoft.com/germany/msdn/library/net/visualstudio/CLaufzeitbibliothekenSichern.mspx
Trotzdem dank an alle.Mfg Matze