View Full Version : DLL stack corrupt error on custom dll action
harp23
11-22-2006, 06:26 PM
Hi,
I created a win32, dll
I have a function
extern "C" _declspec(dllexport) show()
{
MessageBox(NULL,"Working","Info",NULL);
}
In my installshield project: I say
Custom Action => DLL => call function show
I get the message box but after that I get an error saying:
The DLL call 'show' casued a corrupted stack, make sure you have correct number of parameters and the function uses standard calling convention.
Please help.
thanks
RobertDickau
11-22-2006, 06:33 PM
I don't know much about Express, but as far as writing DLLs for MSI custom actions goes, please see (for example) this old newsletter tip: http://www.installshield.com/news/newsletter/0108-articles/dlls-for-ipwi.asp.
harp23
11-22-2006, 06:50 PM
Thanks for the URL
It worked for me
I was creating a win32 dll but I had to create my export functions in a different way
UINT __stdcall FirstAction(MSIHANDLE hInstall)
{
MessageBox(
GetForegroundWindow( ),
TEXT("This is FirstAction."),
TEXT("Custom Action"),
MB_OK | MB_ICONINFORMATION);
return ERROR_SUCCESS;
}
this worked for me
In the InstallShield Express - I changed the Classic entry to New and it worked
Thanks again
Christopher Painter
11-22-2006, 07:02 PM
Yes, declspec is not good for MSI.
I was once teaching a C++ developer ( a real one, not an old unix vi cc ansi C hack like me ) how to stub out a DLL for WindowsInstaller. His fingers were typing declspec faster then I could correct him. He then tried to call it and poof. Then before I could stop him ( he's real good and real fast hehehe ) he brought up depends on an InstallScript CA stored in ISSetup.dll and compared it to his DLL and said:
ahhhhh.... stdcall
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.