|
Is there anyway to wait for the read to finish and then when it is done, continue the program?
How do you read the bytes from the serial port?
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
I connected to the serial port like this...
hCommPort = CreateFile( "COM1",GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
then I read like this...
ReadFile (hCommPort, buffer, 8, &dwBytesTransferred, NULL);
|
|
|
|
|
So ReadFile returns an error and exits prematurely? You're not using overlapped I/O - there's no FILE_FLAG_OVERLAPPED flag in the call to CreateFile.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
No, there is not an error... It just reads and continues, but the read is not finished when it goes on... I have put a Sleep(500) after the read, and it then works correctly, but I know that this is not a good approach.
|
|
|
|
|
|
Yes, that is correct. It is sometimes 8, and sometimes less. Also when it is less than 8 there is sometimes garbage symbols there as well.
|
|
|
|
|
|
That's ok, thanks for your time.
|
|
|
|
|
I think I understand the problem...
You are getting all the bytes available at the time of the call, up to the requested MAXIMUM. Put the read in a loop, with a Sleep. It doesn't have to be long... Keep looping until you have read all the bytes you want.
Bill
|
|
|
|
|
is the superclass (base class) destructor "virtual" ?
-c
------------------------------
Smaller Animals Software, Inc.
http://www.smalleranimals.com
|
|
|
|
|
figured it out
thx
Regards
Ray
"Je Suis Mort De Rire"
|
|
|
|
|
Is Winsock 2.0 included in Windows 95 and 98?
I cannot find it anywhere in MSDN
If not, is it possible to install Winsock 2.0 on Windows 95/98?
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Hello, the codegurus around the world.;)
Windows 95 doesn't have WinSock2.0, but Windows 98 have WinSock2.0.
WS2_32.dll is a key DLL in the system directory if WinSock2 exists.
We can install WinSock2.0 to Windows 95, but there are some bugs like
FrontPage TCP/IP configuration.
You will find some ws2setup.exe in MSFT home page to install WinSock2.0.
Have a nice day!
-Masaaki Onishi-
|
|
|
|
|
Hi ,
I have an application that can send mail to some recipients.Is there any system limit on the maximum number of the recipients that i can send mail to(probably yes)
if yes,How to learn the number of recipients exceeding the limit ?
thanks for help
greetings from germany
Özgür
|
|
|
|
|
How do you send the mail. Do you use MAPI, or du you "talk" SMTP directly to the mailserver?
Do you just send one mails where all the recipients are BCC, or...?
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Hi,
I am sending mail with MAPI. using MAPISendMail function of the library.
I have a method to add a recipient to MapiMessage structure.
Özgür
|
|
|
|
|
hi folks,
i have a simple question (hope so ): how do i execute an external program? i know the _spawn and _exec funtions, the problem is that the path to the .exe-file or whatever is stored in a CString class and the functions expect char. i tried some things to convert a CString to char - without success. is there any other way to execute programs, where i can use a parameter in CString format? or how do i a conversion from CString to char?
thaks for any solutions, greetz,
McEck
|
|
|
|
|
Hi McEck;
You can use the ShellExecute command to lauch external programs.
You can also use the strcpy command to convert CString to char. I don't know if there
is a better way, but this way does work.
Cheer
Justin Somerville
|
|
|
|
|
Use CString::GetBuffer to access the array of chars inside the CString and CString::ReleaseBuffer when you have finished with the array.
Michael Martin
Pegasystems Pty Ltd
Australia
martm@pegasystems.com
+61 413-004-018
"Don't belong. Never join. Think for yourself. Peace"
- Victor Stone
|
|
|
|
|
hm, i'm not very familiar with visual c++, is LPTSTR and char* the same? or another char type?
greetz,
McEck
|
|
|
|
|
On my machine ( W2000 ) LPTSTR is a LPWSTR. I *believe* LPTSTR allows for Unicode by changing the type in the same way that _T does it for a literal string, however my knowledge of suck things is a *little* rusty, so I'm open to correction.
If you need a wide string from CString you can either call AllocSysString, or you can #include comdef.h and cast the underlying char * to bstr_t.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
well, has anyone a gun? i used a wrong variable i think that's why my conversions didn't work...
i think i never realized that without the ShellExecute; it always opened the c: folder. so thanks Justin, now i can get back to work
greetz,
McEck
|
|
|
|
|
spawn and exec accept a const char *, not a char *. CString has a conversion operator. This means that you can use CString instead of const char*:
CString strx = "someprog.exe";
_execl(strx, "arg1", "arg2", NULL);
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
sounds easy
i think i'll test that.
greets,
McEck
|
|
|
|
|
Hello everyone,
I'm trying to set the charset of my CListCtrl to Turkish. Nothing complicated about the code:
CFont* pFont = new CFont;
pFont->CreateFont(12, 0, 0, 0, 0, 0, 0, 0,
TURKISH_CHARSET, 0, 0, 0, 0, "Verdana");
m_listCtrl.SetFont(pFont, TRUE);
But it doesn't work! It goes to Verdana okay, but the charset is just the standard one, not Turkish. It's quite bizarre: when I get its font later (with SendMessage(WM_GETFONT)) and look at the properties with GetLogFont, the lfCharSet IS equal to TURKISH_CHARSET. But there's no evidence of that in the way characters display in the CListCtrl.
I found a post about this exact same problem from a while ago, wrote to the guy, but apparently he found no solution.
If anyone can tell me if I'm doing something wrong, or suggest a workaround, I would be very greatful.
best regards,
Stephen Wilson
|
|
|
|