Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Accessing a C# COM control from C++

Posted on 2006-11-01
8
Medium Priority
?
190 Views
Last Modified: 2012-05-05
Hi all,

I wrote a very simple user control in C#, and I'm trying to access it from my C++/MFC code. The control contains a single label in it. Here's the control code itself:

namespace HelloCom {

    [Guid("F0AE1BB2-A840-4341-B785-D8A54C81E643")]
    public interface HelloCom {
       
    }
   
    [Guid("111DCC11-900D-431c-B3A0-4B95C539A47D")]
    public partial class HelloComImpl : UserControl, HelloCom {
        public HelloComImpl() {
            InitializeComponent();
        }
    }
}


Here's what I've done so far:
* Signed my control with a strong key
* Clicked the "expose assembly to COM interop" and "make visible to COM" options
* regasm HelloCom.dll /tlb:HelloCom.tlb
* gacutil -i HelloCom.dll

However, despite all this, I still cannot see my control in the Toolbox on the C++ side, nor can I insert it via the "Insert ActiveX Control" menu option. What am I doing wrong ?
0
Comment
Question by:Sinclair
  • 4
  • 4
8 Comments
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 17856173
You can't create ActiveX controls with C#

what you did will work with Dlls, but I'm not sure if that will work for contorls with other languages than .Net
0
 
LVL 2

Author Comment

by:Sinclair
ID: 17856225
Ugh... I really need this to be an ActiveX control. Are you sure there's no way to do this easily ? If so, what would you recommend ? Wrap the DLL in a C-based ActiveX wrapper, maybe ?

0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 17857392
honesntly, I haven't tried to do that before

but why you want to use C# to created managed component that will be access from unmanaged code?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 22

Accepted Solution

by:
Mohammed Nasman earned 500 total points
ID: 17857409
take a look at this article, and notice the first paragraph in red

.NET Interop: Get Ready for Microsoft .NET by Using Wrappers to Interact with COM-based Applications
http://msdn.microsoft.com/msdnmag/issues/01/08/Interop/
0
 
LVL 2

Author Comment

by:Sinclair
ID: 17860748
mnasman:

I need a C# ActiveX control because our company is slowly switching to C#, but we have a massive (as in, prohibitively huge with respect to porting) legacy app written in C++/MFC that still needs to be extended from time to time with new features.

Thanks for that "red paragraph" article; I'll check it out right now and let you know how things turned out.
0
 
LVL 2

Author Comment

by:Sinclair
ID: 17883089
Yeah, so it looks like there really isn't a good solution to this, unfortunately. Thanks for your help, mnasman, even though it's bad news for me :-)
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 17887659
I'm sorry I didn't help much
0
 
LVL 2

Author Comment

by:Sinclair
ID: 17887700
I don't blame you, I blame Microsoft :-/
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …
Despite its rising prevalence in the business world, "the cloud" is still misunderstood. Some companies still believe common misconceptions about lack of security in cloud solutions and many misuses of cloud storage options still occur every day. …

926 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question