This project has moved and is read-only. For the latest updates, please go here.

How can i use VB.NET (Jacobi) .dll within VB6 Environment?

Topics: Build, Deployment, Feature Request, Getting Started, Host Development, Host Processing, Newbie, Other, Plugin Development, Plugin Parameters, Plugin Persistence, Plugin Programs, VST.NET Core, VST.NET Interop
Feb 9, 2012 at 2:07 PM

Hello,

i am a Newbie in programming languages like c#, c++, .NET and my native language is german. So please be regardful with my bad english and my newbie knowledge about programming. I startet years ago programming with basic (visual basic 6, blitz basic, power basic and similar). So my basic knowledge is very small. I make music and i want to understand the vst-technolgy. From Steinberg i received some sdk and documentation for VST-Developing. Well, it´s nice but for me very hard to understand. It´s in c++. My english isn´t good enough to understand the documentation perfectly. I found the VST.NET and the great "JACOBI.dll". Well, great work! It´s in .NET but not for VB6. So i have another problem. I installed vb2008 and wrote some "small" software. VB.NET is more similar to VB6 than c++ or other programming languages. So i tried to create a small "VST-Reader". In VB6 (Visual Basic Classic) some things easier. I create a new project, add some references (.dll), read the german documentation, start with some declarations and use the .dll. This can be done in a few seconds. Easy as should be. So, i am a Newbie and i thought it´s in VB.NET also easy. I startet a new project and added some References (Jacobi.dll). I made some declaration and want to have directly access to some .dll or functions within the .dll. Well, it doesn´t work. Maybe i misunderstood the "documentation" and i missed some VB.NET Examples. Well, within the documentation i found some methods, functions and also some "short" examples, but not a full short code for VB.NET. Maybe my english, my programming knowledge and understaning aren´t good enough to understand this. So i need some help, please.

The only thing i want is to scan a .dll (VST) and receive the uniqueID. I want a small programm. So i have a few questions about that:

My first thought was: I use VB.NET (VB2008), add some References (JACOBI.dll) and usw some functions. But how i can use the GetUniqueID() Function?

I tried this: (Add References =>Jacobi.VST.Core, Jacobi.VST.Framework, Jacobi.VST.Interop)

I created a new form and a CommandButton. After that i want to do some easy logical steps. Maybe i thought it was logical^^

Within the COMMAND_Click Event i wrote some code like

Dim s As Jacobi.Vst.Core.VstPatchChunkInfo
MsgBox s.PluginID("C:\VST Test Reverb.dll")

So, i made a reference to Jacobi.VST.Core.dll and want to use the function "PlugInID". I must use the plugin path, because the function don´t know which plugin-id should be received from plugin xyz. But my code doesn´t work. That was a easy thought but it seems to be very false. After that i tried something like this: (Also in the command_click Event

Dim s As Jacobi.Vst.Core.IVstHostCommands10
MsgBox(s.GetCurrentPluginID("C:\VST Reverb.dll"))

Well, that doesn´t work too.

I tried to read the "Documentation" again, but i really don´t understand "how" i can use a small function. My second thought (GetCurrentPLuginId) seems to be correct, because "GET" describes that something will be received. But nothing happened. Only errors. So i don´t know how i can solve this problem.

And i want to use some .dll in VB6. I tried it, but it doesn´t work. So i use google and found out, that VB6 use "COM" and can´t use some NET.dll.

If someone activate "register for com interops" within the "project properties" and "build" tab, the .dll can used within VB6-Environment. And i have read something about "Regasm.exe" and some "Typelibs". Also from an GUID ID. But these things to complicated for me at the moment.

 

So, i need some help, please:

Where can i find a small code example and description for VB.NET (Only read the VST PlugInID). Just easy and small. Not 32446237 lines of code. And where i can find the Jacobi.VST.Core.dll, Jacobi.VST.Framework.dll and Jacobi.VST.Interop.dll with "build options" (register for com interops) and .tlb for VB6?

I used some .dll within vb6, wrote some declarations and use easy functions. Also i tried a easy NET.dll within VB.NET. It´s perfect, but i don´t understand the Jacobi.dll and how i use it. Also i don´t understand the documentation.

 

So, please help me and give some important information oder code examples. Within the Documentation a loft of examples, but c++.

And explain please, where my false thought are and why my code didn´t work.

 

Sorry for my bad english

 

Thank you very much for assistance

 

Thomas

Feb 11, 2012 at 11:48 AM

If you take a look at the Host sample you might find the code that you need. See also the OpenPlugin method in http://vstnet.codeplex.com/SourceControl/changeset/view/63261#345328.

You can use the (Jacobi.Vst.Interop.Host.) PluginContext.Create method to load a plugin. The method takes 2 parameters, a file path of the plugin dll and an implementation of a command stub that is used by the plugin to communicate with the host application.

The return value - through the PluginCommandStub property - can be used to communicate with the plugin.

VST.NET has not been designed with COM compatibility in mind, so you have to use VB.NET and not VB6.

Good luck, hope it helps.

Aug 4, 2012 at 11:48 PM

@obiwanjacobi

 

Thank you very much for your reply. Now i have VS2008Pro installed and understand something better. Within the VS2008 Express Edition Environment i had some problems. Now it´s allright.

 

Thanks