Dacris Benchmarks

Dacris Software Home

 

Dacris Software

  Home  |  Information  |  Downloads  |  Support  |  Articles  |  Contact

Contents

   Product Info
  
Downloads
  
Support
  
Shop Online
  
Articles
 

Dacris Benchmarks Software Development Kit (SDK)

Introduction

Version 4.9 of Dacris Benchmarks brings with it a brand new modular architecture that programmers can use to make their own plug-ins. The plug-ins come in the form of DLL files. There is a certain format that these DLL files must have, and this article explains the basics of that format. The DLL plug-ins can be made in any C++ compiler.

Tests

The names of all test plug-ins that Dacris Benchmarks should load are stored in a file called "Tests.ini". All the files referred to in this article are found in the folder containing the Dacris Benchmarks executable. Tests are listed in this file under headings such as [0], [1], [2]. The master heading [Tests] defines how many plug-in headings there are. Here is a sample "Tests.ini" file:

[Tests]
Number=2

[0]
FileName=CPUTest.dll

[1]
FileName=Memtest.dll

The tests are loaded in ascending order, so the CPUTest.dll would be the first test on the toolbar and in the main menu. If a DLL doesn't exist or is the wrong version, Dacris Benchmarks warns the user at start-up.

Below is the basic structure for a plug-in DLL file.

Exports:

Note: BMARK_API = WINAPI

UINT BMARK_API FAR PASCAL DllSetLanguage(BMARKLANG *lang)
UINT BMARK_API FAR PASCAL DllGetBmarkVer(BMARKVER* version)
UINT BMARK_API FAR PASCAL DllTestGetData(BMARKTEST* data)
UINT BMARK_API FAR PASCAL DllTestGetSystemInfo(BMARKSYSINFO* sysinfo)
UINT BMARK_API FAR PASCAL DllTestRun(HWND hwnd, BMARKGAUGE *dlg, HINSTANCE hinst, int unattend, bool licensed, BMARKRESULT* results, BMARKSETTINGS* settings, VOID *pAgent)

There are also a few structures to store information.

More details are found in the Dacris Benchmarks 4.9 SDK (217 KB).

Tune-Up Wizard

The structure of tune-up wizard DLLs is the same as the test plug-ins, but with different exported functions, and a new BMARKOPTIMIZATION structure which contains data about the tune-up page. Each tune-up wizard DLL represents a page in the tune-up wizard. The plug-in file names are stored in a file called "Optimizations.ini" which has essentially the same structure as the "Tests.ini" file.

More details are found in the Dacris Benchmarks 4.9 SDK (217 KB).

FAQ

Q: Where can I find more information about this SDK?
A: You can get more information by downloading the Dacris Benchmarks 4.9 SDK (217 KB).

Q: What can I do with this new architecture? What are the limitations?
A: You can program custom benchmark tests and optimizations of all sorts. You can also expand certain features of Dacris Benchmarks, and even add new wizards. These DLLs are limited to Dacris Benchmarks and have a limited number of predefined exportable functions. Also, these DLLs are unable to find and interact with other DLLs loaded by Dacris Benchmarks, so if a DLL requires another DLL in use by Dacris Benchmarks, it must provide its own algorithm for loading it.

Q: What compilers does this SDK support?
A: All C++ compilers that are compatible with the Win32 API (1996 or later) will support this SDK. The SDK does not involve any LIB files, but only one header file and a lot of documentation. However, you do need to declare your functions as WINAPI in order to be able to export them from all compilers. The preferred compiler is Microsoft Visual C++ 5 or later. MFC, OWL, or other class libraries are not officially supported, but can be used. Languages derived from C++ such as C# are not officially supported.

Q: Can external applications be executed for custom tests?
A: Absolutely! However, you still need to implement the DLL first. You may call an external application from the DLL, but not directly from Dacris Benchmarks.

Copyright © 2002 Dacris Software. Last Updated February 2, 2002.