Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 19:26

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Welches OS benutzt Du?
Umfrage endete am Di Aug 22, 2006 15:50
Windows 63%  63%  [ 26 ]
Linux 17%  17%  [ 7 ]
Sonstige 0%  0%  [ 0 ]
Windows & Linux 20%  20%  [ 8 ]
Abstimmungen insgesamt : 41
Autor Nachricht
 Betreff des Beitrags: Ein Herz für Pinguine
BeitragVerfasst: Di Aug 15, 2006 15:50 
Offline
DGL Member

Registriert: Fr Aug 11, 2006 12:52
Beiträge: 9
Ich bin schwach und faul und deshalb benutze ich Microsoft WindowsXP (tm und (r) und/oder (c)).
Wenn ich aber dafür sorgen möchte, dass auch die charakterstarken und arbeitswilligen Linuxer mein Prog benutzen können, worauf muss ich da achten?

Konkret gehts um das hier:
Code:
  1. configFile := extractFilePath(paramStr(0)) + 'data\config.ini'



Muss ich das so machen?
Code:
  1.  
  2. if OS_WINDOWS = true then
  3.         dirSeperator := '/' else dirSeperator := '';
  4. configFile := extractFilePath(paramStr(0)) + 'data' + dirSeperator + 'config.ini';



Und wo wir schon dabei sind: Was ist noch wichtig für den Pinguin-Artenschutz?


Ich habe mir erlaubt auch gleich eine Umfrage anzufügen, aus... kindlicher Neugier.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 16:09 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
da in linux files nicht ausführbar sind, die für windows geschaffen wurden, muss man das zeug in linux unter kylix oder freepascal neu kompilieren. dazu darfst du in delphi nicht alle befehle verwenden (keine windows fensterverwaltung, SDL) und natürlich auch keine windows - spezifischen OpenGL befehle.

das ganze machst du wegen den zwei orten wo du was programmieren musst am besten mit den befehlen die direkt an den compiler gehen, das geht dann so:

Code:
  1.  {$IFDEF Win32}
  2.  
  3.  {$ELSE}


wichtig ist aber nebenbei noch, das wenn du das resultat nicht unbedingt einer grossen menge von leuten presentieren willst und das projekt nur ein kleines ist, es sich meistens nicht lohnt, das ganze plattformunabhänig zu programmieren, weil die meisten das ganze warscheinlich nicht mal unter linux kompilieren werden ;)

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 16:14 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Defacto braucht man solche Weichen in der Praxis nicht. Das wichtige ist halt, dass man nur auf Bibliotheken und Schnittstellen zugreift, die es in beiden Welten gibt. Ergo z.B. statt der VCL lieber SDL verwenden. Grundsätzlich sollte es einen alamieren, wenn als Unit "Windows" eingebunden wird. Hat man die Fensterverwaltung und Steuerung erst einmal z.B. auf SDL übersetzt, gibt es meist eher wenige Probleme eine Anwendung plattformunabhängig zu entwickeln. Zumindest dann, wenn man sein Projekt vernünftig struktiert hat. Beispiele für plattformunabhängige Programme findest Du zuhaust in unseren SDKs. Primär werden diese für Linux entwickelt und dann lediglich in einem Windows-Paket noch einmal mit einem Installer zusammen geschnürrt.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 16:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Java -.-, und damit sogar Mac Support

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 17:09 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Du hast mit Pascal und dem FPC auch Mac-Unterstützung ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 15, 2006 18:23 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Mir fehlt eigentlich noch die Auswahlmöglichkeit "Linux und Windows". Ich habe nun Windows angekreutzt da ich momentan ein bischen mehr in Windows unterwegs bin.

Zu dem Thema ist nicht alzuviel zu wissen.
Unter Windows kannst du Delphi und FPC nutzten und unter Linux und Mac OS FPC.

Anmerkung an Evil-Devil: FPC ünterstützt viele Nintendo Consolen, embed Linux für arm Prozessoren(z.B. GP2X), Mac OS und inoffiziel noch wesentlich mehr wie z.B. PSP.

Je nach Projektgröße kann es passieren , dass du mehrspurig fahren muss mit deinem Code ist aber wirklich sehr selten.
Bei mir hab ich bisher nur eine Handvoll von unterscheidungen zwischen Delphi und FreePascal im Code.
Ein Beispiel hier wäre folgender: Zlib ist in FreePascal mit im Paket aber für Delphi muss extra eine Unit geladen werden und diese ist bisher auch nur ein linker auf die dll. So ist unter FPC keine Lib nötig und wenn ich mit Delphi compiliere, muss ich die Lib mit bei legen.

Ich konnte bisher sonnst den Code immer so anpassen , dass er mit beiden compilern compilierbar ist.
Ich selber ziehe FPC vor, da ich kein VCL nutzte und Delphi mir sonnst keinen weiteren Vorteil bietet, der mir wichtig wäre.
Mit FPC compilierter Code ist in der Regel besser optimiert und somit spürbar schneller. Als Debugger hat man gdb, als Frontend kann man Insight nutzen und als IDE wenn gewollt Lazarus.

