0

我在 C++ Builder 6 中有一个例程,它通过 HTTP Post 将文件发送到网络服务器,并且在编译项目时显示来自链接器的这些错误消息:

[Linker Error] Unresolved external"__fastcall Idmultipartformdata::TIdMultipartFormDataStream()" referenced from C:\Users\Admin\Documents\ProjCB6\Unit1.obj.

然后; 我该怎么做才能解决这个问题?提前致谢!

这里留下使用的源代码=>

void HTTP()
{

      TStringStream  *response=new  TStringStream("");
      TIdMultiPartFormDataStream *stream=new TIdMultiPartFormDataStream(); 
      TIdHTTP  *IdHTTP1 = new TIdHTTP(NULL); 

  try 
  { 

        IdHTTP1->Request->ContentType=stream->RequestContentType; 
        stream->AddFormField("file1","doc");
        stream->AddFile("file1","c:\\3.doc","doc"); 
        stream->Position = 0;
        IdHTTP1->Post("http://172.16.8.186/doc/up.php",stream,response);
        Memo1->Lines->LoadFromStream(response);
        response->Free();
        stream->Free();
        IdHTTP1->Free();


  } 
  catch(...) 
  { 
         response->Free();
        stream->Free();
        IdHTTP1->Free();

  }
}
4

1 回答 1

1

Indy 8 附带的 C++Builder 6 TIdMultipartFormDataStream是在 Indy 9 中引入的。您的代码完全编译的事实意味着您的项目正在使用 Indy 9 或 Indy 10 头文件,但该项目可能引用了较旧的 Indy 8包而不是 nwer Indy 9/10 包。如果您已升级到 Indy 9 或更高版本,请确保您已从 BCB6 安装中完全清除 Indy 8,并确保您的项目包含对该版本 Indy 的正确 Indy 包的引用。

于 2014-03-05T00:46:10.530 回答