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?

questionAnswers(1)

yourAnswerToTheQuestion