用VC6,使用以下代码运行傲天API
int x=Startup("",8802, "192.168.0.1",8801,"test","test",
30,60,33000,1,5000,5,1,&PDeliver,&PReport,&PResponse,&PMTError);
一运行就出现异常,异常是file\i386\chkesp
下面是解决方法
//------自己定义的nsgip.h-------------
#define SGIPAPI __stdcall
typedef int (SGIPAPI *Startup_PTR)(char* cLocalIp, short iLocalPort,
char* cSmgIp, short iSmgPort,
char* cLoginName, char* cPassword,
int lSocketTimeOut, int lMTTimeOut,
int iSrcNode,
int lMTThread, int lMaxListNode, int lMTMaxRetryTime, int lMOThread,
void (* fProcessDeliver)(DeliverStr deliver),
void (* fProcessReport)(ReportStr report),
void (* fProcessResponse)(MTRespStr response),
void (*fProcessMTError)(MTErrorStr mterror));
typedef int (SGIPAPI *Cleanup_PTR)();
typedef int (SGIPAPI *Submit_PTR)(
char* spnumber,
char* chargenumber,
int user_count,
char* usernumber,
char* corpid,
char* service_type,
BYTE fee_type,
char* fee_value,
char* given_value,
BYTE agent_flag,
BYTE mo_flag,
BYTE priority,
char* expire_time,
char* schedule_time,
BYTE report_flag,
BYTE tp_pid,
BYTE tp_udhi,
BYTE message_coding,
BYTE message_type,
DWORD message_length,
char* message_content,
char* reserve,
DWORD *sequencenumber1,
DWORD *sequencenumber2,
DWORD *sequencenumber3);
//---------------程序代码片断-------------------
HMODULE hModule = LoadLibrary("sgip.dll");
if(!hModule){
cout<<"Init: Cannot load SGIP.DLL"<<endl;
return false;
}
Startup_PTR func_Startup = (Startup_PTR)GetProcAddress(hModule, "Startup");
Cleanup_PTR func_Cleanup = (Cleanup_PTR)GetProcAddress(hModule, "Cleanup");
Submit_PTR func_Submit = (Submit_PTR)GetProcAddress(hModule, "Submit");
int x=func_Startup("",8802, "192.168.0.1",8801,"test","test",
30,60,33000,1,5000,5,1,&PDeliver,&PReport,&PResponse,&PMTError);