Archive: Can I use the DLL advsplash.dll in an ohter program ?


Can I use the DLL advsplash.dll in an ohter program ?
Hello,

I would like to know if i can use the dll advsplah.dll in a personnal program written in VB. Will it work or not ?

Where can i get API definitions ?

Thanks for your answers

Chris


All plugin functions have the same API definition:

void __declspec(dllexport) show(HWND hwndParent, int string_size, char *variables, stack_t **stacktop)

Where stack_t is a c structure inside NSIS which you'd have to mimic somehow from VB (but how would you do that? VB doesn't deal in plain character arrays but uses BSTRs AFAIK).
typedef struct _stack_t {
struct _stack_t *next;
char text[1]; // this should be the length of string_size
} stack_t;

It's possible, but I think it would be easier to tweak the code a bit and make it accept the parameters on the normal stack (function parameters) instead of the NSIS stack. This way you won't need to implement the stack on your end.

Otherwise the function prototype is:

void show(HWND hwndParent, int string_size, char *variables, stack_t **stacktop)

hwndParent and variables aren't used by this plug-in so you can just pass NULL. string_size is the size of each string on the stack, and stack_t is defined as:

struct _stack_t {
struct _stack_t *next;
char text[NSIS_MAX_STRLEN];
};

NSIS_MAX_STRLEN is 1024 by default and is the value you should pass as string_size.

Variables you need to push on the NSIS stack are described in the readme for AdvSplash.


thank you for your answer

i will test your explication


Thanks again

Chris


My code doesn t work :-((

my script test is:

Option Explicit

Private Declare Function show1 Lib "c:\advsplash.dll" Alias "show" (hwnd As variant, string_size As integer, vars As variant, param As String)


Private Sub Form_Load()
show1 "", 1024, "", "1000 600 400 -1 c:\splash"

End Sub

...

My VB environnment is bugging

Chris


Imo it's way easier to create a splash screen using VB.