Если вы хотите, чтобы экземпляр синглтона использовался совместно dll и exe, поместите его определение в динамическую библиотеку вместо статической библиотеки.
В общем, если вы хотите, чтобы некоторые данные были глобальными и уникальными, вы не должны помещать их в статическую библиотеку.
Рассмотрим
//static lib
int CurrentCounter =0;
int getNextCounter()
{
return CurrentCounter;
}
такой код в статической библиотеке. В вашем случае, если обе ссылки exe и dll на эту библиотеку получат свои CurrentCounter . Таким образом, exe и dll могут иметь разные значения CurrentCounter одновременно.