C#代码如下:
    //接口声明
        public interface SHFRM
    {
        IntPtr ShFrm(string MenuCaption,string ConnectionString,string CurrentUser,IntPtr SaveHandle);
    }
    //接口实现
    public IntPtr ShFrm(string MenuCaption,string ConnectionString,string CurrentUser,IntPtr SaveHandle)
        {
            if ((SingleInfo != null)&&(!SingleInfo.IsDisposed))
            {
                SingleInfo.Show(); //主窗体
                SingleInfo.DelphiFormHandle = SaveHandle;
                if (SingleInfo.Handle != GetForegroundWindow())
                {
                    SetForegroundWindow(SingleInfo.Handle);
                    SingleInfo.WindowState = FormWindowState.Maximized;
                }
 //关键问题是下面这几项操作
               ErpConnectionString = ConnectionString;//保存传过来的参数
               Myconnection = publictool.getsqlconnection(ConnectionString);
               pubCurrentUser = GetUser(CurrentUser, Myconnection);//通过传过来的参数,调用方法生成user结构
               toolStripStatusLabel1.Text = "用户名:" + CurrentUser;
               toolStripStatusLabel2.Text = pubCurrentUser.UserName;
               ShowMDIForm(MenuCaption);            
            }            return SingleInfo.Handle;
        }Delphi中的调用代码为:
       CSharpHandle := (TTVSMainForm.Create(self).DefaultInterface as SHFRM).SHFRM_ (MenuCaption,ConnectionString,pubCurrentUser.UserId,self.Handle);
     测试结果:
    C#主窗体可以调用并创建出来,问题是参数传递出现了问题,Delphi这边的string类型参数,好像根本没有传到C#的函数里面去,在此向高手请教!!!