草庐IT

scripting-interface

全部标签

c++ - 通过COM将自定义接口(interface)类型的SAFEARRAY返回给VB6

是否可以从C++COM函数(VC6)向VB6客户端返回一组已定义的接口(interface)对象?我已经在网上搜索过,但没有找到任何描述我需要做什么的内容。我已经看到很多传递BSTR和VARIANT类型,但我需要一些方法让客户端实际使用我在数组中返回的接口(interface)类型。我认为我需要做的事情-使用安全阵列-使用具有VT_UNKNOWN类型的SAFEARRAY,这反过来意味着我需要将对象作为IUnknown对象放入数组中。从这里开始我就难住了。是否可以在VB6中解释IUnknown类型,并以某种方式将其转换为我需要的类型?还是我以完全错误的方式解决这个问题......澄清:放

c++ - 如何为 COM 接口(interface)中的方法生成弃用警告 (c++)

在我工作的地方,我们使用的是“类COM”模型,因为我们通常遵循COM规则,但不执行MIDL编译,也不针对c/c++以外的其他语言。因此,我知道我总是可以改变规则以满足我的需要,但我尽量不这样做,因为我们可能希望有一天能够真正兼容COM,如果那一天到来,我们希望它尽可能轻松。我想在任何人使用特定接口(interface)的特定方法编译代码时打印警告。在c++中(我们只支持微软编译器),我们会在函数声明前加上__declspec(deprecated)来达到我们的目的。我可以只将它添加到我的接口(interface)方法声明之前,还是有更好、更COM的方法来做到这一点?我还想知道是否仅在方

c++ - 静态多态性对实现接口(interface)有意义吗?

祝大家圣诞快乐!我正在学习静态多态性,并且正在阅读AndreiAlexandrescu关于基于策略的设计的优秀书籍。我在我的代码中遇到了以下情况:我有接口(interface)Interface指定方法Foo必须存在。该接口(interface)将由Impl类实现。我有以下两个选择:1)动态多态classInterface{public:virtualvoidFoo()=0;}classImpl:publicInterface{public:voidFoo(){};}2)静态多态classImpl{{public:voidFoo(){};}templateclassInterface:

c++ - 将公共(public)接口(interface)与实现细节分开

我必须设计一个Font类,该类将具有跨平台或不同库(例如Win32GDI或FreeType)的多个实现。所以基本上会有单个共享头文件/接口(interface)文件和多个.cpp实现(在构建时选择)。我宁愿保持公共(public)接口(interface)(头文件)不受任何实现细节的影响,但这通常很难实现。字体对象必须拖动某种私有(private)状态-如GDI中的句柄,或内部的FreeType面部对象。在C++中,跟踪私有(private)实现细节的最佳方法是什么?我应该在实现文件中使用静态数据吗?编辑:发现这篇关于该主题的精彩文章:SeparatingInterfaceandImp

c++ - 将 make_shared 与 protected 构造函数 + 抽象接口(interface)一起使用

给定一个抽象接口(interface)和一个从该接口(interface)派生的实现,其中构造函数受到保护(只能从类工厂创建这些对象-以实现DI模式),我如何在工厂函数中使用make_shared?例如:classIInterface{public:virtualvoidMethod()=0;};classInterfaceImpl:publicIInterface{public:virtualvoidMethod(){}protected:InterfaceImpl(){}};std::shared_ptrCreate(){std::shared_ptrobject=std::mak

c++ - 如何查找 ActiveX 控件的接口(interface)?

给定一个ActiveX控件的实例,我如何枚举它的接口(interface)?(我想获取接口(interface)的名称)。 最佳答案 就像其他人提到的那样,唯一的方法是对所有可能的接口(interface)进行QueryInterface。而这正是Microsoft工具OleView为您所做的。 关于c++-如何查找ActiveX控件的接口(interface)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

C++ 类设计为每个不同的行为提供多个接口(interface)

这是我的第一篇文章,所以请善待。这是我最近得到的一个面试问题,但我在搜索(google、C++FAQ等)后找不到答案。有一个行为b1()的接口(interface)I1。有3个类A,B,C。所有这些类都通过覆盖b1()来实现接口(interface)I1。有第四个类D,它具有在接口(interface)I1中定义的行为(b1)和一个额外的行为b2问题是你如何设计D类。我的答案是创建另一个接口(interface)I2,它定义行为b2()并通过覆盖b1()和b2()使类D实现I1和I2(C++中的多重继承)面试官同意这个解决方案,但问如果将来出现具有新行为的新类(class),我们将如何

HTML中script 标签中的那些属性

在HTML中,标签用于嵌入或引用JavaScript代码。在标签中,有两个属性可以用来控制脚本的加载和执行方式:async和defer。当然这也是常见的一道面试题,async 和 defer的作用和区别。async和defer属性都可以用于异步加载脚本,从而避免了在加载脚本时阻塞浏览器渲染页面的问题。但是它们的具体行为略有不同。当使用async属性时,浏览器会异步地加载脚本,并在下载完成后立即执行脚本,而不会等待页面的其他内容加载完成。如果页面中有多个异步加载的脚本,它们的执行顺序是不确定的,取决于它们完成下载的时间。async属性适用于不依赖于其他脚本或文档解析顺序的独立脚本。当使用defe

c++ - 我可以将一个对象类转换为它在其中实现的接口(interface)指针吗?

我定义了一个接口(interface)类,如下所示。classIRecyclableObject{public:virtual~IRecyclableObject(){}virtualvoidrecycle()=0;virtualvoiddump()=0;virtualintgetRecycleTypeID()=0;};下面是我的CharacterAI类,它继承了另一个类并实现了上面的接口(interface)类。定义如下。classCharacterAI:publicharp::Character,publicharp::IRecyclableObject{public:Charac

c# - 接口(interface)和 header

今天我遇到了C#接口(interface)的概念,我有一个希望很简单的问题,看看我是否理解它们......它们与C++头文件非常相似吗?我的意思是,据我所知,您定义了一个类的主干,但实际上没有定义它的作用,这有点类似于标题,对吗?我阅读了整个MSDN定义,它并没有真正让我100%清楚。我相信我有这个想法(编写并附上了一个非常初级的程序,看看我是否理解)但是我至少在明天晚上之前完全理解它们的基础知识是非常重要的。示例:namespaceInterfaceTest{classProgram{staticvoidMain(string[]args){KitchenStaffnewKitche