This repository has been archived by the owner on Jan 20, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Tools (Program) and Shell Scripts for Building and Testing Applications
License
txwizard/DAGDevTOOLS
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
External Tools ReadMe ================================================================================ The pre and post build tesks and the test scripts found in the /scripts directory of most of my projects use a number of tools that I have developed over many years. Since they live in a directory that is on the PATH list on my development machines, they are "just there" when I need them, and I seldom give them a second thought. For anybody who wants to run the test scripts or build the project, they are in DAGDevTOOLS.ZIP, which can be extracted into any directory that happens to be on your PATH list. None of them requires installation, none of the DLLs is registered for COM, and none of them or their DLLs use the Windows Registry. A few use MSVCR120.dll, which is not included, but you probably have it if you have a compatible version of Microsoft Visual Studio. The rest use MSVCRT.DLL, which ships with Microsoft Windows. This kit is made available under a freeware license, contained in LICENSE.TXT. The following table lists and briefly describes the programs and scripts that are included in the archive. Program or Script Name Purpose --------------------------- ---------------------------------------------------- Date2FN.exe Format the local time as YYYYMMDD_HHMMSS, and append it to the base name of a file. This is a simple way to guarantee unique names for sets of log files and test reports that are easy to sort by creation date. wwBldNbrMgr.exe Increment the build number in the AssemblyInfo.cs OF a project. Only C# projects are supported. WWLogger.exe Create or append to a text long, each entry having a time stamp. The default format is YYYY/MM/DD hh:mm:ss, which can be changed via command line options, discussed with examples in WWLOGGER.pdf, which is also included. The time stamp is always followed by a single space, then the message, which has no pre-set length limit. Additional lines can be appended to the message by writing them into a text file, then piping the text to standard input by way of redirection characters. WWLOGGERD.EXE This is a Unicode version of WWLogger.exe; it works identically, except that it outputs 16-bit Unicode characters. Though the files created by the current version lack a Byte Order Mark of any kind, I have never had a problem reading them into a text editor or spreadsheet program. WWPause.exe I got fed up eons ago with batch files that took off when ANY key was pressed, and wrote a DOS version of this program. This is its 32 bit character mode son. WWSleep.EXE This program allows a batch file to be suspended for a user-defined number of seconds, with a default of 30 seconds if unspecified, to allow time for you to read its output before the window in which it ran is closed when the script exits. ExportFromEventLogNDays.CMD This script uses the SysInternals PSLogList utility to export records from a Windows event log. You must supply your own copy of PSLogList.exe. ShowArgs.BAT This script displays the command line arguments of a batch file. It can display up to nine arguments, but it displays only actual arguments. ShowTime.CMD This script displays the current date and time, so a script listing is time stamped. XCOPYD.CMD This wrapper around stalwart system utility XCOPY is the most dependable way I know to automatically give the correct answer to the prompt about whether the destination is a file or a directory when the answer is that it is a directory. XcopyDestIsDir.TXT This response file answers the prompt from XCOPY.EXE when the destination is a directory. XCOPYF.CMD pipes it into XCOPY.EXE to automatically supply the correct answer. This not only eliminate guesswork, and a risk of responding incorrectly when using XCOPY interactively in a command prompt window, but it permits XCOPY to be run safely in unatteended scripts, including build scripts, such as the one in the Visual C++ build projects for my native DLLs. This file and XCOPYD.CMD inhabit the same directory, where XCOPYD.CMD parses its own fully qualified path to work out where to find its response file. XcopyDestIsFile.TXT This is the response file for XCOPYF.CMD; it works exactly like XcopyDestIsDir.TXT when the correct response is that the destination is a file. XCOPYF.CMD This wrapper around stalwart system utility XCOPY is the most dependable way I know to automatically give the correct answer to the prompt about whether the destination is a file or a directory when the answer is that it is a file. The following table lists and briefly describes the dynamic-link libraries that are included in the archive. Functions are listed alphabetically by name, regardless of whether their type is Native or Managed. ------------ Native DLLs ------------ A DLL Type of Native denotes a DLL that is a Win32 dynamic link library that exports its functions according to the __declspec(dllexport) calling convention, and is suitable for use with any programming language that can call the Windows API, including Visual Basic for Applications (VBA). Many of the functions return pointers to strings, and have wrappers that return Basic Strings (BSTRs) that are easier to use in VBA code, and are garbage collected. I have add-in modules for Microsoft Excel that use many of these. The Native DLLs are written almost entirely in C, and were built with a version of the Microsoft Visual C++ compiler and tools. The older libraries were built with Visual C++ 6.0, while the newest libraries were built with Visual C++ 12 (included with Visual Studio 2013). A handful of routines are implemented in Assembler, and were assembled by the Microsoft Macro Assembler 6.11. All of them run in the 32 bit subsystem on a 64 bit Windows machine. ------------ Managed DLLs ------------ A DLL type of Managed is a managed (Microsoft .NET) class library. All of the libraries in this kit were built against version 2.0 of the framework, and are compatible with that framework and all newer frameworks. They are implemented exclusively in Visual C#, and most were built with Visual C# 2013. A few older libraries were built with Visual C# 2010. DLL Name DLL Type Abstract -------------------------------- --------- ------------------------------------- CreateFileWithRetry.dll Native This library exports one function, which is a drop-in replacement for the native CreateFile Win32 function. Like the routine it replaces, it has ANSI and wide character (Unicode) implementations. FixedStringBuffers.dll Native This library exports wrappers around the Win32 LoadString function for loading Win32 resource strings and a set of static (baked in) buffers, for use with the printf family of formatted string printing functions. Other functions build on these to permit reporting appliation and system errors without the risk of the report failing due to low memory. P6CStringLib1.dll Native This library exports numerous string parsing and manipulation functions. All functions have ANSI (narrow character), Unicode (wide character), and BSTR (Basic String) versions, and provide fast implementations of the string functions commonly provided by Basic and most scripting languages. P6VersionInfo.dll Native This library exports a handful of convenience wrappers around the Win32 version resource functions. There are ANSI and Unicode versions of all that return strings. ProcessInfo.dll Native This library exports a handful of specialized functions for obtaining information about the calling process such as the Windows subsystem in which it runs (Character or Windows) and the directory from which its main executable program loaded. SafeMemCpy.dll Native This library exports two functions (one ANSI and one Unicode) for safely copying strings into a buffer that was allocated from the process heap. Safe copying means that the buffer is expanded as needed to acommodate the copy. WizardWrx.ApplicationHelpers.dll Managed This class library exposes routines that maintain basic information about the main assembly under which they run, and for reporting exceptions, including optional recording in a Windows event log. WizardWrx.ConsoleAppAids.dll Managed This class library exposes reoutines that cater to the needs of character mode (Console) programs, such as a robust command line argument parser. WizardWrx.DateMath.dll Managed This class library exposes routines for manipulating and formatting dates and times. WizardWrx.SharedUtl2.dll Managed This class library exposes a variety of classes that define commonly used numeric, Boolean, character, and string constants, and provide helper classes and methods for working with blocks of text, regular expressions, delimited lists, file names, and message digests. WWConAid.dll Native This library exports functions that cater to the needs of character mode (console) programs, such as routines for parsing "here" documents read from the standard input stream, and a little routine that halts a program until a carbon unit (you) presses the Enter (Return) key, displaying a default or custom message, and emitting a customizable beep through the built-in PC speaker to call itself to your attention. WWDateLib.dll Native This library exports functions that support extremely robust date formats and routines that determine correctly whether a given year is a leap year. WWKernelLibWrapper.dll Native This library exports routines that allocate, reallocate, and deallocate blocks of memory from the default process heap. These routines use the Windows heap management functions, rather than the CRT functions (such as malloc, calloc, realloc, and free) because the CRT functions just wrap the same Windows functions and use a dedicated heap over which you have no control. Moreover, these functions use Structured Exception Handling to ensure precise information about any memory allocation error that may happen. Other routines provide conveniences, such as easy access to the names of the current working directory and the user's temporary directory, the full name of the current program and that of its directory, and the version of Microsoft Windows on which the code is running. ================================================================================
About
Tools (Program) and Shell Scripts for Building and Testing Applications
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published