Wenn man Portablen Code schreiben will, dann sollte man aufjedenfall sich eine Strukturierung der Daten zulegen.
Zum Beispiel:
OS bezogener Code
Projekt/win32
Projekt/linux
...

Compiler bezogener Code
Projekt/delphi
Projekt/delphi/7
Projekt/fpc

Allgemeiner Code
Projekt/src

Medien Ordner für sämmtliche Medien
Projekt/media

Doku
Projekt/doc

Projekt Code
Projekt/...

Unterscheiden kann man dann den Code je nach Situation, wie folgt.

Code:
  1. uses
  2. {$IFDEF FPC}
  3. //  Freepascal code
  4.   bla in '../fpc/bla.pas'
  5. {$ELSE}
  6. // Delphi Code
  7.   bla in '../delphi/bla.pas'
  8. {$ENDIF};


Code:
  1. var
  2. {$IFDEF Win32}
  3.   DirSeperator:='';
  4. {$ELSE}
  5.   DirSeperator:='/';
  6. {$ENDIF};


Wichtig sind natürlich welche Libs man verwendet, ich selber nutzte folgende:
-SDL und auf SDL aufbauende wie z.B. SDL_Image
-OpenGL
-OpenAL
-Ogg Vorbis
-zLib
-Newton

Diese libs funktionieren unter den 3 größten Desktop Betriebssystemen(windows,linux,mac os), werden stark gepflegt und sind sehr verbreitet.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 16, 2006 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
@Umfrage:
Es sollte noch die möglichkeit "Linux und Windows" geben. :wink:

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 12:35 
Offline
DGL Member

Registriert: Fr Aug 11, 2006 12:52
Beiträge: 9
1. Ich komme nochmal auf meine Eingangsfrage zurück (bezüglich slash und backslash), auf die ich eine Antwort bräuchte (so etwas wie "NATÜRLICH musst Du da unterscheiden!").

2. Wenn ich das recht verstehe ist SDL eine Art Vermittler zwischen mir (Programmierer) und API (Windows, X11) und setzt das Ganze je nach OS einfach in entsprechende API-Befehle um. Da frag ich mich (als unwissender Anfänger), ob das nicht langsamer ist, als wenn mans selbst machte...

3. FPC klingt so ja schon mal interessant. Ich kann im Moment aber nicht umsteigen, weil das hieße, sich auch noch da einzuarbeiten, bin mit ogl aber bereits gut ausgelastet. Trotzdem sehr interessant... mhmja :)

4. Ich kam zu dem Schluss, dass es Schwachsinn ist, VCL mit SDL einzusetzen (in einer Anwendung mit mehreren Fenstern wie einem Leveleditor etc.), weil man die erreichte Plattformunabhängigkeit damit wieder gegen hübsche controls eintauscht. Kann man das irgendwie kompensieren oder müsste ich controls dann selbst coden (da hätt ich schon Bock drauf, so isses nicht...)?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
1. Hatte ich ganz zum Schluss meines letzten Posts, als codefetzen beantwortet.
2. Man könnte sagen SDL ist ein wrapper aber SDL bietet neben dem durschleifen von Befehlen auf der jeweiligen API auch eigene Funktionen an. Diese sind sehr sehr nützlich und sehr für OpenGL und 2D programmierung ausgelegt.
SDL ist geringfügig langsamer, da ein funktionsaufruf zu dem normalen code dazu kommt. Was bedeutet pro SDL Befehl kommen noch ne Handvoll Takte hinzu(push der Parameter auf den Stack,push der funktionsadresse,sprung zum code, ausführen des eigentlichen codes) aber das ist sowas von unmerkbar, da man mitlerweile mehere milliarden Takte pro sekunde zur verfügung hat.
3. FPC ist einfach nur ein Kommandozeilen compiler ohne ide. FPC bietet ein sehr guten Delphi kompatiblen Mode an und somit ist ledeglich ne gewöhnung an eine nicht vorhandene codevervollständigung.
4. Das schlüsselwort ist Lazarus, eine IDE die den FreePascal Compiler benutzt. Sie bietet ein umfangreiches Componentensortiment.
Nachteil, die Windows Version wird nicht großartig supported aber die Linux Version ist dafür sehr gut.

Ich überlege momentan auch noch wie ich meine Tools realisieren soll, da Lazarus und Delphi nicht mit einander können und ich für Tool schon eine oberfläche brauche. Meine bisherige Idee ist ein Tool zu schreiben was die Engine GUI nutzt um Tools zu schreiben.
So könnte man dann die GUI in eine XML file speichern und der code ganz normal in pas.
Man könnte es dann überall compilieren und müsste aber zum ändern von der GUI dann das mitgelieferte Tool nehmen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 17, 2006 13:45 
Offline
DGL Member

Registriert: Fr Aug 11, 2006 12:52
Beiträge: 9
TAK2004 hat geschrieben:
1. Hatte ich ganz zum Schluss meines letzten Posts, als codefetzen beantwortet.

Shit, hab ich glatt übersehen. Thx.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 27 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.022s | 18 Queries | GZIP : On ]