[C#] Marshaling, PInvoke + ref

Tasha2201

Хочу вызвать метод:
 int test (int &some); //C++ 
создаю

//C#
Type [] paramTypes = new Type []
{typeof (?)};
MethodBuilder method_builder = typebuilder.DefinePInvokeMethod
("Test",
"test.dll",
"test",
MethodAttributes.Static | MethodAttributes.Public
|MethodAttributes.PinvokeImpl
,CallingConventions.Standard, typeof (int
paramTypes,
System.Runtime.InteropServices.CallingConvention.Cdecl,
System.Runtime.InteropServices.CharSet.Auto);
какой у него должен быть тип в параметрах?
вариант Int32[] + SetMarshal (UnmanagedMarshal.DefineLPArray (UnmanagedType.LPArray; проходит, но он корявый.

Dasar

Зачем ты делаешь это руками, а не автоматическим способом?

[DllImport("test.dll")]
public static extern int Test([In][Out]ref int some);

Tasha2201

Да, это я умею.
Но если имя библиотеки выясняется во время выполнения, то так сделать не получится.
Оставить комментарий
Имя или ник:
Комментарий: