Obfuscation Restrictions
While our obfuscation engine is robust, certain coding patterns in Visual Basic 6.0 require adjustment to be compatible with metadata stripping.
1. Design-Time Control References
If you link controls via properties at design-time using their names (string literals), the link will break after renaming.
Problematic (Design-Time Property):
`TreeView1.ImageList = "ImageList1"`
Solution:
Assign references programmatically in the `Form_Load` event:
Private Sub Form_Load()
Set TreeView1.ImageList = ImageList1
End Sub
2. Late Binding / Dynamic Object Creation
Avoid declaring forms using `New` followed by implicit late binding if the compiler optimizes the call to a string reference.
Potential Issue:
Dim oForm as New frmMain
oForm.Show
In some compilation modes (Native Code with specific optimizations), VB6 may embed the form name as a string for this call. Since the obfuscator processes compiled data and not source code, these hidden string references may cause runtime errors if the form is renamed.
Note: DotFix NiceProtect does not perform full decompilation to Native Code due to performance constraints. Therefore, identifying these edge cases requires manual verification. This limitation applies specifically to VB6; Delphi and Free Pascal obfuscation is generally more transparent.