草庐IT

interface-design

全部标签

c++ - 是否可以使用 JNI 在 C 或 C++ 中实现 Java 接口(interface)?

假设一个Java库包含一个类,我们称它为Foo。这个类包含一个构造函数和两个方法://constructorFoo();//returnsarandomintpublicintbar();//generatesarandomint"x"andcallsintegerGenerated(x)publicvoidgenerateInt(IntGeneratorListenerInterfacelistenerInterface);这假设一个Java接口(interface)IntGeneratorListenerInterface有一个方法:voidintegerGenerated(int

c++ - Ruby win32 API 接口(interface)

我需要访问ruby​​中win32库的一些函数。我在网上发现关于Win32API类的信息非常稀少,所以我在这里问一下。我知道你可以这样做:function=Win32API.new('user32','MessageBox',['L','P','P','L'],'I')但我似乎无法使用当前的win32绑定(bind)调用此函数:http://msdn.microsoft.com/en-us/library/bb762108%28VS.85%29.aspx问题出在它的原型(prototype)上:UINT_PTRSHAppBarMessage(DWORDdwMessage,PAPPBAR

c++ - 编译时检查基类是否为 "interface"

在事实证明我最初想要的东西在没有涉及C++11的情况下可能是不可能的,我想稍微改变一下需求并问你是否可以实现。previousquestion基本上我想在编译时检查一个类是否从“接口(interface)”继承。通过接口(interface),我的意思是仅具有纯虚拟方法的类。我想执行以下代码:templateclassImpl:publicT{public:STATIC_ASSERT_INTERFACE(T);};此处的行为是,如果T只有纯虚方法,那么它将编译,如果其中一个方法没有,则失败。谁能想到这样的事情? 最佳答案 这基本上类

c# - C++ 中的 DirectX11 引擎和 C# 中的接口(interface)

我有一个用C++编写的DirectX11引擎,一个用C++编写的带有CLR的包装器,以及一个用C#编写的接口(interface)。1)我很好奇这种结构的瓶颈在哪里,我想知道是否有更有效的方法让我在WinForms控件中托管DirectX11渲染。2)有没有办法在WinForms控件所有者以外的线程上呈现?我对此表示怀疑,但我想我会问。3)有没有办法在不通过每个帧上的包装层的情况下渲染多个帧,但保持应用程序响应?我已经将此设置与SlimDX进行了比较,实际上在简单地清除屏幕而不进行任何其他API调用时,FPS会稍微变慢。SlimDX~3000FPS,我的引擎~2000FPS。这没什么大

c# - 从通过模态 WinForms 调用的 C++ 调用 IConnectionPointImpl 接口(interface)时出现问题

我们有一个nativeC++应用程序,它支持一些基于COM的各种类型的VBA宏。这些类型之一,VBAExtension,将自身注册到核心C++应用程序,从而产生(派生自的类)IConnectionPointImpl的实例.这很好用;给定适当的VBAExtension对象,核心和其他VBA宏都可以访问IExtensionEvents上的方法。我们还有一个.NET程序集(用C#编写),它也在运行时加载到核心应用程序中。由于历史原因,程序集由自动运行的VBA宏加载;然后,当用户按下特定按钮时,另一个VBA宏将运行程序集的主入口点,这将显示System.Windows.Forms。用于进一步交

c++ - 在 C++ 中实现 GObject 接口(interface)

我尝试使用Glibmm(Gtkmm的一部分)在C++中实现GType接口(interface)。该对象将传递给C中的API。不幸的是,documentation对于gtkmm没有涵盖它如何包装GObject系统的许多细节。我目前拥有的:classMonaCompletionProvider:publicgtksourceview::SourceCompletionProvider,publicGlib::Object{public:MonaCompletionProvider();virtual~MonaCompletionProvider();Glib::ustringget_nam

c++ - 面试题接口(interface)实现

能否请您帮我解决以下面试问题。给定函数Sleep(intseconds)实现以下接口(interface)以便可以使用计时器:functionvoidCreateTimer(void(*func)(),intseconds)她的目的是创建计时器函数voidStartTimers()表示她启动所有计时器的目的每个启动的计时器都应该延迟几秒钟,然后使用回调来调用函数。示例:CreateTimer(func1,3);CreateTimer(func2,7);CreateTimer(func3,10);StartTimers()应该发生以下情况:延迟3秒,然后调用功能1。延迟4秒,然后调用功能

c++ - D编程: interface at component boundaries

C++严重依赖C风格来导出和导入函数(不是类/接口(interface),如果有的话),因此失去了面向对象的风格,这种风格在许多方面使导出的接口(interface)变得神秘。可以使用D编程语言以面向对象的方式导出接口(interface)吗?我可以用D接口(interface)包装C++(纯)类吗?有哪些可能的因素需要考虑?这种做法是否可行。 最佳答案 您可以找到D的C++互操作性范围的概述here.面向对象风格的互操作性是通过D的interface构造提供的:C++方面#includeclassI//Ourinterface-b

C++ API 设计 : Clearing up public interface

对于我的库,我想公开一个干净的公共(public)API,它不会分散实现细节的注意力。但是,正如您所了解的那样,这些细节甚至会泄露到公共(public)领域:一些类具有有效的公共(public)方法,可供库的其余部分使用,但对API的用户来说不是很有用,因此不要不需要成为其中的一部分。公共(public)代码的简化示例:classCookie;classCookieJar{public:CookiegetCookie();}classCookieMonster{public:voidfeed(CookieJarcookieJar){while(isHungry()){cookieJar

C++ 惯用法之 Policy-based design

一、背景Policy-based是C++的一种基于模板和继承的设计方法。通过模板方式可以实现在编译期给指定的类配置方法,而传统的策略模式则是在运行期对类的方法进行动态配置。所谓设计模式没有一定不变的使用准则,同一个问题可以有多种模式来解决,采用有效的设计模式可以减少重复性代码以及用最小的改动来应对变化。多了解一种模式,可以增加一种解决问题的思路。二、Policy-baseddesign1.概述该模式中的继承是implement-by的关系,而非Is-A的关系,其重点是模板而非继承。2.问题描述假设一个类提供一个对外的接口,但在不同的场景中有不同的实现方式,以下是一种常见的实现代码:classd