mono/CppSharp

typedef error Cannot marshal argument of function

xushengbo opened this issue · 0 comments

An error occurred while wrapping the following code into a CLI :Cannot marshal argument of function IsEqual

typedef int Standard_Integer;
typedef char16_t Standard_ExtCharacter;
typedef bool Standard_Boolean;
class Foo
{
public:

Standard_Integer a;

float b;
Standard_ExtCharacter c;

inline Standard_Boolean IsEqual(const Standard_ExtCharacter One,
	const Standard_ExtCharacter Two)
{
	return One == Two;
}

};
Replace the code below and work fine.Why? not support typedef ? or not support char16_t ?

#pragma once
typedef int Standard_Integer;
typedef char16_t Standard_ExtCharacter;
typedef bool Standard_Boolean;
class Foo
{
public:

Standard_Integer a;

float b;
Standard_ExtCharacter c;

inline Standard_Boolean IsEqual(const char16_t One,
	const char16_t Two)
{
	return One == Two;
}

};
__declspec(dllexport) Standard_Integer FooAdd(Foo* foo);