Kamera initialiesierung: Kompilierung OK, dann BlueScreen
-
ich möchte auf eine Kamera zugreifen und diese initialisieren.
Dazu habe ich in MS Visual Studio c++ ein Project erstellt, die Libary der des Kamera SDKs eingebund und den dazugehörigen header SisApi.h verlinkt.
Zur Initialisierung soll der Funktion laut SDK sis_open() ein int Wert für die BoardNummer und LPCSTR mit dem Config file übergeben werden.
#include <iostream> #include <string> #include <Windows.h> #include <direct.h> #include "SisApi.h" #define _CRT_SECURE_NO_WARNINGS using namespace std; int main(){ int nSIShandle = 0; SISERROR siserror; siserror = sis_Open(nSIShandle, "C:\\SIS-SDK\\bin\\SisDemo.ccf"); if (siserror == SIS_ERROR_CAMCONFIG) cout << "SIS_ERROR_CAMCONFIG" << endl; else if (siserror == SIS_ERROR_WRONGHANDLE) cout << "SIS_ERROR_WRONGHANDLE" << endl; else if (siserror == SIS_ERROR_WRONGPARAMETER) cout << "SIS_ERROR_WRONGPARAMETER" << endl; else if (siserror == SIS_ERROR_NOTINIT) cout << "SIS_ERROR_NOTINIT" << endl; }
Ich bin in der Lage das Programm zu kompilieren, jedoch stürzt beim Ausführen der PC mit einem BlueScreen ab. Ist die die Art wie ich den Pfad an die sis_open übergebe falsch?
Danke für eure Hilfe
Uli
-
oo-lee schrieb:
Ist die die Art wie ich den Pfad an die sis_open übergebe falsch?
Das kann dir nur die Doki der Kamera-API sagen. Hier wirst du mit ziemlicher Wahrscheinlichkeit niemanden finden, der sich damit auskennt. Mit Standard-C++ hat das auf jeden Fall recht wenig zu tun...
-
prüfe nach, ob Dein Programm mit UNICODE-Einstellung generiert wird, falls ja, musst Du ein L vor den String stellen.
Oder besser gleich einsis_Open(nSIShandle, TEXT("C:\\SIS-SDK\\bin\\SisDemo.ccf") );
wenn's dann nicht geht, so melde Dich nochmal
-
Werner_logoff schrieb:
prüfe nach, ob Dein Programm mit UNICODE-Einstellung generiert wird, falls ja, musst Du ein L vor den String stellen.
Oder besser gleich einsis_Open(nSIShandle, TEXT("C:\\SIS-SDK\\bin\\SisDemo.ccf") );
wenn's dann nicht geht, so melde Dich nochmal
nein - passt nicht; ist ja ein LPCSTR und kein LPCTSTR. Die String-Übergabe ist korrekt, TEXT() wäre falsch.
Dann prüfe mal nach, ob der Treiber installiert ist und was mir sonst noch einfällt ist: das Handle
nSIShandle
wird mit 0 vorbelegt. Im Allgemeinen benötigt man einen Funktion, die ein Handle liefert. Abersis_Open
scheint das Handle nur als Input aufzunehmen. Ist das so?
Ist in der Doku zu der SDK ein Beispiel beschrieben, wie mansis_Open
aufruft?
-
Danke für die schnellen Antworten.
Es lag wirklich an der Treiber Installation auf dem Entwicklungsrechner.