Steps to Reproduce:
- In your JUCE application, create a static string and attempt to use the translate macro to initialize the string.
Compile and Run
For me, I get an unhandled exception error with no call stack available. The break is in this function in juce_win32_Threads.cpp
void CriticalSection::enter() const throw()
EnterCriticalSection ((CRITICAL_SECTION*) internal);
I am a fairly new C++ programmer, and a software developer intern at LOUD Tech, so I am not exactly sure what the problem is.
When the TRANS macro is called, it goes to this function in juce_LocalisedStrings.cpp
[code]void LocalisedStrings::setCurrentMappings (LocalisedStrings* newTranslations) throw()
const ScopedLock sl (currentMappingsLock);
delete currentMappings; currentMappings = newTranslations;
it creates the ScopedLock object, which as soon as it’s created apparently locks the critical section. only to be unlocked when the object is deleted.
Like I said… I really am not sure what is going on, I’ve only had an introduction to the concepts of multi threaded C programs, Any help anyone could offer would be amazing!
I’ll answer any other questions related to the problem as well, but for now I have no other pertinent information about the problem.