Basic Techniques and Knowledge 01-P1368 11/13/00 2:53 PM Page 2

Total Page:16

File Type:pdf, Size:1020Kb

Basic Techniques and Knowledge 01-P1368 11/13/00 2:53 PM Page 2 01-P1368 11/13/00 2:53 PM Page 1 CHAPTER 1 Basic Techniques and Knowledge 01-P1368 11/13/00 2:53 PM Page 2 2 Chapter 1 Basic Techniques and Knowledge We are about to begin our adventure into the Windows graphics system, from the sur- face of the Win32 API to the rock bottom of display/printer drivers. There are lots of important areas in the Windows graphics system. We will focus on the most impor- tant parts: the Win32 GDI (Graphics Device Interface) and the DirectDraw portion of DirectX. Win32 GDI APIs are implemented on multiple platforms like Win32s, Win95/ 98, Win NT 3.5/4.0, Windows 2000, and WinCE, with significant differences among them. For example, Win32s and Win95/98 are based on the old 16-bit GDI imple- mentation that has lots of restrictions, while the true 32-bit implementations on Win- dows NT 3.5/4.0 and Windows 2000 are much more powerful. The DirectDraw in- terfaces are implemented on Win95/98, Win 4.0, and Windows 2000 platforms. This book will be targeted mainly at the Windows NT 4.0 and Windows 2000 platforms, the most powerful implementation of those APIs. Special notes for other platforms will be added as appropriate. Before we go deeply into the Windows graphics system, we need to review a few basic techniques that will be vital to our exploration. In this chapter, we will cover simple Windows programming in C /C++, a little bit of assembly-language program- ming, program development and debugging tools, the format of the Win32 execution file, and the architecture of the Windows Operating System. It is assumed that readers are intermediate to advanced Windows programmers, so the coverage of those techniques Note is very brief. Readers will be referred to other books for in- depth coverage of those topics. 1.1 BASIC WINDOWS PROGRAMMING IN C/C++ The working languages of our profession have developed dramatically from the dark age of machine languages to the modern-day programming languages like C, Visual Basic, Pascal, C++, Delphi, and Java. It’s said that the number of lines of code a pro- grammer writes a day is almost the same no matter what language he or she uses. So, naturally, with languages moving higher and higher in level of abstraction, program- mers’ productivity gets higher and higher. The most common single language used for Windows programming may be C, as can be seen from the sample programs that come with the Microsoft Platform Software Development Kit (Platform SDK) and Device Driver Kit (DDK). Object- 01-P1368 11/13/00 2:53 PM Page 3 1.1 Basic Windows Programming in C/Cϩϩ 3 oriented languages like C++, Delphi, and Java are catching up quickly, to replace C and Pascal as the new-generation languages for Windows programming. Object-oriented languages are definitely improvements over their predecessors. C++, for example, even without its pure object-oriented features such as class, inheri- tance, and virtual function, improves upon C with modern features such as strict func- tion prototyping, inline function, overloading, operator, and template. But writing object-oriented Windows programs is not an easy job, mainly be- cause the Windows API was not designed to support object-oriented languages. For example, callback functions like the Windows message procedure and the dialog mes- sage procedure must be global functions. The C++ compiler will not let you pass a nor- mal class member function as a callback function. Microsoft Foundation Class (MFC) is designed to wrap the Windows API in a class hierarchy, which has now almost be- come the de facto standard for writing object-oriented Windows programs. MFC goes to great length to bridge objected-oriented C++ and C oriented Win32 API. MFC passes a single global function as the generic window message procedure, which uses a map from HWND to a CWnd object pointer to translate a Win32 window handle into a pointer to a C++ window object. Even Microsoft is worried about the size and complexity of MFC when OLE, COM, and Active X are becoming popular, so the recommended class library to write lightweight COM server and Active X controls is yet another class library from Microsoft, Active Template Library (ATL). Following the trend of moving toward object-oriented programming, the sample code presented in this book is mostly C++, rather than C. To make the sample code readily useable to C programmers, C++ programmers, MFC programmers, ATL pro- grammers, C++ builder programmers, or even Delphi and Visual BASIC program- mers, neither fancy features of C++ nor MFC /ATL are used in this book. Hello World Version 1: Starting Your Browser Let’s get down now to the business of writing a basic Windows program in C. Here is our first Windows program: // Hello1.cpp #define STRICT #include <windows.h> #include <tchar.h> #include <assert.h> const TCHAR szOperation[] = _T("open"); const TCHAR szAddress[] = _T("www.helloworld.com"); 01-P1368 11/13/00 2:53 PM Page 4 4 Chapter 1 Basic Techniques and Knowledge int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmd, int nShow) { HINSTANCE hRslt = ShellExecute(NULL, szOperation, szAddress, NULL, NULL, SW_SHOWNORMAL); assert( hRslt > (HINSTANCE) HINSTANCE_ERROR); return 0; } Sample programs accompanying the book are put into in- dividual subdirectories for each chapter, named Chapt_01, Note Chapt_02, etc. An extra directory on the same level, called include, contains all the common shared codes. Each chap- ter directory has one Microsoft Visual C++ workspace file, which contains all the projects within the chapter. Each project resides in its own subdirectory. For example, the Hello1 project is in the Chapt_01\Hello1 directory. Toref- erence common files like win.h, relative paths like “..\..\ include\win.h” are used in the source code. This “Hello World” program is not just another hello world program, it’s the hello world program for the Internet age. If you could run this program, your browser would bring up a web page through a powerful Win32 API call, ShellExecute. A few points may worth mentioning in this simple program, as it may not look the same as the skeleton program shown in other books. These points are included here to encourage good programming habits. The program starts by defining a macro STRICT, which tells the Windows in- clude file to treat different object types differently, making it easier for the compiler to give programmers warning messages if they mix HANDLE with HINSTANCE, or HPEN with HBRUSH. If you hear a reader complaining that sample programs from certain books can’t even compile, it is likely that the sample programs were not tested with the macro STRICT defined. This happens because the newer versions of Win- dows include files that turn STRICT on by default, while the older versions do not. Including <tchar.h> makes the single source code compilable both for non- UniCode and UniCode versions of binary code. Programs targeted for Windows 95/ 01-P1368 11/13/00 2:53 PM Page 5 1.1 Basic Windows Programming in C/Cϩϩ 5 98 lines of OS are not recommended to be compiled in UniCode mode unless the programmer is extremely careful in avoiding UniCode-based API, which are not im- plemented on Win95/98. Be careful that the lpCmd parameter to WinMain is always non-UniCode; you have to use the GetCommandLine() to get the TCHAR version of the full command line. Including <assert.h> is for defensive programming. It’s highly recommended that programmers step through every line of their code in a debugger to catch possible er- rors. Putting asserts on incoming parameters and function return results helps check for unexpected situations efficiently over the whole development phase. Another way to contain programming errors is to add exception handling to your code. The two “const TCHAR” array definitions ensure that those constant strings are put into the read-only data section in the final binary code generated by the compiler and linker. If you include strings like _T(“print”) directly in the call to ShellExecute, it will likely end up in the read-write data section of the binary code. Putting constants into the read-only section ensures that they are really read-only, so that attempts to write to them will generate protection faults. It also makes them shareable among mul- tiple instances, thus reducing physical RAM usage if multiple instances of the same module are loaded on a system. The program does not name the second parameter of WinMain, normally called hPrevInstance, because it’s not used by Win32 programs. The hPrevInstance is sup- posed to be the instance handle of the previous instance of the current program for Win16 programs. For Win32 programs, all programs have separate address spaces. Even if there are multiple instances of the same program running, they can’t normally see each other. It’s hard, if not impossible, to write the perfect source code, yet we can learn some tricks to tell the compiler to build the perfect binary code. The important thing is to select the right CPU, runtime library, optimization, structure alignment, and DLL base address. Adding debug information, a map file, or even an assembly code listing will help you debug, analyze defect reports, or fine-tune performance. Another idea is to use map file, the quick viewer feature of Windows 95/96/NT Explorers, or Dumpbin to analyze your binary code to see that the right functions are exported, no strange functions are imported, and no section within the binary code surprises you. For ex- ample, if your code imports oleauto32.dll function 420, your code would not run on earlier releases of Win95.
Recommended publications
  • Win32 API 1.Pdf
    Win32 Programming for Microsoft Windows NT Windows NT is designed to address the changing requirements of the computing world. It is written mainly in C and is crafted in such a way as to make its functionality extensible, and to ease the porting of the code from one hardware platform to another. This enables the ability to take advantage of multiprocessor and RISC computers, and to distribute tasks to other computers on the network, transparently. Whilst providing applications and users with the ability to use the power of local and remote machines, Windows NT must offer compatibility to applications and users. Users must feel comfortable with the interface, and be able to run existing high-volume applications. Existing applications have to port simply to the new environment to take advantage of its power. So, the user interface is compatible with existing Microsoft systems and existing programming APIs are supported and have been extended. To be considered a major player in the server arena, Windows NT has to offer reliable, robust support for ‘mission critical’ software. This means the system should be fault tolerant, protecting itself from malfunction and from external tampering. It should behave predictably and applications should not be able to adversely affect the system or each other. It should also have a security policy to protect the use of system resources, and implement resource quotas and auditing. Networking is built in, with high level programming and user interfaces available. Remote access to other machines on various networks is almost transparent. Because applications have to perform to an expected level, the system should be fast and responsive on each hardware platform.
    [Show full text]
  • Installation and Configuration Guide
    NetApp SANtricity® SMI-S Provider 11.53 Installation and Configuration Guide December 2019 | 215-13407_C0 [email protected] Table of Contents About This Guide ............................................................................................................................. 1 Overview of the NetApp SANtricity SMI-S Provider ...................................................................... 1 What’s New ................................................................................................................................1 Abbreviations, Acronyms, Terms, and Definitions ........................................................................ 1 Supported Profiles and Subprofiles ............................................................................................. 1 Supported Operating Systems for SMI-S .................................................................................... 2 Supported Firmware Versions ........................................................................................................ 3 System Requirements ..................................................................................................................... 3 Installing and Uninstalling SMI-S Provider ..................................................................................... 4 Windows operating system install and uninstall process ............................................................... 4 Installing SMI-S Provider (Windows operating system) .....................................................
    [Show full text]
  • Use of Microsoft Visual Studio Express Edition and Directx to Simulate Movements of a Colony of Penguins That Must Be Tagged for a Science Mission Education
    Use of Microsoft Visual Studio Express Edition and DirectX to Simulate Movements of a Colony of Penguins that must be tagged for a Science Mission Education Sandy Harrison (WSSU), Tushar Majithia (Mentor), Spencer Weeks- Jamieson, Jasmin Rivers (ECSU), Terrance Mason (MVSU), Dr. Arvin Agah (Mentor) (KU) igloos to the snow, the game itself displays a Abstract- type of climate that some penguins live in. In developing this game, the team is specifying, Students begin to take a general interest designing, implementing, and testing the in becoming scientists or engineers at early stages software. Some of the programs that the team in their life, such as the middle school level. It is utilized were C++, VC++ Express 2005 Edition imperative that they are targeted at this point in compiler, and Microsoft Platform SDK their lives to be encouraged to pursue their (Software Development Kit). This project education in science, technology, engineering, and mathematics (STEM) fields. The dilemma is how consisted of upgrading a previously developed to get young scholars interested in STEM areas? game. While using C++ in the aspect of Our proposed tool is an educational and programming, we modified the previous entertaining video game, as a vast number of young program's features with realistic graphics. This students tend to play video games everyday. Our modification would enrich it with a realistic goal is to combine education and fun into a game in perspective that would better serve our primary order to teach the players about polar research. objective. To validate if middle school students The objective of this URE Summer project is to would enjoy this game, we used the 2007 enhance an existing video game to educate young CReSIS Middle School Program students as students on the Polar Regions including challenges that scientists face.
    [Show full text]
  • Darwin Release 3.0.1
    Using Darwin Release 3.0.1 Thinking Machines Corporation First printing, May 1998 The information in this document is subject to change without notice and should not be construed as a commitment by Thinking Machines Corporation. Thinking Machines reserves the right to make changes to any product described herein. Although the information in this document has been reviewed and is believed to be reliable, Thinking Machines Corporation assumes no liability for errors in this document. Thinking Machines does not assume any liability arising from the application or use of any information or product described herein. Thinking Machines and Darwin are registered trademarks of Thinking Machines Corporation. Note: Darwin" is a registered trademark of Thinking Machines Corporation in the United States. Darwin" is a registered trademark of Science in Finance Ltd. in the United Kingdom. Therefore Darwin" is not available from Thinking Machines Corporation in the United Kingdom. In the United Kingdom, Thinking Machines Corporation sells its product under the name LoyaltyStream." HPĆUX and HPĆUX 10.20 are trademarks of HewlettĆPackard Company. INFORMIX is a trademark of Informix Software, Inc. InstallShield is a trademark of InstallShield Corporation. INTERSOLV is a trademark of INTERSOLV, Inc. Microsoft, Windows, Windows NT, and Windows 95 are trademarks of Microsoft Corporation. Oracle is a trademark of Oracle Corporation. Open Windows is a trademark of Sun Microsystems, Inc. Sun, Solaris, Sun Ultra, Ultra, and Sun Workstation are trademarks of Sun Microsystems, Inc. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc., in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
    [Show full text]
  • Taking Advantage of the SAS System on Windows NT
    Taking advantage of the SAS System on Windows NT Mark W. Cates, SAS Institute Inc., Cary, NC ABSTRACT Unless specified, all the SAS System products and features are provided on both Windows NT Windows NT is fast becoming the universal Workstation and Windows NT Server. This desktop client operating system as well as an paper assumes the current release of Windows important file and compute server for mission NT is Version 4.0. For brevity, the abbreviation critical applications. This paper presents a NT will be used for Windows NT. discussion of the state of Windows NT and how the SAS System Release 6.12 for Windows takes advantage and integrates with the operating Windows Family - Single Executable Image system. Areas such as the user interface, OLE and Web integration are presented. Data access Windows NT is now in its full 3rd generation, and Microsoft BackOffice integration, and with the release of Windows NT Workstation hardware considerations are also presented. 4.0 and Windows NT Server 4.0. NT Workstation and NT Server share the same microkernel, and is portable to several RISC INTRODUCTION platforms, including DEC Alpha AXP, and the PowerPC Prep Platforms. The MIPS chip Microsoft Windows NT sales grew dramatically is no longer supported by Windows NT. The in 1996, as many corporations which have been majority of NT installations still run on the Intel investigating Windows NT have now begun to Pentium® and Pentium Pro® processor. The deploy Windows NT for the client desktop. SAS System Release 6.12 only supports the Intel Many of these deployments were replacing platform, and the Pentium Pro processor is ® Windows 3.1 and Windows 95 .
    [Show full text]
  • Cygwin User's Guide
    Cygwin User’s Guide Cygwin User’s Guide ii Copyright © Cygwin authors Permission is granted to make and distribute verbatim copies of this documentation provided the copyright notice and this per- mission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this documentation under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this documentation into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Cygwin User’s Guide iii Contents 1 Cygwin Overview 1 1.1 What is it? . .1 1.2 Quick Start Guide for those more experienced with Windows . .1 1.3 Quick Start Guide for those more experienced with UNIX . .1 1.4 Are the Cygwin tools free software? . .2 1.5 A brief history of the Cygwin project . .2 1.6 Highlights of Cygwin Functionality . .3 1.6.1 Introduction . .3 1.6.2 Permissions and Security . .3 1.6.3 File Access . .3 1.6.4 Text Mode vs. Binary Mode . .4 1.6.5 ANSI C Library . .4 1.6.6 Process Creation . .5 1.6.6.1 Problems with process creation . .5 1.6.7 Signals . .6 1.6.8 Sockets . .6 1.6.9 Select . .7 1.7 What’s new and what changed in Cygwin . .7 1.7.1 What’s new and what changed in 3.2 .
    [Show full text]
  • Deployment Guide for Sharepoint Foundation 2010
    Deployment guide for SharePoint Foundation 2010 Microsoft Corporation Published: May 2010 Author: Microsoft Office System and Servers Team ([email protected]) Abstract This book provides deployment instructions for Microsoft SharePoint Foundation 2010. The audiences for this book include application specialists, line-of-business application specialists, and IT administrators who are ready to deploy SharePoint Foundation 2010 and want installation steps. The content in this book is a copy of selected content in the SharePoint Foundation 2010 technical library (http://go.microsoft.com/fwlink/?LinkId=1814 63) as of the publication. For the most current content, see the technical library on the Web. This document is provided “as-is”. Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Access, Active Directory, Backstage, Excel, Groove, Hotmail, InfoPath, Internet Explorer, Outlook, PerformancePoint, PowerPoint, SharePoint, Silverlight, Windows, Windows Live, Windows Mobile, Windows PowerShell, Windows Server, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication.
    [Show full text]
  • PC Magazine Fighting Spyware Viruses And
    01_577697 ffirs.qxd 12/7/04 11:49 PM Page i PC Magazine® Fighting Spyware, Viruses, and Malware Ed Tittel TEAM LinG - Live, Informative, Non-cost and Genuine ! 01_577697 ffirs.qxd 12/7/04 11:49 PM Page ii PC Magazine® Fighting Spyware, Viruses, and Malware Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256-5774 www.wiley.com Copyright © 2005 by Wiley Publishing Published simultaneously in Canada ISBN: 0-7645-7769-7 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 1B/RW/RS/QU/IN No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, e-mail: [email protected]. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials.
    [Show full text]
  • Visual Studio Team Test Quick Reference a Quick Reference for Users of the Team Testing Features of Visual Studio Team System
    MICROSOFT Visual Studio Team Test Quick Reference A quick reference for users of the Team Testing features of Visual Studio Team System Geoff Gray and the Microsoft VSTS Rangers team 3/30/2009 VSTS Rangers This content was originally created by Geoff Gray for internal Microsoft use and then adopted and expanded as a Visual Studio Team System (“VSTS”) Rangers project. “Our mission is to accelerate the adoption of Team System by delivering out of band solutions for missing features or guidance. We work closely with members of Microsoft Services to make sure that our solutions address real world blockers.” -- Bijan Javidi, VSTS Rangers Lead Copyright 2009 Microsoft Corporation Page | 1 Summary This document is a collection of items from public blog sites, Microsoft® internal discussion aliases (sanitized) and experiences from various Test Consultants in the Microsoft Services Labs. The idea is to provide quick reference points around various aspects of Microsoft Visual Studio® Team Test edition that may not be covered in core documentation, or may not be easily understood. The different types of information cover: How does this feature work under the covers? How can I implement a workaround for this missing feature? This is a known bug and here is a fix or workaround. How do I troubleshoot issues I am having? The document contains two Tables of Contents (high level overview, and list of every topic covered) as well as an index. The current plan is to update the document on a regular basis as new information is found. The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication.
    [Show full text]
  • 9.4 Flight Operations Data
    REPORT DOCUMENTATION PAGE Form Approved OMB No. 0704-0188 Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503. 1. AGENCY USE ONLY (Leave blank) 2. REPORT DATE 3. REPORT TYPE AND DATES COVERED August 1995 Final Report Jan 93 - Aug 95 4. TITLE AND SUBTITLE 5. FUNDING NUMBERS Integrated Noise Model (INM) Version 5.0 User's Guide DTFA01-93-C-00078 6. AUTHOR(S) Task Orders 2 and 5 ATAC Olmstead, Bryan, Jeng, Mirsky, Rajan* VNTSC Fleming, D'Aprile, Gerbi*, Rickley*, Turner* FA565/A5012 LeTech Le, Le, Chen * subcontractors FAA Plante, Gulding (Prog. Mgr.), Vahovich, Warren 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORGANIZATION ATAC Corporation DOT/VNTSC LeTech, Inc. REPORT NUMBER 757 N. Mary Ave. DTS-75, Kendall Sq. 5400 Shawnee Rd #202 Sunnyvale, CA 94086 Cambridge, MA 02142 Alexandria, VA 22312 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSORING/MONITORING U.S. Department of Transportation AGENCY REPORT NUMBER Federal Aviation Administration Office of Environment and Energy, AEE-120 FAA-AEE-95-01 800 Independence Ave.
    [Show full text]
  • Download Full CV (PDF)
    Full name : Lars Bjergner Mikkelsen. Practical experience: Company name: LARSMIKKELSEN.COM Aps Street & number: Husoddebakken 26 City: Horsens Zip code: 8700 Country: Denmark. Web address: http://www.larsmikkelsen.com Start date of employment: 27-July-2007. End date of employment: Not ended Job title: Owner at LARSMIKKELSEN.COM Aps. Job description: Freelance specialist Microsoft Dynamics Ax and .NET. Technical solution architect Dynamics Ax projects. Development in x++ and C#. Integration specialist between Dynamics Ax and .NET on several projects. SharePoint Enterprise Portal solutions on Dynmaics Ax 4.0 and ASP.NET based Dynamics Ax 2009 solution. Invented, designed and developed Advanced Ax Batch. Advanced Ax Batch is a Dynamics Ax and .NET based scheduler which are used by several companies for batch execution in Dynamcis Ax. Performance optimization Dynamics Ax solutions. Specialized knowledge: Highly experienced with performance optimization and trouble shooting of Dynamics Ax installations. Technologies mastered: Programming Languages (X++, C#) Programming Libraries (Axapta, .NET Framework) Component Technology (Axapta, .NET , COM, COM+, Active X) Databases (SQL server) Markup Languages (HTML, XML) Internet (SharePoint Enterprise Portal) Development tools (Axapta, Visual studio .NET) Protocols (HTTP, SOAP, TCP/IP) 1 Company name: Columbus IT Street & number: 3151 Airway, Building N-1 City: Costa Mesa, CA Zip code: 8240 Country: USA. Web address: http://www.columbusit.com Start date of employment: 23-May-2005. End date of employment: 27-July-2007. Job title: Technology / integration manager and solution architect. Job description: Responsible for technology and integration strategies. Technical solution architect on major Dynamics Ax projects. Development in x++ and C#. Technical responsible for worldwide mobility platform.
    [Show full text]
  • UNIX Text Processing Tools—Programs for Sorting, Compar- Ing, and in Various Ways Examining the Contents of Text Files
    UNIX® TEXT PROCESSING DALE DOUGHERTY AND TIM O’REILLY and the staffofO’Reilly & Associates, Inc. CONSULTING EDITORS: Stephen G. Kochan and PatrickH.Wood HAYDEN BOOKS ADivision of HowardW.Sams & Company 4300 West 62nd Street Indianapolis, Indiana 46268 USA Copyright © 1987 Dale Dougherty and Tim O’Reilly FIRST EDITION SECOND PRINTING — 1988 INTERNET "UTP Revival" RELEASE — 2004 The UTP RevivalRelease is distributed according to the terms of the Creative Commons Attribution License. A copyofthe license is available at http://creativecommons.org/licenses/by/1.0 International Standard Book Number: 0-672-46291-5 Library of Congress Catalog Card Number: 87-60537 Trademark Acknowledgements All terms mentioned in this book that are known to be trademarks or service marks are listed below. Nei- ther the authors nor the UTP Revivalmembers can attest to the accuracyofthis information. Use of a term in this book should not be regarded as affecting the validity of anytrademark or service mark. Apple is a registered trademark and Apple LaserWriter is a trademark of Apple Computer,Inc. devps is a trademark of Pipeline Associates, Inc. Merge/286 and Merge/386 are trademarks of Locus Computing Corp. DDL is a trademark of Imagen Corp. Helvetica and Times Roman are registered trademarks of Allied Corp. IBM is a registered trademark of International Business Machines Corp. Interpress is a trademark of Xerox Corp. LaserJet is a trademark of Hewlett-Packard Corp. Linotronic is a trademark of Allied Corp. Macintosh is a trademark licensed to Apple Computer,Inc. Microsoft is a registered trademark of Microsoft Corp. MKS Toolkit is a trademark of Mortice Kern Systems, Inc.
    [Show full text]