|
|
The SocketTools Library Edition can be used with a wide variety
of programming languages and software development tools for
Windows. The majority of the library functions use simple data
types such as 16-bit and 32-bit integers, and null character
terminated strings. To determine if your development language is
capable of using the Library Edition, it should support all of the
following features:
- It needs the ability to load a dynamic-link library (DLL) and
call exported functions from that library. In some cases, as with C
or C++, you can use an import library instead of dynamically
loading the library. This allows you to link your program just as
you would a standard function library. If the language does not
support the use of import libraries, it must provide a mechanism
for declaring a function and specifying the arguments that will be
passed to it.
- Languages must call the SocketTools functions using the stdcall
calling convention. Parameters are pushed on to the stack in
reverse order (from right to left), and the called function is
responsible for clearing the stack. Note that this is different
from the standard C/C++ calling convention in which the stack is
cleared by the calling function, and from the Pascal calling
convention in which arguments are pushed on the stack left to
right.
- The language must support basic integer data types, including
16-bit and 32-bit integers. The language must also support a string
data type that is represented as an array of bytes, terminated by a
null character (a character with the ASCII value of zero). If a
different native string type is used, the language must provide a
means to convert between the native string format and a
null-terminated byte array.
- The language must support passing function parameters by value
and by reference. When a variable is "passed by value", a copy of
its value is passed to the function on the stack. However, when a
variable is "passed by reference", the memory address of the
variable (typically called a pointer) is passed to the function. In
most cases, the functions in the SocketTools library expect integer
data to be passed by value, while string and data structures are
passed by reference.
- In addition to passing a variable by reference to a function,
the language must provide the ability to allocate a block of memory
of arbitrary size and be able to pass its address to a function.
For example, in C there are the malloc() and free() functions, and
in Visual Basic there are the Dim and ReDim statements.
- The language must support calling functions which do not return
a value. For example, in C and C++, such functions are declared as
void. In Visual Basic, a function which does not return a value is
declared as Sub (a subroutine).
Although not required, it is recommended that the language also
support the ability to create user-defined data structures. For
example, in C and C++, the struct keyword is used to define a data
structure. In Visual Basic, the Type statement is used to create
user-defined data structures.
Microsoft Visual C++, Visual C#, Visual Basic.NET, Visual Basic
6.0, C++ Builder, Delphi and Clarion are all examples of languages
which can use the SocketTools Library Edition. If your programming
language is capable of calling native Windows API functions, then
you should be able to use SocketTools. Consult your language
technical reference for additional information about how to call
functions exported from a standard Windows dynamic link
library.
|
|