2012-03-05 10 views
1

は最近、ファイルをダウンロードするためのテストプログラムでlibcurlを使用することができました。 コードはこれです:DLLなしでlibcURLを使用する適切な方法は何ですか?

CURL * curl; 
    FILE * fout; 
    CURLcode result; 
    char * url = "http://blablabla.com/blablabla.txt"; 
    char filename[FILENAME_MAX] = "blablabla.txt"; 
    curl = curl_easy_init(); 
    if (curl) 
    { 
    fout = fopen(filename,"wb"); 
    curl_easy_setopt(curl, CURLOPT_URL, url); 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fout); 
    result = curl_easy_perform(curl); 
    curl_easy_cleanup(curl); 
    fclose(fout); 
    } 

とディレクティブのためのそれらのもの:

#define CURL_STATICLIB 
#include <curl/curl.h> 

私の質問は、私はと同じディレクトリにそのすべてのDLLをコピーする必要はありませんことを確認する方法ですそれを動作させるために幹部:

libcurl.dll 
libeay32.dll 
libidn-11.dll 
librtmp.dll 
libssh2.dll 
libssl32.dll 
zlib1.dll 

は、ライブラリーのホームサイト(http://curl.haxx.se)にそのことについての情報を見つけることができません。|

+0

ええと、これはなんですか? – 1000Gbps

+0

dllのソースコードが必要ですが、見つからないことを理解してください。すでにcurl-7.24.0-devel-mingw32をダウンロードしましたが、そこにはありません。ランダムな.aファイル – 1000Gbps

+0

@ 1000Gbpsいいえ、ソースコードは必要ありません。 .aファイルは必要なものだけです。下記の明るさの答えを見てください。 –

答えて

8

「libcurlに静的にリンクするにはどうすればよいですか」という意味ですか? FAQ

5.7は言う:

静的libcurlのライブラリを使用するアプリケーションを構築し、あなたのCFLAGS-DCURL_STATICLIBを追加する必要があります。そうしないと、リンカは動的なインポートシンボルを探します。 Visual Studioを使用している場合は、代わりにCURL_STATICLIBを「プリプロセッサ定義」セクションに追加する必要があります。

-2
CURL *curl; 
CURLcode res; 
CString strUser; 
FILE *ftplister; 
m_FTPUserName.GetWindowTextW (strUser); 
CT2CA PUF_File_HostName(PUF_FIle_Host); 
CT2CA FTP_UserName(FTP_USERNAME); 
FTP_PASSWORD.Append(L":"); 
FTP_PASSWORD.Append(FTP_USERNAME); 
CT2CA FTP_Password(FTP_PASSWORD); 
CT2CA FTP_AddressName(FTP_Address); 
CString strLocalFile; 
CString strFileName; 
m_FTPFileName.GetWindowTextW(strFileName); 
strLocalFile.Append(FTP_FileName); 
strLocalFile.Append(L"\\"); 
strLocalFile.Append(strFileName); 
CT2CA PUF_LocalFile(strLocalFile); 
//ofstream stream2(PUF_LocalFile); 

curl = curl_easy_init(); 
if(curl) 
{ 
    ftplister=fopen(PUF_LocalFile,"wb"); 
    curl_easy_setopt(curl,CURLOPT_URL,PUF_File_HostName); 
    if(strUser!=_T("")) 
    { 
    curl_easy_setopt(curl,CURLOPT_USERPWD,FTP_Password); 
    } 
    curl_easy_setopt(curl, CURLOPT_FTP_SSL, TRUE); 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &write_data); 
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, ftplister); 
    res = curl_easy_perform(curl); 
    curl_easy_cleanup(curl); 
    fclose(ftplister); 
} 
+0

上記のコードはサーバーにファイルをダウンロードしていて、ユーザー名とパスワードを使わない別のもの(つまり匿名)もコードよりうまく動作しています。 – sankar

関連する問題