Программа и DLL оба связаны в статической библиотеке, и, таким образом, оба получают отдельную копию статической переменной. Я сам столкнулся с этой проблемой. Постскриптум Я не делал понижающий голос.
дал статическую библиотеку с классом:
class CLog
{
private:
CLog();
...
...
public:
static CLog& GetInstance()
{
static CLog Instance;
return Instance;
}
void Write(char *cpPr);
};
#define Log CLog::GetInstance()
Эта библиотека связана с DLL и основной программой. DLL загружается с помощью LoadLibrary. В этом случае очевидно, что вызов Log.Write в основном exe и в dll создает два отдельных экземпляра CLog. Любые идеи, как обойти эту проблему и по-прежнему обеспечить динамическую загрузку DLL?