Menu

#561 OWL dialogs fail to locate their resources

8
pending
1
2023-09-24
2023-09-24
No

The concrete TDialog subclasses TInputDialog, TPrinterAbortDlg and TPickListDialog all fail to specify that their dialog resource is located in the OWL module. Their API for specifying the resource ID and module explicitly is also inconsistent or insufficient. See [discussion:a8d46cfd1c].

This issue can lead to application crash when using the dynamic linking build mode, in which the OWL module (DLL) is distinct from the application module (EXE).

Note that these three dialog classes are the only ones with dialog resources. The rest of the dialog classes defined in OWL are base classes or encapsulations of common dialogs.

Proposed resolution

These classes should specify OWL as the module in which their dialog resources are found, unless the module and/or resource ID are explicitly overridden by the user, in which case they should warn if the user uses the same ID as the default dialog resource in the OWL module. Also, the TDialog base class should validate that the dialog resource is actually found in the specified (or assigned) module.

Related

Commit: [r6625]
Discussion: a8d46cfd1c
Discussion: Dialogs failing in dynamic link mode
Wiki: Frequently_Asked_Questions
Wiki: OWLNext_Roadmap_and_Prereleases

Discussion

  • Vidar Hasfjord

    Vidar Hasfjord - 2023-09-24
    • status: open --> pending
     
  • Vidar Hasfjord

    Vidar Hasfjord - 2023-09-24

    This issue has now been fixed on the trunk [r6623].

    Please review and test.

     

    Related

    Commit: [r6623]


Log in to post a comment.