c#调用delphi的DLL时出现错误,请大家帮个忙。谢谢!
delphi dll代码:PUser_StaticText = ^TUser_StaticText;
TUser_StaticText = packed record
chContent: PChar; //显示内容
BkColor: TLEDColor; //背景颜色
PartInfo: TUser_PartInfo; //分区信息
FontInfo: TUser_FontSet; //字体设置
UseLibMode: Boolean; //内码模式
end;
function User_AddStaticText(User_Text: PUser_StaticText): Integer;stdcall; external 'DEV_D.DLL';
对应的C#
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct TUser_StaticText
{
public string chContent;
// 显示内容
public TLEDColor BkColor;
// 背景颜色
public TUser_PartInfo PartInfo;
// 分区信息
public TUser_FontSet FontInfo;
// 字体设置
[MarshalAs(UnmanagedType.Bool)]
public bool UseLibMode;
}
[DllImport(LEDCardDLL, EntryPoint = "User_AddStaticText", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int User_AddStaticText (TUser_StaticText User_Text);
通过以上翻译,最后在调用User_AddStaticText方法后出现
“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的错误提示。
该问题是出在哪个地方?
--------------------编程问答-------------------- 有人帮忙吗? --------------------编程问答-------------------- ref TUser_StaticText User_Text试试吧
而且你结构中的类具体怎么定义的,也会影响的 --------------------编程问答--------------------
这种试过了 会出现 -------外部组件发生异常 错误。
补充:.NET技术 , C#