جميع برامج المسنجر وملحقاته

كل ما يتعلق ببرامج المحادثة والمسنجرات وتحميل المسنجر9  أو 2009 موجود هنا

انجليزي

إضغط هنا

 

Bill Jacques noticed that the SendSingleFile() function in Zmodem.cpp gets stuck in an infinite loop if the remote end has an allocation problem. He sends an update of the function (as a Word Doc.) Bill wrote a Win32-specific version of the function, so dont try to include this code if you are running in some other environment. You will have to replace the existing function in Zmodem.cpp.

Serial Communications A C++ Developers Guide 2nd Edition

 

Serial Communications:
A C++ Developers Guide,
2nd Edition
by Mark Nelson
IDG Books Worldwide, May 2000
ISBN 0-76454-570-1
864 pages.
List price in the US is $49.99

First Edition

The page for the first edition is still on line. You can read it at this link. The first edition has been out of print for some time, so you probably wont find this page much use. 

Availability

Unfortunately, this book is out of print. However, you can frequently find used copies available on Amazon.com for reasonable prices. Be sure to order the second edition. If you use the link posted here, you will be helping me with the costs of keeping this web site up and running. Thanks!    

Errata

The 32 bit code in this book was developed for the most part with Visual C++ 5. Readers have run into a few compiler glitches with Visual C++ 6. If you use VC++ 6, please be sure to apply all of Microsofts service packs. At this time, the latest is SP3. You can download these from the Microsoft web site. (Id provide a link, but Microsoft changes their web page often enough to make this an exercise in frustration. 

Chapter 1

Figure 1-5 on Page 10 has an extra 0 bit in the middle of the world. There should be a string of 5, not six. Heres an improved version of the image:
 

Chapter 11

Win32Port.h 
If you are developing for a Windows 2000 target, or for NT 4 with SP3 or later, you will need to modify a single line in Win32Port.h. Around line 76 of this file, you will find a line of code that looks like this: 

C++:

  • enum { EV_RINGTE = 0×2000 }
  •  
    Change it to look like this: 

    C++:

    1. enum { EV_RINGTE = 0 }

     
    This flag is used to get the serial driver to report changes on the input RLSD (ringer) control line under Windows 9X. This undocumented feature allows things to work properly in that environment, but breaks things under Windows 2000. 
    Keep in mind that if you make this change, your program wont respond to incoming rings under Win32, unless you watch for “RING” messages coming from your modem. (Watching for messages is probably a better way to do it in general, so maybe its time to change!) 

    If you are deploying your code on both Windows 2K and Windows 9X, you might want to create a more general purpose solution by determining whether or not to use the EV_RINGTE mask at runtime, based on detection of the O/S type. 

    Win32Port.cpp

    I botched the definition of a loop in this code, and despite the compiler warning, I failed to note the problem until alerted by several readers. 
    The loop in output_worker() used to start like this: 

    C++:
    1. for ( bool done = false ; ; !done ) {

    Now it starts like this: 

    C++:

    1. for ( bool done = false ; !done ; ) {

    Chapter 12

    For some reason, the publisher decided to leave this chapters executable off the CD-ROM. This shouldnt be a big deal, since you ought to be able to build it with the included project file. But, just in case you cant, here is the executable. Note that this is built with debug options turned off. 

    Chapter 13

    There are a few errors that showed up in this project in Visual C++ 6. They are all related to minor changes in header files or the way the compiler parses them. 
    Win32Term.cpp 
    In Win32Term::Paint(), a call to SelectObject() needed a cast of the return type before it could be assigned to hOldFont. The line was: 

    C++:

    1. HFONT hOldFont = SelectObject( hDC, m_hFont ) ;

    It is now 

    C++:

    1. HFONT hOldFont = (HFONT) SelectObject( hDC, m_hFont );

    Win32Term.h 
    I use a pragma in this header file to turn off compiler warnings for error C4786, which are unavoidable, and are really pointing to problems in the compiler, not in my code. In VC++ 6, the pragma has to be moved to be ahead of the #include for header file vector. The resulting code now looks like this: 

    C++:

    1. //
    2. // The vector<vector<>> variables in this class
    3. // end up with incredibly long expanded names. This
  • // pragma disables the associated warnings
  • //
  • #pragma warning( disable : 4786 )
  •  
  • #include <windows.h>
  • #include <vector>
  • using namespace std;
  •  

    Download changed files

    Win32Term.cpp
    Win32Term.h
    Win32Port.cpp
    Win32Port.h 
    You should be able to build the new executable by coping these files to the correct locations. 

    Chapter 16

    Bill Jacques noticed that the SendSingleFile() function in Zmodem.cpp gets stuck in an infinite loop if the remote end has an allocation problem. He sends an update of the function (as a Word Doc.) Bill wrote a Win32-specific version of the function, so dont try to include this code if you are running in some other environment. 
    You will have to replace the existing function in Zmodem.cpp.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Share and Enjoy:
    • Print
    • Digg
    • Sphinn
    • del.icio.us
    • Facebook
    • Mixx
    • Google Bookmarks

    Related posts:

    1. Serial Communications  “Serial Communications” is a comprehensive book which details various methods for implementing serial communications between a Microchip PIC microcontroller and an external device. Asynchronous serial communications is covered both by using an on-chip USART and by bit-bang methods. The RS-232 standard is explained. A discussion of synchronous serial communications includes the I2C (Philips Semiconductors), SPI...
    2. serial communications – protocol_considerationsprotocol_considerations If you design a new serial protocol, here are some ideas and suggestions you may want to consider: Say your receiver is busy for a few microseconds and drops a character or two. You might be able to check for a FIFO buffer overrun hardware flag. When you turn on a device, how does...
    3. serial communications roger stevens downloadSerial Communications”  is a comprehensive advanced level book which details various methods for implementing serial communications between a Microchip PIC (R) microcontroller and an external device. Asynchronous serial communications is covered both by using an on-chip USART and by bit-bang methods. The RS-232 standard is explained. A discussion of synchronous serial communications includes the I2C...
    4. Serial Communication Under Win32 to program on a PCSerial ports used to be easy to program on a PC. Then they got more complex, then unreachable. Now they can be made to look simple again. Introduction Anyone porting 16-bit serial communication code to 32-bit Windows NT or Windows 95 faces a common problem: the familiar methods of implementing communication are at the very...
    5. Mac Serial PortMac Serial Port I have pushed the Mac serial ports to 1 Mbps; email me for more info. Comments? the communications protocol for the Mac QuickCam takes advantage of many of the Mac serial ports to communicate at 918 Kbps (synchronous). /* the protocol description *was* available at http://www.connectix.com/connect/files/driver/mac.pdf */ [1.4] How fast can the...
    6. Serial Ports and Digital I/O4.1 Serial Communication In the factory-default configuration, the TCP/IP Development Board has one RS-232 (3-wire) serial channel, one RS-485 serial channel, and one synchronous CMOS serial channel. The TCP/IP Development Board may be configured for 5-wire RS-232 or two 3-wire RS-232 channels. The exact configuration instructions depend on the version of the TCP/IP Development Board...
    7. Free Serial Communication Software RS232-RS422-RS485Our new comDebug program lets you communicate with almost any RS232, RS422, RS485 or Modbus serial device. Whats more, its free! Its extensive trouble-shooting capabilities make it ideal for solving comms problems, or for quickly checking that you can communicate with your instrument before starting to automatically acquire data. Features No programming required Free technical...
    8. serial protocol convertersserial protocol converters See also FIXME serial ADCs and DACs. RS-232 to PC keyboard (often called “wedges” — the most common versions allow you to plug a barcode reader FIXME barcode (RS-232) and a standard PC keyboard into the wedge, and then you plug the wedge into the keyboard port of a PC.) Often used...
    9. serial data communication protocol Monitoring – ADC200/20This experiment demonstrates how a serial data communication protocol can be successfully monitored. Serial data communications represents the fundamental method by which information is transported in our modern world. Convergence between communications and computers has caused all forms of information to be digitized for easy transport in serial format. Unlike analog waveforms such as sine...
    10. A little bit of information about the PC serial portA little bit of information about the PC serial port Jan Axelson http://lvr.com/ has lots of information about RS-232 and RS-485 #rs485 http://sourceforge.net/projects/libserial/ “A collection of C++ classes which allow the serial port on POSIX systems to be accessed like an iostream object. …” Programming Notes For Central Data Serial Ports http://www.cd.com/prog.html has lots of...
    11. Serial communication between the Ardunio and ProcessingThis week’s lab focused on exploring the Arduino’s capability to communicate using a Serial connection.  I was very excited to learn how to set up this kind of communication system as it opens up a whole new set of development possibilities.  Being able to interface physical computing components with Processing (or Flash) is just downright...
    12. Using Windows NT Embeddeds serial console administration with Windows XP EmbeddedWhen Windows XP Embedded first started shipping, it was leaps and bounds better then original Windows NT Embedded. All the new PC technologies such as USB, IEEE 1394, multimedia, plug-n-play technologies, and ACPI were supported. The tools and database were improved. Many Embedded Enabling Features (EEF) were carried over and improved: the new Enhanced Write...
    13. Computer Buying Guide – The choices among desktop and laptop computersThe choices among desktop and laptop computers can be confusing. New desktops can be smaller and less-conspicuous than some laptops. Meanwhile, some portable computers offer features and capabilities that rival traditional desktops. Here are the types of computers—and the pros and cons—you need to consider....
    14. Clock Controller V1.1 ReviewThe Clock Controller V1.1 was designed to be an exemplary of using C language to control timer0 interrupt, 7-segment LED and keypad scanning. It provides 1-bit sink current driving output, for driving a relay, opto-triac, say. Many projects requiring 7-segment display and keypad interfacing may get the idea from the Clock circuit and software.Hardware...
    15. Wireless serial connection network wireless signal transmissionINTRODUCTION: Data collection, serial communication and wireless signal transmission are a common applications in industrial, medical and scientific area. Sensors data or even the machine control command are used serial communication protocol to transmit to other machines. The user has to carry around an RS232 cable as the communication media.   UART-Link is a low...