从C ++中的C dll中创建对象

问题描述 投票:0回答:1

我有一个C ++程序,我在其中调用了多个C ++ Dll。通常,我会在Dll中使用构造函数和析构函数创建一个简单的类,并在构造函数中进行一些初始化。然后,在主程序中,我从每个Dlls的类中创建多个对象,并在多线程中使用它们。

MyNamespcae::MyDllClass * MyObj = new MyNamespcae::MyDllClass(/*...inputs...*/);  # I make an object for each thread seperately

现在我在主c ++程序中正在调用一个C Dll。我用__declspec(dllexport)导出了[[C函数,并在主程序中使用了[[direct]]。这里的问题是我在C Dll中有一些全局变量,因此我不能在多个线程中使用Dll。因此,我的问题是如何在C dll中执行一些类似于对象的方法(如在C ++中所做的事情),以便从多个线程在C ++中调用它? (注意我的问题是关于我需要在[[C

而不是c ++中做什么)]

我有一个C ++程序,我在其中调用了多个C ++ Dll。通常,我会在Dll中使用构造函数和析构函数创建一个简单的类,并在构造函数中进行一些初始化。然后在...

c++ c oop constructor dllexport
1个回答
1
投票
如果它们不需要是全局的,并且您想为每个线程分配一个(或多个),那么您只需为每个这样的对象类型myobj_t new_dllobj(...)delete_dllobj(myobj_t obj)导出2个C函数,它们就会分配&构造并销毁并释放这些对象。
© www.soinside.com 2019 - 2024. All rights reserved.