The next step is to build the real GUI. As said in the Build Notes, open the GUI main project as shown below.
Figure 22: Opening the real FreeOTFE GUI project
You can see the whole files been loaded. If there are missing file(s), error message will be displayed.
Figure 23: The real FreeOTFE GUI project been loaded
Let check the project options to make sure all the needed packages have been installed/registered. The steps are shown below (as done previously).
Figure 24: Checking the real FreeOTFE GUI project options
Well. They are there!
Figure 25: A list of the installed packaged seen in the real FreeOTFE GUI project option page
Next, check the path for the installed/registered library as mentioned in the Build Notes. They should be there as shown in the following Figures.
Figure 26: The Invoking the Borland Delphi for Win32 project options
Click the three dots at the end of the Library path: field and scroll down.
Figure 27: The Borland Delphi for Win32 library paths
Yours should be different because it depends on the location of the files/folders for the building and running previous demo project.
In our case we put the SDeanComponents and the FreeOTFE folders (containing the source files) under the same folder. We just do the re-check here, nothing changes were made so just close all the dialog boxes.
Figure 28: The Borland Delphi for Win32 directory paths
Let build the real FreeOTFE GUI. Optionally we just check the syntax as done previously. We can know any error(s) and try to correct it at this stage if possible. So, select the Project → Syntax check FreeOTFE menu as shown below.
Figure 29: Checking the FreeOTFE syntax
ARRRRRRRRGGGGGHHH!!! We have 1 error lor! Click the OK button to dismiss the Compiling dialog box message. Check the Messages window at the bottom.
Figure 30: An error message during the compiling step
Well, what the heck???
Figure 31: The error description seen in the Messages window
After checking the documentation. We found that some files not included in the built packages. We don’t know the exact problem here however this may be caused by the debug version of the SDeanComponents packages used and our default Delphi project settings.
In this case we need to reopen the previous package’s project and rebuilt (re-Build and re-Install or just re-Install) for the affected package only. The error indicates the MSCryptoAPI.dcu file. So, we just re-included the project (.pas) for the effected package only as shown below. Before that you need to close this real GUI FreeOTFE project without any saving and re-open the previous package’s demo project. The MSCryptoAPI.dcu is in the SDeanSecurity package. Keep in the mind that this re-build (re-compile, re-link) step is a typical step that need to be done many times for the Debug version until all the error(s) and warning(s) completely vanished. Well, though there are no warning(s) and/or error(s), we still have logical error(s) where the program run smoothly but the output is not as expected. Forget about it at this moment.
Follow the following steps to re-include the project files.
Figure 32: Re-opening the SDeanComponents package
Re-include the SDeanSecurity component project file (*.pas) as shown in the following Figures. Select the Contains sub-folder under the SDeanSecurity.bpl package and right click. Then select Add… context menu.
Figure 33: Re-adding the SDeanSecurity unit file
Browse the related project file. In this case based on the previous error we re-include the MSCryptoAPI.pas project file as shown below.
Figure 34: Re-adding the SDeanSecurity’s MSCryptoAPI project file
Then re-Install the package as done previously.
Figure35: Re-installing the SDeanSecurity package
We found that all the missing files are under the SDeanSecurity package. Another example is shown below when we rebuild the real GUI. So, it is convenient for you to re-include all the project files (*.pas) under the SDeanSecurity package and then re-Install the package only so that no need for you to rebuild the package through the demo version, save and close the project then re-open the real FreeOTFE GUI project, rebuild and encountering another error, close this project and then re-open the demo project...bla…bla…bla...
Figure 36: Encountering another error during the Install step
Finally after re-Install the SDeanSecurity package (re-including all the project file), we Save All and Close All the package demo program. Then re-open the real FreeOTFE GUI program.
Next we directly rebuild (bypassing the optional Syntax check step as done previously by assuming all the SDeanSecurity package file missing error vanished) the real GUI program by selecting Project → Build all projects menu as shown below.
Figure 37: Building all the FreeOTFE GUI project
Unfortunately, we encountered errors! We need to correct this error else we can’t build this program. From the Messages window we ‘suppose’ to have two errors each in different two files. Obviously, these are syntax errors, related to the source code itself and we confirmed here that our packages building are successful (though contains a lot of warnings :-)).
Figure 38: Syntax error found in the FreeOTFEfrmCDBDump source code
We try to find the reason(s) why the error occurred. From the context help we aware that the number of parameter is not matched. The declaration has four (4) parameters while the error code contains only three (3) parameters. So the third parameter (System.Boolean type) is missing.
Figure 39: Finding a solution for the syntax error found
Figure 40: More online help in finding a solution
Figure 41: The online help for the function definitions
Without digging any further regarding the real working of the program and by considering the Boolean value (TRUE/FALSE) is not critical, we just add the FALSE (or TRUE) value as the third parameter shown below. To understand the program working, you need to dig and learn the Borland Delphi documentations.
Next we re-do the Syntax check again (or you can re-build the project directly).
Figure 42: Adding a FALSE Boolean value
Figure 43: Re-do the syntax checking for the FreeOTFE’s GUI project
We encountered another error as red highlighted in the following Figure. You can see the error message in the Messages window at the bottom. When you double click any error message in the Messages window, the error location will be red highlighted in the source code for the respective file.
Figure 44: Another syntax error found, missing another parameter
In this case, the definition has two (2) parameters while the code in the line has only one (1) parameter. We are missing the second parameter. The type (namespace) is similar to the previous error, System.Boolean and it is just whether to show the progress or not for the process. So we add the TRUE Boolean assuming to show the progress (may be shown in the form of progress bar) of the process. Both errors appeared in different files and as proper programming job, in the release version or for production, we need to declare a new variable of System.Boolean type and use them as usual.
Figure 45: Adding the TRUE Boolean value to the function parameter
Finally we re-build our FreeOTFE project and no more error lor!
So we are ready to run this program by selecting the following menu as usual (Debug mode or version but without debugging so that the running of the program will not stop until the end of the code reached and any error(s) and/or warning(s) generated).
Figure 46: After successfully re-building the FreeOTFE GUI, we are ready to run the program without debugging
And the winner is, we successfully build the FreeOTFE GUI. The displayed error is normal because we just run the GUI, of course the driver is not installed. Just click the OK button to dismiss the error message and you can browse around the FreeOTFE menus to see the functionalities.
Figure 47: Well, the FreeOTFE GUI successfully run (of course without the driver loaded)
The following Figure shows FreeOTFE GUI in action.
Figure 48: FreeOTFE GUI in action
The moral of the story, we found two errors, hundreds may be thousand warning messages though we successfully build the GUI.
The next stage is compiling the driver for Windows using Microsoft Visual C++ and we pass the ‘baton’ to you to complete it or to try it. Very nice program huh!