View Issue Details

IDProjectCategoryView StatusLast Update
0001395NoesisGUIC++ SDKpublic2019-01-23 13:09
Reporterrealesmedia Assigned Tojsantos  
PrioritynormalSeverityblockReproducibilityalways
Status resolvedResolutionno change required 
Product Version2.2.0b5 
Summary0001395: Using components declared in the dynamic library dll
Descriptionhttps://www.noesisengine.com/forums/viewtopic.php?f=3&t=1566

link to minidump (using component in dll): https://yadi.sk/d/9S9NFqSzg5jtxw
link to minidump (only register-unregister component in dll): https://yadi.sk/d/KCo55MUT1DTOlQ
TagsNo tags attached.
PlatformWindows

Activities

jsantos

jsantos

2019-01-21 14:56

manager   ~0005405

Last edited: 2019-01-21 14:56

Thanks for the Dumps!

At kernel shutdown we destroy all the types, so the DLL with the corresponding code for that type must be loaded. This is something we could improve for the future (because we have a way to unregister components in the factory but no way to unregister types) but the solution is not easy.

The workaround is unloading your DLL after NoesisShutdown. Is that a valid solution for you?

realesmedia

realesmedia

2019-01-22 10:51

reporter   ~0005407

Unloading Dll after NsShutdown does not fit. I showed a simplified use case. We will seek a solution.

thanks.
jsantos

jsantos

2019-01-22 14:11

manager   ~0005410

If you unload your dll after doing NsShutdown you are still getting a crash? Could you attach the dump please?
realesmedia

realesmedia

2019-01-22 17:34

reporter   ~0005411

Last edited: 2019-01-22 18:24

if unload dll after NsShutdown () there is no crash)))).

I had to change the algorithm for loading modules dll:

Engine.exe
    InitNoesis()

loop:
        UpdateCurrentWorld();
        DrawCurrentWord();

commands:
      LoadWord("world_1"); // script command...
.....
        LoadWord(""world_2""); // script command...
.......
       LoadWord(""world_3""); // script command...
...
exit:
     
      free_current_world_instance();

     NoesisShutdown()!!!!! OK

    for(auto handle : dll_handles) {
        ::FreeLibrary(handle)
    }
  
exit:
!!!! OK
----------------------------------------------------------------------
LoadWord()
{
         free_current_world_instance();

          loadLibrary(*.dll) //Implementation plugin, GameWorld... with unique GUI NoesisComponents
           init_world_instance();

           store_dll_handles();
}

jsantos

jsantos

2019-01-23 10:58

manager   ~0005412

Good news! Should we close this for now then?
realesmedia

realesmedia

2019-01-23 11:51

reporter   ~0005413

yes. can close)))
thank
jsantos

jsantos

2019-01-23 13:09

manager   ~0005414

Thanks for your feedback!

Issue History

Date Modified Username Field Change
2019-01-20 20:23 realesmedia New Issue
2019-01-20 20:31 realesmedia Description Updated
2019-01-20 20:43 realesmedia Description Updated
2019-01-21 13:47 sfernandez Assigned To => jsantos
2019-01-21 13:47 sfernandez Status new => assigned
2019-01-21 14:56 jsantos Note Added: 0005405
2019-01-21 14:56 jsantos Status assigned => feedback
2019-01-21 14:56 jsantos Note Edited: 0005405
2019-01-22 10:51 realesmedia Note Added: 0005407
2019-01-22 10:51 realesmedia Status feedback => assigned
2019-01-22 14:11 jsantos Note Added: 0005410
2019-01-22 14:11 jsantos Status assigned => feedback
2019-01-22 17:34 realesmedia Note Added: 0005411
2019-01-22 17:34 realesmedia Status feedback => assigned
2019-01-22 18:12 realesmedia Note Edited: 0005411
2019-01-22 18:24 realesmedia Note Edited: 0005411
2019-01-23 10:58 jsantos Note Added: 0005412
2019-01-23 10:59 jsantos Status assigned => feedback
2019-01-23 11:51 realesmedia Note Added: 0005413
2019-01-23 11:51 realesmedia Status feedback => assigned
2019-01-23 13:09 jsantos Status assigned => resolved
2019-01-23 13:09 jsantos Resolution open => no change required
2019-01-23 13:09 jsantos Note Added: 0005414