Library für Kamera Fernsteuerung.

Anfängerfragen zum Programmieren mit PureBasic.
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Ich besitze die Kamera EX-F1 von Casio.
Damit lassen sich unter anderem Slowmotion Videos drehen mit bis zu 1200fps.

Nun wäre es natürlich schön, wenn man diese Kamera mit Purebasic fernsteuern könnte.
Jens Skovgaard Olsen hat auf der Seite http://code.google.com/p/exf1ctrl/ bereits etwas funktionierendes in C Programmiert.
Der Sourcecode ist offen, doch leider kann ich mit C nicht sehr viel anfangen.

Wie ich sehe gibt es da eine "exf1api.c" welche alle Funktionen beinhaltet, welche ich gerne in PureBasic hätte.

Nun meine Frage:
Wäre es nicht möglich aus dieser "exf1api.c" eine dll zu kompilieren, um in PureBasic darauf zuzugreifen?
Ich denke das sollte kein grosser aufwand sein, da ja alles bereits programmiert ist.
Wer kann das machen? Wäre jemand hier bereit dazu?

Ich und viele EX-F1 Benutzer wären sehr dankbar.

Grüsse aus der Schweiz
Gregi
Benutzeravatar
Tur0k
Beiträge: 187
Registriert: 16.02.2009 21:41
Computerausstattung: 4.00 GB RAM, 2x 2.20Ghz, 340GB+500GB

Re: Library für Kamera Fernsteuerung.

Beitrag von Tur0k »

Unter exf1ctrl\lib\ ist eine Library (libexf1.lib) ... die kannst du doch mit PureBasic hoffentlich verwenden :)
buuh* :D
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Re: Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Hallo Tur0k

Hmm, wusste gar nicht, was .lib Dateien sind. Ich dachte zuerst dass es nur dll's gibt.

Wie ich sehe, muss ich die Library mit "Import" einlesen.
Doch irgendwie schaffe ich es nicht, ich kriege immer eine Fehlermeldung.

So sieht der Sourcecode der libexf1.lib aus: http://code.google.com/p/exf1ctrl/sourc ... /libexf1.c
Wie habe ich denn das zu bewerkstelligen?

Kann mir da einer eine Beispiel anhand der ersten Funktion

Code: Alles auswählen

void exf1Cmd(WORD cmd, ...)
geben?
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Library für Kamera Fernsteuerung.

Beitrag von TomS »

Und wie lautet diese Fehlermeldung? :roll:

Code: Alles auswählen

Import "libexf1.lib"
efx1Cmd(cmd.w)
EndImport
Das soll's schon gewesen sein.
Du musst halt die Konstanten aus der exf1.h Datei nach PB übernehmen.

Code: Alles auswählen

#CMD_GET_DEVICE_INFO = "%1001"
#CMD_OPEN_SESSION  = "%1002"
#CMD_CLOSE_SESSION  = "%1003"
#CMD_GET_STORAGE_IDS = "%1004"
;usw....
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Re: Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Hmm, egal was ich probiere, ich erhalte immer folgenden Error:

Code: Alles auswählen

POLINK: error: Unresolved external symbol '___security_cookie'.
POLINK: error: Unresolved external symbol '@__security_check_cookie'.
POLINK: fatal error: 2 unresolved external(s).
hier steht irgendwas, dass etwas im Compiler hätte deaktiviert werden müssen: http://blogs.msdn.com/b/nikolad/archive ... piler.aspx

Ähm, müsste also die "libexf1.lib" neu(korrekt) kompiliert werden bevor ich weitermachen kann?
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Re: Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Die Library wurde nun neu kompiliert, mit ausgeschaltetem Security Cookie.

Nun versuchte ich folgenden Code:

Code: Alles auswählen

Import "libexf1.lib"
usbGetStatus()
EndImport
usbGetStatus()
Doch nun erhalte ich folgende Fehlermeldung:
POLINK: error: Unresolved esternal symbol '_usbGetStatus'.
POLINK: fatal error: 1 unresolved external(s).
Was sagt mir das nun?
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Re: Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Hat niemand eine Idee?
Benutzeravatar
grapy
Beiträge: 108
Registriert: 09.09.2004 09:05

Re: Library für Kamera Fernsteuerung.

Beitrag von grapy »

Schon

Code: Alles auswählen

ImportC
probiert?
swissgregi
Beiträge: 16
Registriert: 31.01.2011 12:23

Re: Library für Kamera Fernsteuerung.

Beitrag von swissgregi »

Ja, der Import Befehl scheint nicht das Problem zu sein.
Die Fehlermeldung kommt erst beim aufrufen der Funktion.
Antworten