A short demonstration on how to utilize the ffprobe command to extract information about media files such as wav / MP4 files.
The ffprobe executable comes with the complete ffmpeg package and can be obtained from here:
Once downloaded and installed, the ffprobe executable resides alongside the ffmpeg and ffplay executables as shown:
Continue reading ‘Obtaining Media File Information in Visual C++ Using FFPROBE’ »
This post shows you how to utilize the built-in file handling capabilities that MFC has in order to serialize your data, that is, how to read from or write to a disk.
Using the MFC document object
One way is to use the MFC document object to do the serializing for you. This will be demonstrated by creating a simple SDI (single document interface) using the AppWizard.
Select File > New > Project and select the Visual C++ > MFC Application as the choice of installed template:
Continue reading ‘Serializing data in MFC / Visual C++’ »
Some short examples of how to use the Boost property tree in order to read from and write to XML files.
Reading XML into a Boost property tree
Here’s how to read an example XML into the Boost property tree and traverse each of the the “item” sections within this XML, given that items may contain differing subsections:
For this XML example file “test1.xml” I use the following example XML taken from the Microsoft MSDN page:
Continue reading ‘Using boost::property_tree’ »
E-iceblue Ltd. is a vendor of powerful components for .NET, Silverlight and WPF development. These products enable the user to easily read and write different formats of office files.
A quick an easy guide to setting up Spire.XLS for use in Visual Studio .NET projects is presented here.
For the purpose of clarity and helping the user get started as soon as possible, a simple ‘HelloWorld’ example is presented.
Continue reading ‘Getting started with Spire.XLS for .NET’ »
For many C++ applications I very much want to use the Boost libraries, just not the whole set.
This post explains how to use the
bcp tool to create a subset of the Boost libraries in order to leave out unnecessary libraries and tailor it to the needs of your project. One nice thing about
bcp is that it can be run at any time so as to update your Boost dependencies as and when the need arises.
Continue reading ‘Using a subset of the boost libraries in Windows’ »
A short recipe outlining how to output a SYSTEMTIME value as a std::string.
The example format will be “YYYY-MM-DD HH:MM:SS.MMM”
I specifically wanted to include milliseconds.
In this example I employ three possible techniques:
1. MFC CString
Continue reading ‘Converting a SYSTEMTIME to a std::string in C++’ »
Examples of using boost::filesystem for various things as and when I encounter them…
Many have been lifted from the StackOverflow site.
For reasons of brevity and clarity I generally avoid extraneous code such as exception handling etc in these examples and just focus on the techniques themselves.
1. Copying a directory
This recursively uses boost::filesystem::create_directory to create a copy of a directory including its contents, sub-directories etc.
For example the MyStuff folder:
Use the following code snippet to re-create a copy of the MyStuff folder, and rename it MyStuff2:
Continue reading ‘Using boost::filesystem’ »
Step 1: Download and install TinyXML
Download and extract the library from
TinyXML source files as shown:
Continue reading ‘Getting Started with TinyXml’ »
A run-through on how to create a standard MFC List Control
Visual Studio 2010 project downloadable from here.
Much of the credit for this must go to Zafir Anjum on the Codeguru site for an article called “Editable subitems” from which this post borrows quite heavily.
Continue reading ‘Editable MFC List Controls’ »
SHA-256 is a cryptographic hash function developed by the US. National Security Agency (NSA) as a U.S. Federal Information Processing Standard (FIPS). The SHA acronym stands for Secure Hash Algorithm. A hash function operates on an arbitrary amount of data and returns a fixed-size bit string, the cryptographic hash value.
So why would such an algorithm be useful? Its utility lies in the fact that attempts to change the original data will almost certainly change the hash value returned by the algorithm. An obvious application would be to apply such an algorithm to a file (text or binary) as a means of determining whether or not it has been tampered with.
This post shows you how to use SHA-256 as implemented by the OpenSSL open source project, and use it within Windows / Visual C++ environments to produce digital signatures of strings or files.
Continue reading ‘Installing and using OpenSSL SHA-256 in Visual C++’ »