Logo

Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.

Debug, Encrypted

These properties of the Project object correspond to the Debug Info and Encrypted check boxes in the Project Information dialog. They determine whether or not debugging information is stored with the application and whether the object code is encrypted.

Usage

prjProject.Debug = lAddDebuggingInfo
lAddDebuggingInfo = prjProject.Debug
prjProject.Encrypted = lEncryptObjectCode
lEncryptObjectCode = prjProject.Encrypted

When the Debug Property is .T., VFP adds information to the compiled code that allows you to see the source code in the Debugger. Without that information, you get the “Source is not available” or “Source is out of date” message in the Trace window, and you can’t set breakpoints. (Well, you can set them, but they don’t do anything.) Normally, you’ll want to leave this one set to .T. until you have the thing working. Then, you might consider turning it off to save space and to make it a little more difficult to hack your application.

The Encrypted property determines whether or not the compiled code is run through an encryption algorithm. The idea is to give you one more line of defense against the evildoers who want to reverse-engineer your code. However, for true security, you probably need to use one of the various third-party tools around.

These properties also have counterparts in the COMPILE command. To control debugging information there, you use NODEBUG to turn it off; otherwise, it’s on. The keyword for encryption there is ENCRYPT. Guess it’s too much to ask for consistency.

Example

* These lines might be part of a program
* that documents an open project.
?"Debugging info is " + IIF(oProj.Debug,"on","off")+"."
?"Object code is " + IIF(oProj.Encrypted,"","not ")+"encrypted."

See Also

ActiveProject, Build, Compile, Project, Projects