C#呼叫Delphi DLL |
答題得分者是:sryang
|
sj123
一般會員 發表:2 回覆:3 積分:1 註冊:2004-04-26 發送簡訊給我 |
請問各位高手:
現在有一個Delphi寫的DLL,我需要用C#去呼叫並取得回傳值, 目前問題是我無法接收到正確PortInfo.sPortName[0].的值,是哪裡有問題呢? Delphi中的程式如下(TEST.dll): type TPort_Information = record iPortID : integer; sPortName : pchar, iPortType : integer; end; function Get_Info(var Port_Information:TPort_Information ) : integer ; begin Port_Information.iPortID:=0; Port_Information.iPortType:=2; Port_Information.sPortName[0]:=char(10); result:=0; end; C#目前寫法為: public struct TPort_Information { public int iPortID; public char[] sPortName; public int iPortType; } [DllImport("TEST.dll", EntryPoint = "Get_Info", CallingConvention = CallingConvention.StdCall)] public static extern int m_Get_Info(ref TPort_Information fPort_Information); private void button1_Click(object sender, EventArgs e) { TPort_Information PortInfo; PortInfo.iPortID = 0; PortInfo.iPortType = 0; PortInfo.sPortName = new char[5]; PortInfo.sPortName[0] = 'A'; m_Get_Info(ref PortInfo); } |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |