Forum

PluginInterface in C++/CLI

devvvv

#1

So I’m diving into C++/CLI with the prospect of closer interaction with C++ libraries. First thing I stuck with for now:
“IsChanged” of “Pin” and “IDiffSpread” is freaking out compiler:

VVVV::PluginInterfaces::V2::NonGeneric::ISpread::default::get’: ambiguous call to overloaded function

I know I can just (probably) subscribe to the Changed event but if possible I’d like to minimize the amount of extreme fiddling what C++ feels like after C#.
“SliceCount” of IDiffSpread produces the same “ambiguous call” message, Pin seems to be fine with the compiler.

also it’s only kind of an annoyance but the indexer of “IDiffSpread” (MySpreadi) returns “System.Object” in C++/CLI rather than the type set in pointy-brackets parameters.

anybody have any suggestions/workaround on the above things?


#2

do you actually need the nongeneric namespace?

Pin works fine for me. and to avoid the ambiguities i just cast the pin to ISpread<> for dataaccess.


#3

sorry I didn’t make that clear, I was using the generic IDiffSpread more precisely IDiffSpread


#4
- h
[Input("Input")](Input("Input"))
IDiffSpread<string>

inPin;

  • cpp
    if (inPin->IsChanged)
    {
    ISpread^ inData = inPin;
    for (int i = 0; i < inData->SliceCount; i++)
    {

    }
    }
    ^
    when there’s no need for using …V2.NonGeneric, i just need one cast to avoid those errors. IDiffSpread just for IsChanged, then cast to ISpread for SliceCount and data access.

#5

yeah I was surprised because I wasn’t using the generic, the compiler pulled it out of nowhere. however casting is a good idea