Similar Threads:
1.Problem creating C# interop wrapper manually
2.Problems creating COM wrapper for C# dll (regasm.exe)
I called regasm.exe /tlb CameraManagement.dll and I got
CameraManagement.tlb
When I look inside with OleView.exe or create C++ header I see
something like that:
struct __declspec(uuid("37944845-f74f-3999-b972-d42355a78bcd"))
_AlarmSetting : IDispatch
{};
struct __declspec(uuid("5e6abb0e-b170-377d-9902-20bb5388a53c"))
_AlarmSetting2 : IDispatch
{};
struct __declspec(uuid("8969367c-f590-333c-994e-c0b2a37ce928"))
_Camera : IDispatch
{};
they're just empty interfaces, only enums are exported correctly - but
oryginal C# classes have plenty of methods ! Where have they gone ? Am
I missing something ?
Thanks in advance
Kamil
3.Problem creating web service wrapper for VB6 COM DLL that calls C++ DLL
Howdy,
I'm trying to wrap an existing VB 6 COM DLL as a VB.NET 2003 web
service. I was able to create web methods for each of the COM DLL's
methods I want to expose, but the one method in the COM DLL that
subsequently calls a C++ DLL fails. I get an error from the VB6 DLL:
ERROR: (453) Can't find DLL entry point PPD in MyDLL32.dll
The same method call works fine if I call the COM DLL from a compiled
VB6 client application.
I get the same DLL entry point error if I try to use the client VB6 app
in the VB6 IDE (COM DLL is alway compiled, never run in the VB6 IDE).
I'm not sure if VB.NET web services behave the same as the VB6 IDE in
some way, but essentially, I need find a way to make it work.
Any suggestions (other than re-write the C++ DLL) will be appreciated.
Thanks
Mike
4.Giving one managed wrapper class access to the unmanged part of another managed wrapper class
Here is the scenario I'm trying to make work.
I've got 2 managed C++ classes, each of which wrappes an unmanaged C++
class, kind of like so:
__nogc class UnmanagedClassA
{
public:
void SetUnmanagedB( UnmangedClassB* val );
...
};
__gc class ManagedClassA
{
public:
MangedClassA() :
m_unmanagedA(__nogc new UnmanagedClassA() )
{ }
private:
__nogc UnmanagedClassA* m_unmanagedA;
};
__nogc class UnManagedClassB
{
...
};
__gc class ManagedClassB
{
public:
MangedClassB() :
m_unmanagedB(__nogc new UnmanagedClassB() )
{ }
private:
__nogc UnmanagedClassB* m_unmanagedB;
};
The managed wrapper classes were created to allow using the unmanaged
classes in C#.
I need to be able to hand an instance of ManagedClassB to ManagedClassA
and have it pass the m_unmanagedB pointer to a method of m_unmanagedA.
Something like this:
void ManagedClassA::SetManagedB( ManagedClassB* b )
{
m_unmanagedA->SetUnmanagedB( b->m_unmanagedB );
}
My first question is: what is the best way to accomplish this task
(idealy without making m_unmangedB public)? and my second question is
why doesn't my solution below work?
Below is my solution that doesn't quite work:
In traditional C++ I would simply declare ManagedClassA as a private
friend of ManagedClassB and everything would be good, but I have come
to the understanding that friends aren't allowed in managed C++ so I've
created a unmanged nested class to solve the problem, something like
this
__gc class ManagedClassB
{
public:
ManagedClassB() :
m_unmanagedB(__nogc new UnmanagedClassB() )
{ }
private:
__nogc UnmanagedClassB* m_unmanagedB;
public:
__nogc class NestedFriendClass
{
public:
NestedFriendClass( ManagedClassB* owner)
{
m_owner = gcroot<ManagedClassB*>(owner);
}
UnmanagedClassB* GetUnmanagedB()
{
return m_owner->m_unmanagedB;
}
private:
gcroot<ManagedClassB*> m_owner;
}
};
And the MangedClassA::SetManagedB() method becomes something like.
void ManagedClassA::SetManagedB( ManagedClassB* b )
{
ManagedClassB::NestedFriendClass temp( b );
m_unmanagedA->SetUnmanagedB( temp.GetUnmanagedB() );
}
Now this all compiles fine but when I run it I get a
'System.FieldAccessException' exception in
ManagedClassB::NestedFriendClass::GetUnmanagedB().
Now this implies to me that the public, protected, and private access
specifiers are being enforced at run time for unmanaged code which is
surprising to me, can anyone tell me what's going on here.
I will admit that I'm relatively new to the managed C++ and C# worlds
so I may be missing something simple here. I do consider myself a very
advanced traditional C++ programmer.
Also I'm currently using MS Visual Studio 2003.NET and we are upgrading
to 2005.NET next week.
5.creating data provider (IBindingList, DataTable wrapper) for DataGrid?
hello.
i'm trying to implement IBindingList to wrap DataTable
(like DataView) with hierarchy capabilities
and bind it to DataGrid.
The problem is i don't know
yet all the stuff i need to know.
the current problem - what should i return in the
IList[int index] indexer?
definetely not DataRow object.
could i find somewhere tutors, samples?
alex.
6. Creating a Wrapper
7. How to create COM wrapper for IDataObject & IAdviseSink
8. How to create COM wrapper for IActiveDesktop