在C#中调用C++ dll中函数接口,传一个结构体过去,结构体中char*的位置,会导致传参的结果发生变化,不知道为什么
C#端:
[DllImport("Dll_Test.dll", EntryPoint = "Interface_Sub", CallingConvention = CallingConvention.Cdecl)]
public extern static int Interface_Sub(ref Sub sub);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct Sub
{
public IntPtr path;
public int num;
};
private void FuncSub()
{
var sub = new Sub();
sub.path = Marshal.StringToHGlobalAnsi("TestSub");
&nb