首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi调用VC开发的DLL程序退出后报错

2014-01-28 
------解决方法--------------------------------------------------------P软电话功能,需要用回调函数来实

------解决方法--------------------------------------------------------P软电话功能,需要用回调函数来实现。接口部分的代码均编译通过而且启动时候初始化成功,可是每次程序退出后均报错。不知道是调用的原因还是DLL的调用约定异常。一时间排查不出。下文分别是DLL接口的部分代码以及在DELPHI中定义的接口代码。请大家看看是什么原因?
DLL接口的部分代码
#ifndef __SIPPHONE_INTERFACE_H_INCLUDED_
#define __SIPPHONE_INTERFACE_H_INCLUDED_

#ifdef __cplusplus
extern "C" {
#endif

//////////////////////////////////////////////////////////////////////
// Macro/Struct definition
//////////////////////////////////////////////////////////////////////

typedef DWORD (WINAPI * CALLBACKFUN)(UINT uMsg,DWORD dwUserInstance,WPARAM wParam, LPARAM lParam);

//给应用层消息定义,对应回调函数的第一个参数UINT uMsg
enum SEND_APP_MSG
{
MSG_SIP_CALLIN_FAIL,
MSG_SIP_CALLIN_RINGING,
MSG_SIP_CALLIN_CONNECT,
MSG_SIP_RECV_INFO,
MSG_SIP_CALLOUT_RING,
MSG_SIP_CALLOUT_FAIL,
MSG_SIP_CALLOUT_CONNECT,

MSG_SIP_CALL_HONGOFF
};

#define RETURN_SUCCESS  0  //返回成功
//error code define
#define ERR_INPUT_PARAM_ERROR  1  //输入参数错误
#define ERR_SIP_PROC_NOTSTART  2  //SIP服务没有启动
#define ERR_SIP_PROC_ALREADYSTART  3  //已经启动
#define ERR_SIP_PROC_INITFAIL  4  //初始化失败
#define ERR_SIP_PROC_LISTENPORTFAIL  5  //SIP监听的端口错误
#define ERR_SIP_PROC_LISTENADDRFAIL  6  //SIP监听的地址错误
#define ERR_SIP_PROC_STARTTHREADFAIL  7  //启动工作线程失败
#define ERR_SIP_CALL_STATEERROR  8  //SIP呼叫时状态不一致
#define ERR_SIP_CALL_BUILDANSWERFAIL  9  //SIP呼叫时建立ANSWER消息失败
#define ERR_SIP_CALL_BUILDINVITEFAIL  10  //SIP呼叫时建立INVITE消息失败


//////////////////////////////////////////////////////////////////////
// APP Function statement
//////////////////////////////////////////////////////////////////////
//Function
/****************************************************************
* Function:  SIP_Start
* Description: Start
* Parameter: 
*  int listenPort:SIP监听端口号,必须大于1024 
*  CALLBACKFUN lpfSIPProcCallBack:回调函数
*  DWORD dwInstance:传入this指针
* Return: 
*  返回RETURN_SUCCESS成功,其他值失败
*****************************************************************/
int WINAPI SIP_Start(int listenPort,