   What do #pragma, #endif, if, #ifdef and #ifndef mean?
  What do all those prepocessor keywords mean?For the last three, I''m guessing the #if is just a regular if statement, but executed before anything else, and the other two stand for if defined and if not-defined?Please do tell. 
  These are preprocessor directives. The preprocessor is a program that textually transforms the input file before the compiler runs.#pragma - pass compiler-specific directives to the compiler#if/#endif - if the condition is false, the enclosed code is removed from the file before it is passed to the compiler#ifdef X is #if defined(X)#ifndef X is #if !defined(X)defined(X) is true if there has been a ''#define X'' directive.#define X Y replaces all X with Y in the source code before it is passed to the compiler. “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”    — Brian W. Kernighan (C programming language co-inventor);  << What do all those prepocessor keywords mean? >>Type them in Google, you can find out in 2 seconds.#pragma is for including a .lib automatically, a short cut way instead of doing it manually in Visual StudioThe other ones were as you said, #if and #ifdef are for conditional compilation, you can make the compiler include certain thingsConditional Selection in C Programming TutorialI never use them myself, don't see a need yet. You can use them for debugging purposes also.Phil P   [edited by - PhilVaz on February 17, 2004 8:12:18 PM];  Looks like as good of a place as any to post my question (note this is c++ not straight c)i have this...#ifndef __RELEASE___#pragma comment(lib, "d3dx9d.lib")#else#pragma comment(lib, "d3dx9.lib")#endifthis (according to my logic) should add the debug library (d3dx9d.lib) if __RELEASE___ is not defined, and the normal lib (d3dx9.lib) if it is... but it doesnt seem to work... any ideas? ;  Those are preprocesser directives as someone already said. The same in C as it is in C++. Although pragma is a Visual C++ only compiler command. You can look here for more information. [edited by - Unidentified on February 17, 2004 9:28:13 PM];quote:Original post by Ademan555  ... but it doesnt seem to work... any ideas?   No. I don''t enjoy guessing games. And your description of your problem is inexistant at best. "Doesn''t seem to work" indeed ...The only thing I can tell you is that __RELEASE__ is not a common preprocessor symbol. Usually, you see DEBUG (and NDEBUG for asserts). ;  Well, i was actually hoping it had something to do with the syntax of my #ifndef #else and #endif, but apparently not, i didnt expect you to go try and figure out what was causing my app to crash... (though i did manage to solve it) 