By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,857 Members | 1,768 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,857 IT Pros & Developers. It's quick & easy.

Adding MSCOMM control to Visual C++ Application

P: 9

I am modifying a rather large and complex MFC application (written by someone else) written in Visual C++ 6.0 with service pack 6. I need to add serial communication functionality to the program, and since I am very familiar with the Microsoft Comm Control from Visual Basic I decided that I would use that in this application.

To make things easier on myself, I decided to make several test applications using the MS Comm control in VC++ prior to modifying the large program. My test applications have been successful in communicating over the serial port.

However, as soon as I attempt to add the MS Comm Control to the form of the larger, more complex application it fails to run. It compiles successfully with no errors or warnings, but when I run it it exits immediately. I've tried stepping through it, but the only way I can manage to catch anything is if I set a breakpoint on the constructor of the main form. It doesn't even get far enough to call OnInitDialog!

As soon as I remove the MS Comm Control from the form and comment out any references to it in code the program once again runs. I'm really at wit's end here. I would greatly appreciate any help.

The reason I haven't included any code in this post is because I'm not sure what would be helpful - as far as the MSComm control goes, the only code that references it in the complex application was automatically generated, such as adding a member variable to the form's class, including the CMSComm.h file, etc. If you'd like to see anything in particular let me know.

Sep 12 '07 #1
Share this Question
Share on Google+
4 Replies

P: 9
Surely someone must have some idea what the problem is. Anyone?
Sep 14 '07 #2

P: 9
I just had an epiphany!

Whenever I created a VC++ MFC application, I always made sure that "ActiveX Controls" support was checked. I just created an application without the ActiveX support included to see what would happen if I tried to include the MSComm control anyway. Sure enough, it compiles with no errors or warnings, but it exits immediately when I try to run it!

So now I have the question, what does checking the include "ActiveX Controls" support actually do? Does it just add directives or includes that I can add after the fact? How can I include support for ActiveX controls in an application that previously did not include that support?

Sep 14 '07 #3

P: 1
I haven't touched VC++ for a long long time, and at the moment I only have VS2005 installed.
Looking at the help, if you uncheck the box, and would like to add the ActiveX control support later, you should add the call AfxEnableControlContainer() in your application's InitInstance function.

Not sure if this helps.
Sep 14 '07 #4

P: 9
Sorry to reply to my own message again, but I found the solution to my problem.

Checking the "ActiveX Controls" support checkbox does a few things:
1) Adds #include <afxdisp.h> to StdAfx.h
2) Adds a call to AfxEnableControlContainer(); in the application's InitInstance function.

Once I added those two things to my larger, more complex application it ran fine.

Sep 14 '07 #5

Post your reply

Sign in to post your reply or Sign up for a free account.