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?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

tdubroffAuthor Commented:
Edited text of question.
Become a Microsoft Certified Solutions Expert

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

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.
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.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.