Happened to be doing something related this morning and recalled a common issue. Suggest that you check the following menu -
Project / ClassLibrary3 Properties / ClassLibrary3 / Build Make sure that "Register for COM interop" is checked near the bottom. -- BruceR --- In [email protected], Steve Wong <swstevewon...@...> wrote: > > Hello, > > below is my experimental c# code to illustrate the original VB IIR2 example > and the VExampleMA from the ADK. > from the Amibroker side the object creation in AFL will be: > > myobj = CreateObject("csharp.amlib1"); > //call method > iir2 = myobj.IIR2(Close, 0.2,1.2,-0.4); > //calling Windows Forms > myobj.ShowDialog("AFL called me"); > > // c# below > using System; > using System.Runtime.InteropServices; > namespace ClassLibrary3 > { > [ > Guid("16308AFC-FB7E-4cc6-9A3B-F47B99B7F18B"), > InterfaceType(ComInterfaceType.InterfaceIsDual), > ComVisible(true) > ] > public interface IMyAmPlugin1 > { > [DispId(1)] > string HelloAmibroker(); > [DispId(2)] > int ShowDialog(string msg); > [DispId(3)] > object IIR2( object input, float f0, float f1, float f2); > [DispId(4)] > object MyExampleMA(object input, int range); > }; > [ > Guid("4328EB81-CFFF-423b-B1B4-D5B1F1AC76B7"), > ProgId("csharp.amlib1"), > ClassInterface(ClassInterfaceType.None), > ComDefaultInterface(typeof(IMyAmPlugin1)), > ComVisible(true) > ] > public class Class1 : IMyAmPlugin1 > { > private const float EMPTY_VAL = -1e10f; > public string HelloAmibroker() > { > return "Hello Amibroker, I'm from C#"; > } > public int ShowDialog(string msg) > { > > System.Windows.Forms.MessageBox.Show(msg, ""); > return 0; > } > public object IIR2(object input, float f0, float f1, float f2) > { > object[] inputArray = (object[]) input; > object[] outputArray = inputArray; > outputArray[0] = inputArray[0]; > outputArray[1] = inputArray[1]; > for (int i = 2; i < inputArray.Length; i++) > { > outputArray[i] = f0 * Convert.ToSingle(inputArray[i]) + > f1 * Convert.ToSingle(outputArray[i - 1]) + f2 * > Convert.ToSingle(outputArray[i - 2]); > } > return outputArray ; > } > private int SkipEmptyValues(int nSize, object[] srcArray, object[] > result) > { > int i; > for (i = 0; i < nSize && (Convert.ToSingle(srcArray[i]) == > EMPTY_VAL); i++) > { > result[i] = EMPTY_VAL; > } > return i; > } > public object MyExampleMA(object input, int range) > { > object[] inputArray = (object[]) input; > int nSize = inputArray.Length; > object[] result = new object[nSize]; > int j = SkipEmptyValues(nSize, inputArray, result); > for (int i = j; i < nSize; i++) > { > if (i < j + range) > { > result[i] = EMPTY_VAL; > continue; > } > float sum = 0.0f; > for (int k = 0; k < range; k++) > { > sum += Convert.ToSingle(inputArray[i - k]); > } > result[i] = sum / range; > } > return result; > } > } > } > > Regards > SW > > > > ________________________________ > From: Yofa <jtoth...@...> > To: [email protected] > Sent: Monday, May 4, 2009 4:06:32 AM > Subject: Re: [amibroker] Amibroker Plugin C# template? Anyone? > > > > > > Hi Dan, > > 1. make the c# code a "COM visible" component. > 2. Register it on the AB machine. > 3. write c++ plugin to access it as a COM component. (Use ADK) > > Y > > ------------ --------- --------- --------- --------- -- > From: "ccr1der" <d...@hottuna. com> > Sent: Thursday, April 30, 2009 7:46 AM > To: <amibro...@yahoogrou ps.com> > Subject: [amibroker] Amibroker Plugin C# template? Anyone? > > > Does anyone have a C# based template for AB plugins? Has anyone ever > > compiled a C# plugin for AB? I have a very important piece of code in C# > > that I need accessible from within AB, and while I'm not at all well > > versed in C#, I'm willing to take a stab at trying to get this to work.... > > but I need some kind of a starting point? > > > > Any help would be greatly appreciated. Thanks. > > > > -Dan > > > > > > > > > > ------------ --------- --------- ------ > > > > **** IMPORTANT PLEASE READ **** > > This group is for the discussion between users only. > > This is *NOT* technical support channel. > > > > TO GET TECHNICAL SUPPORT send an e-mail directly to > > SUPPORT {at} amibroker..com > > > > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at > > http://www.amibroker.com/feedback/ > > (submissions sent via other channels won't be considered) > > > > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > > http://www.amibroker.com/devlog/ > > > > Yahoo! Groups Links > > > > > > > > >
