Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   NSIS Discussion (http://forums.winamp.com/forumdisplay.php?f=65)
-   -   NSIS plugin via Delphi (codeoffset for function) (http://forums.winamp.com/showthread.php?t=452364)

sfx09 21st December 2017 13:44

NSIS plugin via Delphi (codeoffset for function)
 
Hello!

I need to create plugin for NSIS installer using Delphi. I can't use C/C++, because some of the code is already Delphi-written in secondary project. I used manual - NSIS\Examples\Plugin\nsis.pas. Can someone explain me this part of implementation code?

PHP Code:

function Call(NSIS_func String) : Integer;
var
  
codeoffsetInteger//The ID of nsis function
begin
  Result 
:= 0;
  
codeoffset := StrToIntDef(NSIS_func0);
  if (
codeoffset <> 0) and (g_extraparameters <> nilthen
    begin
    codeoffset 
:= codeoffset 1;
    
Result := g_extraparameters.exec_code_segment(codeoffsetg_hwndParent);
    
end;
end

For example, I call this function: NSIS_Call('MyBestFunctionInScript').
But, "MyBestFunctionInScript" (value of "codeoffset") will be converted at 0 always (why StrToIntDef?). Maybe need to remove StrToIntDef on other function?

In C-example I find this interface (maybe it's normal working convertion string function name at codeoffset):

PHP Code:

INT_PTR NSISCALL nsishelper_str_to_ptr(LPCTSTR s);
#define myatoi(s) ( (int) nsishelper_str_to_ptr(s) ) // converts a string to an integer 

But, I can't find an implementation. Can anyone help me? Big thanks.

Anders 22nd December 2017 14:18

Call does not take the string name of a NSIS function.

The NSIS code needs to call GetFunctionAddress and pass the returned value to your plugin function (and it is passed as a string). Your plugin function then uses this string with Call().

nsishelper_str_to_ptr is just a internal StrToInt style function used by C plug-ins.

sfx09 22nd December 2017 22:42

thanks! :up: all worked now. =) my eyes are a little blind :igor:


All times are GMT. The time now is 18:06.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.