东软医保接口C++调用时崩溃,调了好几天了求大神帮忙看看
本帖最后由 VisualEleven 于 2013-03-18 09:43:06 编辑
#include "iostream.h"
#include "windows.h"
void main()
{
HINSTANCE hInst;
char *DataBuffer= new char[1024];
char *procid= new char[1024];
char *indata= new char[1024];
char *outdata= new char[1024];
/*int *AppCode= new int[1024];*/
int AppCode;
hInst = LoadLibrary("SiInterface.dll");
typedef int (WINAPI*InitDLL1)(char *&);
typedef int (WINAPI*EditUserInfo1)(char *,char *,char *&,int &,char *&);
InitDLL1 InitDLL = (InitDLL1)GetProcAddress(hInst,"InitDLL");
EditUserInfo1 EditUserInfo = (EditUserInfo1)GetProcAddress(hInst,"EditUserInfo");
if (InitDLL==NULL)
{
cout<<"获取函数InitDLL地址失败!"<<endl;
return;
}
else
{
cout<<"获取函数InitDLL地址成功!"<<endl;
}
if (EditUserInfo==NULL)
{
cout<<"获取函数EditUserInfo地址失败!"<<endl;
return;
}
else
{
cout<<"获取函数EditUserInfo地址成功!"<<endl;
}
if (!InitDLL(DataBuffer))
{
cout<<"动态库初始化成功!"<<endl;
}
else
{
cout<<"动态库初始化失败!"<<endl;
}
procid = "1001";
indata = "1211|dfds|3423|322234|33234|423432|";
//执行到这里都没问题,但执行EditUserInfo时就出现崩溃错误
//文档原型是int (char *procid,char *indata,char *outdata,int *AppCode,char *DataBuffer)
if (!EditUserInfo(procid,indata,outdata,AppCode,DataBuffer))
{
cout<<"执行EditUserInfo成功!"<<endl;
}
else
{
cout<<"执行失败!提示信息:<<DataBuffer<<endl;
}
FreeLibrary(hInst);
}