Help me get started with VSTGUI

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

ah ... gnome magic. That explains it.

BTW, I think I'll use JUCE rather than VSTGUI for my GUI. Unusually, my VST has no need for parameter automation. Since it's not an audio instrument or effect, but a tool.

Thanks for all the help!
Jeff

Post

I've download the required zlib & lubpng for building the drawtest of VST SDK 2.4, but:
--------------------Configuration: drawtest - Win32 Debug--------------------
Compiling...
png.c
pngerror.c
pnggccrd.c
pngget.c
pngmem.c
pngpread.c
pngread.c
pngrio.c
pngrtran.c
pngrutil.c
pngset.c
pngtrans.c
pngvcrd.c
pngwio.c
pngwrite.c
pngwtran.c
pngwutil.c
adler32.c
compress.c
crc32.c
deflate.c
gzio.c
infback.c
inffast.c
inflate.c
inftrees.c
trees.c
uncompr.c
zutil.c
cfileselector.cpp
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(275) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'unsigned int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,lo
ng)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(416) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'unsigned int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,lo
ng)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1026) : error C2065: 'SetWindowLongPtr' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1028) : error C2065: 'GWLP_WNDPROC' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1028) : error C2065: 'LONG_PTR' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1028) : error C2146: syntax error : missing ')' before identifier 'SelectDirectoryButtonProc'
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1028) : error C2059: syntax error : ')'
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1033) : error C2146: syntax error : missing ')' before identifier 'fpOldSelectDirectoryButtonProc'
d:\temp\vst2.4\vstgui.sf\vstgui\cfileselector.cpp(1033) : error C2059: syntax error : ')'
vstcontrols.cpp
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1102) : error C2143: syntax error : missing ';' before '__stdcall'
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1102) : error C2501: 'LONG_PTR' : missing storage-class or type specifiers
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1103) : error C2143: syntax error : missing ';' before '__stdcall'
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1103) : error C2501: 'LONG_PTR' : missing storage-class or type specifiers
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1103) : error C2086: 'LONG_PTR' : redefinition
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1117) : error C2065: 'GetWindowLongPtr' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1117) : error C2065: 'GWLP_USERDATA' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1430) : error C2065: 'SetWindowLongPtr' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1430) : error C2143: syntax error : missing ')' before 'this'
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1430) : error C2059: syntax error : ')'
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1437) : error C2065: 'GWLP_WNDPROC' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1437) : error C2146: syntax error : missing ')' before identifier 'WindowProcEdit'
d:\temp\vst2.4\vstgui.sf\vstgui\vstcontrols.cpp(1437) : error C2059: syntax error : ')'
vstgui.cpp
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(192) : error C2143: syntax error : missing ';' before '__stdcall'
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(192) : error C2501: 'LONG_PTR' : missing storage-class or type specifiers
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(4228) : error C2065: 'SetWindowLongPtr' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(4228) : error C2065: 'GWLP_USERDATA' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(4354) : error C2143: syntax error : missing ')' before 'this'
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(4354) : error C2059: syntax error : ')'
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(5332) : error C2065: 'IDC_HAND' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(6965) : error C2065: 'png_set_gray_1_2_4_to_8' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(7694) : error C2065: 'AC_SRC_ALPHA' : undeclared identifier
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(8326) : error C2440: '=' : cannot convert from 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(8366) : error C2143: syntax error : missing ';' before '__stdcall'
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(8366) : error C2501: 'LONG_PTR' : missing storage-class or type specifiers
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(8366) : error C2086: 'LONG_PTR' : redefinition
d:\temp\vst2.4\vstgui.sf\vstgui\vstgui.cpp(8369) : error C2065: 'GetWindowLongPtr' : undeclared identifier
Error executing cl.exe.

drawtest.dll - 36 error(s), 0 warning(s)

Post

try learning c

my suggestion, honestly is: disable those elements or dont use the code at all. it would be easy to fix all of that stuff, but if you're not capable you shouldnt be using the libraries.

Post

Install the Windows Platform SDK. Or modify VSTGUI to work with the original NT stuff that comes with VC6. I did that, it's possible... have fun 8-)

