【函数功能】
使用http1.1 传输文件
【预置条件】【函数原型】
 HttpPut(
          file_name:string{文件路径}
          http_url:string {上传地址,必须以'/'结束}
          mobile:string{手机号码}
          alias:string{文件别名}
          ):string
   【返回值】
http1.1的标准应答
   【函数说明】
调用此函数服务器端必须web服务器,使用80端口,并且目录设置可写
服务器端的文件命名方式:日期(14个字节)+手机号码(11个字节)+文件别名+.扩展名
例:(delphi)
var
  file_name,mobile, http_url,alias:string;
begin
if OpenDialog1.Execute then
file_name:=OpenDialog1.FileName;
http_url:=http://192.168.0.3/test/;
mobile:='13777805234';
alias:='test';
try
Memo1.Clear;
Memo1.Lines.Add(HttpPut(file_name,http_url,mobile,alias));
except
end;
end;
以上是我用delphi写的库文件“P_http.dll”
我用vc调用库文件如下:
void CDllMFCDlg::OnBTest() 
{
CString b;
typedef CString(_cdecl *HttpPut)(CString,CString,CString,CString);
HINSTANCE hinstDLL=NULL; 
hinstDLL=LoadLibrary("P_http.dll");
if (hinstDLL)
{
HttpPutProc;
Proc = (HttpPut)GetProcAddress(hinstDLL,"HttpPut");
b=Proc("c:\1.txt","http://192.168.0.3/test/","13912345678","ppp");
FreeLibrary(hinstDLL);
char * p = new char[100];
sprintf(p,"%s",b);
AfxMessageBox(p);
}
else
{
AfxMessageBox("没少到dll");
}
}
编译成功的,但最后为什么老是内存地址错误的问题,不能调用HttpPut这个函数啊,为什么?

解决方案 »

  1.   

    这个好办呀,你一句一句的注释掉, 或设断点,  一定可以找出来~  我以前遇到一个是调试版本怎么都内存地址错误,但是release 版本却屁事没有,  无语~
      

  2.   

    大哥,vc我只会一点点,用F11一步一步烦死了,因为不象delphi那样好调试,能不能帮我看看啊,我调用的是dll的函数,vc也只是我从网上学来的。