Hersteller SDK zur kommunikation mit einer Kamera ruft Compilererror error C2059: syntax error : 'if' hervor.
-
Hallo,
habe ein Testskript der Hersteller SDK via Copy und Paste einfach mal kompilieren wollen.
#include "VCamServer.c" #include "VCamServer.h" IVirtualCam* pVirtualCam; // Initialize COM library HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); if (FAILED(hr)) //if initialization fails then exit { AfxMessageBox("Failed to initialize COM library"); } pVirtualCam = NULL; //create the com hr = CoCreateInstance( CLSID_CVirtualCam, NULL, CLSCTX_LOCAL_SERVER ,IID_IVirtualCam, (void**) &pVirtualCam);Fehlercode: error C2059: syntax error : 'if'
Was kann den bitteschön an if falsch sein? Ich denke nicht das der Fehler davon ausgelöst wird. Hat von euch jemand eine Idee?Wenn ich ab Zeile 8 auskommentiere funktionierts.
Danke
-
abrissbirne schrieb:
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); if (FAILED(hr)) //if initialization fails then exit { AfxMessageBox("Failed to initialize COM library"); }Ersetze mal das FAILED(hr) durch
((HRESULT)(hr)) < 0Wenn es dann funktioniert, dann hast Du ein Problem mit dem Makro FAILED. Vielleicht irgendein #include vergessen?
-
Ist auch nochmal in der MSDN sehr schön zu finden:
http://msdn.microsoft.com/en-us/library/ms693474(VS.85).aspxEDIT:
Kommt aus der Winerror.h, vielleicht vergessen zu inkludieren?
-
Danke schonmal für eure Vorschläge. Winerror.h hab ich inkludiert und auch FAILED durch ((HRESULT)(hr)) < 0 zu ersetzen führt nicht zur Lösung. Fehlermeldung bleibt die gleiche.
-
#include "VCamServer.h"-> hier ne klammer oder nen semikolon vergessen? irgend so etwas in der richtung wird es sein
bb
PS:
#include "VCamServer.c"warum includierst du ne *.c datei? Oo
-
Wie wäre es, wenn du mal die iostream inkludieren würdest?^^
-
Was kann den bitteschön an if falsch sein? Ich denke nicht das der Fehler davon ausgelöst wird. Hat von euch jemand eine Idee?
Wenn ein Syntaxerror vorliegt, heißt das dass schon der Parser aussteigt. Wenn der Syntaxerror an einer Stelle ist, wo eigentlich alles in Ordnung ist, dann hats vorher irgendwo einen Fehlergegeben und der Parser hat sich in einem falschen Zustand noch ein Stück weiterschleppen können bevor er dann beim if ganz aussteigt. Der Fehler dürfte irgendwo im HRESULT oder COINIT_MULTITHREADED-Makro liegen. Lass mal nur den Präprozessor drüberlaufen und schau dir dessen Ausgabe an (vorsicht, könnte wegen der #includes recht lang sein).