My project run successful without errors in .NET Frame work 3.5. But, When I target it to .NET Frame work 4. I got the error:
"A call to PInvoke function has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature."
I used unmanaged library as below:
[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)
Do you know how to fix this error ?
DGNElemCore
, notIntPtr
(btw: I found that by doing a google search forDGNOpen pinvoke
- it was the second answer... right after your duplicate of this question on MSDN) – LylyDGNOpen
returns aDGNHandle
which I believe is a void pointer thusIntPtr
is the right type. Or did I overlook something? – Sachsse