[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Re: Amibroker Automation Object Model and C# in Visual Studio 2005



PureBytes Links

Trading Reference Links

I got the following msg from the DLL forum:
 
 
There are several others - why not go there and some searching - there are severl other msgs re C#
 
d


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of tiedemj
Sent: Tuesday, February 07, 2006 3:01 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: Amibroker Automation Object Model and C# in Visual Studio 2005

Thanks Tomasz...!

You might consider the "Shared assembly" approach - as it (if I get
it right) seems to offer the best of two (binding) worlds: Version
independence - but preserving the integrity of the automation code,
as well as providing Intellisense features giving clues to correct
calls to methods and properties. If interested, I would be happy to
e-mail you a few (scanned) pages on the topic i found in "Visual C#
2005" book (Wrox) You can get me at jens@xxxxxxxxxxxx

I did try the example you gave (very simple - new windows project -
add a button, copy/paste the code - and add the "using
System.Reflection;" statement in the top - now run/debug... But only
to get "Exception has been thrown by the target of an invocation." -
so i'm really not having a lot of luck... (yes, have office
installed... all applications running...)

Is there nobody else than Tomasz (who really should not spend his
time teaching a newbee like me about general COM bindings) who's
using the object model in C# - and can give me the code lines
(including any "using" statements and other necessary preparations)
for

---------------------------------
Broker.Application ab = new Broker.Application();
string currentPath = ab.DatabasePath;
---------------------------------

or any other example showing how to exploit the AmiBroker object
model in C#???

Thanks and regards
Jens Tiedemann




--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxx>
wrote:
>
> Hello,
>
> No you don't need all that. There are plenty of documents on
Microsoft site
> that explain how to use late binding in C# .NET
> for example:
> http://support.microsoft.com/kb/302902/
>
> (all documents that cover "how to link to
Excel/Access/Word/Powerpoint"
> apply to any other out-proc OLE server, including AmiBroker)
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "tiedemj" <home@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Monday, February 06, 2006 9:44 PM
> Subject: [amibroker] Re: Amibroker Automation Object Model and C#
in Visual Studio 2005
>
>
> > still digging... for broker.tlb (dll) to be usable for all
visual
> > studio programming languages, it seems it needs to be provided
as
> > a "shared assembly". A shared assembly needs "Strong names" -
that
> > is, the dll needs to be signed with a public/private key. This
can
> > be done once in Visual Studio 2005, by
> >
> > 1. generating a key with the "sn" utility
> > 2. signing the broker project using the signing tab in project
> > properties(only Tomasz would be able to do this)
> > 3. once recompiled, the (signed) assembly can now be made
universaly
> > available through the global assembly cache by copy to
> > windows\assembly (XP)
> >
> > OR - am I digging in the wrong direction - and there is a much
> > simpler solution to use the amibroker object model in C#/Visual
> > Studio with late binding that just escapes me?
> >
> > regards
> > Jens Tiedemann
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "tiedemj" <home@> wrote:
> >>
> >> OK - Great - and thanks! Now - how do I do latebinding of the
> > Object
> >> Model in C# using createObject. So what do I need to type to
get
> > the
> >> example:
> >>
> >> ----------------------------
> >> Broker.Application ab = new Broker.Application();
> >> string currentPath = ab.DatabasePath;
> >> ----------------------------
> >>
> >> to work - and what "using" statements etc. will provide the
type
> >> interface/suggestions/methods "lookup" when typing code? I've
been
> >> at it for almost a week now with no luck, probably mostly due
to
> > the
> >> fact that I'm a newbee at using "foreign" COM objects in C# -
so
> > it
> >> might be something very simple I'm not getting...
> >>
> >> Thanks
> >> Jens Tiedemann
> >>
> >>
> >> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko"
<amibroker@>
> >> wrote:
> >> >
> >> > Hello,
> >> >
> >> > Late binding (via CreateObject()) is the only recommended way
> >> since interface may change
> >> > and all .tlb dependent programs may need recompilation. With
> > Late
> >> binding your code will
> >> > be backward and forward compatible with any AB version.
> >> >
> >> > Best regards,
> >> > Tomasz Janeczko
> >> > amibroker.com
> >> > ----- Original Message -----
> >> > From: "William Peters" <william@>
> >> > To: "tiedemj" <amibroker@xxxxxxxxxxxxxxx>
> >> > Sent: Monday, February 06, 2006 6:27 PM
> >> > Subject: Re: [amibroker] Amibroker Automation Object Model
and
> > C#
> >> in Visual Studio 2005
> >> >
> >> >
> >> > >
> >> > > The same error occurs in VB 2005. After spending a week
> >> researching
> >> > > the issue I gave up and now use late binding.
> >> > >
> >> > >
> >> > >
> >> > > Regards,
> >> > > William Peters
> >> > > http://www.amitools.com
> >> > >
> >> > >
> >> > >
> >> > >
> >> > > Monday, February 6, 2006, 11:58:05 AM, you wrote:
> >> > > t>    Hi there.
> >> > >
> >> > > t>  Anybody having an example of the Object Model being
used
> > in
> >> C# from
> >> > > t>  Visual Studio? I can't get the following to work (after
> >> reference to
> >> > > t>  broker.dll made from broker.tlb using imptlb.exe)...
> >> > >
> >> > > t>  The following c# code:
> >> > > t>  ----------------------
> >> > > t>  using Broker
> >> > > t>  Broker.Application ab = new Broker.Application();
> >> > > t>  string currentPath = ab.DatabasePath;
> >> > > t>  ----------------------
> >> > >
> >> > > t>  throws the following exeption:
> >> > >
> >> > > t>  System.InvalidCastException was unhandled
> >> > > t>  Message="Unable to cast COM object of
> >> > > t>  type 'Broker.ApplicationClass' to interface
> >> > > t>  type 'Broker.IApplication'. This operation failed
because
> > the
> >> > > t>  QueryInterface call on the COM component for the
interface
> >> with
> >> > > t>  IID '{2DCDD57B-9CC9-11D3-BF72-00C0DFE30718}' failed due
to
> >> the
> >> > > t>  following error: No such interface supported (Exception
> > from
> >> > > t>  HRESULT: 0x80004002 (E_NOINTERFACE))."
> >> > >
> >> > >
> >> > > t>  What am I doing wrong? Also, would like to use late
> > binding -
> >>  but
> >> > > t>  think using broker.tlb means early binding - or?
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >   
> >> > > 
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> > > Please note that this group is for discussion between users
> > only.
> >> > >
> >> > > To get support from AmiBroker please send an e-mail
directly
> > to
> >> > > SUPPORT {at} amibroker.com
> >> > >
> >> > > For other support material please check also:
> >> > > http://www.amibroker.com/support.html
> >> > >
> >> > >
> >> > > Yahoo! Groups Links
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> > >
> >> >
> >>
> >
> >
> >
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> > http://www.amibroker.com/support.html
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
> >
>






Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html





SPONSORED LINKS
Investment management software Real estate investment software Investment property software
Software support Real estate investment analysis software Investment software


YAHOO! GROUPS LINKS