The problem with the windows commands is that you need to learn about function pointers, but it is the better way to do it.
Here is what you would do with DBPro:
LOAD DLL "MyDLL.dll", 1
x = CALL DLL(1, "Hello", 1)
DELETE DLL 1
and here is the equivalent code in C/C++:
// Load the library
HANDLE MyDLL = LoadLibrary("MyDLL.dll");
// This creates a new function pointer type that accepts an
// int argument, and returns an int result.
typedef int (*HelloFnPtr)(int);
// This creates the function pointer itself
HelloFnPtr Hello;
// This fills the function pointer with the address of the function
// within the DLL
Hello = (HelloFnPtr)GetProcAddress("Hello");
// Finally, we can call the function as if it was a standard
// C function
int x = Hello(1);
// Free the DLL - after this point, it is no longer safe to call
// the Hello function via the function pointer.
FreeLibrary(MyDLL);
It's a little more involved, but a lot more flexible and type-safe than the DBPro method.