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

win32和MFC调用DLL的有关问题

2012-04-12 
win32和MFC调用DLL的问题我用VS2005创建一个win32的DLL,里面使用libcurl去访问一个网页.如果我用一个win32

win32和MFC调用DLL的问题
我用VS2005创建一个win32的DLL,里面使用libcurl去访问一个网页.
如果我用一个win32 console application去调用这个DLL,无论DLL里去访问的是HTTP还是HTTPS,一切都正常
但如果用MFC application去调用的时候,访问HTTP的时候正常,访问HTTPS的时候libcurl就会出现CURLE_WRITE_ERROR错误.
官方文档对此错误的描述是:
An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback. 

很奇怪,在官方网站了找了半天Mailing List,我想应该是程序的问题,但没找到答案,肯求高手赐教.
我使用的包是从官方下载的:libcurl-7.15.1-msvc-win32-ssl-0.9.8a-zlib-1.2.3.zip

返回CURLE_WRITE_ERROR是文件sendf.c中的CURLcode Curl_client_write()函数,代码片断如下:

C/C++ code
  if(type & CLIENTWRITE_BODY) {    if((conn->protocol&PROT_FTP) && conn->proto.ftpc.transfertype == 'A') {#ifdef CURL_DOES_CONVERSIONS      /* convert from the network encoding */      size_t rc;      rc = Curl_convert_from_network(data, ptr, len);      /* Curl_convert_from_network calls failf if unsuccessful */      if(rc != CURLE_OK)        return rc;#endif /* CURL_DOES_CONVERSIONS */#ifdef CURL_DO_LINEEND_CONV      /* convert end-of-line markers */      len = convert_lineends(data, ptr, len);#endif /* CURL_DO_LINEEND_CONV */    }    /* If the previous block of data ended with CR and this block of data is       just a NL, then the length might be zero */    if(len) {      wrote = data->set.fwrite_func(ptr, 1, len, data->set.out);    }    else {      wrote = len;    }    if(CURL_WRITEFUNC_PAUSE == wrote)      return pausewrite(data, type, ptr, len);    if(wrote != len) {      //就是因为执行到这里了... T_T      failf(data, "Failed writing body (%d != %d)", (int)wrote, (int)len);      return CURLE_WRITE_ERROR;    }  }


[解决办法]
用filemon看看出的是什么错
[解决办法]
你试试在应用程序初始化的时候访问网页看是否有错。

热点排行