Free Win95/98, WinNT drivers for RS232 communications??

Anyone know of free drivers out there?  To be more specific, I'd just like to open a COM port at a specific baud rate, then write data to it and receive data from it.  I don't want or need anything fancy (no modem-manipulation).  
Who is Participating?
cgallagherConnect With a Mentor Commented:
This should work:

      RECT rect;
      rect.bottom = 30; = 30;
      rect.left = 30;
      rect.right = 30;


I haven't tested it but it seems to be correct.
If it doesn't then please get back to me.

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

tdubroffAuthor Commented:
Edited text of question.
I don't exactly understand your problem, because drivers for the comm port should automatically be supplied with windows(95/98/nt). If the comm port is not supported then, maybe, try your windows CD.
Good sites for finding drivers are:

from kamarey's link:

If these doesn't work try the home site of your PCs make and search for device drivers.

You shouldn't need a driver for your comm port because it is usually supplied automatically with your operating system.
tdubroffAuthor Commented:
Ideally I'd like a .lib file and a .h file so that I could make calls to driver functions which would allow me to communicate over the COM port.  I hope thats more specific.  
Ok. I see what you mean now. If you are using Visual C++ then all I think you have to do to communicate with the comm is add the MS Comm Control. To add this click
menu->project->add to project-> components and controls

This will give you a dialog asking what control you want to add. Double click on registered activeX controls and scroll along until you find the Microsoft communications control. Insert this into your project and this should allow you to use comm functions. I Dont think you need header files, but if you do it will say so in the MSDN help. This can be located on-line if you dont have it.
 All this is persuming that you are using Visual C++.
Please Post a comment if I'm incorrect in any of the above.
tdubroffAuthor Commented:
Sorry for rejecting the answer as you just opened up a whole new world to me.  I did as you said and plopped in the MSCOMM control.  This added the CMSComm class to my project.

I thought I could just instantiate the class and start using it, but I get an error.  Here is a small snippet and the error.  I hope you can help!

CMSComm _comport;
_comport.SetCommPort(1);  // <-- dies here

// Eventually this function is called and it dies on
// the ASSERT

void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
      void* pvRet, const BYTE* pbParamInfo, ...)
      ASSERT(m_pCtrlSite != NULL);    // not an OLE control (not yet, at least)

      if (m_pCtrlSite == NULL)

      va_list argList;
      va_start(argList, pbParamInfo);
      m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo,

How do I make m_pCtrlSite non-NULL?  What does the comment mean by not yet an OLE control??

Hopefully you can answer, and then I'll give you all the points.  Thanks!
Its a while since I worked with MSComm so I'm a little usure of the workings of it.
At a glance I think its because you haven't actually created the object yet. This function is in the class itself. You call the function create and pass it the window name etc.

I'm going to have to get back to you on this and it won't be till next monday. Sorry about this delay. In the mean time try messing around with the create function.
tdubroffAuthor Commented:
I haven't gotten around to testing it out yet, but I pretty much did that after your previous suggestion of using the Create function.  I also had to add something like AfxEnableOleControls() or something like that.

Thanks for your help.  Also, do you recommend any books that describe these controls in general?  Are these ActiveX controls?
Yes these are activeX controls. If you search the msdn help you will see how they use a different method of communicating with the comm port which is more complicated. The MSComm object makes the programming of this alot easier by using functions that set port numbers, baud rates etc.
To create an object to simplify the original method of programming you must create an activeX component to do this... as you probably already know.

Off the top of my head I don't know of any books that deal with this (sorry), but if I come across some I will get back to you.

P.S. Thank you very much for the points.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.