我在C ++ Builder 6中有一个例程,它通过HTTP Post将文件发送到Web服务器,编译时项目显示来自Linker的这些错误消息:
[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();
}
}
答案 0 :(得分:1)
Indy 8附带了C ++ Builder 6. {Indin 9中引入了TIdMultipartFormDataStream
。您的代码完全编译的事实意味着您的项目使用的是Indy 9或Indy 10头文件,但项目可能会提到旧的Indy 8包而不是nwer Indy 9/10包。如果已升级到Indy 9或更高版本,请确保已完全从BCB6安装中清除Indy 8,并确保您的项目包含对该版本Indy的正确Indy软件包的引用。