Delphi 调用C++ dll 回调函数

用Delphi 调用容联云通信的动态库CCPAppClient.DLL,其中有一个函数
Function CCPinit( CallbackInterface: CCPCALLBACKINTERFACE ):Integer;stdcall;
参数CCPCALLBACKINTERFACE 是一个结构体指针,包含 onConnected , onConnectError 等回调函数。
在调用函数CCPinit调用成功后(返回值0),会触发CCPCALLBACKINTERFACE
结构体中的回调函数onConnected
这部分代码用Delphi如何写?麻烦高手给看一下
下面是C#的demo

CCPCall.instance.loginInterface = this;
 string ret = CCPCall.instance.LoginCCP();
 if (ret != null)
 {   MessageBox.Show(ret, "登录失败", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
 }
 else
 {
     login_btn.Enabled = false;
     login_btn.BackgroundImage = Resources.bluebutton_disable;
     login_btn.ForeColor = Color.White;
     login_btn.Text = "登录中...请稍后";
   }

          public delegate void LoginDelegate();

    #region ILoginInterface 成员

    public void onConnected()
    {
        LoginDelegate connected = delegate()
        {
            IMDBAccess.CreateIMMessageTable();
            IMDBAccess.CreateGroupNoticeTabel();
            this.Hide();
            new MainForm().Show();
        };
        this.BeginInvoke(connected);
    }

    public void onConnectError(CloopenReason reason)
    {
        LoginDelegate error = delegate()
        {
            login_btn.Enabled = true;
            login_btn.BackgroundImage = Resources.bluebutton_normal;
            login_btn.Text = "登录";
        };
        login_btn.BeginInvoke(error);
    }

    #endregion


1个回答

首先是要给你的CallbackInterface这个声明一个对应的结构体,然后调用的时候,将这个里面该要赋值的都赋值,然后再调用,就行了。哦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问