   Executing without API's
  So, I've always wondered how people got games "installed" into a computer. How did they get "installshield" (on windows) up and running and how some people could just have .exe files for you to run. They had to have used an API or graphics library to make their game, so how are they getting other people to run it without having the user download those libraries?   
  Statically linked libraries are bundled into the exe.  Dynamically linked libraries (like openGL) are provided by either the operating system or in this case the graphics card drivers. For dynamically linked libraries like OpenAL which are not part of a standard operating system install, they are shipped with the game; a dll just needs to be in a reachable relative path from the game.Installshield is something that's part of the installation exe.  When you're creating an install shield app it generates the whole wizard flow into the setup.exe file or whatever.-me   ;  So, if I am using SDL or OpenGL, I have to include a .dll file with my program at all times?   ;  It depends on the library.  For OpenGL, no.  The DLL will be provided by the user's graphics card drivers.  This is why many games say: are you having problems? Have you updated your graphics card drivers yet?SDL I think is statically linked so you don't have to provide anything.  All the functions you are using will be bundled into your exe by the linker.Anyway, just read the documentation for whatever API you are using.  This stuff will be explained.  But simple rule is: static linked libraries (.lib files) it goes into the exe.  Dynamic linked libraries (.dll files) you have to ship with your game.  But read the documentation or whatever.-me   ;  I'm just messing around with SDL and I tried moving my executable from my source code file and I got an error that read: "End-of-central-directory signature not found.  Either this file is not  a zipfile, or it constitutes one disk of a multi-part archive.  In the  latter case the central directory and zipfile comment will be found on  the last disk(s) of this archive."It works when I run it with all of the source code.   ;  Is the exe referencing data files?  Sounds like it's trying to open some data files.  Data files are not bundled into the exe unless you specifically set them as resources (not standard for PC development).  So if there are other files it tries to open (art, tuning data, whatever) then those files have to be moved wherever the exe file goes.Source files are irrelevant.  Then get turned in to the exe.-me   ;  Is there anyway to make the program access a datafile - say, an image - from a remote directory? (in c or c++)Most programs lie in subdirectories where as the executable exists in the top directory.I was suppose to do this in java for a class, but I never quite got the hang of it.   ;  Yeah.  When you pass the name of the file to open you just also include the full path relative to where the exe is.so if your dir looks like:dir  - exe  data    - someFile    anotherDir   - anotherFileyou can open with "data/someFile" and "data/anotherDir/anotherFile" when you pass to fopen or fstream or whatever you are using to open files.I'll also just say that if you're sketchy on basic file I/O then SDL is probably a bit advanced for what you want to be learning at the moment.  I'd recommend starting with a simple text-based RPG or something.  To each their own of course, it'll just be a ton easier.-me[Edited by - Palidine on April 5, 2010 8:47:05 PM];Quote:SDL I think is statically linked so you don't have to provide anything.Be sure to check the licensing terms before statically linking SDL...   ;  Much thanks for you help!   