内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我有一个用c++编写的DLL,我需要在我的c#代码中使用这个DLL。搜索之后,我发现使用P/Invoke可以让我访问我需要的函数,但是这些函数是在类中定义的,并且使用非静态私有成员变量。因此,我需要能够创建这个类的一个实例来正确地使用这些函数。如何获得对该类的访问权限,以便创建实例?
C++代码,ClassName.h
class __declspec(dllimport) CClassName { public: CClassName(); ~CClassName(); void function(); };
C++代码,ClassName.cpp
CClassName::CClassName() { } CClassName::~CClassName() { } void CClassName::function() { std::cout << "Bla bla bla" << std::endl; }
C++代码,调用函数的ClassNameCaller.h文件
#include "ClassName.h" #ifdef __cplusplus extern "C" { #endif extern __declspec(dllexport) CClassName* CreateClassName(); extern __declspec(dllexport) void DisposeClassName(CClassName* a_pObject); extern __declspec(dllexport) void function(CClassName* a_pObject); #ifdef __cplusplus } #endif
C++代码,调用函数的ClassNameCaller.cpp文件
#include "ClassNameCaller.h" CClassName* CreateClassName() { return new CClassName(); } void DisposeClassName(CClassName* a_pObject) { if(a_pObject!= NULL) { delete a_pObject; a_pObject= NULL; } } void function(CClassName* a_pObject) { if(a_pObject!= NULL) { a_pObject->function(); } }
C#代码
[DllImport("ClassNameDll.dll")] static public extern IntPtr CreateClassName(); [DllImport("ClassNameDll.dll")] static public extern void DisposeClassName(IntPtr pClassNameObject); [DllImport("ClassNameDll.dll")] static public extern void CallFunction(IntPtr pClassNameObject); //use the functions IntPtr pClassName = CreateClassName(); CallFunction(pClassName); DisposeClassName(pClassName); pClassName = IntPtr.Zero;
目前呼叫中心只有API文档,需要用户自己开发。如果用户需要saas系统的呼叫中心可以使用智能外呼机器人:https://cloud.tencent.com/product/ccsr
你有没有调整观众端表现,即通过对 LivePushConfig 中的homeOrientation设置项进行配置,它控制的是观众端看到的视频宽高比是16:9还是6:19,调整后的结果可以用播放器查看以确认是否符合预期。
控制台使用的是新的接口,批量创建子网,https://cloud.tencent.com/document/product/215/31960,可以指定路由表。terraform开发的时候是基于api2.0开发的,还没有这个接口,因此暂时无法使用