5Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
701
701
EMPFEHLEN
-
Hallo Leute,
bin ja nicht so der C/C++ Profi, da ich sonst andere Sachen Code.
Aber ich soll ein Programm erstellen was per Zufall aus einem Ordner voller Videos welche auswählt, zufällige 30 Sekunden des Videos spielt, und dann bei einem anderen Video weiter macht.
Ich muss jetzt einfach einen Befehlszeilenbefehl erstellen und ausführen.
Mit vlc sieht das wie folgt aus:
Code :1 2 3
vlc.exe --fullscreen --loop "D:\MOVIES\filme\video pro of.avi" :Start-time=100 :Stop-time=110 "D:\MOVIES\filme\death proof.avi" :Start- time=120 :Stop-time=130
Zum Einstellen des ganzen benutze ich ein config.ini
Code :1 2 3 4 5 6 7
vlc="C:\Programme\VideoLAN\VLC\vlc.exe" delay=30 video_count=10 video_path="D:\videos"
delay ...er spielt 30 sekunden
video_count .... 10 Videos werden per Zufall gewählt (also in Summe 300 Sekunden)
Ich denke der rest ist selbst erklärend.
Ich benutze VC Express 2008 und fürs parsen der config.ini http://sourceforge.net/projects/libini
Alle Files sind im Projekt Ordner die libini.lib libini.dll und die libini.h.
Möchte jetzt eigentlich nur einmal die 4 Werte parsen.
Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include "libini.h" #include <iostream> #include <String> using namespace std; int main(int argc, char** args) { //Read config file - config.ini int delay, video_path; ini_fd_t fd; fd = ini_open("./config.ini"); //Ret = ini_locateHeading(fd, "Section"); // Ret = 0 delay = ini_locateKey(fd, "delay"); video_path = ini_locateKey(fd, "video_path"); cout << delay << endl; return 0; }
Fehler:
Code :1 2 3
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_ini_locateKey" in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_ini_open" in Funktion "_main". 1>D:\workspace\visual_i\visual\Debug\visual.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
Ich habe im VC2008 auch den Ordner wo das .lib ist bei den Bibliothekspfaden angegeben. (aber nachdem es im selben Ordner ist, sollte das doch egal sein)
Bin wie gesagt nicht so der C checker, Code sonst benutzerfreundlichere Sprachen
Wäre echt super wenn mir da jemand ein bisschen auf meinem Weg helfen könnte.
lg und danke für alle Infos
Darian
-
23.11.09 21:40 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Du mußt die .lib Datei in den Projekteigenschaften unter Linker-> zusätzliche Abhängigkeiten eintragen.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo und danke für die Antwort, ich habe sie eingetrage:
libini.lib und der Ordner mit den Files ist auch noch allgemein bei den Bibliotheksdatein eingetragen.
Aber noch der selbe Fehler. Hättest du bitte noch weitere infos. Was mache ich falsch?
thx und lg
Darian
-
25.11.09 08:06 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Definiere das Makro LIBINI_DLL_IMPORT bevor du die libini.h einbindest. Entweder in den Projekteinstellungen oder in der .cpp Datei:
GrußCode cpp:1 2
#define LIBINI_DLL_IMPORT #include "libini.h"
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo,
der Anfang sieht jetzt so aus:
Code :1 2 3 4 5 6
#define LIBINI_DLL_IMPORT #include "libini.h" #include <iostream> #include <String> using namespace std;
Fehler:
Code :1 2 3
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ini_locateKey" in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ini_open" in Funktion "_main". 1>D:\path\to\i\trunk\visual_i\visual\Debug\visual.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
Sorry, aber leider funktioniert da sonst auch noch irgendwas nicht.
Habe jetzt sogar zur Sicherheit mal ein Bild angehängt
Nur um eventuell blöde kleine Fehler auszumerzen, und auf Nummer sicher zu gehn...
lg Darian
-
27.11.09 08:07 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Du mußt noch zusätzlich das Makro _WINDOWS definieren bevor du die libini.h Datei einbindest.
Gruß
PS: Übrigens, sehr schöne Problembeschreibung mit Quelle was du runtergeladen hast, mit vollständigem Minimalbeispiel und Fehlermeldung. So sollte das aussehen.
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo, und danke dir, jetzt kompiliert es schon. Das nächste mal weiß ich schon worauf ich in der .h sehen muss, damit ich es selbst hinkriegen würde.
Leider bekomme ich jetzt immer nur ein 0 zurück. Würde mich noch über ein paar Infos freuen, brauchbare Beispiele geschweige den eine Doku habe ich nicht wirklich gefunden.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#define _WINDOWS #define LIBINI_DLL_IMPORT #include "libini.h" #include <iostream> #include <String> #include <windows.h> using namespace std; int main(int argc, char** args) { //Read config file - config.ini int delay; ini_fd_t fd; fd = ini_open("./config.ini"); //Ret = ini_locateHeading(fd, "Section"); // Ret = 0 delay = ini_locateKey(fd, "delay"); //video_path = ini_locateKey(fd, "video_path"); cout << delay << endl; system("PAUSE"); return 0; }
thx und lg
Darian
-
06.12.09 16:04 #8
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo jetzt funktioniert alles.
Danke für deine Hilfe.
thx und lg
Darian
-
Bin jetzt gerade dabei die Videos aus dem Ordner per Zufall auswählen zu lassen.
Ich habe mich für eine Lösung mit FindFirstFile entschieden. Leider kriege ich immer nur komische Sachen zurück. So in der Art => 0012FCE8
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HANDLE fHandle; WIN32_FIND_DATA wfd; fHandle=FindFirstFile((LPCWSTR)video_path,&wfd); do { if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) { if (wfd.dwFileAttributes & FILE_ATTRIBUTE_NORMAL) { cout << wfd.cFileName << endl; } } } while (FindNextFile(fHandle,&wfd)); FindClose(fHandle);
Möchte mir gerne per Zufall eine bestimmte Anzahl aussuchen, Diese zu einem Befehl zusammen bauen, und mit _popen() den Befehl ausführen. Fertig!
Zur Info: cFileName ist ein TChar was wiederrum ein normaler char ist => typedef char TCHAR;
Was da genau los ist weiß ich nicht, irgendwie kommt mir das Win Zeug sowieso komisch vor.
Was mache ich also falsch?
thx und lg
Darian
-
15.12.09 14:42 #11
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Das ist nur so falls weder UNICODE noch MBCS definiert ist.
Standardmäßig ist UNICODE definiert und dann entspricht ein TCHAR einem wchar_t.
Falls du bei solchen Funktionsaufrufen casten mußt, dann machst du etwas falsch.Code c:1
fHandle=FindFirstFile((LPCWSTR)video_path,&wfd);
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo,
danke für die Infos das Programm funktioniert jetzt und ist fertig.
thx und lg
Darian
Ähnliche Themen
-
Fehler mit dem DDEX Provider Tool
Von marciboy im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 20.02.10, 20:02 -
SWT Tool
Von Kico_One im Forum JavaAntworten: 0Letzter Beitrag: 03.03.09, 12:12 -
PEN TOOL die 2te....
Von twoo im Forum PhotoshopAntworten: 8Letzter Beitrag: 10.08.05, 13:20 -
Rrd Tool
Von Thundernail im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 09.12.04, 20:32 -
Tool zur automatischen Quellcode Erstellung mit kleinem Fehler
Von kendaric im Forum PHPAntworten: 2Letzter Beitrag: 12.08.04, 08:39





Zitieren

Login






