Skip to content

Instantly share code, notes, and snippets.

@genuinelucifer
Created May 28, 2015 12:08
Show Gist options
  • Save genuinelucifer/5974fcb772c820a4692d to your computer and use it in GitHub Desktop.
Save genuinelucifer/5974fcb772c820a4692d to your computer and use it in GitHub Desktop.
Trying to pass a CS_API class into a function as CS_OUT
diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h
index 488dd2c..178c5be 100644
--- a/tests/Basic/Basic.h
+++ b/tests/Basic/Basic.h
@@ -710,3 +710,16 @@ public:
bool operator ==(const DifferentConstOverloads& other);
bool operator ==(int number) const;
};
+
+#define CS_API
+class CS_API ClassPassTry
+{
+public:
+ int n;
+ char c;
+};
+
+void funcnewTry(CS_OUT ClassPassTry classTry)
+{
+
+}
@genuinelucifer
Copy link
Author

The C# generated code for the function seems completely valid :

public static void funcnewTry(out ClassPassTry classTry)
 {
        classTry = new ClassPassTry();
        var arg0 = ReferenceEquals(classTry, null) ? new ClassPassTry.Internal() : *(ClassPassTry.Internal*) (classTry.__Instance);
        Internal.funcnewTry_0(arg0);
        classTry = ClassPassTry.__CreateInstance(arg0);
 }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment