Wywołanie funkcji PInvoke spowodowało niezrównoważenie stosu. Jest tak prawdopodobnie dlatego, że zarządzany PInvoke .. (.NET 4)
Mój projekt przebiega pomyślnie bez błędów w pracy z ramką .NET 3.5. Ale kiedy kieruję go do pracy w ramce .NET 4. Dostałem błąd:
"Wywołanie funkcji PInvoke spowodowało niezrównoważenie stosu. Jest to prawdopodobne, ponieważ zarządzana sygnatura PInvoke nie pasuje do niezarządzanej sygnatury docelowej."
Użyłem niezarządzanej biblioteki jak poniżej:
[StructLayout(LayoutKind.Sequential )]
public class DGNElemCore
{
public int offset;
public int size;
public int element_id;
public int stype;
public int level;
public int type;
public int complex;
public int deleted;
public int graphic_group;
public int properties;
public int color;
public int weight;
public int style;
public int attr_bytes;
public IntPtr attr_data;
public int raw_bytes;
public IntPtr raw_data;
}
[DllImport("DgnLib.dll", EntryPoint = "DGNOpen")]
public static extern IntPtr DGNOpen(string fileName, int bUpdate)
Czy wiesz, jak naprawić ten błąd?