写了个CURL程序,在控制台下运行没问题,但改到MFC对话框程序里,就报了个“遇到问题需要关闭”的错误,求救,急~~难道控制台程序和MFC对话框程序有什么区别么?int CPC_IIUDlg::writeData(void *ptr, int size, int n, void *stream)
{
fp = fopen("d:\\temp.txt", "a+");
if(fp==NULL)
{
MessageBox("123",NULL,MB_OK);
}
int written = fwrite(ptr,size,n,fp);
char *dd;
return written;
}void CPC_IIUDlg::OnLook() 
{
// TODO: Add your control notification handler code here
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) 
{

//fp = fopen("d:\\temp.txt", "a+");
        
char *cs;
char * p1="123";
curl_easy_setopt(curl,CURLOPT_POST,1);  //个别状态监视
//getIdvStat
cs =  "GetStat";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, cs);
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.7:80/Net2.cgi");
char *s = getenv("REQUEST_METHOD");

char *data;
// curl_easy_setopt(curl, CURLOPT_WRITEDATA, data);
//GetDlgItem(IDC_EDIT3)->SetWindowText(data); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,writeData);     curl_easy_perform(curl);

/* always cleanup */
curl_easy_cleanup(curl);

fclose(fp);
}
}

解决方案 »

  1.   

    int written = fwrite(ptr,size,n,fp); 
    错误就在这一行,回调函数里不能对文件进行访问??
    谢谢大家帮忙
      

  2.   

    控制台当然和对话框当然有区别了,控制台是命令行形式输出的,类似DOS窗口,而mfc是GUI界面的
    控制台的主函数是MAIN,mfc是WINMAIN
    控制台要自己写消息循环,MFC是消息映射
      

  3.   

    fp, ptr, nSize等都是正确的?
      

  4.   

    在MFC中操作文件一般用CFile或CStdioFile
      

  5.   

    参数都是对的,本来我想把*ptr的值赋给一个全局变量,现在设置断点跟踪时,跟到回调函数返回值就报错了,错误是Unhandled exception in pu_iiu.exe:0xc0000005:Access Violation
      

  6.   

    感觉是size和n传错了,那两个参数比较容易搞错。
      

  7.   

    我现在把fp改成局部变量就ok了,成员变量不行