У меня есть программа на C ++, в которой я называю несколько C ++ Dll. Обычно я делаю простой класс в Dlls с конструктором и деструктором и выполняю некоторую инициализацию в конструкторах. Затем в основной программе я делаю несколько объектов из каждого класса Dlls и использую их в несколько потоков .
MyNamespcae::MyDllClass * MyObj = new MyNamespcae::MyDllClass(/*...inputs...*/); # I make an object for each thread seperately
Теперь у меня есть C Dll что я звоню в основной программе C ++. Я экспортировал функции C с __declspec(dllexport)
и использовал их напрямую в основной программе. Проблема в том, что у меня есть некоторые глобальные переменные в C Dll, поэтому я не могу использовать Dll в нескольких потоках.
Так что мой вопрос, как я могу сделать какой-то объектно-ориентированный метод ( как то, что мы делаем в C ++) в C dll, чтобы вызвать его в C ++, из нескольких потоков? ( Примечание. Мой вопрос о том, что мне нужно сделать в C, а не в C ++ )