Old 1st August 2003, 04:13   #1
solomonty
Junior Member
 
Join Date: Aug 2003
Posts: 1
System plugin

I am trying to call a function in my DLL which has the following signature
void MyFunction()

and I am using the following call
System::Call 'MyDll::MyFunction(v) v'

It doesn't appear to be making the call.
Is that the proper syntax?
How can I diagnose the problem?

Thanks.
solomonty is offline   Reply With Quote
Old 2nd August 2003, 11:59   #2
brainsucker
Senior Member
 
brainsucker's Avatar
 
Join Date: Sep 2002
Location: Minsk, Belarus
Posts: 190
Send a message via ICQ to brainsucker
Are you compiling your dll from C or C++ source? C++ compiler decorates names (you could look for them thru your dll, they usually look like ?FunctionName@AVBXX). Use .def file, or declare your function as
extern "C" int function();

If this is not the problem, check if your dll available to installer (it can easily find it at windows/system folder or at folder it run from).

Also if you are planning to pass parameters to functions don't forget C and C++ use cdecl convention by default, and system plugin defaults to stdcall. you could either manualy change your function convention using __stdcall or __cdecl, or give a cdecl hint to system using "?c" option.
brainsucker is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump