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 ein

    sis_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 ein

    sis_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. Aber sis_Open scheint das Handle nur als Input aufzunehmen. Ist das so?
    Ist in der Doku zu der SDK ein Beispiel beschrieben, wie man sis_Open aufruft?



  • Danke für die schnellen Antworten.

    Es lag wirklich an der Treiber Installation auf dem Entwicklungsrechner.


Log in to reply