草庐IT

unreal-editor-interface

全部标签

c++ - 将成员函数传递给需要回调的 C 接口(interface)

我有一个带有纯C接口(interface)的旧.dll,它在完成某些工作时需要回调来调用。它接受的回调类型为void(f*)(char*arg)。我正在寻找一种技巧来将C++函数对象传递到那里,以便使用存储在某处的“this”指针调用回调,类似于绑定(bind),但简单的绑定(bind)不起作用为了说明这一点:C接口(interface):typedefvoid(f*)(char*param)Callback;voidregisterCallback(Callbackc);在C++中的用法:classA{voidfunc1(){registerCallback(std::bind(&A

c++ - 在接口(interface)不是时标记派生实现 noexcept 的副作用是什么

我们有一个实现IUnknown(或我们不拥有的任何接口(interface))的类。我们开始用noexcept标记我们的大部分/所有方法以进行任何潜在的优化,因为我们无论如何都不会抛出任何异常;尽管我们依赖的一些库可能。提出了QueryInterface/AddRef/Release是否应该标记为noexcept的问题,因为接口(interface)不是。当只有一些派生类被标记为noexcept时,是否有任何副作用或问题? 最佳答案 一般来说,您应该小心使用noexcept。除非编译器可以证明该函数确实不会抛出任何异常,否则它必须插

c++ - C++ 中纯虚拟容器接口(interface)的迭代器

我有一个容器的纯虚拟接口(interface),它或多或少是这样的:classIContainer{public:virtual~IContainer()=default;virtualElement&operator[](size_tindex)=0;virtualconstElement&operator[](size_tindex)const=0;virtualsize_tsize()const=0;};我想使用rangefor循环,所以我需要定义begin()和end()。为此,我还需要定义迭代器类型。应该不是特别难,但是在我开始编写已经存在的东西之前,我想知道STL或Boos

在UE4(Unreal Engine4)中安装 Quixel Bridge Megascans bridget插件

UE4系列文章目录文章目录UE4系列文章目录前言一、QuixelBridge使用二、把Bridge插件导入UE41.在UE4中安装Bridge2.验证Bridge插件是否成功三、把Bridge资源导入到我们的工程中前言QuixelBridge做三维模型设计,或者是资深的CG工作者的小伙伴估计很多都用过。那您对Quixel并不会感到陌生。早期的Quixel软件是基于Photoshop的插件存在的,是CG工作者创作高质量材质纹理的利器,后来随着Substance系列软件的发布,Quixel从我们的视线里消失了一段时间。在消失的这段时间,Quixel重新调整了反向,花费巨大的精力跑遍全世界为我们三维

c++ - 如何在 C++ 中使用智能指针实现接口(interface)隔离原则?

我有Delphi和C#背景,所以我从他们的角度理解接口(interface)。我已经使用C++几年了,并且仍在从它的角度学习接口(interface)。在我的应用程序中,我有这样一种情况,我需要实现多个接口(interface)的类(即继承多个纯抽象类)来指示每个类支持的各种行为。这不完全是ISP,但它足够接近,是同一个问题。行为接口(interface)不相互继承。没有等级制度。Delphi和C#可以毫不费力地执行此操作,但我正试图弄清楚这是如何在C++中完成的。(此外,目前,我仅限于C++11。)我探索了dynamic_pointer_cast、static_pointer_cas

c++ - 接口(interface)开销

我有一个看起来像Boost.Array的简单类。有两个模板参数T和N。Boost.Array的一个缺点是,每个使用这种数组的方法都必须是带有参数N的模板(T可以)。结果是整个程序往往是一个模板。一个想法是创建一个仅依赖于T(类似于ArrayInterface)的接口(interface)(只有纯虚函数的抽象类)。现在每个其他类都只访问接口(interface),因此只需要模板参数T(与N相比,它或多或少总是已知的)。如果使用接口(interface),这里的缺点是虚拟调用的开销(更多的是错过了内联调用的机会)。直到这里只有事实。templateclassArrayInterface{p

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

我在C++中的继承方面几乎不需要帮助。我有这样的相同结构的代码:classIBase{public:virtuallongDimensions()=0;};classIShape:publicIBase{virtuallongArea()=0;};classRectangle:publicIShape{private:longx;public:longDimensions(){returnx};longArea(){returnx*x};};classRhombus:publicIShape{private:longx;longfi;public:longDimensions(){re

c++ - 是否有用于 C 和/或 C++ 的数据库访问库,其接口(interface)与 Perl 的 DBI 类似?

我愿意写Perl的一个子集DBIC++中libodbc(或unixODBC)的接口(interface)。我相信这样做会让我更好地专注于我的目标。顺便说一句,如果已经有类似的东西,我宁愿避免重新发明轮子。 最佳答案 NVM,没有odbc接口(interface),但它类似于DBI(因为DBI除了在DBD::ODBC中不使用odbc)libdbi-http://libdbi.sourceforge.net/libdbiimplementsadatabase-independentabstractionlayerinC,similart

c++ - 德州仪器数字信号处理器 : interfacing C++ and assembly

我发布了thisQtoTI's28xxDSPforum但还没有听到回应,我想也许这里有人知道。我知道如何在汇编中编写函数以便它们可以被C调用;如果C语言可调用名称为foo(),则汇编函数名为_foo()。如果我想使用C++并优化汇编中的类方法怎么办?我怎么做?我认为唯一的主要问题是:命名访问“this”指针通过知道偏移量来访问类成员如果我不想担心最后两个,那么也许我会编写一个静态成员函数并执行此操作:classMyClass{intx;staticint_doSomething(intu);//implementthisinassemblypublic:inlinevoiddoSome

c# - 在 C++ 中使用 C# 接口(interface)或在 C# 中使用 C++ 接口(interface)

我正在开发一个解决方案,其中我有一个必须由C++解决方案和C#解决方案使用的接口(interface)。我想知道:实现此目标的最佳方式是什么:我在C++项目中使用的C#接口(interface)我将在我的C#项目中使用的C++接口(interface)您能否指出我应该如何着手寻找最佳解决方案? 最佳答案 您是说托管C++吗?在托管C++的情况下很容易做到,只需将接口(interface)放在单独的项目(dll)中并从C#中引用它如果您想对非托管C++做同样的事情,事情会变得很困难比你需要使用COM,PInvoke或某种服务/套接字通