Oh, and please don't post the same problem over and over again.
"Until you spread your wings, you'll have no idea how far you can walk." Image

Post

I've installed the Windows Platform SDK, which is integrated with Visual Studio 6.0
But it's still as it was....

Post

Do you mean the latest WinSDK?
I'm installing....

Please wait for my good news....

Thanks!

Post

But, whitch SDK should I download?

I've downloaded the "Microsoft Windows SDK for Beta 2", but it requires more other things to be pre-installed...., such as Visual Studio 2005!


http://www.microsoft.com/downloads/resu ... &productID =6F6B7367-A11C-49C3-8CC6-92E74D092146&categoryId=&period=&sortCriteria =popularity&nr=20&DisplayLang=en

Post

Install the 2003 Version....

And it will be ok.

Post

I just can't resist saying that the damned VSTGUI example doesn't compile as is. There's not even a damned readme to say what's missing. I know other people have complained. I figured I would too.

What you do get, besides a project that won't compile, is a lame doc that starts with this horrible sentence:

"Providing an interface to your Plug-In makes you be immediately confronted with platform specifics of different windows handling and event handling models."

I suppose I could just build my own interface in Windows, eliminating the possibility of a Mac port.

Has anyone found a trivial VSTGUI project that actually works?

Post

if you're talking about the drawtest VSTGUI example, it should work just fine.

you do need to integrate pnglib to get it compiling and it can be a PITA if you haven't worked with libraries before. teragon audio has a great tutorial on this.

Post

This'll get ya a bit closer (on VC++ 6):

File: vstsdk2.4\pluginterfaces\vst2.x\aeffect.h

Code: Select all

/** Declares identifier as deprecated. */
#if VST_FORCE_DEPRECATED
#define DECLARE_VST_DEPRECATED(identifier) __##identifier##Deprecated
#else
#define DECLARE_VST_DEPRECATED(identifier) identifier
#endif

//x//
#define LONG_PTR LONG
#define GetWindowLongPtr GetWindowLong
#define SetWindowLongPtr SetWindowLong
#define GWLP_USERDATA GWL_USERDATA
#define GWLP_WNDPROC GWL_WNDPROC
#define IDC_HAND MAKEINTRESOURCE(32649)
/** Define for 64 Bit Platform. */
//#ifndef VST_64BIT_PLATFORM
//#define VST_64BIT_PLATFORM _WIN64 || __LP64__
//#endif
PITA is damn right. I don't wanna use VSTGUI EVER again and I WAS a big fan a few years ago

Post

well you only need to set up the PNG library and dependencies once. I've found VSTGUI 3 works really well for what I do. Let's face it, it's the only proper crossplatform plugin GUI library, with reasonably good feature set.

Post

>>well you only need to set up the PNG library and dependencies once.

I think it's unforgivable for an example program not to compile. If I were in charge of VSTGUI I'd expect to be fired. :->

Thanks for the pointer to teragon. And thanks O.L.T, for the help.

Post

mistertoast wrote: I think it's unforgivable for an example program not to compile. If I were in charge of VSTGUI I'd expect to be fired. :->
Keep in mind that VSTGUI is license free and open source while in development. Be that as it may, free pojects shouldn't come packaged with errors, so I get where you're coming from. With any understanding of what's being done, however, you shouldn't hit any real roadblocks with the example projects. Also, Arne Scheffler, one of the main developers behind VSTGUI, answers questions promptly on the VSTGUI mailing list. I sincerely hope he doesn't get fired!

http://sourceforge.net/mail/?group_id=81745

-Adam

Post

asomers wrote:free pojects shouldn't come packaged with errors
but there aren't any errors! you just need to know how to use libraries!

mistertoast, just follow the compiler errors. it's not difficult at all, and in this case, very straightforward.

i.e. since it likely says "png.h not found" or similar, then what do you do? :wink:

don't automatically assume it's steinbergs fault. In this case were talking about a crossplatform quirk. In OSX it'll compile just like that, but since windows does not have native png support, they expect you to know how to include the needed (open source) libraries zlib and pnglib.

Post Reply

Return to “DSP and Plugin Development”