Difference between revisions of "ISXDK"
Line 6: | Line 6: | ||
== Getting Started with ISXDK == | == Getting Started with ISXDK == | ||
+ | The following ISXDK documentation will assume, in most cases, that you are a proficient C++ developer. This is not a C/C++ tutorial -- if you need one, please start by finding one. You should at least be familiar with calling conventions and function prototypes before attempting to create an extension (specifically, you need to know why your functions need to look exactly like the examples). | ||
+ | |||
+ | This section of the documentation explains the basics of the ISXDK, and each of the main things that you may be developing in an Inner Space extension. | ||
+ | |||
=== Concepts === | === Concepts === | ||
− | Inner Space extensions on the most basic level deal with | + | Inner Space extensions, on the most basic level, simply deal with an extension interface ([[ISXDK:ISXInterface|ISXInterface]]) and the Inner Space interface ([[ISXDK:ISInterface|ISInterface]]). These interfaces provide a method of two-way communication between your extension and Inner Space. Inner Space generally does not need anything from your extension -- just initialization, shutdown, and version. These are the three functions your extension will provide that are accessible to Inner Space (though the version function is hidden to you). Your extension, however, needs many functions from Inner Space. ([[ISXDK:ISInterface|ISInterface]]) provides many fuctions to allow your extension to do everything you want it to do. If anything is missing that you feel you need access to, make sure to ask and it may be provided in a new ISXDK version. |
==== Commands ==== | ==== Commands ==== | ||
Line 105: | Line 109: | ||
*[[ISXDK:MemModify|MemModify]] | *[[ISXDK:MemModify|MemModify]] | ||
*[[ISXDK:MemProtect|MemProtect]] | *[[ISXDK:MemProtect|MemProtect]] | ||
+ | |||
+ | == Troubleshooting == | ||
+ | === Compile Errors === | ||
+ | Believe it or not, compile errors are not the fault of Inner Space or ISXDK. Nearly all complaints about compile errors are somehow blamed on the development kit, whereas the fault actually lies in the developer's proficiency with C or C++. Errors or warnings are clearly described by the compiler, and you should be able to resolve the issues on your own. If you are unable to do so, feel free to ask -- but be aware that you will be more likely to learn something about C or C++ than to find a bug that needs to be fixed. | ||
== See Also == | == See Also == |
Revision as of 00:11, 29 April 2005
Contents
Introduction
ISXDK, short for Inner Space Extension Development Kit, is used for developing extensions for Inner Space sessions.
Installation
Installation of ISXDK is very simple. Download and run the installer, and have it install to anywhere you want -- it doesn't matter where it is in relation to your source code, so long as you remember where it is. After installation, you need to add the include and library paths to Visual Studio so they will be used automatically when you #include <isxdk.h> from your code and link to isxdk.lib.
Getting Started with ISXDK
The following ISXDK documentation will assume, in most cases, that you are a proficient C++ developer. This is not a C/C++ tutorial -- if you need one, please start by finding one. You should at least be familiar with calling conventions and function prototypes before attempting to create an extension (specifically, you need to know why your functions need to look exactly like the examples).
This section of the documentation explains the basics of the ISXDK, and each of the main things that you may be developing in an Inner Space extension.
Concepts
Inner Space extensions, on the most basic level, simply deal with an extension interface (ISXInterface) and the Inner Space interface (ISInterface). These interfaces provide a method of two-way communication between your extension and Inner Space. Inner Space generally does not need anything from your extension -- just initialization, shutdown, and version. These are the three functions your extension will provide that are accessible to Inner Space (though the version function is hidden to you). Your extension, however, needs many functions from Inner Space. (ISInterface) provides many fuctions to allow your extension to do everything you want it to do. If anything is missing that you feel you need access to, make sure to ask and it may be provided in a new ISXDK version.
Commands
Data Types
Services
Top-Level Objects
Utilities
mkisx
Struct2LSType
Tutorials
Samples
Reference
Callback Functions
- BlechVariableValue
- BlechCallback
- CreateISXInterface
- ISService
- ISServiceRequest
- LSCommand
- LSTopLevelObject
- SetEnumCallback
- SettingEnumCallback
Classes
- CColumnRenderer
- CIndex
- CLock
- CNavPath
- CPixelMap
- CSemaphore
- CSignal
- CThread
- ISInterface
- ISXInterface
- LSType
Functions
- DistancePointLine
- GetDistance2D
- GetDistance3D
- IsNumber
- IS_AddTrigger
- IS_CheckTriggers
- IS_Detour
- IS_ExecuteEvent
- IS_HttpRequest
- IS_RemoveEvent
- IS_RemoveTrigger
- IS_SetEvent
- IS_UnDetour
- Memory_Modify
- Memory_UnModify
Macros
- FUNCTION_AT_ADDRESS
- FUNCTION_AT_VARIABLE_ADDRESS
- FUNCTION_AT_VIRTUAL_ADDRESS
- DETOUR_TRAMPOLINE_EMPTY
- ISAddTrigger
- ISCheckTriggers
- ISDetour
- ISExecuteEvent
- ISRemoveEvent
- ISRemoveTrigger
- ISSetEvent
- ISUnDetour
- ISXPreSetup
- MemoryModify
- MemoryUnModify
- TypeMember
- TypeMethod
- foreach
- foreachp
Structures
- BLECHVALUE
- LSTYPEMEMBER
- LSTYPEMETHOD
- LSTYPEVAR
- LSVARPTR
- POINT2F
- POINT2I
- POINT3F
- RGBCOLOR
- _FileOpen
- _FileIO
- _EventSet
- _TriggerAdd
- HttpFile
- HttpRequest
- MemDetour
- MemIs
- MemModify
- MemProtect
Troubleshooting
Compile Errors
Believe it or not, compile errors are not the fault of Inner Space or ISXDK. Nearly all complaints about compile errors are somehow blamed on the development kit, whereas the fault actually lies in the developer's proficiency with C or C++. Errors or warnings are clearly described by the compiler, and you should be able to resolve the issues on your own. If you are unable to do so, feel free to ask -- but be aware that you will be more likely to learn something about C or C++ than to find a bug that needs to be fixed.