Login Page - Create Account

Support Board


Date/Time: Mon, 29 Apr 2024 16:18:19 +0000



Post From: sc Event / Flag to capture DLL release

[2019-04-07 19:55:16]
User972768 - Posts: 166
Hello,

I'm working on my custom study and came across interesting case. My study uses std::list and follows recommendations from ACSIL Programming Concepts: Allocating Memory for Classes

It all works fine until I need to reload DLL with newer code. In that case I get one of the following:
- crash of Sierra Chart software if I compile my study as "Release";
- "Debug Assertion Failed" Expression: __acrt_first_block == header popup if I compile study with debug info

Please note, that I do unload DLL while study is still active on the chart. It is kind of non-clean way, but who knows how other people will be doing it with my study. I also tried clean way: remove study from the chart and am sometimes getting same popup. So, I don't see option to unload DLL without getting this popup.

I use Visual Studio C++ 2017. If I do remote compilation then it seems that DLL is getting back in "release" type.

I believe it would be great if Sierra would initiate last call to my study before unloading DLL, so I can release memory properly. At least something similar to sc.LastCallToFunction if not just it.

And second question. Could you please post list of compiler parameters that you use for remote compilation? The reason for this question is that size of my DLL compiled under Visual Studio even with debug info is ~120k, while same code remotely compiled is over 800k. It is not that much code in my study to produce 800k binary from C++ code.

Thanks and best regards
Date Time Of Last Edit: 2019-04-07 20:04:10