I’m having trouble passing an argument from C++/CLI code into a .NET C# function.
In C++ I have something resembling the following:
void SomeFunction(short *id)
{
CSharpClass::StaticClassInstance->SetValue(id);
}
On the C# side, the function is declared with a ref argument as:
public void SetValue(ref short id)
{
id = this.internalIdField;
}
The compiler error I’m getting when calling SetValue(id) is “cannot convert parameter 1 from ‘short *’ to ‘short %'”.
I found out that a tracking reference (%) is equivalent to C# ref but I don’t know how to use it with the short* parameter I’m trying to pass.
Thanks in advance.
The logical C++/CLI signature of
CSharpClass::SetValueisIf you know C++ (as opposed to C++/CLI), the answer here is the exact same as it would be if you had the C++ signature
I.e., simply dereference the pointer: