Mam problemy przy użyciu public enum
zdefiniowane w C# w interfejsie C++. Projekt .NET jest wystawiony na działanie COM, które może być używane w ramach starszego oprogramowania C++ i VB.C# Enum w bibliotece C++
C# Kod:
namespace ACME.XXX.XXX.XXX.Interfaces.Object
{
[Guid(".....")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[ComVisible(true)]
public interface TestInterface
{
void Stub();
}
[ComVisible(true)]
public enum TestEnum
{
a = 1,
b = 2
}
}
C++ Kod:
Edit: W IDL dla projektu I importowane TLB. (importlib("\..\ACME.XXX.XXX.XXX.Interfaces.tlb")
)
interface ITestObject : IDispatch
{
[id(1), helpstring("one")]
HRESULT MethodOne([in] TestInterface *a);
[id(2), helpstring("two")]
HRESULT MethodTwo([in] TestEnum a);
}
W MethodTwo
, wciąż otrzymuję błędy stwierdzające
wyjątkiem Rodzaj blisko TestEnum
jestem przy założeniu, że jest coś nie robię poprawnie. MethodOne
wydaje się poprawnie znajdować odniesienie.
Czy istnieje trochę magii odwoływania się do obiektu enum .NET w interfejsie C++?
Dziękuję Hans. To działało idealnie! –