C#调用Delphi写的dll

背景
delphi写的一个rf_carddll.dll,里面有函数
function ReadCardIdAndXh(incom: integer; Card_id: pchar; idcode: pchar): integer; stdcall

然后在C#中调用这个dll
[DllImport("rf_carddll.dll", CharSet = CharSet.Ansi,CallingConvention = CallingConvention.StdCall)]
public static extern int ReadCardIdAndXh(int incom, StringBuilder card_id, StringBuilder idcode);

    StringBuilder card_id = new StringBuilder("123");
    StringBuilder idcode = new StringBuilder("456");

     int rt = ReadCardIdAndXh(8, card_id, idcode);

ReadCardIdAndXh函数功能是通过com口返回card_id和idcode.
执行到此就奔溃,尝试了string/String/char*/char[]/IntPtr等传参方法都不行。

rf_carddll.dll这个库有调用到32位的其他dll,把C#编译成32位应用也不行。

求哪位高人能指点一二,感谢!

从com口读个数据而已,你直接引用串口对象读就得了,费那么大劲干什么
要不然你的dll和主程序调试信息写全了也行
你这一动就崩溃,又不知道是哪句代码有bug,上哪调试去

读卡器厂家提供了DLL,询问之后厂家说DLL是用delphi开发的,现在让他们提供C#写的库估计有些困难

是delphi7编译的还是delphi xe