You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have tried compiling OpenTLD as a dll and importing into a c# application. I am able to create and delete objects in the unmanaged dll from the managed application using pInvoke. But as after I create a pointer to Main the application will crash if I do any of the following:
Delete the Unmanaged object containing a pointer to Main
Run any of the main->tld-> functions
Even cvReleaseImage(&img); crashes the application
The message that I get is 'System.AccessViolationException' occurred - Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Has anyone used OpenTLD as a dll in a managed application? Are there any memory issues that I should be aware of?
The text was updated successfully, but these errors were encountered:
Adding "nnClassifier = NULL;" in the destructor for TLD and removing the if code below fixed nearly all of the problems.
if(nnClassifier)
{
delete nnClassifier;
nnClassifier = NULL;
}
The nnClassifier was already cleaned out in detectorCascade.nnClassifier and since they were pointing to the same object it was trying to delete a second time. I placed the delete nnClassifier in DetectorCascade destructor in the above if block and set it to NULL.
The cVReleaseImage(&img) should not have been called in my code since I was feeding OpenTLD an IplImage struct from my c# application.
So I do have OpenTLD working as an imported unmanaged dll in by c# application. Please consider changing the destructor code for nnClassifier as I mentioned above. It took me a few days to find this since Visual studio does not let me debug an unmanaged dll from within a managed application. This will prevent application crash when OpenTLD is used as a dll.
I have tried compiling OpenTLD as a dll and importing into a c# application. I am able to create and delete objects in the unmanaged dll from the managed application using pInvoke. But as after I create a pointer to Main the application will crash if I do any of the following:
The message that I get is 'System.AccessViolationException' occurred - Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Has anyone used OpenTLD as a dll in a managed application? Are there any memory issues that I should be aware of?
The text was updated successfully, but these errors were encountered: