C++/共享变量或在同一 DLL 中将数据从非托管发送到托管
C++ / Share variable or send data from unmanaged to managed in the same DLL
我有一个包含非托管部件 (DllMain) 和托管C++部件的混合模式 DLL。
我在 DllMain 中计算一些文件夹,并希望在调用托管部件时将数据共享/发送到托管部件。
我使用来自另一个C++程序的加载库加载 DLL。
如何共享数据或将数据从 DllMain 发送到受管部件?
我必须分享/发送一些字符*。
谢谢
您需要从托管 DLL 导出本机函数,本机 DLL 可以调用该函数。或者,您可以有一个接口(C++接口),由 CreateThisObject
或类似接口提供支持,它将实例化派生类(接口)。此接口以及创建函数将由托管 DLL 提供,本机 DLL 将简单地将其用作普通C++类。
伪代码类型如下所示
// Export function only
EXPORT
int DoSomethingInManagedDLL(args);
// Export hidden class, through an interface
class IDLLHelper
{
virtual void DoSomething() = 0;
};
EXPORT IDLLHelper* CreateDLLHelper();
// Some class, known only to managed DLL
// This class, as well as above' interface is native
class DLLHelperImpl : public IDLLHelper
{
void DoSomething()
{
// actual code
}
};
相关文章:
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- C++子类共享变量?
- C++/QT:使用指向私有成员的常量指针作为只读数据共享
- 线程之间的实时数据共享
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 子目录之间的 CMAKE 共享变量
- 逐行读取文件,并将数据插入变量和数组中
- 指针数据类型变量如何包含对象?
- 如何在不同的CMakeList.txt之间共享变量?
- OpenMP 任务看不到共享变量的更改
- C++中的常量对象或私有/常量数据成员(变量)?
- OpenMP:当我按线程 ID 访问共享变量时,我是否需要一个关键部分
- 多个 OpenMP 线程读取(而不是写入)共享变量的性能成本?
- C++实现相同接口的对象/类之间的数据共享
- 在 pthread 中使用共享变量
- 提升线程问题,当一个线程与另一个线程没有相同的副本时如何共享变量?
- 是否要确保一个线程修改的任何数据类型的共享变量对其他线程可见
- OpenMP中类成员变量的数据共享属性
- 对共享变量的无保护访问是否总是数据竞赛
- C++/共享变量或在同一 DLL 中将数据从非托管发送到托管